From 26bd06feef0d3f2e6f0a20457db1f8397117d2d5 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Mon, 29 Aug 2011 18:16:18 +0300 Subject: Updated crash-me for 5.3 sql-bench/crash-me.sh: Test types with microseconds Fixed some warnings from perl Code cleanups Don't write comments to .cfg file if run with --noverbose --- sql-bench/crash-me.sh | 45 ++++++++++++++++++++++++++++----------------- sql-bench/limits/mysql.cfg | 27 +++++++++++++++------------ 2 files changed, 43 insertions(+), 29 deletions(-) (limited to 'sql-bench') diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh index cc8659513c2..b6aabfbed87 100644 --- a/sql-bench/crash-me.sh +++ b/sql-bench/crash-me.sh @@ -39,7 +39,7 @@ # as such, and clarify ones such as "mediumint" with comments such as # "3-byte int" or "same as xxx". -$version="1.61"; +$version="1.62"; use Cwd; use DBI; @@ -619,6 +619,8 @@ check_reserved_words($dbh); "numeric(9,2)","decimal(6,2)","dec(6,2)", "bit", "bit(2)","bit varying(2)","float","float(8)","real", "double precision", "date","time","timestamp", + "time(6)", "timestamp(6)", + "datetime", "datetime(6)", "interval year", "interval year to month", "interval month", "interval day", "interval day to hour", "interval day to minute", @@ -632,8 +634,7 @@ check_reserved_words($dbh); "national char varying(20)","nchar varying(20)", "national character varying(20)", "timestamp with time zone"); -@odbc_types=("binary(1)","varbinary(1)","tinyint","bigint", - "datetime"); +@odbc_types=("binary(1)","varbinary(1)","tinyint","bigint"); @extra_types=("blob","byte","long varbinary","image","text","text(10)", "mediumtext", "long varchar(1)", "varchar2(257)", @@ -663,7 +664,7 @@ check_reserved_words($dbh); foreach $types (@types) { print "\nSupported $types->[0] types\n"; - $tmp=@$types->[1]; + $tmp= $types->[1]; foreach $use_type (@$tmp) { $type=$use_type; @@ -746,10 +747,14 @@ if (($limits{'type_extra_float(2_arg)'} eq "yes" || $result="exact"; } $prompt="Storage of float values"; - print "$prompt: $result\n"; save_config_data("storage_of_float", $result, $prompt); } +if (defined($limits{'storage_of_float'})) +{ + print "Storage of float values: $limits{'storage_of_float'}\n"; +} + try_and_report("Type for row id", "rowid", ["rowid", "create table crash_q (a rowid)", @@ -1061,7 +1066,7 @@ try_and_report("Automatic row id", "automatic_rowid", foreach $types (@types) { print "\nSupported $types->[0] functions\n"; - $tmp=@$types->[1]; + $tmp= $types->[1]; foreach $type (@$tmp) { if (defined($limits{"func_$types->[0]_$type->[1]"})) @@ -1136,7 +1141,7 @@ if ($limits{'functions'} eq 'yes') foreach $types (@group_types) { print "\nSupported $types->[0] group functions\n"; - $tmp=@$types->[1]; + $tmp= $types->[1]; foreach $type (@$tmp) { check_and_report("Group function $type->[0]", @@ -3132,8 +3137,11 @@ $0 takes the following options: Wait this long before restarting server. --verbose ---noverbose Log into the result file queries performed for determination parameter value + This causes rows starting with ' ###' to be logged into the .cnf file + +--noverbose + Don't log '###' quries to the .cnf file. EOF exit(0); @@ -4349,7 +4357,7 @@ sub save_config_data my $last_line_was_empty=0; foreach $line (split /\n/, $log{$key}) { - print CONFIG_FILE " ###$line\n" + print CONFIG_FILE "$log_prefix$line\n" unless ( ($last_line_was_empty eq 1) && ($line =~ /^\s+$/) ); $last_line_was_empty= ($line =~ /^\s+$/)?1:0; @@ -4369,7 +4377,7 @@ sub add_log { my $key = shift; my $line = shift; - $log{$key} .= $line . "\n" if ($opt_verbose);; + $log{$key} .= $line . "\n" if ($opt_verbose); } sub save_all_config_data @@ -4391,14 +4399,17 @@ sub save_all_config_data $tmp="$key=$limits{$key}"; print CONFIG_FILE $tmp . ("\t" x (int((32-min(length($tmp),32)+7)/8)+1)) . "# $prompts{$key}\n"; - my $line; - my $last_line_was_empty=0; - foreach $line (split /\n/, $log{$key}) - { - print CONFIG_FILE " ###$line\n" unless - ( ($last_line_was_empty eq 1) && ($line =~ /^\s*$/)); + if ($opt_verbose) + { + my $line; + my $last_line_was_empty=0; + foreach $line (split /\n/, $log{$key}) + { + print CONFIG_FILE "$log_prefix$line\n" unless + ( ($last_line_was_empty eq 1) && ($line =~ /^\s*$/)); $last_line_was_empty= ($line =~ /^\s*$/)?1:0; - }; + } + } } close CONFIG_FILE; } diff --git a/sql-bench/limits/mysql.cfg b/sql-bench/limits/mysql.cfg index 76565cb16ff..1194898481d 100644 --- a/sql-bench/limits/mysql.cfg +++ b/sql-bench/limits/mysql.cfg @@ -1,4 +1,4 @@ -#This file is automaticly generated by crash-me 1.61 +#This file is automaticly generated by crash-me 1.62 NEG=yes # update of column= -column Need_cast_for_null=no # Need to cast NULL for arithmetic @@ -31,7 +31,7 @@ comment_--=yes # -- as comment (ANSI) comment_/**/=yes # /* */ as comment comment_//=no # // as comment compute=no # Compute -connections=101 # Simultaneous connections (installation default) +connections=152 # Simultaneous connections (installation default) constraint_check=syntax only # Column constraints constraint_check_named=syntax only # Named constraints constraint_check_table=syntax only # Table constraints @@ -387,17 +387,17 @@ max_char_size=255 # max char() size max_column_name=64 # column name length max_columns=2599 # Columns in table max_conditions=85660 # OR and AND in WHERE -max_expressions=580 # simple expressions +max_expressions=571 # simple expressions max_index=+64 # max index max_index_length=1000 # index length max_index_name=64 # index name length max_index_part_length=255 # max index part length -max_index_parts=16 # index parts +max_index_parts=32 # index parts max_index_varchar_part_length=1000 # index varchar part length max_row_length=65534 # max table row length (without blobs) max_row_length_with_null=65502 # table row length with nulls (without blobs) max_select_alias_name=+512 # select alias name length -max_stack_expression=580 # stacked expressions +max_stack_expression=571 # stacked expressions max_table_alias_name=+512 # table alias name length max_table_name=64 # table name length max_text_size=1048543 # max text or blob size @@ -422,7 +422,7 @@ null_in_unique=yes # null in unique index null_num_expr=yes # Is 1+NULL = NULL nulls_in_unique=yes # null combination in unique index odbc_left_outer_join=yes # left outer join odbc style -operating_system=Linux 2.6.8-my i686 # crash-me tested on +operating_system=Linux 2.6.37.6-0.7-desktop x86_64 # crash-me tested on order_by=yes # Order by order_by_alias=yes # Order by alias order_by_function=yes # Order by function @@ -433,7 +433,7 @@ position_of_null_desc=last # Where is null values in sorted recordset (DESC) primary_key_in_create=yes # primary key in create table psm_functions=no # PSM functions (ANSI SQL) psm_modules=no # PSM modules (ANSI SQL) -psm_procedures=no # PSM procedures (ANSI SQL) +psm_procedures=yes # PSM procedures (ANSI SQL) psm_trigger=no # Triggers (ANSI SQL) query_size=1048574 # query size quote_ident_with_"=error # " as identifier quote (ANSI SQL) @@ -485,7 +485,7 @@ reserved_word_ansi-92/99_column=yes # Keyword COLUMN reserved_word_ansi-92/99_commit=no # Keyword COMMIT reserved_word_ansi-92/99_completion=no # Keyword COMPLETION reserved_word_ansi-92/99_connect=no # Keyword CONNECT -reserved_word_ansi-92/99_connection=yes # Keyword CONNECTION +reserved_word_ansi-92/99_connection=no # Keyword CONNECTION reserved_word_ansi-92/99_constraint=yes # Keyword CONSTRAINT reserved_word_ansi-92/99_constraints=no # Keyword CONSTRAINTS reserved_word_ansi-92/99_continue=yes # Keyword CONTINUE @@ -546,7 +546,7 @@ reserved_word_ansi-92/99_general=no # Keyword GENERAL reserved_word_ansi-92/99_get=no # Keyword GET reserved_word_ansi-92/99_global=no # Keyword GLOBAL reserved_word_ansi-92/99_go=no # Keyword GO -reserved_word_ansi-92/99_goto=yes # Keyword GOTO +reserved_word_ansi-92/99_goto=no # Keyword GOTO reserved_word_ansi-92/99_grant=yes # Keyword GRANT reserved_word_ansi-92/99_group=yes # Keyword GROUP reserved_word_ansi-92/99_having=yes # Keyword HAVING @@ -933,7 +933,7 @@ reserved_word_extra_setuser=no # Keyword SETUSER reserved_word_extra_share=no # Keyword SHARE reserved_word_extra_show=yes # Keyword SHOW reserved_word_extra_shutdown=no # Keyword SHUTDOWN -reserved_word_extra_soname=yes # Keyword SONAME +reserved_word_extra_soname=no # Keyword SONAME reserved_word_extra_spatial=yes # Keyword SPATIAL reserved_word_extra_sql_big_result=yes # Keyword SQL_BIG_RESULT reserved_word_extra_sql_calc_found_rows=yes # Keyword SQL_CALC_FOUND_ROWS @@ -983,7 +983,7 @@ select_limit3=yes # SELECT with LIMIT # OFFSET # select_string_size=1048565 # constant string size in SELECT select_table_update=yes # Update with sub select select_without_from=yes # SELECT without FROM -server_version=MySQL 5.0.7 beta valgrind max debug/ # server version +server_version=MySQL 5.3.1 MariaDB beta valgrind max debug # server version simple_joins=yes # ANSI SQL simple joins sorted_group_by=yes # Group by always sorted storage_of_float=round # Storage of float values @@ -1063,7 +1063,6 @@ type_extra_varchar2(1_arg)=no # Type varchar2(1 arg) type_extra_year=yes # Type year type_odbc_bigint=yes # Type bigint type_odbc_binary(1_arg)=yes # Type binary(1 arg) -type_odbc_datetime=yes # Type datetime type_odbc_tinyint=yes # Type tinyint type_odbc_varbinary(1_arg)=yes # Type varbinary(1 arg) type_sql_bit=yes # Type bit @@ -1075,6 +1074,8 @@ type_sql_char_varying(1_arg)=yes # Type char varying(1 arg) type_sql_character(1_arg)=yes # Type character(1 arg) type_sql_character_varying(1_arg)=yes # Type character varying(1 arg) type_sql_date=yes # Type date +type_sql_datetime=yes # Type datetime +type_sql_datetime(1_arg)=yes # Type datetime(1 arg) type_sql_dec(2_arg)=yes # Type dec(2 arg) type_sql_decimal(2_arg)=yes # Type decimal(2 arg) type_sql_double_precision=yes # Type double precision @@ -1104,7 +1105,9 @@ type_sql_numeric(2_arg)=yes # Type numeric(2 arg) type_sql_real=yes # Type real type_sql_smallint=yes # Type smallint type_sql_time=yes # Type time +type_sql_time(1_arg)=yes # Type time(1 arg) type_sql_timestamp=yes # Type timestamp +type_sql_timestamp(1_arg)=yes # Type timestamp(1 arg) type_sql_timestamp_with_time_zone=no # Type timestamp with time zone type_sql_varchar(1_arg)=yes # Type varchar(1 arg) union=yes # union -- cgit v1.2.1