summaryrefslogtreecommitdiff
path: root/mysql-test/t/log_tables.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/log_tables.test')
-rw-r--r--mysql-test/t/log_tables.test233
1 files changed, 224 insertions, 9 deletions
diff --git a/mysql-test/t/log_tables.test b/mysql-test/t/log_tables.test
index 89c7c255554..3047d16d3b6 100644
--- a/mysql-test/t/log_tables.test
+++ b/mysql-test/t/log_tables.test
@@ -131,6 +131,16 @@ SET GLOBAL GENERAL_LOG=ON;
SET GLOBAL SLOW_QUERY_LOG=ON;
#
+# Bug#23924 general_log truncates queries with character set introducers.
+#
+truncate table mysql.general_log;
+set names binary;
+select _koi8r'ΤΕΣΤ' as test;
+--replace_column 1 TIMESTAMP 2 USER_HOST 3 THREAD_ID
+select * from mysql.general_log;
+set names utf8;
+
+#
# Bug #16905 Log tables: unicode statements are logged incorrectly
#
@@ -253,11 +263,11 @@ use mysql;
CREATE TABLE `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
- `user_host` mediumtext,
- `thread_id` int(11) DEFAULT NULL,
- `server_id` int(11) DEFAULT NULL,
- `command_type` varchar(64) DEFAULT NULL,
- `argument` mediumtext
+ `user_host` mediumtext NOT NULL,
+ `thread_id` int(11) NOT NULL,
+ `server_id` int(11) NOT NULL,
+ `command_type` varchar(64) NOT NULL,
+ `argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
CREATE TABLE `slow_log` (
@@ -268,10 +278,10 @@ CREATE TABLE `slow_log` (
`lock_time` time NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
- `db` varchar(512) DEFAULT NULL,
- `last_insert_id` int(11) DEFAULT NULL,
- `insert_id` int(11) DEFAULT NULL,
- `server_id` int(11) DEFAULT NULL,
+ `db` varchar(512) NOT NULL,
+ `last_insert_id` int(11) NOT NULL,
+ `insert_id` int(11) NOT NULL,
+ `server_id` int(11) NOT NULL,
`sql_text` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
@@ -295,6 +305,13 @@ unlock tables;
# Bug #21785 Server crashes after rename of the log table
#
+--disable_warnings
+drop table if exists mysql.renamed_general_log;
+drop table if exists mysql.renamed_slow_log;
+drop table if exists mysql.general_log_new;
+drop table if exists mysql.slow_log_new;
+--enable_warnings
+
use mysql;
# Should result in error
--error ER_CANT_RENAME_LOG_TABLE
@@ -359,6 +376,55 @@ drop table renamed_general_log, renamed_slow_log;
use test;
#
+# Bug#27858 (Failing to log to a log table doesn't log anything to error log)
+#
+# This test works as expected, it's a negative test.
+# The message "[ERROR] Failed to write to mysql.general_log"
+# is printed to master.err when writing to the table mysql.general_log
+# failed.
+# However, this message is picked up by mysql-test-run.pl,
+# and reported as a test failure, which is a false negative.
+# There is no current way to *selectively* filter out these expected error conditions
+# (see mysql-test/lib/mtr_report.pl, mtr_report_stats()).
+# Instead of filtering all occurences of "Failed to write to
+# mysql.general_log", which could hide bugs when the error is not expected,
+# this test case is commented instead.
+# TODO: improve filtering of expected errors in master.err in
+# mysql-test-run.pl (based on the test name ?), and uncomment this test.
+
+# --disable_warnings
+# drop table if exists mysql.bad_general_log;
+# drop table if exists mysql.bad_slow_log;
+# drop table if exists mysql.general_log_hide;
+# drop table if exists mysql.slow_log_hide;
+# --enable_warnings
+#
+# create table mysql.bad_general_log (a int) engine= CSV;
+# create table mysql.bad_slow_log (a int) engine= CSV;
+#
+# # Rename does not perform checks on the table structure,
+# # exploiting this to force a failure to log
+# rename table mysql.general_log to mysql.general_log_hide, mysql.bad_general_log TO mysql.general_log;
+# rename table mysql.slow_log to mysql.slow_log_hide, mysql.bad_slow_log TO mysql.slow_log;
+#
+# # The following message should be printed in master.log:
+# # [ERROR] Failed to write to mysql.general_log
+# # TODO: See how verifying this could be automated
+#
+# flush tables;
+# select "logging this should fail";
+#
+# # Restore the log tables
+#
+# rename table mysql.general_log to mysql.bad_general_log, mysql.general_log_hide TO mysql.general_log;
+# rename table mysql.slow_log to mysql.bad_slow_log, mysql.slow_log_hide TO mysql.slow_log;
+#
+# flush tables;
+#
+# drop table mysql.bad_general_log;
+# drop table mysql.bad_slow_log;
+
+#
# Bug #21966 Strange warnings on repair of the log tables
#
@@ -751,3 +817,152 @@ DROP DATABASE IF EXISTS `db_17876`;
SET GLOBAL general_log = @old_general_log_state;
SET GLOBAL slow_query_log = @old_slow_log_state;
+#
+# Bug#21557 entries in the general query log truncated at 1000 characters.
+#
+
+select CONNECTION_ID() into @thread_id;
+truncate table mysql.general_log;
+set @old_general_log_state = @@global.general_log;
+set global general_log = on;
+--disable_result_log
+set @lparam = "000 001 002 003 004 005 006 007 008 009"
+ "010 011 012 013 014 015 016 017 018 019"
+ "020 021 022 023 024 025 026 027 028 029"
+ "030 031 032 033 034 035 036 037 038 039"
+ "040 041 042 043 044 045 046 047 048 049"
+ "050 051 052 053 054 055 056 057 058 059"
+ "060 061 062 063 064 065 066 067 068 069"
+ "070 071 072 073 074 075 076 077 078 079"
+ "080 081 082 083 084 085 086 087 088 089"
+ "090 091 092 093 094 095 096 097 098 099"
+ "100 101 102 103 104 105 106 107 108 109"
+ "110 111 112 113 114 115 116 117 118 119"
+ "120 121 122 123 124 125 126 127 128 129"
+ "130 131 132 133 134 135 136 137 138 139"
+ "140 141 142 143 144 145 146 147 148 149"
+ "150 151 152 153 154 155 156 157 158 159"
+ "160 161 162 163 164 165 166 167 168 169"
+ "170 171 172 173 174 175 176 177 178 179"
+ "180 181 182 183 184 185 186 187 188 189"
+ "190 191 192 193 194 195 196 197 198 199"
+ "200 201 202 203 204 205 206 207 208 209"
+ "210 211 212 213 214 215 216 217 218 219"
+ "220 221 222 223 224 225 226 227 228 229"
+ "230 231 232 233 234 235 236 237 238 239"
+ "240 241 242 243 244 245 246 247 248 249"
+ "250 251 252 253 254 255 256 257 258 259"
+ "260 261 262 263 264 265 266 267 268 269"
+ "270 271 272 273 274 275 276 277 278 279"
+ "280 281 282 283 284 285 286 287 288 289"
+ "290 291 292 293 294 295 296 297 298 299"
+ "300 301 302 303 304 305 306 307 308 309"
+ "310 311 312 313 314 315 316 317 318 319"
+ "320 321 322 323 324 325 326 327 328 329"
+ "330 331 332 333 334 335 336 337 338 339"
+ "340 341 342 343 344 345 346 347 348 349"
+ "350 351 352 353 354 355 356 357 358 359"
+ "360 361 362 363 364 365 366 367 368 369"
+ "370 371 372 373 374 375 376 377 378 379"
+ "380 381 382 383 384 385 386 387 388 389"
+ "390 391 392 393 394 395 396 397 398 399"
+ "400 401 402 403 404 405 406 407 408 409"
+ "410 411 412 413 414 415 416 417 418 419"
+ "420 421 422 423 424 425 426 427 428 429"
+ "430 431 432 433 434 435 436 437 438 439"
+ "440 441 442 443 444 445 446 447 448 449"
+ "450 451 452 453 454 455 456 457 458 459"
+ "460 461 462 463 464 465 466 467 468 469"
+ "470 471 472 473 474 475 476 477 478 479"
+ "480 481 482 483 484 485 486 487 488 489"
+ "490 491 492 493 494 495 496 497 498 499"
+ "500 501 502 503 504 505 506 507 508 509"
+ "510 511 512 513 514 515 516 517 518 519"
+ "520 521 522 523 524 525 526 527 528 529"
+ "530 531 532 533 534 535 536 537 538 539"
+ "540 541 542 543 544 545 546 547 548 549"
+ "550 551 552 553 554 555 556 557 558 559"
+ "560 561 562 563 564 565 566 567 568 569"
+ "570 571 572 573 574 575 576 577 578 579"
+ "580 581 582 583 584 585 586 587 588 589"
+ "590 591 592 593 594 595 596 597 598 599"
+ "600 601 602 603 604 605 606 607 608 609"
+ "610 611 612 613 614 615 616 617 618 619"
+ "620 621 622 623 624 625 626 627 628 629"
+ "630 631 632 633 634 635 636 637 638 639"
+ "640 641 642 643 644 645 646 647 648 649"
+ "650 651 652 653 654 655 656 657 658 659"
+ "660 661 662 663 664 665 666 667 668 669"
+ "670 671 672 673 674 675 676 677 678 679"
+ "680 681 682 683 684 685 686 687 688 689"
+ "690 691 692 693 694 695 696 697 698 699"
+ "700 701 702 703 704 705 706 707 708 709"
+ "710 711 712 713 714 715 716 717 718 719"
+ "720 721 722 723 724 725 726 727 728 729"
+ "730 731 732 733 734 735 736 737 738 739"
+ "740 741 742 743 744 745 746 747 748 749"
+ "750 751 752 753 754 755 756 757 758 759"
+ "760 761 762 763 764 765 766 767 768 769"
+ "770 771 772 773 774 775 776 777 778 779"
+ "780 781 782 783 784 785 786 787 788 789"
+ "790 791 792 793 794 795 796 797 798 799"
+ "800 801 802 803 804 805 806 807 808 809"
+ "810 811 812 813 814 815 816 817 818 819"
+ "820 821 822 823 824 825 826 827 828 829"
+ "830 831 832 833 834 835 836 837 838 839"
+ "840 841 842 843 844 845 846 847 848 849"
+ "850 851 852 853 854 855 856 857 858 859"
+ "860 861 862 863 864 865 866 867 868 869"
+ "870 871 872 873 874 875 876 877 878 879"
+ "880 881 882 883 884 885 886 887 888 889"
+ "890 891 892 893 894 895 896 897 898 899"
+ "900 901 902 903 904 905 906 907 908 909"
+ "910 911 912 913 914 915 916 917 918 919"
+ "920 921 922 923 924 925 926 927 928 929"
+ "930 931 932 933 934 935 936 937 938 939"
+ "940 941 942 943 944 945 946 947 948 949"
+ "950 951 952 953 954 955 956 957 958 959"
+ "960 961 962 963 964 965 966 967 968 969"
+ "970 971 972 973 974 975 976 977 978 979"
+ "980 981 982 983 984 985 986 987 988 989"
+ "990 991 992 993 994 995 996 997 998 999";
+--enable_result_log
+prepare long_query from "select ? as long_query";
+--disable_result_log
+execute long_query using @lparam;
+--enable_result_log
+set global general_log = off;
+select command_type, argument from mysql.general_log where thread_id = @thread_id;
+deallocate prepare long_query;
+set global general_log = @old_general_log_state;
+
+#
+# Bug #31700: thd->examined_row_count not incremented for 'const' type queries
+#
+SET @old_slow_log_state = @@global.slow_query_log;
+
+SET SESSION long_query_time = 0;
+SET GLOBAL slow_query_log = ON;
+FLUSH LOGS;
+TRUNCATE TABLE mysql.slow_log;
+
+# Let there be three columns, unique, non-unique, and non-indexed:
+CREATE TABLE t1 (f1 SERIAL,f2 INT, f3 INT, PRIMARY KEY(f1), KEY(f2));
+INSERT INTO t1 VALUES (1,1,1);
+INSERT INTO t1 VALUES (2,2,2);
+INSERT INTO t1 VALUES (3,3,3);
+INSERT INTO t1 VALUES (4,4,4);
+
+SELECT SQL_NO_CACHE 'Bug#31700 - SCAN',f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f3=4;
+SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f2=3;
+SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2;
+
+--replace_column 1 TIMESTAMP
+SELECT start_time, rows_examined, rows_sent, sql_text FROM mysql.slow_log WHERE sql_text LIKE '%Bug#31700%' ORDER BY start_time;
+
+DROP TABLE t1;
+
+TRUNCATE TABLE mysql.slow_log;
+
+SET GLOBAL slow_query_log = @old_slow_log_state;
+SET SESSION long_query_time =@old_long_query_time;