Loading client/mysqltest.c +12 −6 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ enum enum_commands { Q_EXEC, Q_DELIMITER, Q_DISABLE_ABORT_ON_ERROR, Q_ENABLE_ABORT_ON_ERROR, Q_DISPLAY_VERTICAL_RESULTS, Q_DISPLAY_HORIZONTAL_RESULTS, Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL, Q_QUERY_SORTED, Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL, Q_SORTED_RESULTS, Q_START_TIMER, Q_END_TIMER, Q_CHARACTER_SET, Q_DISABLE_PS_PROTOCOL, Q_ENABLE_PS_PROTOCOL, Q_DISABLE_RECONNECT, Q_ENABLE_RECONNECT, Loading Loading @@ -341,7 +341,7 @@ const char *command_names[]= "horizontal_results", "query_vertical", "query_horizontal", "query_sorted", "sorted_results", "start_timer", "end_timer", "character_set", Loading Loading @@ -6161,13 +6161,19 @@ int main(int argc, char **argv) case Q_DISPLAY_HORIZONTAL_RESULTS: display_result_vertically= FALSE; break; case Q_SORTED_RESULTS: /* Turn on sorting of result set, will be reset after next command */ display_result_sorted= TRUE; break; case Q_LET: do_let(command); break; case Q_EVAL_RESULT: eval_result = 1; break; case Q_EVAL: case Q_QUERY_VERTICAL: case Q_QUERY_HORIZONTAL: case Q_QUERY_SORTED: if (command->query == command->query_buf) { /* Skip the first part of command, i.e query_xxx */ Loading @@ -6179,7 +6185,6 @@ int main(int argc, char **argv) case Q_REAP: { my_bool old_display_result_vertically= display_result_vertically; my_bool old_display_result_sorted= display_result_sorted; /* Default is full query, both reap and send */ int flags= QUERY_REAP_FLAG | QUERY_SEND_FLAG; Loading @@ -6196,7 +6201,6 @@ int main(int argc, char **argv) /* Check for special property for this query */ display_result_vertically|= (command->type == Q_QUERY_VERTICAL); display_result_sorted= (command->type == Q_QUERY_SORTED); if (save_file[0]) { Loading @@ -6209,7 +6213,6 @@ int main(int argc, char **argv) /* Restore settings */ display_result_vertically= old_display_result_vertically; display_result_sorted= old_display_result_sorted; break; } Loading Loading @@ -6366,6 +6369,9 @@ int main(int argc, char **argv) the replace structures should be cleared */ free_all_replace(); /* Also reset "sorted_results" */ display_result_sorted= FALSE; } last_command_executed= command_executed; Loading mysql-test/r/mysqltest.result +52 −0 Original line number Diff line number Diff line Loading @@ -546,6 +546,12 @@ a b c 2 Part 2 2007-04-05 00:00:00 2 Part 3 2007-04-05 00:00:00 select * from t1; a b c 1 Line 1 2007-04-05 00:00:00 2 Part 2 2007-04-05 00:00:00 1 Line 1 2007-04-05 00:00:00 2 Part 3 2007-04-05 00:00:00 select * from t1; select ''; Loading @@ -561,4 +567,50 @@ hep select "hepp"; hepp hepp drop table t1; SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT '2' as "3" UNION SELECT '1'; 3 1 2 SET @a = 17; SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 2 1 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT '2' as "my_col1",2 as "my_col2" UNION SELECT '1',1 from t2; ERROR 42S02: Table 'test.t2' doesn't exist End of tests mysql-test/t/mysqltest.test +64 −7 Original line number Diff line number Diff line Loading @@ -1693,15 +1693,72 @@ create table t1( a int, b char(255), c timestamp); insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 2", '2007-04-05'); insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 3", '2007-04-05'); select * from t1; query_sorted select * from t1; --sorted_results select * from t1; # Should not be sorted select * from t1; disable_result_log; query_sorted select * from t1; sorted_results; select * from t1; enable_result_log; query_sorted select ''; query_sorted select "h"; query_sorted select "he"; query_sorted select "hep"; query_sorted select "hepp"; --sorted_results select ''; sorted_results; select "h"; --sorted_results select "he"; --sorted_results select "hep"; --sorted_results select "hepp"; drop table t1; # 1. Assignment of result set sorting sorted_results; SELECT 2 as "my_col" UNION SELECT 1; --sorted_results SELECT 2 as "my_col" UNION SELECT 1; --sorted_results SELECT 2 as "my_col" UNION SELECT 1; # 2. Ensure that the table header will be not sorted into the result --sorted_results SELECT '2' as "3" UNION SELECT '1'; # 3. "sorted_results" changes nothing when applied to a non query statement. sorted_results; SET @a = 17; # 4. Show that "--sorted_results" affects the next statement only --sorted_results SELECT 2 as "my_col" UNION SELECT 1; SELECT 2 as "my_col" UNION SELECT 1; # 5. Ensure that "sorted_results" in combination with $variables works let $my_stmt=SELECT 2 as "my_col" UNION SELECT 1; --sorted_results eval $my_stmt; # 6. Ensure that "sorted_results " does not change the semantics of "--error ...." # or the protocol output after such an expected failure --sorted_results --error 1146 SELECT '2' as "my_col1",2 as "my_col2" UNION SELECT '1',1 from t2; --echo End of tests Loading
client/mysqltest.c +12 −6 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ enum enum_commands { Q_EXEC, Q_DELIMITER, Q_DISABLE_ABORT_ON_ERROR, Q_ENABLE_ABORT_ON_ERROR, Q_DISPLAY_VERTICAL_RESULTS, Q_DISPLAY_HORIZONTAL_RESULTS, Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL, Q_QUERY_SORTED, Q_QUERY_VERTICAL, Q_QUERY_HORIZONTAL, Q_SORTED_RESULTS, Q_START_TIMER, Q_END_TIMER, Q_CHARACTER_SET, Q_DISABLE_PS_PROTOCOL, Q_ENABLE_PS_PROTOCOL, Q_DISABLE_RECONNECT, Q_ENABLE_RECONNECT, Loading Loading @@ -341,7 +341,7 @@ const char *command_names[]= "horizontal_results", "query_vertical", "query_horizontal", "query_sorted", "sorted_results", "start_timer", "end_timer", "character_set", Loading Loading @@ -6161,13 +6161,19 @@ int main(int argc, char **argv) case Q_DISPLAY_HORIZONTAL_RESULTS: display_result_vertically= FALSE; break; case Q_SORTED_RESULTS: /* Turn on sorting of result set, will be reset after next command */ display_result_sorted= TRUE; break; case Q_LET: do_let(command); break; case Q_EVAL_RESULT: eval_result = 1; break; case Q_EVAL: case Q_QUERY_VERTICAL: case Q_QUERY_HORIZONTAL: case Q_QUERY_SORTED: if (command->query == command->query_buf) { /* Skip the first part of command, i.e query_xxx */ Loading @@ -6179,7 +6185,6 @@ int main(int argc, char **argv) case Q_REAP: { my_bool old_display_result_vertically= display_result_vertically; my_bool old_display_result_sorted= display_result_sorted; /* Default is full query, both reap and send */ int flags= QUERY_REAP_FLAG | QUERY_SEND_FLAG; Loading @@ -6196,7 +6201,6 @@ int main(int argc, char **argv) /* Check for special property for this query */ display_result_vertically|= (command->type == Q_QUERY_VERTICAL); display_result_sorted= (command->type == Q_QUERY_SORTED); if (save_file[0]) { Loading @@ -6209,7 +6213,6 @@ int main(int argc, char **argv) /* Restore settings */ display_result_vertically= old_display_result_vertically; display_result_sorted= old_display_result_sorted; break; } Loading Loading @@ -6366,6 +6369,9 @@ int main(int argc, char **argv) the replace structures should be cleared */ free_all_replace(); /* Also reset "sorted_results" */ display_result_sorted= FALSE; } last_command_executed= command_executed; Loading
mysql-test/r/mysqltest.result +52 −0 Original line number Diff line number Diff line Loading @@ -546,6 +546,12 @@ a b c 2 Part 2 2007-04-05 00:00:00 2 Part 3 2007-04-05 00:00:00 select * from t1; a b c 1 Line 1 2007-04-05 00:00:00 2 Part 2 2007-04-05 00:00:00 1 Line 1 2007-04-05 00:00:00 2 Part 3 2007-04-05 00:00:00 select * from t1; select ''; Loading @@ -561,4 +567,50 @@ hep select "hepp"; hepp hepp drop table t1; SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT '2' as "3" UNION SELECT '1'; 3 1 2 SET @a = 17; SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT 2 as "my_col" UNION SELECT 1; my_col 2 1 SELECT 2 as "my_col" UNION SELECT 1; my_col 1 2 SELECT '2' as "my_col1",2 as "my_col2" UNION SELECT '1',1 from t2; ERROR 42S02: Table 'test.t2' doesn't exist End of tests
mysql-test/t/mysqltest.test +64 −7 Original line number Diff line number Diff line Loading @@ -1693,15 +1693,72 @@ create table t1( a int, b char(255), c timestamp); insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 2", '2007-04-05'); insert into t1 values(1, 'Line 1', '2007-04-05'), (2, "Part 3", '2007-04-05'); select * from t1; query_sorted select * from t1; --sorted_results select * from t1; # Should not be sorted select * from t1; disable_result_log; query_sorted select * from t1; sorted_results; select * from t1; enable_result_log; query_sorted select ''; query_sorted select "h"; query_sorted select "he"; query_sorted select "hep"; query_sorted select "hepp"; --sorted_results select ''; sorted_results; select "h"; --sorted_results select "he"; --sorted_results select "hep"; --sorted_results select "hepp"; drop table t1; # 1. Assignment of result set sorting sorted_results; SELECT 2 as "my_col" UNION SELECT 1; --sorted_results SELECT 2 as "my_col" UNION SELECT 1; --sorted_results SELECT 2 as "my_col" UNION SELECT 1; # 2. Ensure that the table header will be not sorted into the result --sorted_results SELECT '2' as "3" UNION SELECT '1'; # 3. "sorted_results" changes nothing when applied to a non query statement. sorted_results; SET @a = 17; # 4. Show that "--sorted_results" affects the next statement only --sorted_results SELECT 2 as "my_col" UNION SELECT 1; SELECT 2 as "my_col" UNION SELECT 1; # 5. Ensure that "sorted_results" in combination with $variables works let $my_stmt=SELECT 2 as "my_col" UNION SELECT 1; --sorted_results eval $my_stmt; # 6. Ensure that "sorted_results " does not change the semantics of "--error ...." # or the protocol output after such an expected failure --sorted_results --error 1146 SELECT '2' as "my_col1",2 as "my_col2" UNION SELECT '1',1 from t2; --echo End of tests