diff options
author | Michael Widenius <monty@askmonty.org> | 2012-01-09 13:49:47 +0200 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2012-01-09 13:49:47 +0200 |
commit | a148cf7fb092578d85f0dd2936e933b2acbb88e5 (patch) | |
tree | 65b5ac59206fc5edfcff225bb0e78d7cb504f839 | |
parent | cf86abffbfe5fb95dc79260e6a21332d1adadd2a (diff) | |
download | mariadb-git-a148cf7fb092578d85f0dd2936e933b2acbb88e5.tar.gz |
Fixed that --sorted-result in mysql-test-run also works for exec
mysql-test/r/information_schema_all_engines.result:
Update result
mysql-test/t/information_schema_all_engines.test:
Added --sorted-results as tables in information_schema are not sorted.
-rw-r--r-- | client/mysqltest.cc | 50 | ||||
-rw-r--r-- | mysql-test/r/information_schema_all_engines.result | 200 | ||||
-rw-r--r-- | mysql-test/t/information_schema_all_engines.test | 8 |
3 files changed, 140 insertions, 118 deletions
diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 6d54fa8ad7b..77fbbb1757e 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. - Copyright (c) 2009-2011 Monty Program Ab. + Copyright (c) 2009-2012 Monty Program Ab. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -732,7 +732,8 @@ void replace_dynstr_append_mem(DYNAMIC_STRING *ds, const char *val, int len); void replace_dynstr_append(DYNAMIC_STRING *ds, const char *val); void replace_dynstr_append_uint(DYNAMIC_STRING *ds, uint val); -void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING* ds_input); +void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING* ds_input, + bool keep_header); static int match_expected_error(struct st_command *command, unsigned int err_errno, @@ -2790,6 +2791,7 @@ void do_exec(struct st_command *command) FILE *res_file; char *cmd= command->first_argument; DYNAMIC_STRING ds_cmd; + DYNAMIC_STRING ds_sorted, *ds_result; DBUG_ENTER("do_exec"); DBUG_PRINT("enter", ("cmd: '%s'", cmd)); @@ -2835,6 +2837,13 @@ void do_exec(struct st_command *command) die("popen(\"%s\", \"r\") failed", command->first_argument); } + ds_result= &ds_res; + if (display_result_sorted) + { + init_dynamic_string(&ds_sorted, "", 1024, 1024); + ds_result= &ds_sorted; + } + while (fgets(buf, sizeof(buf), res_file)) { if (disable_result_log) @@ -2844,10 +2853,17 @@ void do_exec(struct st_command *command) } else { - replace_dynstr_append(&ds_res, buf); + replace_dynstr_append(ds_result, buf); } } error= pclose(res_file); + + if (display_result_sorted) + { + dynstr_append_sorted(&ds_res, &ds_sorted, 0); + dynstr_free(&ds_sorted); + } + if (error > 0) { uint status= WEXITSTATUS(error); @@ -7743,7 +7759,7 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags) if (display_result_sorted) { /* Sort the result set and append it to result */ - dynstr_append_sorted(save_ds, &ds_sorted); + dynstr_append_sorted(save_ds, &ds_sorted, 1); ds= save_ds; dynstr_free(&ds_sorted); } @@ -10125,17 +10141,16 @@ void replace_dynstr_append_uint(DYNAMIC_STRING *ds, uint val) } - /* Build a list of pointer to each line in ds_input, sort the list and use the sorted list to append the strings sorted to the output ds SYNOPSIS - dynstr_append_sorted - ds - string where the sorted output will be appended - ds_input - string to be sorted - + dynstr_append_sorted() + ds string where the sorted output will be appended + ds_input string to be sorted + keep_header If header should not be sorted */ static int comp_lines(const char **a, const char **b) @@ -10143,7 +10158,8 @@ static int comp_lines(const char **a, const char **b) return (strcmp(*a,*b)); } -void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input) +void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input, + bool keep_header) { unsigned i; char *start= ds_input->str; @@ -10155,11 +10171,14 @@ void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input) my_init_dynamic_array(&lines, sizeof(const char*), 32, 32); - /* First line is result header, skip past it */ - while (*start && *start != '\n') - start++; - start++; /* Skip past \n */ - dynstr_append_mem(ds, ds_input->str, start - ds_input->str); + if (keep_header) + { + /* First line is result header, skip past it */ + while (*start && *start != '\n') + start++; + start++; /* Skip past \n */ + dynstr_append_mem(ds, ds_input->str, start - ds_input->str); + } /* Insert line(s) in array */ while (*start) @@ -10237,4 +10256,3 @@ char *mysql_authentication_dialog_ask(MYSQL *mysql, int type, return buf; } - diff --git a/mysql-test/r/information_schema_all_engines.result b/mysql-test/r/information_schema_all_engines.result index 7a2c548a329..c2bcbeb2315 100644 --- a/mysql-test/r/information_schema_all_engines.result +++ b/mysql-test/r/information_schema_all_engines.result @@ -13,9 +13,26 @@ FILES GLOBAL_STATUS GLOBAL_VARIABLES INDEX_STATISTICS +INNODB_BUFFER_POOL_PAGES +INNODB_BUFFER_POOL_PAGES_BLOB +INNODB_BUFFER_POOL_PAGES_INDEX +INNODB_CMP +INNODB_CMPMEM +INNODB_CMPMEM_RESET +INNODB_CMP_RESET +INNODB_INDEX_STATS +INNODB_LOCKS +INNODB_LOCK_WAITS +INNODB_RSEG +INNODB_SYS_INDEXES +INNODB_SYS_STATS +INNODB_SYS_TABLES +INNODB_TABLE_STATS +INNODB_TRX KEY_CACHES KEY_COLUMN_USAGE PARTITIONS +PBXT_STATISTICS PLUGINS PROCESSLIST PROFILING @@ -34,25 +51,8 @@ TRIGGERS USER_PRIVILEGES USER_STATISTICS VIEWS -INNODB_BUFFER_POOL_PAGES -PBXT_STATISTICS -INNODB_CMP -INNODB_RSEG -XTRADB_ENHANCEMENTS -INNODB_BUFFER_POOL_PAGES_INDEX XTRADB_ADMIN_COMMAND -INNODB_TRX -INNODB_SYS_TABLES -INNODB_LOCK_WAITS -INNODB_SYS_STATS -INNODB_LOCKS -INNODB_CMPMEM -INNODB_TABLE_STATS -INNODB_SYS_INDEXES -INNODB_CMP_RESET -INNODB_BUFFER_POOL_PAGES_BLOB -INNODB_CMPMEM_RESET -INNODB_INDEX_STATS +XTRADB_ENHANCEMENTS SELECT t.table_name, c1.column_name FROM information_schema.tables t INNER JOIN @@ -66,7 +66,7 @@ FROM information_schema.columns c2 WHERE c2.table_schema = t.table_schema AND c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' - ); + ) order by t.table_name; table_name column_name CHARACTER_SETS CHARACTER_SET_NAME CLIENT_STATISTICS CLIENT @@ -80,9 +80,26 @@ FILES TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME INDEX_STATISTICS TABLE_SCHEMA +INNODB_BUFFER_POOL_PAGES page_type +INNODB_BUFFER_POOL_PAGES_BLOB space_id +INNODB_BUFFER_POOL_PAGES_INDEX index_id +INNODB_CMP page_size +INNODB_CMPMEM page_size +INNODB_CMPMEM_RESET page_size +INNODB_CMP_RESET page_size +INNODB_INDEX_STATS table_schema +INNODB_LOCKS lock_id +INNODB_LOCK_WAITS requesting_trx_id +INNODB_RSEG rseg_id +INNODB_SYS_INDEXES TABLE_ID +INNODB_SYS_STATS INDEX_ID +INNODB_SYS_TABLES SCHEMA +INNODB_TABLE_STATS table_schema +INNODB_TRX trx_id KEY_CACHES KEY_CACHE_NAME KEY_COLUMN_USAGE CONSTRAINT_SCHEMA PARTITIONS TABLE_SCHEMA +PBXT_STATISTICS ID PLUGINS PLUGIN_NAME PROCESSLIST ID PROFILING QUERY_ID @@ -101,25 +118,8 @@ TRIGGERS TRIGGER_SCHEMA USER_PRIVILEGES GRANTEE USER_STATISTICS USER VIEWS TABLE_SCHEMA -INNODB_BUFFER_POOL_PAGES page_type -PBXT_STATISTICS ID -INNODB_CMP page_size -INNODB_RSEG rseg_id -XTRADB_ENHANCEMENTS name -INNODB_BUFFER_POOL_PAGES_INDEX index_id XTRADB_ADMIN_COMMAND result_message -INNODB_TRX trx_id -INNODB_SYS_TABLES SCHEMA -INNODB_LOCK_WAITS requesting_trx_id -INNODB_SYS_STATS INDEX_ID -INNODB_LOCKS lock_id -INNODB_CMPMEM page_size -INNODB_TABLE_STATS table_schema -INNODB_SYS_INDEXES TABLE_ID -INNODB_CMP_RESET page_size -INNODB_BUFFER_POOL_PAGES_BLOB space_id -INNODB_CMPMEM_RESET page_size -INNODB_INDEX_STATS table_schema +XTRADB_ENHANCEMENTS name SELECT t.table_name, c1.column_name FROM information_schema.tables t INNER JOIN @@ -133,7 +133,7 @@ FROM information_schema.columns c2 WHERE c2.table_schema = 'information_schema' AND c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' - ); + ) order by t.table_name; table_name column_name CHARACTER_SETS CHARACTER_SET_NAME CLIENT_STATISTICS CLIENT @@ -147,9 +147,26 @@ FILES TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME INDEX_STATISTICS TABLE_SCHEMA +INNODB_BUFFER_POOL_PAGES page_type +INNODB_BUFFER_POOL_PAGES_BLOB space_id +INNODB_BUFFER_POOL_PAGES_INDEX index_id +INNODB_CMP page_size +INNODB_CMPMEM page_size +INNODB_CMPMEM_RESET page_size +INNODB_CMP_RESET page_size +INNODB_INDEX_STATS table_schema +INNODB_LOCKS lock_id +INNODB_LOCK_WAITS requesting_trx_id +INNODB_RSEG rseg_id +INNODB_SYS_INDEXES TABLE_ID +INNODB_SYS_STATS INDEX_ID +INNODB_SYS_TABLES SCHEMA +INNODB_TABLE_STATS table_schema +INNODB_TRX trx_id KEY_CACHES KEY_CACHE_NAME KEY_COLUMN_USAGE CONSTRAINT_SCHEMA PARTITIONS TABLE_SCHEMA +PBXT_STATISTICS ID PLUGINS PLUGIN_NAME PROCESSLIST ID PROFILING QUERY_ID @@ -168,25 +185,8 @@ TRIGGERS TRIGGER_SCHEMA USER_PRIVILEGES GRANTEE USER_STATISTICS USER VIEWS TABLE_SCHEMA -INNODB_BUFFER_POOL_PAGES page_type -PBXT_STATISTICS ID -INNODB_CMP page_size -INNODB_RSEG rseg_id -XTRADB_ENHANCEMENTS name -INNODB_BUFFER_POOL_PAGES_INDEX index_id XTRADB_ADMIN_COMMAND result_message -INNODB_TRX trx_id -INNODB_SYS_TABLES SCHEMA -INNODB_LOCK_WAITS requesting_trx_id -INNODB_SYS_STATS INDEX_ID -INNODB_LOCKS lock_id -INNODB_CMPMEM page_size -INNODB_TABLE_STATS table_schema -INNODB_SYS_INDEXES TABLE_ID -INNODB_CMP_RESET page_size -INNODB_BUFFER_POOL_PAGES_BLOB space_id -INNODB_CMPMEM_RESET page_size -INNODB_INDEX_STATS table_schema +XTRADB_ENHANCEMENTS name select 1 as f1 from information_schema.tables where "CHARACTER_SETS"= (select cast(table_name as char) from information_schema.tables order by table_name limit 1) limit 1; @@ -259,10 +259,11 @@ USER_PRIVILEGES information_schema.USER_PRIVILEGES 1 USER_STATISTICS information_schema.USER_STATISTICS 1 VIEWS information_schema.VIEWS 1 XTRADB_ENHANCEMENTS information_schema.XTRADB_ENHANCEMENTS 1 -Database: information_schema +---------------------------------------+ -| Tables | +---------------------------------------+ ++---------------------------------------+ +Database: information_schema +| Tables | | CHARACTER_SETS | | CLIENT_STATISTICS | | COLLATIONS | @@ -275,9 +276,26 @@ Database: information_schema | GLOBAL_STATUS | | GLOBAL_VARIABLES | | INDEX_STATISTICS | +| INNODB_BUFFER_POOL_PAGES | +| INNODB_BUFFER_POOL_PAGES_BLOB | +| INNODB_BUFFER_POOL_PAGES_INDEX | +| INNODB_CMP | +| INNODB_CMPMEM | +| INNODB_CMPMEM_RESET | +| INNODB_CMP_RESET | +| INNODB_INDEX_STATS | +| INNODB_LOCKS | +| INNODB_LOCK_WAITS | +| INNODB_RSEG | +| INNODB_SYS_INDEXES | +| INNODB_SYS_STATS | +| INNODB_SYS_TABLES | +| INNODB_TABLE_STATS | +| INNODB_TRX | | KEY_CACHES | | KEY_COLUMN_USAGE | | PARTITIONS | +| PBXT_STATISTICS | | PLUGINS | | PROCESSLIST | | PROFILING | @@ -296,30 +314,13 @@ Database: information_schema | USER_PRIVILEGES | | USER_STATISTICS | | VIEWS | -| INNODB_BUFFER_POOL_PAGES | -| PBXT_STATISTICS | -| INNODB_CMP | -| INNODB_RSEG | -| XTRADB_ENHANCEMENTS | -| INNODB_BUFFER_POOL_PAGES_INDEX | | XTRADB_ADMIN_COMMAND | -| INNODB_TRX | -| INNODB_SYS_TABLES | -| INNODB_LOCK_WAITS | -| INNODB_SYS_STATS | -| INNODB_LOCKS | -| INNODB_CMPMEM | -| INNODB_TABLE_STATS | -| INNODB_SYS_INDEXES | -| INNODB_CMP_RESET | -| INNODB_BUFFER_POOL_PAGES_BLOB | -| INNODB_CMPMEM_RESET | -| INNODB_INDEX_STATS | +| XTRADB_ENHANCEMENTS | +---------------------------------------+ -Database: INFORMATION_SCHEMA +---------------------------------------+ -| Tables | +---------------------------------------+ +Database: INFORMATION_SCHEMA +| Tables | | CHARACTER_SETS | | CLIENT_STATISTICS | | COLLATIONS | @@ -332,9 +333,26 @@ Database: INFORMATION_SCHEMA | GLOBAL_STATUS | | GLOBAL_VARIABLES | | INDEX_STATISTICS | +| INNODB_BUFFER_POOL_PAGES | +| INNODB_BUFFER_POOL_PAGES_BLOB | +| INNODB_BUFFER_POOL_PAGES_INDEX | +| INNODB_CMP | +| INNODB_CMPMEM | +| INNODB_CMPMEM_RESET | +| INNODB_CMP_RESET | +| INNODB_INDEX_STATS | +| INNODB_LOCKS | +| INNODB_LOCK_WAITS | +| INNODB_RSEG | +| INNODB_SYS_INDEXES | +| INNODB_SYS_STATS | +| INNODB_SYS_TABLES | +| INNODB_TABLE_STATS | +| INNODB_TRX | | KEY_CACHES | | KEY_COLUMN_USAGE | | PARTITIONS | +| PBXT_STATISTICS | | PLUGINS | | PROCESSLIST | | PROFILING | @@ -353,32 +371,14 @@ Database: INFORMATION_SCHEMA | USER_PRIVILEGES | | USER_STATISTICS | | VIEWS | -| INNODB_BUFFER_POOL_PAGES | -| PBXT_STATISTICS | -| INNODB_CMP | -| INNODB_RSEG | -| XTRADB_ENHANCEMENTS | -| INNODB_BUFFER_POOL_PAGES_INDEX | | XTRADB_ADMIN_COMMAND | -| INNODB_TRX | -| INNODB_SYS_TABLES | -| INNODB_LOCK_WAITS | -| INNODB_SYS_STATS | -| INNODB_LOCKS | -| INNODB_CMPMEM | -| INNODB_TABLE_STATS | -| INNODB_SYS_INDEXES | -| INNODB_CMP_RESET | -| INNODB_BUFFER_POOL_PAGES_BLOB | -| INNODB_CMPMEM_RESET | -| INNODB_INDEX_STATS | -+---------------------------------------+ -Wildcard: inf_rmation_schema +| XTRADB_ENHANCEMENTS | +--------------------+ -| Databases | +--------------------+ -| information_schema | +--------------------+ +Wildcard: inf_rmation_schema +| Databases | +| information_schema | SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA; table_schema count(*) information_schema 52 diff --git a/mysql-test/t/information_schema_all_engines.test b/mysql-test/t/information_schema_all_engines.test index b20ce60985c..9887845cb7e 100644 --- a/mysql-test/t/information_schema_all_engines.test +++ b/mysql-test/t/information_schema_all_engines.test @@ -9,6 +9,7 @@ use INFORMATION_SCHEMA; --replace_result Tables_in_INFORMATION_SCHEMA Tables_in_information_schema +--sorted_result show tables; # @@ -28,7 +29,7 @@ SELECT t.table_name, c1.column_name WHERE c2.table_schema = t.table_schema AND c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' - ); + ) order by t.table_name; SELECT t.table_name, c1.column_name FROM information_schema.tables t INNER JOIN @@ -42,7 +43,7 @@ SELECT t.table_name, c1.column_name WHERE c2.table_schema = 'information_schema' AND c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' - ); + ) order by t.table_name; # # Bug#24630 Subselect query crashes mysqld @@ -70,8 +71,11 @@ group by t.table_name order by num1, t.table_name; # # Bug #19147: mysqlshow INFORMATION_SCHEMA does not work # +--sorted_result --exec $MYSQL_SHOW information_schema +--sorted_result --exec $MYSQL_SHOW INFORMATION_SCHEMA +--sorted_result --exec $MYSQL_SHOW inf_rmation_schema # |