github.com/matrixorigin/matrixone@v0.7.0/pkg/util/sysview/sysview.go (about) 1 // Copyright 2022 Matrix Origin 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package sysview 16 17 import ( 18 "context" 19 "fmt" 20 "time" 21 22 "github.com/matrixorigin/matrixone/pkg/logutil" 23 ie "github.com/matrixorigin/matrixone/pkg/util/internalExecutor" 24 "github.com/matrixorigin/matrixone/pkg/util/trace/impl/motrace" 25 ) 26 27 const ( 28 MysqlDBConst = "mysql" 29 InformationDBConst = "information_schema" 30 sqlCreateDBConst = "create database if not exists " 31 sqlUseDbConst = "use " 32 ) 33 34 var ( 35 InitMysqlSysTables = []string{ 36 `CREATE TABLE IF NOT EXISTS user ( 37 Host char(255) NOT NULL DEFAULT '', 38 User char(32) NOT NULL DEFAULT '', 39 Select_priv varchar(10) NOT NULL DEFAULT 'N', 40 Insert_priv varchar(10) NOT NULL DEFAULT 'N', 41 Update_priv varchar(10) NOT NULL DEFAULT 'N', 42 Delete_priv varchar(10) NOT NULL DEFAULT 'N', 43 Create_priv varchar(10) NOT NULL DEFAULT 'N', 44 Drop_priv varchar(10) NOT NULL DEFAULT 'N', 45 Reload_priv varchar(10) NOT NULL DEFAULT 'N', 46 Shutdown_priv varchar(10) NOT NULL DEFAULT 'N', 47 Process_priv varchar(10) NOT NULL DEFAULT 'N', 48 File_priv varchar(10) NOT NULL DEFAULT 'N', 49 Grant_priv varchar(10) NOT NULL DEFAULT 'N', 50 References_priv varchar(10) NOT NULL DEFAULT 'N', 51 Index_priv varchar(10) NOT NULL DEFAULT 'N', 52 Alter_priv varchar(10) NOT NULL DEFAULT 'N', 53 Show_db_priv varchar(10) NOT NULL DEFAULT 'N', 54 Super_priv varchar(10) NOT NULL DEFAULT 'N', 55 Create_tmp_table_priv varchar(10) NOT NULL DEFAULT 'N', 56 Lock_tables_priv varchar(10) NOT NULL DEFAULT 'N', 57 Execute_priv varchar(10) NOT NULL DEFAULT 'N', 58 Repl_slave_priv varchar(10) NOT NULL DEFAULT 'N', 59 Repl_client_priv varchar(10) NOT NULL DEFAULT 'N', 60 Create_view_priv varchar(10) NOT NULL DEFAULT 'N', 61 Show_view_priv varchar(10) NOT NULL DEFAULT 'N', 62 Create_routine_priv varchar(10) NOT NULL DEFAULT 'N', 63 Alter_routine_priv varchar(10) NOT NULL DEFAULT 'N', 64 Create_user_priv varchar(10) NOT NULL DEFAULT 'N', 65 Event_priv varchar(10) NOT NULL DEFAULT 'N', 66 Trigger_priv varchar(10) NOT NULL DEFAULT 'N', 67 Create_tablespace_priv varchar(10) NOT NULL DEFAULT 'N', 68 ssl_type varchar(10) NOT NULL DEFAULT '', 69 ssl_cipher blob NOT NULL, 70 x509_issuer blob NOT NULL, 71 x509_subject blob NOT NULL, 72 max_questions int unsigned NOT NULL DEFAULT '0', 73 max_updates int unsigned NOT NULL DEFAULT '0', 74 max_connections int unsigned NOT NULL DEFAULT '0', 75 max_user_connections int unsigned NOT NULL DEFAULT '0', 76 plugin char(64) NOT NULL DEFAULT 'caching_sha2_password', 77 authentication_string text , 78 password_expired varchar(10) NOT NULL DEFAULT 'N', 79 password_last_changed timestamp NULL DEFAULT NULL, 80 password_lifetime smallint unsigned DEFAULT NULL, 81 account_locked varchar(10) NOT NULL DEFAULT 'N', 82 Create_role_priv varchar(10) NOT NULL DEFAULT 'N', 83 Drop_role_priv varchar(10) NOT NULL DEFAULT 'N', 84 Password_reuse_history smallint unsigned DEFAULT NULL, 85 Password_reuse_time smallint unsigned DEFAULT NULL, 86 Password_require_current varchar(10) DEFAULT NULL, 87 User_attributes json DEFAULT NULL, 88 PRIMARY KEY (Host,User) 89 );`, 90 `CREATE TABLE IF NOT EXISTS db ( 91 Host char(255) NOT NULL DEFAULT '', 92 Db char(64) NOT NULL DEFAULT '', 93 User char(32) NOT NULL DEFAULT '', 94 Select_priv varchar(10) NOT NULL DEFAULT 'N', 95 Insert_priv varchar(10) NOT NULL DEFAULT 'N', 96 Update_priv varchar(10) NOT NULL DEFAULT 'N', 97 Delete_priv varchar(10) NOT NULL DEFAULT 'N', 98 Create_priv varchar(10) NOT NULL DEFAULT 'N', 99 Drop_priv varchar(10) NOT NULL DEFAULT 'N', 100 Grant_priv varchar(10) NOT NULL DEFAULT 'N', 101 References_priv varchar(10) NOT NULL DEFAULT 'N', 102 Index_priv varchar(10) NOT NULL DEFAULT 'N', 103 Alter_priv varchar(10) NOT NULL DEFAULT 'N', 104 Create_tmp_table_priv varchar(10) NOT NULL DEFAULT 'N', 105 Lock_tables_priv varchar(10) NOT NULL DEFAULT 'N', 106 Create_view_priv varchar(10) NOT NULL DEFAULT 'N', 107 Show_view_priv varchar(10) NOT NULL DEFAULT 'N', 108 Create_routine_priv varchar(10) NOT NULL DEFAULT 'N', 109 Alter_routine_priv varchar(10) NOT NULL DEFAULT 'N', 110 Execute_priv varchar(10) NOT NULL DEFAULT 'N', 111 Event_priv varchar(10) NOT NULL DEFAULT 'N', 112 Trigger_priv varchar(10) NOT NULL DEFAULT 'N', 113 PRIMARY KEY (Host,Db,User), 114 KEY User (User) 115 );`, 116 `CREATE TABLE IF NOT EXISTS procs_priv ( 117 Host char(255) NOT NULL DEFAULT '', 118 Db char(64) NOT NULL DEFAULT '', 119 User char(32) NOT NULL DEFAULT '', 120 Routine_name char(64) NOT NULL DEFAULT '', 121 Routine_type varchar(10) NOT NULL, 122 Grantor varchar(288) NOT NULL DEFAULT '', 123 Proc_priv varchar(10) NOT NULL DEFAULT '', 124 Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 125 PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), 126 KEY Grantor (Grantor) 127 );`, 128 `CREATE TABLE IF NOT EXISTS columns_priv ( 129 Host char(255) NOT NULL DEFAULT '', 130 Db char(64) NOT NULL DEFAULT '', 131 User char(32) NOT NULL DEFAULT '', 132 Table_name char(64) NOT NULL DEFAULT '', 133 Column_name char(64) NOT NULL DEFAULT '', 134 Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 135 Column_priv varchar(10) NOT NULL DEFAULT '', 136 PRIMARY KEY (Host,Db,User,Table_name,Column_name) 137 );`, 138 `CREATE TABLE IF NOT EXISTS tables_priv ( 139 Host char(255) NOT NULL DEFAULT '', 140 Db char(64) NOT NULL DEFAULT '', 141 User char(32) NOT NULL DEFAULT '', 142 Table_name char(64) NOT NULL DEFAULT '', 143 Grantor varchar(288) NOT NULL DEFAULT '', 144 Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 145 Table_priv varchar(10) NOT NULL DEFAULT '', 146 Column_priv varchar(10) NOT NULL DEFAULT '', 147 PRIMARY KEY (Host,Db,User,Table_name), 148 KEY Grantor (Grantor) 149 );`, 150 } 151 InitInformationSchemaSysTables = []string{ 152 "CREATE TABLE IF NOT EXISTS KEY_COLUMN_USAGE(" + 153 "CONSTRAINT_CATALOG varchar(64)," + 154 "CONSTRAINT_SCHEMA varchar(64)," + 155 "CONSTRAINT_NAME varchar(64)," + 156 "TABLE_CATALOG varchar(64)," + 157 "TABLE_SCHEMA varchar(64)," + 158 "TABLE_NAME varchar(64)," + 159 "COLUMN_NAME varchar(64)," + 160 "ORDINAL_POSITION int unsigned," + 161 "POSITION_IN_UNIQUE_CONSTRAINT int unsigned," + 162 "REFERENCED_TABLE_SCHEMA varchar(64)," + 163 "REFERENCED_TABLE_NAME varchar(64)," + 164 "REFERENCED_COLUMN_NAME varchar(64)" + 165 ");", 166 "CREATE VIEW COLUMNS AS select " + 167 "'def' as TABLE_CATALOG," + 168 "att_database as TABLE_SCHEMA," + 169 "att_relname AS TABLE_NAME," + 170 "attname AS COLUMN_NAME," + 171 "attnum AS ORDINAL_POSITION," + 172 "mo_show_visible_bin(att_default,1) as COLUMN_DEFAULT," + 173 "(case when attnotnull != 0 then 'YES' else 'NO' end) as IS_NULLABLE," + 174 "mo_show_visible_bin(atttyp,2) as DATA_TYPE," + 175 "att_length as CHARACTER_MAXIMUM_LENGTH," + 176 "att_length as CHARACTER_OCTET_LENGTH," + 177 "0 as NUMERIC_PRECISION," + 178 "0 as NUMERIC_SCALE," + 179 "0 as DATETIME_PRECISION," + 180 "'utf8' as CHARACTER_SET_NAME," + 181 "'utf8_bin' as COLLATION_NAME," + 182 "mo_show_visible_bin(atttyp,3) as COLUMN_TYPE," + 183 "case when att_constraint_type = 'p' then 'PRI' else '' end as COLUMN_KEY," + 184 "case when att_is_auto_increment = 1 then 'auto_increment' else '' end as EXTRA," + 185 "'select,insert,update,references' as `PRIVILEGES`," + 186 "att_comment as COLUMN_COMMENT," + 187 "'' as GENERATION_EXPRESSION," + 188 "0 as SRS_ID " + 189 "from mo_catalog.mo_columns where att_relname!='%!%mo_increment_columns' and att_relname not like '__mo_cpkey%' and attname != '__mo_rowid'", 190 //"CREATE TABLE IF NOT EXISTS COLUMNS(" + 191 // "TABLE_CATALOG varchar(64)," + 192 // "TABLE_SCHEMA varchar(64)," + 193 // "TABLE_NAME varchar(64)," + 194 // "COLUMN_NAME varchar(64)," + 195 // "ORDINAL_POSITION int unsigned," + 196 // "COLUMN_DEFAULT text," + 197 // "IS_NULLABLE varchar(3)," + 198 // "DATA_TYPE longtext," + 199 // "CHARACTER_MAXIMUM_LENGTH bigint," + 200 // "CHARACTER_OCTET_LENGTH bigint," + 201 // "NUMERIC_PRECISION bigint unsigned," + 202 // "NUMERIC_SCALE bigint unsigned," + 203 // "DATETIME_PRECISION int unsigned," + 204 // "CHARACTER_SET_NAME varchar(64)," + 205 // "COLLATION_NAME varchar(64)," + 206 // "COLUMN_TYPE mediumtext," + 207 // "COLUMN_KEY varchar(10)," + 208 // "EXTRA varchar(256)," + 209 // "`PRIVILEGES` varchar(154)," + 210 // "COLUMN_COMMENT text," + 211 // "GENERATION_EXPRESSION longtext," + 212 // "SRS_ID int unsigned" + 213 // ");", 214 215 "CREATE TABLE IF NOT EXISTS PROFILING (" + 216 "QUERY_ID int NOT NULL DEFAULT '0'," + 217 "SEQ int NOT NULL DEFAULT '0'," + 218 "STATE varchar(30) NOT NULL DEFAULT ''," + 219 "DURATION decimal(9,6) NOT NULL DEFAULT '0.000000'," + 220 "CPU_USER decimal(9,6) DEFAULT NULL," + 221 "CPU_SYSTEM decimal(9,6) DEFAULT NULL," + 222 "CONTEXT_VOLUNTARY int DEFAULT NULL," + 223 "CONTEXT_INVOLUNTARY int DEFAULT NULL," + 224 "BLOCK_OPS_IN int DEFAULT NULL," + 225 "BLOCK_OPS_OUT int DEFAULT NULL," + 226 "MESSAGES_SENT int DEFAULT NULL," + 227 "MESSAGES_RECEIVED int DEFAULT NULL," + 228 "PAGE_FAULTS_MAJOR int DEFAULT NULL," + 229 "PAGE_FAULTS_MINOR int DEFAULT NULL," + 230 "SWAPS int DEFAULT NULL," + 231 "SOURCE_FUNCTION varchar(30) DEFAULT NULL," + 232 "SOURCE_FILE varchar(20) DEFAULT NULL," + 233 "SOURCE_LINE int DEFAULT NULL" + 234 ");", 235 "CREATE TABLE IF NOT EXISTS `PROCESSLIST` (" + 236 "ID bigint unsigned NOT NULL DEFAULT '0'," + 237 "USER varchar(32) NOT NULL DEFAULT ''," + 238 "HOST varchar(261) NOT NULL DEFAULT ''," + 239 "DB varchar(64) DEFAULT NULL," + 240 "COMMAND varchar(16) NOT NULL DEFAULT ''," + 241 "TIME int NOT NULL DEFAULT '0'," + 242 "STATE varchar(64) DEFAULT NULL," + 243 "INFO longtext" + 244 ");", 245 "CREATE TABLE IF NOT EXISTS USER_PRIVILEGES (" + 246 "GRANTEE varchar(292) NOT NULL DEFAULT ''," + 247 "TABLE_CATALOG varchar(512) NOT NULL DEFAULT ''," + 248 "PRIVILEGE_TYPE varchar(64) NOT NULL DEFAULT ''," + 249 "IS_GRANTABLE varchar(3) NOT NULL DEFAULT ''" + 250 ");", 251 //"CREATE TABLE IF NOT EXISTS SCHEMATA (" + 252 // "CATALOG_NAME varchar(64)," + 253 // "SCHEMA_NAME varchar(64)," + 254 // "DEFAULT_CHARACTER_SET_NAME varchar(64)," + 255 // "DEFAULT_COLLATION_NAME varchar(64)," + 256 // "SQL_PATH binary(0)," + 257 // "DEFAULT_ENCRYPTION varchar(10)" + 258 // ");", 259 "CREATE VIEW SCHEMATA AS SELECT " + 260 "dat_catalog_name AS CATALOG_NAME," + 261 "datname AS SCHEMA_NAME," + 262 "'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME," + 263 "'utf8mb4_0900_ai_ci' AS DEFAULT_COLLATION_NAME," + 264 "'' AS SQL_PATH," + 265 "'NO' AS DEFAULT_ENCRYPTION " + 266 "FROM mo_catalog.mo_database;", 267 "CREATE TABLE IF NOT EXISTS CHARACTER_SETS(" + 268 "CHARACTER_SET_NAME varchar(64)," + 269 "DEFAULT_COLLATE_NAME varchar(64)," + 270 "DESCRIPTION varchar(2048)," + 271 "MAXLEN int unsigned" + 272 ");", 273 "CREATE TABLE IF NOT EXISTS TRIGGERS(" + 274 "TRIGGER_CATALOG varchar(64)," + 275 "TRIGGER_SCHEMA varchar(64)," + 276 "TRIGGER_NAME varchar(64)," + 277 "EVENT_MANIPULATION varchar(10)," + 278 "EVENT_OBJECT_CATALOG varchar(64)," + 279 "EVENT_OBJECT_SCHEMA varchar(64)," + 280 "EVENT_OBJECT_TABLE varchar(64)," + 281 "ACTION_ORDER int unsigned," + 282 "ACTION_CONDITION binary(0)," + 283 "ACTION_STATEMENT longtext," + 284 "ACTION_ORIENTATION varchar(3)," + 285 "ACTION_TIMING varchar(10)," + 286 "ACTION_REFERENCE_OLD_TABLE binary(0)," + 287 "ACTION_REFERENCE_NEW_TABLE binary(0)," + 288 "ACTION_REFERENCE_OLD_ROW varchar(3)," + 289 "ACTION_REFERENCE_NEW_ROW varchar(3)," + 290 "CREATED timestamp(2)," + 291 "SQL_MODE varchar(10)," + 292 "DEFINER varchar(288)," + 293 "CHARACTER_SET_CLIENT varchar(64)," + 294 "COLLATION_CONNECTION varchar(64)," + 295 "DATABASE_COLLATION varchar(64)" + 296 ");", 297 298 "CREATE VIEW IF NOT EXISTS TABLES AS " + 299 "SELECT 'def' AS TABLE_CATALOG," + 300 "reldatabase AS TABLE_SCHEMA," + 301 "relname AS TABLE_NAME," + 302 "(case when relkind = 'v' and (reldatabase='mo_catalog' or reldatabase='information_schema') then 'SYSTEM VIEW' " + 303 "when relkind = 'v' then 'VIEW' " + 304 "when relkind = 'e' then 'EXTERNAL TABLE' " + 305 "when relkind = 'r' then 'BASE TABLE' " + 306 "else 'UNKNOWN TABLE TYPE' end) AS TABLE_TYPE," + 307 "'' AS ENGINE," + 308 "0 AS VERSION," + 309 "'' AS ROW_FORMAT," + 310 "0 AS TABLE_ROWS," + 311 "0 AS AVG_ROW_LENGTH," + 312 "0 AS DATA_LENGTH," + 313 "0 AS MAX_DATA_LENGTH," + 314 "0 AS INDEX_LENGTH," + 315 "0 AS DATA_FREE," + 316 "0 AS `AUTO_INCREMENT`," + 317 "created_time AS CREATE_TIME," + 318 "created_time AS UPDATE_TIME," + 319 "created_time AS CHECK_TIME," + 320 "'' AS TABLE_COLLATION," + 321 "0 AS CHECKSUM," + 322 "'' AS CREATE_OPTIONS," + 323 "rel_comment AS TABLE_COMMENT " + 324 "FROM mo_catalog.mo_tables;", 325 326 //"CREATE TABLE TABLES(" + 327 // "TABLE_CATALOG varchar(64)," + 328 // "TABLE_SCHEMA varchar(64)," + 329 // "TABLE_NAME varchar(64)," + 330 // "TABLE_TYPE varchar(50)," + 331 // "ENGINE varchar(64), " + 332 // "VERSION int," + 333 // "ROW_FORMAT varchar(50)," + 334 // "TABLE_ROWS bigint unsigned," + 335 // "AVG_ROW_LENGTH bigint unsigned," + 336 // "DATA_LENGTH bigint unsigned," + 337 // "MAX_DATA_LENGTH bigint unsigned," + 338 // "INDEX_LENGTH bigint unsigned," + 339 // "DATA_FREE bigint unsigned," + 340 // "`AUTO_INCREMENT` bigint unsigned," + 341 // "CREATE_TIME timestamp," + 342 // "UPDATE_TIME datetime," + 343 // "CHECK_TIME datetime," + 344 // "TABLE_COLLATION varchar(64)," + 345 // "CHECKSUM bigint," + 346 // "CREATE_OPTIONS varchar(256)," + 347 // "TABLE_COMMENT text" + 348 // ");", 349 350 "CREATE TABLE IF NOT EXISTS ENGINES (" + 351 "ENGINE varchar(64)," + 352 "SUPPORT varchar(8)," + 353 "COMMENT varchar(160)," + 354 "TRANSACTIONS varchar(3)," + 355 "XA varchar(3)," + 356 "SAVEPOINTS varchar(3)" + 357 ");", 358 "CREATE TABLE IF NOT EXISTS ROUTINES (" + 359 "SPECIFIC_NAME varchar(64)," + 360 "ROUTINE_CATALOG varchar(64)," + 361 "ROUTINE_SCHEMA varchar(64)," + 362 "ROUTINE_NAME varchar(64)," + 363 "ROUTINE_TYPE varchar(10)," + 364 "DATA_TYPE longtext," + 365 "CHARACTER_MAXIMUM_LENGTH bigint," + 366 "CHARACTER_OCTET_LENGTH bigint," + 367 "NUMERIC_PRECISION int unsigned," + 368 "NUMERIC_SCALE int unsigned," + 369 "DATETIME_PRECISION int unsigned," + 370 "CHARACTER_SET_NAME varchar(64)," + 371 "COLLATION_NAME varchar(64)," + 372 "DTD_IDENTIFIER longtext," + 373 "ROUTINE_BODY varchar(3)," + 374 "ROUTINE_DEFINITION longtext," + 375 "EXTERNAL_NAME binary(0)," + 376 "EXTERNAL_LANGUAGE varchar(64)," + 377 "PARAMETER_STYLE varchar(3)," + 378 "IS_DETERMINISTIC varchar(3)," + 379 "SQL_DATA_ACCESS varchar(10)," + 380 "SQL_PATH varchar(1000)," + 381 "SECURITY_TYPE varchar(10)," + 382 "CREATED timestamp," + 383 "LAST_ALTERED timestamp," + 384 "SQL_MODE varchar(1000)," + 385 "ROUTINE_COMMENT text," + 386 "DEFINER varchar(288)," + 387 "CHARACTER_SET_CLIENT varchar(64)," + 388 "COLLATION_CONNECTION varchar(64)," + 389 "DATABASE_COLLATION varchar(64)" + 390 ");", 391 "CREATE TABLE IF NOT EXISTS PARAMETERS(" + 392 "SPECIFIC_CATALOG varchar(64)," + 393 "SPECIFIC_SCHEMA varchar(64)," + 394 "SPECIFIC_NAME varchar(64)," + 395 "ORDINAL_POSITION bigint unsigned," + 396 "PARAMETER_MODE varchar(5)," + 397 "PARAMETER_NAME varchar(64)," + 398 "DATA_TYPE longtext," + 399 "CHARACTER_MAXIMUM_LENGTH bigint," + 400 "CHARACTER_OCTET_LENGTH bigint," + 401 "NUMERIC_PRECISION int unsigned," + 402 "NUMERIC_SCALE bigint," + 403 "DATETIME_PRECISION int unsigned," + 404 "CHARACTER_SET_NAME varchar(64)," + 405 "COLLATION_NAME varchar(64)," + 406 "DTD_IDENTIFIER mediumtext," + 407 "ROUTINE_TYPE varchar(64)" + 408 ");", 409 "CREATE TABLE IF NOT EXISTS KEYWORDS (" + 410 "WORD varchar(64)," + 411 "RESERVED int unsigned" + 412 ");", 413 informationSchemaKeywordsData, 414 } 415 ) 416 417 func InitSchema(ctx context.Context, ieFactory func() ie.InternalExecutor) error { 418 initMysqlTables(ctx, ieFactory, motrace.FileService) 419 initInformationSchemaTables(ctx, ieFactory, motrace.FileService) 420 return nil 421 } 422 423 func initMysqlTables(ctx context.Context, ieFactory func() ie.InternalExecutor, batchProcessMode string) { 424 exec := ieFactory() 425 exec.ApplySessionOverride(ie.NewOptsBuilder().Database(MysqlDBConst).Internal(true).Finish()) 426 mustExec := func(sql string) { 427 if err := exec.Exec(ctx, sql, ie.NewOptsBuilder().Finish()); err != nil { 428 panic(fmt.Sprintf("[Mysql] init mysql tables error: %v, sql: %s", err, sql)) 429 } 430 } 431 mustExec(sqlCreateDBConst + MysqlDBConst) 432 mustExec(sqlUseDbConst + MysqlDBConst) 433 var createCost time.Duration 434 defer func() { 435 logutil.Debugf("[Mysql] init mysql tables: create cost %d ms", createCost.Milliseconds()) 436 }() 437 instant := time.Now() 438 439 for _, sql := range InitMysqlSysTables { 440 mustExec(sql) 441 } 442 createCost = time.Since(instant) 443 } 444 445 func initInformationSchemaTables(ctx context.Context, ieFactory func() ie.InternalExecutor, batchProcessMode string) { 446 exec := ieFactory() 447 exec.ApplySessionOverride(ie.NewOptsBuilder().Database(InformationDBConst).Internal(true).Finish()) 448 mustExec := func(sql string) { 449 if err := exec.Exec(ctx, sql, ie.NewOptsBuilder().Finish()); err != nil { 450 panic(fmt.Sprintf("[information_schema] init information_schema tables error: %v, sql: %s", err, sql)) 451 } 452 } 453 mustExec(sqlCreateDBConst + InformationDBConst) 454 mustExec(sqlUseDbConst + InformationDBConst) 455 var createCost time.Duration 456 defer func() { 457 logutil.Debugf("[information_schema] init information_schema tables: create cost %d ms", createCost.Milliseconds()) 458 }() 459 instant := time.Now() 460 461 for _, sql := range InitInformationSchemaSysTables { 462 mustExec(sql) 463 } 464 createCost = time.Since(instant) 465 }