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
4e2a9c69
Commit
4e2a9c69
authored
Nov 29, 2004
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
parents
57cd047c
ceb0d1cf
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
36 additions
and
28 deletions
+36
-28
mysql-test/r/strict.result
mysql-test/r/strict.result
+1
-1
mysql-test/r/view.result
mysql-test/r/view.result
+4
-4
mysql-test/t/information_schema.test
mysql-test/t/information_schema.test
+1
-0
mysql-test/t/ps_1general.test
mysql-test/t/ps_1general.test
+2
-0
mysql-test/t/view.test
mysql-test/t/view.test
+4
-2
sql/field.cc
sql/field.cc
+14
-14
sql/item_cmpfunc.h
sql/item_cmpfunc.h
+1
-1
sql/sql_select.cc
sql/sql_select.cc
+9
-6
No files found.
mysql-test/r/strict.result
View file @
4e2a9c69
...
@@ -616,7 +616,7 @@ col1 col2
...
@@ -616,7 +616,7 @@ col1 col2
-9223372036854775808 0
-9223372036854775808 0
9223372036854775807 18446744073709551615
9223372036854775807 18446744073709551615
-9223372036854773760 0
-9223372036854773760 0
-9223372036854775808
1844674407370953984
9223372036854775807
1844674407370953984
-9223372036854775808 NULL
-9223372036854775808 NULL
-9223372036854775808 NULL
-9223372036854775808 NULL
NULL 18446744073709551615
NULL 18446744073709551615
...
...
mysql-test/r/view.result
View file @
4e2a9c69
...
@@ -8,7 +8,7 @@ create temporary table t1 (a int, b int);
...
@@ -8,7 +8,7 @@ create temporary table t1 (a int, b int);
create view v1 (c) as select b+1 from t1;
create view v1 (c) as select b+1 from t1;
ERROR HY000: View's SELECT contains a temporary table 't1'
ERROR HY000: View's SELECT contains a temporary table 't1'
drop table t1;
drop table t1;
create table t1 (a int, b int)
max_rows=1000000
;
create table t1 (a int, b int);
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
create view v1 (c,d) as select a,b+@@global.max_user_connections from t1;
ERROR HY000: View's SELECT contains a variable or parameter
ERROR HY000: View's SELECT contains a variable or parameter
...
@@ -149,7 +149,7 @@ v5 VIEW
...
@@ -149,7 +149,7 @@ v5 VIEW
v6 VIEW
v6 VIEW
show table status;
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 9 Fixed 5 9 45
150994943 1024 0 NULL # # NULL latin1_swedish_ci NULL max_rows=1000000
t1 MyISAM 9 Fixed 5 9 45
38654705663 1024 0 NULL # # NULL latin1_swedish_ci NULL
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
v2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
v2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
v3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
v3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
...
@@ -1213,14 +1213,14 @@ select * from v1;
...
@@ -1213,14 +1213,14 @@ select * from v1;
drop view v1;
drop view v1;
drop table t1;
drop table t1;
create function x1 () returns int return 5;
create function x1 () returns int return 5;
create table t1 (s1 int)
max_rows=1000000
;
create table t1 (s1 int);
create view v1 as select x1() from t1;
create view v1 as select x1() from t1;
drop function x1;
drop function x1;
select * from v1;
select * from v1;
ERROR 42000: FUNCTION test.x1 does not exist
ERROR 42000: FUNCTION test.x1 does not exist
show table status;
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 9 Fixed 0 0 0
83886079 1024 0 NULL # # NULL latin1_swedish_ci NULL max_rows=1000000
t1 MyISAM 9 Fixed 0 0 0
21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL FUNCTION test.x1 does not exist
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL FUNCTION test.x1 does not exist
drop view v1;
drop view v1;
drop table t1;
drop table t1;
...
...
mysql-test/t/information_schema.test
View file @
4e2a9c69
...
@@ -41,6 +41,7 @@ show tables like 't%';
...
@@ -41,6 +41,7 @@ show tables like 't%';
--
replace_column
15
# 16 #
--
replace_column
15
# 16 #
show
tables
*
from
test
where
table_name
like
't%'
;
show
tables
*
from
test
where
table_name
like
't%'
;
--
replace_column
12
# 13 #
--
replace_column
12
# 13 #
--
replace_result
"2147483647 "
"21474836479 "
show
table
status
;
show
table
status
;
show
full
columns
from
t3
like
"a%"
;
show
full
columns
from
t3
like
"a%"
;
show
full
columns
from
mysql
.
db
like
"Insert%"
;
show
full
columns
from
mysql
.
db
like
"Insert%"
;
...
...
mysql-test/t/ps_1general.test
View file @
4e2a9c69
...
@@ -294,12 +294,14 @@ execute stmt4;
...
@@ -294,12 +294,14 @@ execute stmt4;
prepare
stmt4
from
' show table status from test like ''t2%'' '
;
prepare
stmt4
from
' show table status from test like ''t2%'' '
;
# egalize date and time values
# egalize date and time values
--
replace_column
12
# 13 # 14 #
--
replace_column
12
# 13 # 14 #
--
replace_result
2147483647
64424509439
# Bug#4288 : prepared statement 'show table status ..', wrong output on execute
# Bug#4288 : prepared statement 'show table status ..', wrong output on execute
execute
stmt4
;
execute
stmt4
;
# try the same with the big table
# try the same with the big table
prepare
stmt4
from
' show table status from test like ''t9%'' '
;
prepare
stmt4
from
' show table status from test like ''t9%'' '
;
# egalize date and time values
# egalize date and time values
--
replace_column
12
# 13 # 14 #
--
replace_column
12
# 13 # 14 #
--
replace_result
2147483647
4294967295
# Bug#4288
# Bug#4288
execute
stmt4
;
execute
stmt4
;
prepare
stmt4
from
' show status like ''Threads_running'' '
;
prepare
stmt4
from
' show status like ''Threads_running'' '
;
...
...
mysql-test/t/view.test
View file @
4e2a9c69
...
@@ -19,7 +19,7 @@ create temporary table t1 (a int, b int);
...
@@ -19,7 +19,7 @@ create temporary table t1 (a int, b int);
create
view
v1
(
c
)
as
select
b
+
1
from
t1
;
create
view
v1
(
c
)
as
select
b
+
1
from
t1
;
drop
table
t1
;
drop
table
t1
;
create
table
t1
(
a
int
,
b
int
)
max_rows
=
1000000
;
create
table
t1
(
a
int
,
b
int
);
insert
into
t1
values
(
1
,
2
),
(
1
,
3
),
(
2
,
4
),
(
2
,
5
),
(
3
,
10
);
insert
into
t1
values
(
1
,
2
),
(
1
,
3
),
(
2
,
4
),
(
2
,
5
),
(
3
,
10
);
# view with variable
# view with variable
...
@@ -84,6 +84,7 @@ explain extended select c from v6;
...
@@ -84,6 +84,7 @@ explain extended select c from v6;
show
tables
;
show
tables
;
show
full
tables
;
show
full
tables
;
--
replace_column
12
# 13 #
--
replace_column
12
# 13 #
--
replace_result
2147483647
38654705663
show
table
status
;
show
table
status
;
drop
view
v1
,
v2
,
v3
,
v4
,
v5
,
v6
;
drop
view
v1
,
v2
,
v3
,
v4
,
v5
,
v6
;
...
@@ -1165,12 +1166,13 @@ drop table t1;
...
@@ -1165,12 +1166,13 @@ drop table t1;
# VIEW over dropped function
# VIEW over dropped function
#
#
create function x1 () returns int return 5;
create function x1 () returns int return 5;
create table t1 (s1 int)
max_rows=1000000
;
create table t1 (s1 int);
create view v1 as select x1() from t1;
create view v1 as select x1() from t1;
drop function x1;
drop function x1;
-- error 1305
-- error 1305
select * from v1;
select * from v1;
--replace_column 12 # 13 #
--replace_column 12 # 13 #
--replace_result "2147483647 " "21474836479 "
show table status;
show table status;
drop view v1;
drop view v1;
drop table t1;
drop table t1;
...
...
sql/field.cc
View file @
4e2a9c69
...
@@ -1182,7 +1182,7 @@ int Field_tiny::store(double nr)
...
@@ -1182,7 +1182,7 @@ int Field_tiny::store(double nr)
error
=
1
;
error
=
1
;
}
}
else
else
*
ptr
=
(
char
)
nr
;
*
ptr
=
(
char
)
(
int
)
nr
;
}
}
return
error
;
return
error
;
}
}
...
@@ -1313,9 +1313,9 @@ int Field_short::store(const char *from,uint len,CHARSET_INFO *cs)
...
@@ -1313,9 +1313,9 @@ int Field_short::store(const char *from,uint len,CHARSET_INFO *cs)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
else
if
(
tmp
>
(
uint16
)
~
0
)
else
if
(
tmp
>
UINT_MAX16
)
{
{
tmp
=
(
uint16
)
~
0
;
tmp
=
UINT_MAX16
;
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
...
@@ -1364,9 +1364,9 @@ int Field_short::store(double nr)
...
@@ -1364,9 +1364,9 @@ int Field_short::store(double nr)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
else
if
(
nr
>
(
double
)
(
uint16
)
~
0
)
else
if
(
nr
>
(
double
)
UINT_MAX16
)
{
{
res
=
(
int16
)
(
uint16
)
~
0
;
res
=
(
int16
)
UINT_MAX16
;
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
...
@@ -1388,7 +1388,7 @@ int Field_short::store(double nr)
...
@@ -1388,7 +1388,7 @@ int Field_short::store(double nr)
error
=
1
;
error
=
1
;
}
}
else
else
res
=
(
int16
)
nr
;
res
=
(
int16
)
(
int
)
nr
;
}
}
#ifdef WORDS_BIGENDIAN
#ifdef WORDS_BIGENDIAN
if
(
table
->
db_low_byte_first
)
if
(
table
->
db_low_byte_first
)
...
@@ -1413,9 +1413,9 @@ int Field_short::store(longlong nr)
...
@@ -1413,9 +1413,9 @@ int Field_short::store(longlong nr)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
else
if
(
nr
>
(
longlong
)
(
uint16
)
~
0
)
else
if
(
nr
>
(
longlong
)
UINT_MAX16
)
{
{
res
=
(
int16
)
(
uint16
)
~
0
;
res
=
(
int16
)
UINT_MAX16
;
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
error
=
1
;
error
=
1
;
}
}
...
@@ -1884,7 +1884,7 @@ int Field_long::store(double nr)
...
@@ -1884,7 +1884,7 @@ int Field_long::store(double nr)
error
=
1
;
error
=
1
;
}
}
else
else
res
=
(
int32
)
nr
;
res
=
(
int32
)
(
longlong
)
nr
;
}
}
if
(
error
)
if
(
error
)
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
...
@@ -2123,7 +2123,7 @@ int Field_longlong::store(double nr)
...
@@ -2123,7 +2123,7 @@ int Field_longlong::store(double nr)
res
=
0
;
res
=
0
;
error
=
1
;
error
=
1
;
}
}
else
if
(
nr
>=
(
double
)
~
(
ulonglong
)
0
)
else
if
(
nr
>=
(
double
)
ULONGLONG_MAX
)
{
{
res
=
~
(
longlong
)
0
;
res
=
~
(
longlong
)
0
;
error
=
1
;
error
=
1
;
...
@@ -2133,15 +2133,15 @@ int Field_longlong::store(double nr)
...
@@ -2133,15 +2133,15 @@ int Field_longlong::store(double nr)
}
}
else
else
{
{
if
(
nr
<
(
double
)
LONGLONG_MIN
)
if
(
nr
<
=
(
double
)
LONGLONG_MIN
)
{
{
res
=
LONGLONG_MIN
;
res
=
LONGLONG_MIN
;
error
=
1
;
error
=
(
nr
<
(
double
)
LONGLONG_MIN
)
;
}
}
else
if
(
nr
>
(
double
)
LONGLONG_MAX
)
else
if
(
nr
>
=
(
double
)
LONGLONG_MAX
)
{
{
res
=
LONGLONG_MAX
;
res
=
LONGLONG_MAX
;
error
=
1
;
error
=
(
nr
>
(
double
)
LONGLONG_MAX
)
;
}
}
else
else
res
=
(
longlong
)
nr
;
res
=
(
longlong
)
nr
;
...
...
sql/item_cmpfunc.h
View file @
4e2a9c69
...
@@ -1086,7 +1086,7 @@ public:
...
@@ -1086,7 +1086,7 @@ public:
};
};
class
Item_equal_iterator
:
List_iterator_fast
<
Item_field
>
class
Item_equal_iterator
:
public
List_iterator_fast
<
Item_field
>
{
{
public:
public:
inline
Item_equal_iterator
(
Item_equal
&
item_equal
)
inline
Item_equal_iterator
(
Item_equal
&
item_equal
)
...
...
sql/sql_select.cc
View file @
4e2a9c69
...
@@ -3464,7 +3464,7 @@ best_access_path(JOIN *join,
...
@@ -3464,7 +3464,7 @@ best_access_path(JOIN *join,
{
{
/*
/*
Assume that the first key part matches 1% of the file
Assume that the first key part matches 1% of the file
and that the hole key matches 10 (duplicates) or 1
and that the
w
hole key matches 10 (duplicates) or 1
(unique) records.
(unique) records.
Assume also that more key matches proportionally more
Assume also that more key matches proportionally more
records
records
...
@@ -3472,7 +3472,7 @@ best_access_path(JOIN *join,
...
@@ -3472,7 +3472,7 @@ best_access_path(JOIN *join,
records = (x * (b-a) + a*c-b)/(c-1)
records = (x * (b-a) + a*c-b)/(c-1)
b = records matched by whole key
b = records matched by whole key
a = records matched by first key part (1
0
% of all records?)
a = records matched by first key part (1% of all records?)
c = number of key parts in key
c = number of key parts in key
x = used key parts (1 <= x <= c)
x = used key parts (1 <= x <= c)
*/
*/
...
@@ -3488,9 +3488,12 @@ best_access_path(JOIN *join,
...
@@ -3488,9 +3488,12 @@ best_access_path(JOIN *join,
else
else
{
{
double
a
=
s
->
records
*
0.01
;
double
a
=
s
->
records
*
0.01
;
tmp
=
(
max_key_part
*
(
rec_per_key
-
a
)
+
if
(
keyinfo
->
key_parts
>
1
)
tmp
=
(
max_key_part
*
(
rec_per_key
-
a
)
+
a
*
keyinfo
->
key_parts
-
rec_per_key
)
/
a
*
keyinfo
->
key_parts
-
rec_per_key
)
/
(
keyinfo
->
key_parts
-
1
);
(
keyinfo
->
key_parts
-
1
);
else
tmp
=
a
;
set_if_bigger
(
tmp
,
1.0
);
set_if_bigger
(
tmp
,
1.0
);
}
}
records
=
(
ulong
)
tmp
;
records
=
(
ulong
)
tmp
;
...
@@ -4421,7 +4424,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
...
@@ -4421,7 +4424,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
{
{
/*
/*
Assume that the first key part matches 1% of the file
Assume that the first key part matches 1% of the file
and that the hole key matches 10 (duplicates) or 1
and that the
w
hole key matches 10 (duplicates) or 1
(unique) records.
(unique) records.
Assume also that more key matches proportionally more
Assume also that more key matches proportionally more
records
records
...
...
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