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
acc769f5
Commit
acc769f5
authored
Sep 12, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0
into eel.(none):/home/jonas/src/mysql-5.0-push
parents
a34a9d73
838d8ed1
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
84 additions
and
15 deletions
+84
-15
extra/Makefile.am
extra/Makefile.am
+1
-1
extra/innochecksum.c
extra/innochecksum.c
+8
-4
mysql-test/r/analyse.result
mysql-test/r/analyse.result
+6
-0
mysql-test/r/select.result
mysql-test/r/select.result
+10
-0
mysql-test/t/analyse.test
mysql-test/t/analyse.test
+12
-2
mysql-test/t/select.test
mysql-test/t/select.test
+12
-0
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+24
-2
sql/sql_analyse.cc
sql/sql_analyse.cc
+10
-5
sql/sql_base.cc
sql/sql_base.cc
+1
-1
No files found.
extra/Makefile.am
View file @
acc769f5
...
@@ -38,7 +38,7 @@ $(top_builddir)/include/mysqld_ername.h: $(top_builddir)/include/mysqld_error.h
...
@@ -38,7 +38,7 @@ $(top_builddir)/include/mysqld_ername.h: $(top_builddir)/include/mysqld_error.h
$(top_builddir)/include/sql_state.h
:
$(top_builddir)/include/mysqld_error.h
$(top_builddir)/include/sql_state.h
:
$(top_builddir)/include/mysqld_error.h
bin_PROGRAMS
=
replace comp_err perror resolveip my_print_defaults
\
bin_PROGRAMS
=
replace comp_err perror resolveip my_print_defaults
\
resolve_stack_dump mysql_waitpid
#
innochecksum
resolve_stack_dump mysql_waitpid innochecksum
noinst_PROGRAMS
=
charset2html
noinst_PROGRAMS
=
charset2html
# Don't update the files from bitkeeper
# Don't update the files from bitkeeper
...
...
extra/innochecksum.c
View file @
acc769f5
...
@@ -140,10 +140,11 @@ int main(int argc, char **argv) {
...
@@ -140,10 +140,11 @@ int main(int argc, char **argv) {
int
now
;
// current time
int
now
;
// current time
int
lastt
;
// last time
int
lastt
;
// last time
ulint
oldcsum
,
oldcsumfield
,
csum
,
csumfield
,
logseq
,
logseqfield
;
// ulints for checksum storage
ulint
oldcsum
,
oldcsumfield
,
csum
,
csumfield
,
logseq
,
logseqfield
;
// ulints for checksum storage
struct
stat
64
st
;
// for stat, if you couldn't guess
struct
stat
st
;
// for stat, if you couldn't guess
unsigned
long
long
int
size
;
// size of file (has to be 64 bits)
unsigned
long
long
int
size
;
// size of file (has to be 64 bits)
ulint
pages
;
// number of pages in file
ulint
pages
;
// number of pages in file
ulint
start_page
=
0
,
end_page
=
0
,
use_end_page
=
0
;
// for starting and ending at certain pages
ulint
start_page
=
0
,
end_page
=
0
,
use_end_page
=
0
;
// for starting and ending at certain pages
off_t
offset
=
0
;
int
just_count
=
0
;
// if true, just print page count
int
just_count
=
0
;
// if true, just print page count
int
verbose
=
0
;
int
verbose
=
0
;
int
debug
=
0
;
int
debug
=
0
;
...
@@ -202,7 +203,7 @@ int main(int argc, char **argv) {
...
@@ -202,7 +203,7 @@ int main(int argc, char **argv) {
}
}
// stat the file to get size and page count
// stat the file to get size and page count
if
(
stat
64
(
argv
[
optind
],
&
st
))
{
if
(
stat
(
argv
[
optind
],
&
st
))
{
perror
(
"error statting file"
);
perror
(
"error statting file"
);
return
1
;
return
1
;
}
}
...
@@ -217,7 +218,7 @@ int main(int argc, char **argv) {
...
@@ -217,7 +218,7 @@ int main(int argc, char **argv) {
}
}
// open the file for reading
// open the file for reading
f
=
fopen
64
(
argv
[
optind
],
"r"
);
f
=
fopen
(
argv
[
optind
],
"r"
);
if
(
!
f
)
{
if
(
!
f
)
{
perror
(
"error opening file"
);
perror
(
"error opening file"
);
return
1
;
return
1
;
...
@@ -230,7 +231,10 @@ int main(int argc, char **argv) {
...
@@ -230,7 +231,10 @@ int main(int argc, char **argv) {
perror
(
"unable to obtain file descriptor number"
);
perror
(
"unable to obtain file descriptor number"
);
return
1
;
return
1
;
}
}
if
(
lseek64
(
fd
,
start_page
*
UNIV_PAGE_SIZE
,
SEEK_SET
)
!=
(
start_page
*
UNIV_PAGE_SIZE
))
{
offset
=
(
off_t
)
start_page
*
(
off_t
)
UNIV_PAGE_SIZE
;
if
(
lseek
(
fd
,
offset
,
SEEK_SET
)
!=
offset
)
{
perror
(
"unable to seek to necessary offset"
);
perror
(
"unable to seek to necessary offset"
);
return
1
;
return
1
;
}
}
...
...
mysql-test/r/analyse.result
View file @
acc769f5
...
@@ -109,3 +109,9 @@ select * from t1 procedure analyse();
...
@@ -109,3 +109,9 @@ select * from t1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.df 1.1 2.2 8 8 0 0 1.650000000 0.302500000 ENUM('1.1','2.2') NOT NULL
test.t1.df 1.1 2.2 8 8 0 0 1.650000000 0.302500000 ENUM('1.1','2.2') NOT NULL
drop table t1;
drop table t1;
create table t1 (d double);
insert into t1 values (100000);
select * from t1 procedure analyse (1,1);
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.d 100000 100000 6 6 0 0 100000 0 MEDIUMINT(6) UNSIGNED NOT NULL
drop table t1;
mysql-test/r/select.result
View file @
acc769f5
...
@@ -2912,3 +2912,13 @@ ERROR 23000: Column 'id' in from clause is ambiguous
...
@@ -2912,3 +2912,13 @@ ERROR 23000: Column 'id' in from clause is ambiguous
SELECT id,t3.id FROM (t1 JOIN t2 ON (t2.id=t1.id)) LEFT JOIN t3 USING (id);
SELECT id,t3.id FROM (t1 JOIN t2 ON (t2.id=t1.id)) LEFT JOIN t3 USING (id);
ERROR 23000: Column 'id' in from clause is ambiguous
ERROR 23000: Column 'id' in from clause is ambiguous
drop table t1, t2, t3;
drop table t1, t2, t3;
create table t1 (a int(10),b int(10));
create table t2 (a int(10),b int(10));
insert into t1 values (1,10),(2,20),(3,30);
insert into t2 values (1,10);
select * from t1 inner join t2 using (A);
a b b
1 10 10
select * from t1 inner join t2 using (a);
a b b
1 10 10
mysql-test/t/analyse.test
View file @
acc769f5
...
@@ -48,8 +48,6 @@ insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),(
...
@@ -48,8 +48,6 @@ insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),(
select
*
from
t1
procedure
analyse
();
select
*
from
t1
procedure
analyse
();
drop
table
t1
;
drop
table
t1
;
# End of 4.1 tests
#decimal-related test
#decimal-related test
create
table
t1
(
df
decimal
(
5
,
1
));
create
table
t1
(
df
decimal
(
5
,
1
));
...
@@ -57,3 +55,15 @@ insert into t1 values(1.1);
...
@@ -57,3 +55,15 @@ insert into t1 values(1.1);
insert
into
t1
values
(
2.2
);
insert
into
t1
values
(
2.2
);
select
*
from
t1
procedure
analyse
();
select
*
from
t1
procedure
analyse
();
drop
table
t1
;
drop
table
t1
;
#
# Bug#10716 - Procedure Analyse results in wrong values for optimal field type
#
create
table
t1
(
d
double
);
insert
into
t1
values
(
100000
);
select
*
from
t1
procedure
analyse
(
1
,
1
);
drop
table
t1
;
# End of 4.1 tests
mysql-test/t/select.test
View file @
acc769f5
...
@@ -2487,3 +2487,15 @@ SELECT id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
...
@@ -2487,3 +2487,15 @@ SELECT id,t3.id FROM t1 JOIN t2 ON (t2.id=t1.id) LEFT JOIN t3 USING (id);
SELECT
id
,
t3
.
id
FROM
(
t1
JOIN
t2
ON
(
t2
.
id
=
t1
.
id
))
LEFT
JOIN
t3
USING
(
id
);
SELECT
id
,
t3
.
id
FROM
(
t1
JOIN
t2
ON
(
t2
.
id
=
t1
.
id
))
LEFT
JOIN
t3
USING
(
id
);
drop
table
t1
,
t2
,
t3
;
drop
table
t1
,
t2
,
t3
;
#
# Bug #13067 JOIN xxx USING is case sensitive
#
create
table
t1
(
a
int
(
10
),
b
int
(
10
));
create
table
t2
(
a
int
(
10
),
b
int
(
10
));
insert
into
t1
values
(
1
,
10
),(
2
,
20
),(
3
,
30
);
insert
into
t2
values
(
1
,
10
);
# both queries should produce the same result
select
*
from
t1
inner
join
t2
using
(
A
);
select
*
from
t1
inner
join
t2
using
(
a
);
sql/ha_ndbcluster.cc
View file @
acc769f5
...
@@ -6618,12 +6618,23 @@ void ndb_serialize_cond(const Item *item, void *arg)
...
@@ -6618,12 +6618,23 @@ void ndb_serialize_cond(const Item *item, void *arg)
case
Item_func
:
:
BETWEEN
:
case
Item_func
:
:
BETWEEN
:
{
{
DBUG_PRINT
(
"info"
,
(
"BETWEEN, rewriting using AND"
));
DBUG_PRINT
(
"info"
,
(
"BETWEEN, rewriting using AND"
));
Item_func_between
*
between_func
=
(
Item_func_between
*
)
func_item
;
Ndb_rewrite_context
*
rewrite_context
=
Ndb_rewrite_context
*
rewrite_context
=
new
Ndb_rewrite_context
(
func_item
);
new
Ndb_rewrite_context
(
func_item
);
rewrite_context
->
next
=
context
->
rewrite_stack
;
rewrite_context
->
next
=
context
->
rewrite_stack
;
context
->
rewrite_stack
=
rewrite_context
;
context
->
rewrite_stack
=
rewrite_context
;
if
(
between_func
->
negated
)
{
DBUG_PRINT
(
"info"
,
(
"NOT_FUNC"
));
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
NOT_FUNC
,
1
);
prev_cond
=
curr_cond
;
curr_cond
=
context
->
cond_ptr
=
new
Ndb_cond
();
curr_cond
->
prev
=
prev_cond
;
prev_cond
->
next
=
curr_cond
;
}
DBUG_PRINT
(
"info"
,
(
"COND_AND_FUNC"
));
DBUG_PRINT
(
"info"
,
(
"COND_AND_FUNC"
));
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
COND_AND_FUNC
,
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
COND_AND_FUNC
,
func_item
->
argument_count
()
-
1
);
func_item
->
argument_count
()
-
1
);
context
->
expect_only
(
Item
::
FIELD_ITEM
);
context
->
expect_only
(
Item
::
FIELD_ITEM
);
context
->
expect
(
Item
::
INT_ITEM
);
context
->
expect
(
Item
::
INT_ITEM
);
...
@@ -6635,10 +6646,20 @@ void ndb_serialize_cond(const Item *item, void *arg)
...
@@ -6635,10 +6646,20 @@ void ndb_serialize_cond(const Item *item, void *arg)
case
Item_func
:
:
IN_FUNC
:
case
Item_func
:
:
IN_FUNC
:
{
{
DBUG_PRINT
(
"info"
,
(
"IN_FUNC, rewriting using OR"
));
DBUG_PRINT
(
"info"
,
(
"IN_FUNC, rewriting using OR"
));
Item_func_in
*
in_func
=
(
Item_func_in
*
)
func_item
;
Ndb_rewrite_context
*
rewrite_context
=
Ndb_rewrite_context
*
rewrite_context
=
new
Ndb_rewrite_context
(
func_item
);
new
Ndb_rewrite_context
(
func_item
);
rewrite_context
->
next
=
context
->
rewrite_stack
;
rewrite_context
->
next
=
context
->
rewrite_stack
;
context
->
rewrite_stack
=
rewrite_context
;
context
->
rewrite_stack
=
rewrite_context
;
if
(
in_func
->
negated
)
{
DBUG_PRINT
(
"info"
,
(
"NOT_FUNC"
));
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
NOT_FUNC
,
1
);
prev_cond
=
curr_cond
;
curr_cond
=
context
->
cond_ptr
=
new
Ndb_cond
();
curr_cond
->
prev
=
prev_cond
;
prev_cond
->
next
=
curr_cond
;
}
DBUG_PRINT
(
"info"
,
(
"COND_OR_FUNC"
));
DBUG_PRINT
(
"info"
,
(
"COND_OR_FUNC"
));
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
COND_OR_FUNC
,
curr_cond
->
ndb_item
=
new
Ndb_item
(
Item_func
::
COND_OR_FUNC
,
func_item
->
argument_count
()
-
1
);
func_item
->
argument_count
()
-
1
);
...
@@ -6960,6 +6981,7 @@ void ndb_serialize_cond(const Item *item, void *arg)
...
@@ -6960,6 +6981,7 @@ void ndb_serialize_cond(const Item *item, void *arg)
DBUG_PRINT
(
"info"
,
(
"End of condition group"
));
DBUG_PRINT
(
"info"
,
(
"End of condition group"
));
prev_cond
=
curr_cond
;
prev_cond
=
curr_cond
;
curr_cond
=
context
->
cond_ptr
=
new
Ndb_cond
();
curr_cond
=
context
->
cond_ptr
=
new
Ndb_cond
();
curr_cond
->
prev
=
prev_cond
;
prev_cond
->
next
=
curr_cond
;
prev_cond
->
next
=
curr_cond
;
curr_cond
->
ndb_item
=
new
Ndb_item
(
NDB_END_COND
);
curr_cond
->
ndb_item
=
new
Ndb_item
(
NDB_END_COND
);
// Pop rewrite stack
// Pop rewrite stack
...
...
sql/sql_analyse.cc
View file @
acc769f5
...
@@ -880,18 +880,23 @@ void field_real::get_opt_type(String *answer,
...
@@ -880,18 +880,23 @@ void field_real::get_opt_type(String *answer,
if
(
!
max_notzero_dec_len
)
if
(
!
max_notzero_dec_len
)
{
{
if
(
min_arg
>=
-
128
&&
max_arg
<=
(
min_arg
>=
0
?
255
:
127
))
if
(
min_arg
>=
-
128
&&
max_arg
<=
(
min_arg
>=
0
?
255
:
127
))
sprintf
(
buff
,
"TINYINT(%d)"
,
(
int
)
max_length
-
(
item
->
decimals
+
1
));
sprintf
(
buff
,
"TINYINT(%d)"
,
(
int
)
max_length
-
((
item
->
decimals
==
NOT_FIXED_DEC
)
?
0
:
(
item
->
decimals
+
1
)));
else
if
(
min_arg
>=
INT_MIN16
&&
max_arg
<=
(
min_arg
>=
0
?
else
if
(
min_arg
>=
INT_MIN16
&&
max_arg
<=
(
min_arg
>=
0
?
UINT_MAX16
:
INT_MAX16
))
UINT_MAX16
:
INT_MAX16
))
sprintf
(
buff
,
"SMALLINT(%d)"
,
(
int
)
max_length
-
(
item
->
decimals
+
1
));
sprintf
(
buff
,
"SMALLINT(%d)"
,
(
int
)
max_length
-
((
item
->
decimals
==
NOT_FIXED_DEC
)
?
0
:
(
item
->
decimals
+
1
)));
else
if
(
min_arg
>=
INT_MIN24
&&
max_arg
<=
(
min_arg
>=
0
?
else
if
(
min_arg
>=
INT_MIN24
&&
max_arg
<=
(
min_arg
>=
0
?
UINT_MAX24
:
INT_MAX24
))
UINT_MAX24
:
INT_MAX24
))
sprintf
(
buff
,
"MEDIUMINT(%d)"
,
(
int
)
max_length
-
(
item
->
decimals
+
1
));
sprintf
(
buff
,
"MEDIUMINT(%d)"
,
(
int
)
max_length
-
((
item
->
decimals
==
NOT_FIXED_DEC
)
?
0
:
(
item
->
decimals
+
1
)));
else
if
(
min_arg
>=
INT_MIN32
&&
max_arg
<=
(
min_arg
>=
0
?
else
if
(
min_arg
>=
INT_MIN32
&&
max_arg
<=
(
min_arg
>=
0
?
UINT_MAX32
:
INT_MAX32
))
UINT_MAX32
:
INT_MAX32
))
sprintf
(
buff
,
"INT(%d)"
,
(
int
)
max_length
-
(
item
->
decimals
+
1
));
sprintf
(
buff
,
"INT(%d)"
,
(
int
)
max_length
-
((
item
->
decimals
==
NOT_FIXED_DEC
)
?
0
:
(
item
->
decimals
+
1
)));
else
else
sprintf
(
buff
,
"BIGINT(%d)"
,
(
int
)
max_length
-
(
item
->
decimals
+
1
));
sprintf
(
buff
,
"BIGINT(%d)"
,
(
int
)
max_length
-
((
item
->
decimals
==
NOT_FIXED_DEC
)
?
0
:
(
item
->
decimals
+
1
)));
answer
->
append
(
buff
,
(
uint
)
strlen
(
buff
));
answer
->
append
(
buff
,
(
uint
)
strlen
(
buff
));
if
(
min_arg
>=
0
)
if
(
min_arg
>=
0
)
answer
->
append
(
" UNSIGNED"
);
answer
->
append
(
" UNSIGNED"
);
...
...
sql/sql_base.cc
View file @
acc769f5
...
@@ -3414,7 +3414,7 @@ test_if_string_in_list(const char *find, List<String> *str_list)
...
@@ -3414,7 +3414,7 @@ test_if_string_in_list(const char *find, List<String> *str_list)
{
{
if
(
find_length
!=
curr_str
->
length
())
if
(
find_length
!=
curr_str
->
length
())
continue
;
continue
;
if
(
!
strncmp
(
find
,
curr_str
->
ptr
(),
find_length
))
if
(
!
my_strcasecmp
(
system_charset_info
,
find
,
curr_str
->
ptr
()
))
return
TRUE
;
return
TRUE
;
}
}
return
FALSE
;
return
FALSE
;
...
...
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