Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
1115b3d9
Commit
1115b3d9
authored
Jan 25, 2003
by
walrus@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change bench files for mimer compability, change crash-me for correct testing time datafields
parent
1ecf9d50
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
179 additions
and
37 deletions
+179
-37
sql-bench/crash-me.sh
sql-bench/crash-me.sh
+132
-18
sql-bench/server-cfg.sh
sql-bench/server-cfg.sh
+27
-2
sql-bench/test-insert.sh
sql-bench/test-insert.sh
+5
-5
sql-bench/test-select.sh
sql-bench/test-select.sh
+15
-12
No files found.
sql-bench/crash-me.sh
View file @
1115b3d9
...
@@ -48,7 +48,7 @@ require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n";
...
@@ -48,7 +48,7 @@ require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n";
$opt_server
=
"mysql"
;
$opt_host
=
"localhost"
;
$opt_database
=
"test"
;
$opt_server
=
"mysql"
;
$opt_host
=
"localhost"
;
$opt_database
=
"test"
;
$opt_dir
=
"limits"
;
$opt_dir
=
"limits"
;
$opt_user
=
$opt_password
=
""
;
$opt_verbose
=
""
;
$opt_user
=
$opt_password
=
""
;
$opt_verbose
=
1
;
$opt_debug
=
$opt_help
=
$opt_Information
=
$opt_restart
=
$opt_force
=
$opt_quick
=
0
;
$opt_debug
=
$opt_help
=
$opt_Information
=
$opt_restart
=
$opt_force
=
$opt_quick
=
0
;
$opt_log_all_queries
=
$opt_fix_limit_file
=
$opt_batch_mode
=
$opt_version
=
0
;
$opt_log_all_queries
=
$opt_fix_limit_file
=
$opt_batch_mode
=
$opt_version
=
0
;
$opt_db_start_cmd
=
""
;
# the db server start command
$opt_db_start_cmd
=
""
;
# the db server start command
...
@@ -855,10 +855,6 @@ try_and_report("Automatic row id", "automatic_rowid",
...
@@ -855,10 +855,6 @@ try_and_report("Automatic row id", "automatic_rowid",
[
"NOW"
,
"now"
,
"now()"
,0,2],
# Any value is acceptable
[
"NOW"
,
"now"
,
"now()"
,0,2],
# Any value is acceptable
[
"CURDATE"
,
"curdate"
,
"curdate()"
,0,2],
[
"CURDATE"
,
"curdate"
,
"curdate()"
,0,2],
[
"CURTIME"
,
"curtime"
,
"curtime()"
,0,2],
[
"CURTIME"
,
"curtime"
,
"curtime()"
,0,2],
[
"HOUR"
,
"hour"
,
"hour('12:13:14')"
,12,0],
[
"ANSI HOUR"
,
"hour_time"
,
"hour(TIME '12:13:14')"
,12,0],
[
"MINUTE"
,
"minute"
,
"minute('12:13:14')"
,13,0],
[
"SECOND"
,
"second"
,
"second('12:13:14')"
,14,0],
[
"TIMESTAMPADD"
,
"timestampadd"
,
[
"TIMESTAMPADD"
,
"timestampadd"
,
"timestampadd(SQL_TSI_SECOND,1,'1997-01-01 00:00:00')"
,
"timestampadd(SQL_TSI_SECOND,1,'1997-01-01 00:00:00')"
,
"1997-01-01 00:00:01"
,1],
"1997-01-01 00:00:01"
,1],
...
@@ -943,7 +939,6 @@ try_and_report("Automatic row id", "automatic_rowid",
...
@@ -943,7 +939,6 @@ try_and_report("Automatic row id", "automatic_rowid",
[
"ROOT"
,
"root"
,
"root(4)"
,2,0],
# informix
[
"ROOT"
,
"root"
,
"root(4)"
,2,0],
# informix
[
"ROUND(1 arg)"
,
"round1"
,
"round(5.63)"
,
"6"
,0],
[
"ROUND(1 arg)"
,
"round1"
,
"round(5.63)"
,
"6"
,0],
[
"RPAD"
,
"rpad"
,
"rpad('hi',4,'??')"
,
'hi??'
,3],
[
"RPAD"
,
"rpad"
,
"rpad('hi',4,'??')"
,
'hi??'
,3],
[
"SEC_TO_TIME"
,
"sec_to_time"
,
"sec_to_time(5001)"
,
"01:23:21"
,1],
[
"SINH"
,
"sinh"
,
"sinh(1)"
,
"1.17520119"
,0],
# oracle hyperbolic sine of n
[
"SINH"
,
"sinh"
,
"sinh(1)"
,
"1.17520119"
,0],
# oracle hyperbolic sine of n
[
"STR"
,
"str"
,
"str(123.45,5,1)"
,123.5,3],
[
"STR"
,
"str"
,
"str(123.45,5,1)"
,123.5,3],
[
"STRCMP"
,
"strcmp"
,
"strcmp('abc','adc')"
,-1,0],
[
"STRCMP"
,
"strcmp"
,
"strcmp('abc','adc')"
,-1,0],
...
@@ -957,7 +952,6 @@ try_and_report("Automatic row id", "automatic_rowid",
...
@@ -957,7 +952,6 @@ try_and_report("Automatic row id", "automatic_rowid",
[
"TAIL"
,
"tail"
,
"tail('ABCDEFG',3)"
,
"EFG"
,0],
[
"TAIL"
,
"tail"
,
"tail('ABCDEFG',3)"
,
"EFG"
,0],
[
"TANH"
,
"tanh"
,
"tanh(1)"
,
"0.462117157"
,0],
[
"TANH"
,
"tanh"
,
"tanh(1)"
,
"0.462117157"
,0],
# oracle hyperbolic tangent of n
# oracle hyperbolic tangent of n
[
"TIME_TO_SEC"
,
"time_to_sec"
,
"time_to_sec('01:23:21')"
,
"5001"
,0],
[
"TRANSLATE"
,
"translate"
,
"translate('abc','bc','de')"
,
'ade'
,3],
[
"TRANSLATE"
,
"translate"
,
"translate('abc','bc','de')"
,
'ade'
,3],
[
"TRIM; Many char extension"
,
[
"TRIM; Many char extension"
,
"trim_many_char"
,
"trim(':!' FROM ':abc!')"
,
"abc"
,3],
"trim_many_char"
,
"trim(':!' FROM ':abc!')"
,
"abc"
,3],
...
@@ -992,21 +986,10 @@ try_and_report("Automatic row id", "automatic_rowid",
...
@@ -992,21 +986,10 @@ try_and_report("Automatic row id", "automatic_rowid",
[
"FLOAT"
,
'float'
,
"float(6666.66,4)"
,6667,0],
[
"FLOAT"
,
'float'
,
"float(6666.66,4)"
,6667,0],
[
"LENGTH"
,
'length'
,
"length(1)"
,2,0],
[
"LENGTH"
,
'length'
,
"length(1)"
,2,0],
[
"INDEX"
,
'index'
,
"index('abcdefg','cd',1,1)"
,3,0],
[
"INDEX"
,
'index'
,
"index('abcdefg','cd',1,1)"
,3,0],
[
"ADDTIME"
,
'addtime'
,
"ADDTIME('00200212','00000300')"
,
'00200215'
,0],
[
"SUBTIME"
,
'subtime'
,
"SUBTIME('00200215','00000300')"
,
'00200212'
,0],
[
"TIMEDIFF"
,
'timediff'
,
"TIMEDIFF('00200215','00200212')"
,
'00000003'
,0],
[
"MAKETIME"
,
'maketime'
,
"MAKETIME(20,02,12)"
,
'00200212'
,0],
[
"HOUR with sapdb internal time as arg"
,
'hour_sapdb'
,
"HOUR('00200212')"
,20,0],
[
"MINUTE with sapdb internal time as arg"
,
'minute_sapdb'
,
"MINUTE('00200212')"
,2,0],
[
"SECOND with sapdb internal time as arg"
,
'second_sapdb'
,
"SECOND('00200212')"
,12,0],
[
"MICROSECOND"
,
'microsecond'
,
[
"MICROSECOND"
,
'microsecond'
,
"MICROSECOND('19630816200212111111')"
,
'111111'
,0],
"MICROSECOND('19630816200212111111')"
,
'111111'
,0],
[
"TIMESTAMP"
,
'timestamp'
,
[
"TIMESTAMP"
,
'timestamp'
,
"timestamp('19630816','00200212')"
,
'19630816200212000000'
,0],
"timestamp('19630816','00200212')"
,
'19630816200212000000'
,0],
[
"TIME"
,
'time'
,
"time('00200212')"
,
'00200212'
,0],
[
"VALUE"
,
'value'
,
"value(NULL,'WALRUS')"
,
'WALRUS'
,0],
[
"VALUE"
,
'value'
,
"value(NULL,'WALRUS')"
,
'WALRUS'
,0],
[
"DECODE"
,
'decode'
,
"DECODE('S-103','T72',1,'S-103',2,'Leopard',3)"
,2,0],
[
"DECODE"
,
'decode'
,
"DECODE('S-103','T72',1,'S-103',2,'Leopard',3)"
,2,0],
[
"NUM"
,
'num'
,
"NUM('2123')"
,2123,0],
[
"NUM"
,
'num'
,
"NUM('2123')"
,2123,0],
...
@@ -1500,6 +1483,137 @@ if ($limits{'type_sql_date'} eq 'yes')
...
@@ -1500,6 +1483,137 @@ if ($limits{'type_sql_date'} eq 'yes')
}
}
if
(
$limits
{
'type_sql_time'
}
eq
'yes'
)
{
#
# Checking the format of date in result.
safe_query
(
"drop table crash_me_t
$drop_attr
"
)
;
assert
(
"create table crash_me_t (a time)"
)
;
# find the example of time
my
$timeexample
;
if
(
$limits
{
'func_sql_current_time'
}
eq
'yes'
)
{
$timeexample
=
'CURRENT_TIME'
;
}
elsif
(
$limits
{
'func_odbc_curtime'
}
eq
'yes'
)
{
$timeexample
=
'curtime()'
;
}
elsif
(
$limits
{
'func_sql_localtime'
}
eq
'yes'
)
{
$timeexample
=
'localtime'
;
}
elsif
(
$limits
{
'func_odbc_now'
}
eq
'yes'
)
{
$timeexample
=
'now()'
;
}
else
{
#try to guess
$timeexample
=
"'02:55:12'"
;
}
;
my
$key
=
'time_format_inresult'
;
my
$prompt
=
"Time format in result"
;
if
(!
safe_query_l
(
'time_format_inresult'
,
"insert into crash_me_t values(
$timeexample
) "
))
{
die
"Cannot insert time (
$timeexample
):"
.
$last_error
;
}
;
my
$sth
=
$dbh
->prepare
(
"select a from crash_me_t"
)
;
add_log
(
'time_format_inresult'
,
"< select a from crash_me_t"
)
;
$sth
->execute
;
$_
=
$sth
->fetchrow_array
;
add_log
(
'time_format_inresult'
,
">
$_
"
)
;
safe_query_l
(
$key
,
"delete from crash_me_t"
)
;
if
(
/
\d
{
2
}
:
\d
{
2
}
:
\d
{
2
}
/
){
save_config_data
(
$key
,
"iso"
,
$prompt
)
;
}
elsif
(
/
\d
{
2
}
\.\d
{
2
}
\.\d
{
2
}
/
){
save_config_data
(
$key
,
"euro"
,
$prompt
)
;
}
elsif
(
/
\d
{
2
}
:
\d
{
2
}
\s
+
(
AM|PM
)
/i
){
save_config_data
(
$key
,
"usa"
,
$prompt
)
;
}
elsif
(
/
\d
{
8
}
$/
){
save_config_data
(
$key
,
"HHHHMMSS"
,
$prompt
)
;
}
elsif
(
/
\d
{
4
}
$/
){
save_config_data
(
$key
,
"HHMMSS"
,
$prompt
)
;
}
else
{
save_config_data
(
$key
,
"unknown"
,
$prompt
)
;
}
;
$sth
->finish
;
check_and_report
(
"Supports HH:MM:SS (ISO) time format"
,
"time_format_ISO"
,
[
"insert into crash_me_t(a) values ('20:08:16')"
]
,
"select a from crash_me_t"
,
[
"delete from crash_me_t"
]
,
make_time_r
(
20,8,16
)
,1
)
;
check_and_report
(
"Supports HH.MM.SS (EUR) time format"
,
"time_format_EUR"
,
[
"insert into crash_me_t(a) values ('20.08.16')"
]
,
"select a from crash_me_t"
,
[
"delete from crash_me_t"
]
,
make_time_r
(
20,8,16
)
,1
)
;
check_and_report
(
"Supports HHHHmmSS time format"
,
"time_format_HHHHMMSS"
,
[
"insert into crash_me_t(a) values ('00200816')"
]
,
"select a from crash_me_t"
,
[
"delete from crash_me_t"
]
,
make_time_r
(
20,8,16
)
,1
)
;
check_and_report
(
"Supports HHmmSS time format"
,
"time_format_HHHHMMSS"
,
[
"insert into crash_me_t(a) values ('200816')"
]
,
"select a from crash_me_t"
,
[
"delete from crash_me_t"
]
,
make_time_r
(
20,8,16
)
,1
)
;
check_and_report
(
"Supports HH:MM:SS (AM|PM) time format"
,
"time_format_USA"
,
[
"insert into crash_me_t(a) values ('08:08:16 PM')"
]
,
"select a from crash_me_t"
,
[
"delete from crash_me_t"
]
,
make_time_r
(
20,8,16
)
,1
)
;
my
$insert_query
=
'insert into crash_me_t values('
.
make_time
(
20,8,16
)
.
')'
;
safe_query
(
$insert_query
)
;
foreach
$fn
(
(
[
"HOUR"
,
"hour"
,
"hour('"
.make_time
(
12,13,14
)
.
"')"
,12,0],
[
"ANSI HOUR"
,
"hour_time"
,
"hour(TIME '"
.make_time
(
12,13,14
)
.
"')"
,12,0],
[
"MINUTE"
,
"minute"
,
"minute('"
.make_time
(
12,13,14
)
.
"')"
,13,0],
[
"SECOND"
,
"second"
,
"second('"
.make_time
(
12,13,14
)
.
"')"
,14,0]
))
{
$prompt
=
'Function '
.
$fn
->[0]
;
$key
=
'func_odbc_'
.
$fn
->[1]
;
add_log
(
$key
,
"< "
.
$insert_query
)
;
check_and_report
(
$prompt
,
$key
,
[]
,
"select "
.
$fn
->[2].
"
$end_query
"
,[],
$fn
->[3],
$fn
->[4]
)
;
}
;
# safe_query(['delete from crash_me_t',
# 'insert into crash_me_t values('.make_time(20,8,16).')']);
foreach
$fn
((
[
"TIME_TO_SEC"
,
"time_to_sec"
,
"time_to_sec('"
.
make_time
(
1,23,21
)
.
"')"
,
"5001"
,0],
[
"SEC_TO_TIME"
,
"sec_to_time"
,
"sec_to_time(5001)"
,
make_time_r
(
01,23,21
)
,1],
[
"ADDTIME"
,
'addtime'
,
"ADDTIME('"
.make_time
(
20,2,12
)
.
"','"
.make_time
(
0,0,3
)
.
"')"
,make_time_r
(
20,2,15
)
,0],
[
"SUBTIME"
,
'subtime'
,
"SUBTIME('"
.make_time
(
20,2,15
)
.
"','"
.make_time
(
0,0,3
)
.
"')"
,make_time_r
(
20,2,12
)
,0],
[
"TIMEDIFF"
,
'timediff'
,
"TIMEDIFF('"
.make_time
(
20,2,15
)
.
"','"
.
make_time
(
20,2,12
)
.
"')"
,make_time_r
(
0,0,3
)
,0],
[
"MAKETIME"
,
'maketime'
,
"MAKETIME(20,02,12)"
,make_time_r
(
20,2,12
)
,0],
[
"TIME"
,
'time'
,
"time('"
.make_time
(
20,2,12
)
.
"')"
,make_time_r
(
20,2,12
)
,0]
))
{
$prompt
=
'Function '
.
$fn
->[0]
;
$key
=
'func_extra_'
.
$fn
->[1]
;
my
$qry
=
"select "
.
$fn
->[2].
"
$end_query
"
;
my
$result
=
$fn
->[3]
;
check_and_report
(
$prompt
,
$key
,
[]
,
$qry
,[],
$result
,
$fn
->[4]
)
;
}
safe_query
(
"drop table crash_me_t
$drop_attr
"
)
;
}
# NOT id BETWEEN a and b
# NOT id BETWEEN a and b
if
(
$limits
{
'func_where_not_between'
}
eq
'yes'
)
if
(
$limits
{
'func_where_not_between'
}
eq
'yes'
)
...
...
sql-bench/server-cfg.sh
View file @
1115b3d9
...
@@ -170,6 +170,7 @@ sub new
...
@@ -170,6 +170,7 @@ sub new
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
# Some fixes that depends on the environment
# Some fixes that depends on the environment
if
(
defined
(
$main
::opt_create_options
)
&&
if
(
defined
(
$main
::opt_create_options
)
&&
...
@@ -216,6 +217,13 @@ sub version
...
@@ -216,6 +217,13 @@ sub version
$version
=
"MySQL
$row
[0]"
;
$version
=
"MySQL
$row
[0]"
;
}
}
$sth
->finish
;
$sth
->finish
;
$sth
=
$dbh
->prepare
(
"show status like 'ssl_version'"
)
or die
$DBI
::errstr
;
if
(
$sth
->execute
&&
(
@row
=
$sth
->fetchrow_array
))
{
$version
.
=
"/
$row
[1]"
;
}
$sth
->finish
;
$dbh
->disconnect
;
$dbh
->disconnect
;
$version
.
=
"/ODBC"
if
(
$self
->
{
'data_source'
}
=
~ /:ODBC:/
)
;
$version
.
=
"/ODBC"
if
(
$self
->
{
'data_source'
}
=
~ /:ODBC:/
)
;
return
$version
;
return
$version
;
...
@@ -413,6 +421,7 @@ sub new
...
@@ -413,6 +421,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -614,6 +623,7 @@ sub new
...
@@ -614,6 +623,7 @@ sub new
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -891,6 +901,7 @@ sub new
...
@@ -891,6 +901,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -1121,6 +1132,7 @@ sub new
...
@@ -1121,6 +1132,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -1392,6 +1404,7 @@ sub new
...
@@ -1392,6 +1404,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
...
@@ -1636,6 +1649,7 @@ sub new
...
@@ -1636,6 +1649,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -1850,6 +1864,7 @@ sub new
...
@@ -1850,6 +1864,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -2034,6 +2049,7 @@ sub new
...
@@ -2034,6 +2049,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -2229,6 +2245,7 @@ sub new
...
@@ -2229,6 +2245,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -2460,6 +2477,7 @@ sub new
...
@@ -2460,6 +2477,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
...
@@ -2663,6 +2681,7 @@ sub new
...
@@ -2663,6 +2681,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -2817,7 +2836,7 @@ sub new
...
@@ -2817,7 +2836,7 @@ sub new
$limits
{
'subqueries'
}
=
1
;
# Supports sub-queries.
$limits
{
'subqueries'
}
=
1
;
# Supports sub-queries.
$limits
{
'left_outer_join'
}
=
1
;
# Supports left outer joins
$limits
{
'left_outer_join'
}
=
1
;
# Supports left outer joins
$limits
{
'table_wildcard'
}
=
1
;
# Has SELECT table_name.*
$limits
{
'table_wildcard'
}
=
1
;
# Has SELECT table_name.*
$limits
{
'having_with_alias'
}
=
1
;
# Can use aliases in HAVING
$limits
{
'having_with_alias'
}
=
0
;
# Can use aliases in HAVING
$limits
{
'having_with_group'
}
=
1
;
# Can use group functions in HAVING
$limits
{
'having_with_group'
}
=
1
;
# Can use group functions in HAVING
$limits
{
'like_with_column'
}
=
1
;
# Can use column1 LIKE column2
$limits
{
'like_with_column'
}
=
1
;
# Can use column1 LIKE column2
$limits
{
'order_by_position'
}
=
1
;
# Can use 'ORDER BY 1'
$limits
{
'order_by_position'
}
=
1
;
# Can use 'ORDER BY 1'
...
@@ -2826,6 +2845,7 @@ sub new
...
@@ -2826,6 +2845,7 @@ sub new
$limits
{
'alter_add_multi_col'
}=
0
;
# Have ALTER TABLE t add a int,add b int;
$limits
{
'alter_add_multi_col'
}=
0
;
# Have ALTER TABLE t add a int,add b int;
$limits
{
'alter_table_dropcol'
}=
1
;
# Have ALTER TABLE DROP column
$limits
{
'alter_table_dropcol'
}=
1
;
# Have ALTER TABLE DROP column
$limits
{
'insert_multi_value'
}
=
0
;
# Does not have INSERT ... values (1,2),(3,4)
$limits
{
'insert_multi_value'
}
=
0
;
# Does not have INSERT ... values (1,2),(3,4)
$limits
{
'multi_distinct'
}
=
0
;
# Does not allow select count(distinct a),count(distinct b)..
$limits
{
'group_func_extra_std'
}
=
0
;
# Does not have group function std().
$limits
{
'group_func_extra_std'
}
=
0
;
# Does not have group function std().
...
@@ -2840,8 +2860,9 @@ sub new
...
@@ -2840,8 +2860,9 @@ sub new
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'unique_index'
}
=
1
;
# Unique index works or not
$limits
{
'insert_select'
}
=
1
;
$limits
{
'insert_select'
}
=
1
;
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
0
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -2899,6 +2920,7 @@ sub create
...
@@ -2899,6 +2920,7 @@ sub create
{
{
# $field =~ s/ decimal/ double(10,2)/i;
# $field =~ s/ decimal/ double(10,2)/i;
# $field =~ s/ big_decimal/ double(10,2)/i;
# $field =~ s/ big_decimal/ double(10,2)/i;
$field
=
~ s/ double/ double precision/i
;
$field
=
~ s/ tinyint
\(
.
*
\)
/ smallint/i
;
$field
=
~ s/ tinyint
\(
.
*
\)
/ smallint/i
;
$field
=
~ s/ smallint
\(
.
*
\)
/ smallint/i
;
$field
=
~ s/ smallint
\(
.
*
\)
/ smallint/i
;
$field
=
~ s/ mediumint/ integer/i
;
$field
=
~ s/ mediumint/ integer/i
;
...
@@ -3040,6 +3062,7 @@ sub new
...
@@ -3040,6 +3062,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'order_by_unused'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'working_all_fields'
}
=
1
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -3242,6 +3265,7 @@ sub new
...
@@ -3242,6 +3265,7 @@ sub new
$limits
{
'group_func_sql_min_str'
}
=
0
;
$limits
{
'group_func_sql_min_str'
}
=
0
;
# If you do select f1,f2,f3...f200 from table, Frontbase dies.
# If you do select f1,f2,f3...f200 from table, Frontbase dies.
$limits
{
'working_all_fields'
}
=
0
;
$limits
{
'working_all_fields'
}
=
0
;
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
}
}
...
@@ -3446,6 +3470,7 @@ sub new
...
@@ -3446,6 +3470,7 @@ sub new
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works *
$limits
{
'working_blobs'
}
=
1
;
# If big varchar/blobs works *
$limits
{
'order_by_unused'
}
=
1
;
#
$limits
{
'order_by_unused'
}
=
1
;
#
$limits
{
'working_all_fields'
}
=
1
;
#
$limits
{
'working_all_fields'
}
=
1
;
#
$limits
{
'multi_distinct'
}
=
1
;
# allows select count(distinct a),count(distinct b)..
return
$self
;
return
$self
;
...
...
sql-bench/test-insert.sh
View file @
1115b3d9
...
@@ -112,7 +112,7 @@ do_many($dbh,$server->create("bench1",
...
@@ -112,7 +112,7 @@ do_many($dbh,$server->create("bench1",
"id3 int NOT NULL"
,
"id3 int NOT NULL"
,
"dummy1 char(30)"
]
,
"dummy1 char(30)"
]
,
[
"primary key (id,id2)"
,
[
"primary key (id,id2)"
,
"index i
nde
x_id3 (id3)"
]))
;
"index ix_id3 (id3)"
]))
;
if
(
$opt_lock_tables
)
if
(
$opt_lock_tables
)
{
{
...
@@ -1289,9 +1289,9 @@ if (($opt_fast || $opt_fast_insert) && $server->{'limits'}->{'insert_multi_value
...
@@ -1289,9 +1289,9 @@ if (($opt_fast || $opt_fast_insert) && $server->{'limits'}->{'insert_multi_value
{
{
$id
=
$i
& 127
;
$id
=
$i
& 127
;
$rand
=
$random
[
$i
]
;
$rand
=
$random
[
$i
]
;
$tmp
=
"(
$id
,
$id
,
$rand
,"
.
(
$i
& 32766
)
.
",'ABCDEF
$rand
',0,"
;
$tmp
=
"(
$id
,
$id
,
$rand
,"
.
(
$i
& 32766
)
.
",'ABCDEF
$rand
',0,
$rand
,
$rand
.0,
"
;
for
(
$j
=
6
;
$j
<
=
$fields
;
$j
++
)
for
(
$j
=
8
;
$j
<
=
$fields
;
$j
++
)
{
{
$tmp
.
=
(
$types
[
$j
]
==
0
)
?
"
$rand
,"
:
"'
$rand
',"
;
$tmp
.
=
(
$types
[
$j
]
==
0
)
?
"
$rand
,"
:
"'
$rand
',"
;
}
}
...
@@ -1315,9 +1315,9 @@ else
...
@@ -1315,9 +1315,9 @@ else
$id
=
$i
& 127
;
$id
=
$i
& 127
;
$rand
=
$random
[
$i
]
;
$rand
=
$random
[
$i
]
;
$query
=
"insert into bench1 values (
$id
,
$id
,
$rand
,"
.
(
$i
& 32767
)
.
$query
=
"insert into bench1 values (
$id
,
$id
,
$rand
,"
.
(
$i
& 32767
)
.
",'ABCDEF
$rand
',0,"
;
",'ABCDEF
$rand
',0,
$rand
,
$rand
.0,
"
;
for
(
$j
=
6
;
$j
<
=
$fields
;
$j
++
)
for
(
$j
=
8
;
$j
<
=
$fields
;
$j
++
)
{
{
$query
.
=
(
$types
[
$j
]
==
0
)
?
"
$rand
,"
:
"'
$rand
',"
;
$query
.
=
(
$types
[
$j
]
==
0
)
?
"
$rand
,"
:
"'
$rand
',"
;
}
}
...
...
sql-bench/test-select.sh
View file @
1115b3d9
...
@@ -355,19 +355,22 @@ if ($limits->{'group_distinct_functions'})
...
@@ -355,19 +355,22 @@ if ($limits->{'group_distinct_functions'})
print
" for count_distinct (
$count
:
$rows
): "
.
print
" for count_distinct (
$count
:
$rows
): "
.
timestr
(
timediff
(
$end_time
,
$loop_time
)
,
"all"
)
.
"
\n
"
;
timestr
(
timediff
(
$end_time
,
$loop_time
)
,
"all"
)
.
"
\n
"
;
$loop_time
=
new Benchmark
;
# Workaround mimer's behavior
$rows
=
$estimated
=
$count
=
0
;
if
(
limits->
{
'multi_distinct'
}
==
1
)
{
for
(
$i
=
0
;
$i
<
$opt_medium_loop_count
;
$i
++
)
$loop_time
=
new Benchmark
;
{
$rows
=
$estimated
=
$count
=
0
;
$count
++
;
for
(
$i
=
0
;
$i
<
$opt_medium_loop_count
;
$i
++
)
$rows
+
=
fetch_all_rows
(
$dbh
,
"select count(distinct grp),count(distinct rev_idn) from bench1"
)
;
{
$end_time
=
new Benchmark
;
$count
++
;
last
if
(
$estimated
=
predict_query_time
(
$loop_time
,
$end_time
,
\$
count,
$i
+1,
$rows
+
=
fetch_all_rows
(
$dbh
,
"select count(distinct grp),count(distinct rev_idn) from bench1"
)
;
$end_time
=
new Benchmark
;
last
if
(
$estimated
=
predict_query_time
(
$loop_time
,
$end_time
,
\$
count,
$i
+1,
$opt_medium_loop_count
))
;
$opt_medium_loop_count
))
;
}
}
print_time
(
$estimated
)
;
print_time
(
$estimated
)
;
print
" for count_distinct_2 (
$count
:
$rows
): "
.
print
" for count_distinct_2 (
$count
:
$rows
): "
.
timestr
(
timediff
(
$end_time
,
$loop_time
)
,
"all"
)
.
"
\n
"
;
timestr
(
timediff
(
$end_time
,
$loop_time
)
,
"all"
)
.
"
\n
"
;
}
$loop_time
=
new Benchmark
;
$loop_time
=
new Benchmark
;
$rows
=
$estimated
=
$count
=
0
;
$rows
=
$estimated
=
$count
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment