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
f06b0d9f
Commit
f06b0d9f
authored
Feb 07, 2003
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/my/mysql-4.0 into mashka.mysql.fi:/home/my/mysql-4.0
parents
2760ecc8
7f841713
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
242 additions
and
53 deletions
+242
-53
Makefile.am
Makefile.am
+0
-1
configure.in
configure.in
+2
-2
include/my_global.h
include/my_global.h
+8
-0
mysql-test/r/distinct.result
mysql-test/r/distinct.result
+1
-1
mysql-test/r/func_group.result
mysql-test/r/func_group.result
+2
-2
mysql-test/r/innodb.result
mysql-test/r/innodb.result
+1
-1
mysql-test/r/join.result
mysql-test/r/join.result
+30
-0
mysql-test/r/order_by.result
mysql-test/r/order_by.result
+13
-2
mysql-test/r/show_check.result
mysql-test/r/show_check.result
+56
-0
mysql-test/t/func_group.test
mysql-test/t/func_group.test
+1
-1
mysql-test/t/innodb.test
mysql-test/t/innodb.test
+1
-1
mysql-test/t/join.test
mysql-test/t/join.test
+24
-1
mysql-test/t/order_by.test
mysql-test/t/order_by.test
+2
-1
mysql-test/t/show_check.test
mysql-test/t/show_check.test
+35
-0
sql/filesort.cc
sql/filesort.cc
+4
-1
sql/lex.h
sql/lex.h
+1
-0
sql/mysql_priv.h
sql/mysql_priv.h
+0
-8
sql/opt_range.cc
sql/opt_range.cc
+3
-2
sql/opt_range.h
sql/opt_range.h
+2
-0
sql/slave.cc
sql/slave.cc
+4
-4
sql/sql_parse.cc
sql/sql_parse.cc
+0
-2
sql/sql_select.cc
sql/sql_select.cc
+5
-0
sql/sql_yacc.yy
sql/sql_yacc.yy
+27
-12
sql/table.cc
sql/table.cc
+20
-11
No files found.
Makefile.am
View file @
f06b0d9f
...
@@ -83,4 +83,3 @@ tags:
...
@@ -83,4 +83,3 @@ tags:
test
:
test
:
cd
mysql-test
;
./mysql-test-run
cd
mysql-test
;
./mysql-test-run
configure.in
View file @
f06b0d9f
...
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
...
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT
(
sql/mysqld.cc
)
AC_INIT
(
sql/mysqld.cc
)
AC_CANONICAL_SYSTEM
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
# The Docs Makefile.am parses this line!
AM_INIT_AUTOMAKE
(
mysql, 4.0.11
)
AM_INIT_AUTOMAKE
(
mysql, 4.0.11
-gamma
)
AM_CONFIG_HEADER
(
config.h
)
AM_CONFIG_HEADER
(
config.h
)
PROTOCOL_VERSION
=
10
PROTOCOL_VERSION
=
10
...
@@ -702,7 +702,7 @@ AC_ARG_WITH(mysqld-user,
...
@@ -702,7 +702,7 @@ AC_ARG_WITH(mysqld-user,
AC_SUBST
(
MYSQLD_USER
)
AC_SUBST
(
MYSQLD_USER
)
# If we should allow LOAD DATA LOCAL
# If we should allow LOAD DATA LOCAL
AC_MSG_CHECKING
(
i
f
we should should
enable
LOAD DATA LOCAL by default
)
AC_MSG_CHECKING
(
I
f we should should
enable
LOAD DATA LOCAL by default
)
AC_ARG_ENABLE
(
local-infile,
AC_ARG_ENABLE
(
local-infile,
[
--enable-local-infile
Enable LOAD DATA LOCAL INFILE
(
default: disabled
)]
,
[
--enable-local-infile
Enable LOAD DATA LOCAL INFILE
(
default: disabled
)]
,
[
ENABLED_LOCAL_INFILE
=
$enableval
]
,
[
ENABLED_LOCAL_INFILE
=
$enableval
]
,
...
...
include/my_global.h
View file @
f06b0d9f
...
@@ -764,6 +764,14 @@ typedef char bool; /* Ordinary boolean values 0 1 */
...
@@ -764,6 +764,14 @@ typedef char bool; /* Ordinary boolean values 0 1 */
#define INT32(v) (int32) (v)
#define INT32(v) (int32) (v)
#define MYF(v) (myf) (v)
#define MYF(v) (myf) (v)
#ifndef LL
#ifdef HAVE_LONG_LONG
#define LL(A) A ## LL
#else
#define LL(A) A ## L
#endif
#endif
/*
/*
Defines to make it possible to prioritize register assignments. No
Defines to make it possible to prioritize register assignments. No
longer that important with modern compilers.
longer that important with modern compilers.
...
...
mysql-test/r/distinct.result
View file @
f06b0d9f
...
@@ -77,7 +77,6 @@ NULL NULL
...
@@ -77,7 +77,6 @@ NULL NULL
10 VMT
10 VMT
select id+0 as a,max(id),concat(facility) as b from t1 group by a order by b desc,a;
select id+0 as a,max(id),concat(facility) as b from t1 group by a order by b desc,a;
a max(id) b
a max(id) b
NULL NULL NULL
10 10 VMT
10 10 VMT
9 9 SRV
9 9 SRV
8 8 RV
8 8 RV
...
@@ -90,6 +89,7 @@ NULL NULL NULL
...
@@ -90,6 +89,7 @@ NULL NULL NULL
1 1 /L
1 1 /L
-1 -1
-1 -1
0 0
0 0
NULL NULL NULL
select id >= 0 and id <= 5 as grp,count(*) from t1 group by grp;
select id >= 0 and id <= 5 as grp,count(*) from t1 group by grp;
grp count(*)
grp count(*)
NULL 1
NULL 1
...
...
mysql-test/r/func_group.result
View file @
f06b0d9f
...
@@ -42,8 +42,8 @@ insert into t1 values (null,null,'');
...
@@ -42,8 +42,8 @@ insert into t1 values (null,null,'');
select count(distinct a),count(distinct grp) from t1;
select count(distinct a),count(distinct grp) from t1;
count(distinct a) count(distinct grp)
count(distinct a) count(distinct grp)
6 3
6 3
select sum(a
),count(a),avg(a),std(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(
c) from t1;
select sum(a
ll a),count(all a),avg(all a),std(all a),bit_or(all a),bit_and(all a),min(all a),max(all a),min(all c),max(all
c) from t1;
sum(a
) count(a) avg(a) std(a) bit_or(a) bit_and(a) min(a) max(a) min(c) max(
c)
sum(a
ll a) count(all a) avg(all a) std(all a) bit_or(all a) bit_and(all a) min(all a) max(all a) min(all c) max(all
c)
21 6 3.5000 1.7078 7 0 1 6 E
21 6 3.5000 1.7078 7 0 1 6 E
select grp, sum(a),count(a),avg(a),std(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(c) from t1 group by grp;
select grp, sum(a),count(a),avg(a),std(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(c) from t1 group by grp;
grp sum(a) count(a) avg(a) std(a) bit_or(a) bit_and(a) min(a) max(a) min(c) max(c)
grp sum(a) count(a) avg(a) std(a) bit_or(a) bit_and(a) min(a) max(a) min(c) max(c)
...
...
mysql-test/r/innodb.result
View file @
f06b0d9f
...
@@ -290,7 +290,7 @@ select * from t1;
...
@@ -290,7 +290,7 @@ select * from t1;
id val
id val
drop table t1;
drop table t1;
create table t1 (a integer) type=innodb;
create table t1 (a integer) type=innodb;
begi
n;
start transactio
n;
rename table t1 to t2;
rename table t1 to t2;
create table t1 (b integer) type=innodb;
create table t1 (b integer) type=innodb;
insert into t1 values (1);
insert into t1 values (1);
...
...
mysql-test/r/join.result
View file @
f06b0d9f
drop table if exists t1,t2,t3;
drop table if exists t1,t2,t3;
CREATE TABLE t1 (S1 INT);
CREATE TABLE t2 (S1 INT);
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (2);
SELECT * FROM t1 JOIN t2;
S1 S1
1 2
SELECT * FROM t1 INNER JOIN t2;
S1 S1
1 2
SELECT * from t1 JOIN t2 USING (S1);
S1 S1
SELECT * FROM t1 INNER JOIN t2 USING (S1);
S1 S1
SELECT * from t1 CROSS JOIN t2;
S1 S1
1 2
SELECT * from t1 LEFT JOIN t2 USING(S1);
S1 S1
1 NULL
SELECT * from t1 LEFT JOIN t2 ON(t2.S1=2);
S1 S1
1 2
SELECT * from t1 RIGHT JOIN t2 USING(S1);
S1 S1
NULL 2
SELECT * from t1 RIGHT JOIN t2 ON(t1.S1=1);
S1 S1
1 2
drop table t1,t2;
create table t1 (id int primary key);
create table t1 (id int primary key);
create table t2 (id int);
create table t2 (id int);
insert into t1 values (75);
insert into t1 values (75);
...
...
mysql-test/r/order_by.result
View file @
f06b0d9f
...
@@ -304,7 +304,7 @@ a b c
...
@@ -304,7 +304,7 @@ a b c
1 NULL b
1 NULL b
explain select * from t1 where a >= 1 and a < 3 and b >0 order by a desc,b desc;
explain select * from t1 where a >= 1 and a < 3 and b >0 order by a desc,b desc;
table type possible_keys key key_len ref rows Extra
table type possible_keys key key_len ref rows Extra
t1 range a a 9 NULL 8 Using where; Using index
; Using filesort
t1 range a a 9 NULL 8 Using where; Using index
explain select * from t1 where a = 2 and b >0 order by a desc,b desc;
explain select * from t1 where a = 2 and b >0 order by a desc,b desc;
table type possible_keys key key_len ref rows Extra
table type possible_keys key key_len ref rows Extra
t1 range a a 9 NULL 5 Using where; Using index
t1 range a a 9 NULL 5 Using where; Using index
...
@@ -320,7 +320,18 @@ table type possible_keys key key_len ref rows Extra
...
@@ -320,7 +320,18 @@ table type possible_keys key key_len ref rows Extra
t1 range a a 9 NULL 5 Using where; Using index
t1 range a a 9 NULL 5 Using where; Using index
explain select * from t1 where a = 2 and b < 2 order by a desc,b desc;
explain select * from t1 where a = 2 and b < 2 order by a desc,b desc;
table type possible_keys key key_len ref rows Extra
table type possible_keys key key_len ref rows Extra
t1 range a a 9 NULL 2 Using where; Using index; Using filesort
t1 range a a 9 NULL 2 Using where; Using index
explain select * from t1 where a = 1 order by b desc;
table type possible_keys key key_len ref rows Extra
t1 ref a a 4 const 5 Using where; Using index
select * from t1 where a = 1 order by b desc;
a b c
1 3 b
1 1 b
1 1 b
1 1 NULL
1 NULL b
1 NULL NULL
alter table t1 modify b int not null, modify c varchar(10) not null;
alter table t1 modify b int not null, modify c varchar(10) not null;
explain select * from t1 order by a, b, c;
explain select * from t1 order by a, b, c;
table type possible_keys key key_len ref rows Extra
table type possible_keys key key_len ref rows Extra
...
...
mysql-test/r/show_check.result
View file @
f06b0d9f
...
@@ -156,6 +156,62 @@ f double(5,0) YES NULL
...
@@ -156,6 +156,62 @@ f double(5,0) YES NULL
h float(3,2) YES NULL
h float(3,2) YES NULL
i float(3,0) YES NULL
i float(3,0) YES NULL
drop table t1;
drop table t1;
create table t1 (
type_bool bool not null,
type_tiny tinyint not null auto_increment primary key,
type_short smallint(3),
type_mediumint mediumint,
type_bigint bigint,
type_decimal decimal(5,2),
type_numeric numeric(5,2),
empty_char char(0),
type_char char(2),
type_varchar varchar(10),
type_timestamp timestamp not null,
type_date date not null,
type_time time not null,
type_datetime datetime not null,
type_year year,
type_enum enum ('red', 'green', 'blue'),
type_set enum ('red', 'green', 'blue'),
type_tinyblob tinyblob,
type_blob blob,
type_medium_blob mediumblob,
type_long_blob longblob,
index(type_short)
) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" TYPE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed CHARSET=latin1;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`type_bool` tinyint(1) NOT NULL default '0',
`type_tiny` tinyint(4) NOT NULL auto_increment,
`type_short` smallint(3) default NULL,
`type_mediumint` mediumint(9) default NULL,
`type_bigint` bigint(20) default NULL,
`type_decimal` decimal(5,2) default NULL,
`type_numeric` decimal(5,2) default NULL,
`empty_char` char(0) default NULL,
`type_char` char(2) default NULL,
`type_varchar` varchar(10) default NULL,
`type_timestamp` timestamp(14) NOT NULL,
`type_date` date NOT NULL default '0000-00-00',
`type_time` time NOT NULL default '00:00:00',
`type_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`type_year` year(4) default NULL,
`type_enum` enum('red','green','blue') default NULL,
`type_set` enum('red','green','blue') default NULL,
`type_tinyblob` tinyblob,
`type_blob` blob,
`type_medium_blob` mediumblob,
`type_long_blob` longblob,
PRIMARY KEY (`type_tiny`),
KEY `type_short` (`type_short`)
) TYPE=MyISAM MIN_ROWS=10 MAX_ROWS=100 AVG_ROW_LENGTH=10 PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED COMMENT='test'
insert into t1 (type_timestamp) values ("2003-02-07 10:00:01");
select * from t1;
type_bool type_tiny type_short type_mediumint type_bigint type_decimal type_numeric empty_char type_char type_varchar type_timestamp type_date type_time type_datetime type_year type_enum type_set type_tinyblob type_blob type_medium_blob type_long_blob
0 1 NULL NULL NULL NULL NULL NULL NULL NULL 20030207100001 0000-00-00 00:00:00 0000-00-00 00:00:00 NULL NULL NULL NULL NULL NULL NULL
drop table t1;
create table t1 (c decimal, d double, f float, r real);
create table t1 (c decimal, d double, f float, r real);
show columns from t1;
show columns from t1;
Field Type Null Key Default Extra
Field Type Null Key Default Extra
...
...
mysql-test/t/func_group.test
View file @
f06b0d9f
...
@@ -21,7 +21,7 @@ select count(distinct a),count(distinct grp) from t1;
...
@@ -21,7 +21,7 @@ select count(distinct a),count(distinct grp) from t1;
insert
into
t1
values
(
null
,
null
,
''
);
insert
into
t1
values
(
null
,
null
,
''
);
select
count
(
distinct
a
),
count
(
distinct
grp
)
from
t1
;
select
count
(
distinct
a
),
count
(
distinct
grp
)
from
t1
;
select
sum
(
a
),
count
(
a
),
avg
(
a
),
std
(
a
),
bit_or
(
a
),
bit_and
(
a
),
min
(
a
),
max
(
a
),
min
(
c
),
max
(
c
)
from
t1
;
select
sum
(
a
ll
a
),
count
(
all
a
),
avg
(
all
a
),
std
(
all
a
),
bit_or
(
all
a
),
bit_and
(
all
a
),
min
(
all
a
),
max
(
all
a
),
min
(
all
c
),
max
(
all
c
)
from
t1
;
select
grp
,
sum
(
a
),
count
(
a
),
avg
(
a
),
std
(
a
),
bit_or
(
a
),
bit_and
(
a
),
min
(
a
),
max
(
a
),
min
(
c
),
max
(
c
)
from
t1
group
by
grp
;
select
grp
,
sum
(
a
),
count
(
a
),
avg
(
a
),
std
(
a
),
bit_or
(
a
),
bit_and
(
a
),
min
(
a
),
max
(
a
),
min
(
c
),
max
(
c
)
from
t1
group
by
grp
;
select
grp
,
sum
(
a
)
+
count
(
a
)
+
avg
(
a
)
+
std
(
a
)
+
bit_or
(
a
)
+
bit_and
(
a
)
+
min
(
a
)
+
max
(
a
)
+
min
(
c
)
+
max
(
c
)
as
sum
from
t1
group
by
grp
;
select
grp
,
sum
(
a
)
+
count
(
a
)
+
avg
(
a
)
+
std
(
a
)
+
bit_or
(
a
)
+
bit_and
(
a
)
+
min
(
a
)
+
max
(
a
)
+
min
(
c
)
+
max
(
c
)
as
sum
from
t1
group
by
grp
;
...
...
mysql-test/t/innodb.test
View file @
f06b0d9f
...
@@ -167,7 +167,7 @@ drop table t1;
...
@@ -167,7 +167,7 @@ drop table t1;
#
#
create
table
t1
(
a
integer
)
type
=
innodb
;
create
table
t1
(
a
integer
)
type
=
innodb
;
begi
n
;
start
transactio
n
;
rename
table
t1
to
t2
;
rename
table
t1
to
t2
;
create
table
t1
(
b
integer
)
type
=
innodb
;
create
table
t1
(
b
integer
)
type
=
innodb
;
insert
into
t1
values
(
1
);
insert
into
t1
values
(
1
);
...
...
mysql-test/t/join.test
View file @
f06b0d9f
#
# Initialization
drop
table
if
exists
t1
,
t2
,
t3
;
#
# Test different join syntaxes
#
CREATE
TABLE
t1
(
S1
INT
);
CREATE
TABLE
t2
(
S1
INT
);
INSERT
INTO
t1
VALUES
(
1
);
INSERT
INTO
t2
VALUES
(
2
);
SELECT
*
FROM
t1
JOIN
t2
;
SELECT
*
FROM
t1
INNER
JOIN
t2
;
SELECT
*
from
t1
JOIN
t2
USING
(
S1
);
SELECT
*
FROM
t1
INNER
JOIN
t2
USING
(
S1
);
SELECT
*
from
t1
CROSS
JOIN
t2
;
SELECT
*
from
t1
LEFT
JOIN
t2
USING
(
S1
);
SELECT
*
from
t1
LEFT
JOIN
t2
ON
(
t2
.
S1
=
2
);
SELECT
*
from
t1
RIGHT
JOIN
t2
USING
(
S1
);
SELECT
*
from
t1
RIGHT
JOIN
t2
ON
(
t1
.
S1
=
1
);
drop
table
t1
,
t2
;
#
#
# This failed for lia Perminov
# This failed for lia Perminov
#
#
drop
table
if
exists
t1
,
t2
,
t3
;
create
table
t1
(
id
int
primary
key
);
create
table
t1
(
id
int
primary
key
);
create
table
t2
(
id
int
);
create
table
t2
(
id
int
);
...
...
mysql-test/t/order_by.test
View file @
f06b0d9f
...
@@ -227,7 +227,8 @@ explain select * from t1 where a = 2 and (b is null or b > 0) order by a
...
@@ -227,7 +227,8 @@ explain select * from t1 where a = 2 and (b is null or b > 0) order by a
desc
,
b
desc
;
desc
,
b
desc
;
explain
select
*
from
t1
where
a
=
2
and
b
>
0
order
by
a
desc
,
b
desc
;
explain
select
*
from
t1
where
a
=
2
and
b
>
0
order
by
a
desc
,
b
desc
;
explain
select
*
from
t1
where
a
=
2
and
b
<
2
order
by
a
desc
,
b
desc
;
explain
select
*
from
t1
where
a
=
2
and
b
<
2
order
by
a
desc
,
b
desc
;
explain
select
*
from
t1
where
a
=
1
order
by
b
desc
;
select
*
from
t1
where
a
=
1
order
by
b
desc
;
#
#
# Test things when we don't have NULL keys
# Test things when we don't have NULL keys
#
#
...
...
mysql-test/t/show_check.test
View file @
f06b0d9f
...
@@ -80,6 +80,41 @@ create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0),
...
@@ -80,6 +80,41 @@ create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0),
show
columns
from
t1
;
show
columns
from
t1
;
drop
table
t1
;
drop
table
t1
;
#
# Do a create table that tries to cover all types and options
#
create
table
t1
(
type_bool
bool
not
null
,
type_tiny
tinyint
not
null
auto_increment
primary
key
,
type_short
smallint
(
3
),
type_mediumint
mediumint
,
type_bigint
bigint
,
type_decimal
decimal
(
5
,
2
),
type_numeric
numeric
(
5
,
2
),
empty_char
char
(
0
),
type_char
char
(
2
),
type_varchar
varchar
(
10
),
type_timestamp
timestamp
not
null
,
type_date
date
not
null
,
type_time
time
not
null
,
type_datetime
datetime
not
null
,
type_year
year
,
type_enum
enum
(
'red'
,
'green'
,
'blue'
),
type_set
enum
(
'red'
,
'green'
,
'blue'
),
type_tinyblob
tinyblob
,
type_blob
blob
,
type_medium_blob
mediumblob
,
type_long_blob
longblob
,
index
(
type_short
)
)
AVG_ROW_LENGTH
=
10
CHECKSUM
=
1
COMMENT
=
"test"
TYPE
=
MYISAM
MIN_ROWS
=
10
MAX_ROWS
=
100
PACK_KEYS
=
1
DELAY_KEY_WRITE
=
1
ROW_FORMAT
=
fixed
CHARSET
=
latin1
;
# Not tested above: RAID_# UNION INSERT_METHOD DATA DIRECTORY INDEX DIRECTORY
show
create
table
t1
;
insert
into
t1
(
type_timestamp
)
values
(
"2003-02-07 10:00:01"
);
select
*
from
t1
;
drop
table
t1
;
# Check auto conversions of types
# Check auto conversions of types
create
table
t1
(
c
decimal
,
d
double
,
f
float
,
r
real
);
create
table
t1
(
c
decimal
,
d
double
,
f
float
,
r
real
);
...
...
sql/filesort.cc
View file @
f06b0d9f
...
@@ -461,7 +461,10 @@ static void make_sortkey(register SORTPARAM *param,
...
@@ -461,7 +461,10 @@ static void make_sortkey(register SORTPARAM *param,
{
{
if
(
field
->
is_null
())
if
(
field
->
is_null
())
{
{
bzero
((
char
*
)
to
,
sort_field
->
length
+
1
);
if
(
sort_field
->
reverse
)
bfill
(
to
,
sort_field
->
length
+
1
,(
char
)
255
);
else
bzero
((
char
*
)
to
,
sort_field
->
length
+
1
);
to
+=
sort_field
->
length
+
1
;
to
+=
sort_field
->
length
+
1
;
continue
;
continue
;
}
}
...
...
sql/lex.h
View file @
f06b0d9f
...
@@ -260,6 +260,7 @@ static SYMBOL symbols[] = {
...
@@ -260,6 +260,7 @@ static SYMBOL symbols[] = {
{
"NULL"
,
SYM
(
NULL_SYM
),
0
,
0
},
{
"NULL"
,
SYM
(
NULL_SYM
),
0
,
0
},
{
"NUMERIC"
,
SYM
(
NUMERIC_SYM
),
0
,
0
},
{
"NUMERIC"
,
SYM
(
NUMERIC_SYM
),
0
,
0
},
{
"OFFSET"
,
SYM
(
OFFSET_SYM
),
0
,
0
},
{
"OFFSET"
,
SYM
(
OFFSET_SYM
),
0
,
0
},
{
"OLD_PASSWORD"
,
SYM
(
PASSWORD
),
0
,
0
},
{
"ON"
,
SYM
(
ON
),
0
,
0
},
{
"ON"
,
SYM
(
ON
),
0
,
0
},
{
"OPEN"
,
SYM
(
OPEN_SYM
),
0
,
0
},
{
"OPEN"
,
SYM
(
OPEN_SYM
),
0
,
0
},
{
"OPTIMIZE"
,
SYM
(
OPTIMIZE
),
0
,
0
},
{
"OPTIMIZE"
,
SYM
(
OPTIMIZE
),
0
,
0
},
...
...
sql/mysql_priv.h
View file @
f06b0d9f
...
@@ -53,14 +53,6 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
...
@@ -53,14 +53,6 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
#define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1))
#define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1))
#define all_bits_set(A,B) ((A) & (B) != (B))
#define all_bits_set(A,B) ((A) & (B) != (B))
#ifndef LL
#ifdef HAVE_LONG_LONG
#define LL(A) A ## LL
#else
#define LL(A) A ## L
#endif
#endif
/***************************************************************************
/***************************************************************************
Configuration parameters
Configuration parameters
****************************************************************************/
****************************************************************************/
...
...
sql/opt_range.cc
View file @
f06b0d9f
...
@@ -2555,8 +2555,7 @@ QUICK_SELECT_DESC::QUICK_SELECT_DESC(QUICK_SELECT *q, uint used_key_parts)
...
@@ -2555,8 +2555,7 @@ QUICK_SELECT_DESC::QUICK_SELECT_DESC(QUICK_SELECT *q, uint used_key_parts)
for
(
r
=
it
++
;
r
;
r
=
it
++
)
for
(
r
=
it
++
;
r
;
r
=
it
++
)
{
{
rev_ranges
.
push_front
(
r
);
rev_ranges
.
push_front
(
r
);
if
(
not_read_after_key
&&
range_reads_after_key
(
r
)
||
if
(
not_read_after_key
&&
range_reads_after_key
(
r
))
test_if_null_range
(
r
,
used_key_parts
))
{
{
it
.
rewind
();
// Reset range
it
.
rewind
();
// Reset range
error
=
HA_ERR_UNSUPPORTED
;
error
=
HA_ERR_UNSUPPORTED
;
...
@@ -2717,6 +2716,7 @@ bool QUICK_SELECT_DESC::range_reads_after_key(QUICK_RANGE *range_arg)
...
@@ -2717,6 +2716,7 @@ bool QUICK_SELECT_DESC::range_reads_after_key(QUICK_RANGE *range_arg)
/* True if we are reading over a key that may have a NULL value */
/* True if we are reading over a key that may have a NULL value */
#ifdef NOT_USED
bool
QUICK_SELECT_DESC
::
test_if_null_range
(
QUICK_RANGE
*
range_arg
,
bool
QUICK_SELECT_DESC
::
test_if_null_range
(
QUICK_RANGE
*
range_arg
,
uint
used_key_parts
)
uint
used_key_parts
)
{
{
...
@@ -2762,6 +2762,7 @@ bool QUICK_SELECT_DESC::test_if_null_range(QUICK_RANGE *range_arg,
...
@@ -2762,6 +2762,7 @@ bool QUICK_SELECT_DESC::test_if_null_range(QUICK_RANGE *range_arg,
return
1
;
// Covers null part
return
1
;
// Covers null part
return
0
;
return
0
;
}
}
#endif
/*****************************************************************************
/*****************************************************************************
...
...
sql/opt_range.h
View file @
f06b0d9f
...
@@ -100,7 +100,9 @@ public:
...
@@ -100,7 +100,9 @@ public:
private:
private:
int
cmp_prev
(
QUICK_RANGE
*
range
);
int
cmp_prev
(
QUICK_RANGE
*
range
);
bool
range_reads_after_key
(
QUICK_RANGE
*
range
);
bool
range_reads_after_key
(
QUICK_RANGE
*
range
);
#ifdef NOT_USED
bool
test_if_null_range
(
QUICK_RANGE
*
range
,
uint
used_key_parts
);
bool
test_if_null_range
(
QUICK_RANGE
*
range
,
uint
used_key_parts
);
#endif
void
reset
(
void
)
{
next
=
0
;
rev_it
.
rewind
();
}
void
reset
(
void
)
{
next
=
0
;
rev_it
.
rewind
();
}
List
<
QUICK_RANGE
>
rev_ranges
;
List
<
QUICK_RANGE
>
rev_ranges
;
List_iterator
<
QUICK_RANGE
>
rev_it
;
List_iterator
<
QUICK_RANGE
>
rev_it
;
...
...
sql/slave.cc
View file @
f06b0d9f
...
@@ -1671,7 +1671,8 @@ int st_relay_log_info::wait_for_pos(THD* thd, String* log_name,
...
@@ -1671,7 +1671,8 @@ int st_relay_log_info::wait_for_pos(THD* thd, String* log_name,
*/
*/
ulong
log_name_extension
;
ulong
log_name_extension
;
char
log_name_tmp
[
FN_REFLEN
];
//make a char[] from String
char
log_name_tmp
[
FN_REFLEN
];
//make a char[] from String
char
*
end
=
strmake
(
log_name_tmp
,
log_name
->
ptr
(),
min
(
log_name
->
length
(),
FN_REFLEN
-
1
));
char
*
end
=
strmake
(
log_name_tmp
,
log_name
->
ptr
(),
min
(
log_name
->
length
(),
FN_REFLEN
-
1
));
char
*
p
=
fn_ext
(
log_name_tmp
);
char
*
p
=
fn_ext
(
log_name_tmp
);
char
*
p_end
;
char
*
p_end
;
if
(
!*
p
||
log_pos
<
0
)
if
(
!*
p
||
log_pos
<
0
)
...
@@ -1756,15 +1757,14 @@ int st_relay_log_info::wait_for_pos(THD* thd, String* log_name,
...
@@ -1756,15 +1757,14 @@ int st_relay_log_info::wait_for_pos(THD* thd, String* log_name,
error
=
-
1
;
error
=
-
1
;
break
;
break
;
}
}
else
error
=
0
;
error
=
0
;
event_count
++
;
event_count
++
;
}
}
err:
err:
pthread_mutex_unlock
(
&
data_lock
);
pthread_mutex_unlock
(
&
data_lock
);
DBUG_PRINT
(
"exit"
,(
"killed: %d abort: %d slave_running: %d \
DBUG_PRINT
(
"exit"
,(
"killed: %d abort: %d slave_running: %d \
improper_arguments: %d timed_out: %d"
,
improper_arguments: %d
timed_out: %d"
,
(
int
)
thd
->
killed
,
(
int
)
thd
->
killed
,
(
int
)
(
init_abort_pos_wait
!=
abort_pos_wait
),
(
int
)
(
init_abort_pos_wait
!=
abort_pos_wait
),
(
int
)
mi
->
slave_running
,
(
int
)
mi
->
slave_running
,
...
...
sql/sql_parse.cc
View file @
f06b0d9f
...
@@ -2252,8 +2252,6 @@ mysql_execute_command(void)
...
@@ -2252,8 +2252,6 @@ mysql_execute_command(void)
net_printf
(
&
thd
->
net
,
ER_WRONG_DB_NAME
,
lex
->
name
);
net_printf
(
&
thd
->
net
,
ER_WRONG_DB_NAME
,
lex
->
name
);
break
;
break
;
}
}
if
(
lower_case_table_names
)
casedn_str
(
lex
->
name
);
/*
/*
If in a slave thread :
If in a slave thread :
CREATE DATABASE DB was certainly not preceded by USE DB.
CREATE DATABASE DB was certainly not preceded by USE DB.
...
...
sql/sql_select.cc
View file @
f06b0d9f
...
@@ -4555,6 +4555,11 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
...
@@ -4555,6 +4555,11 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
{
{
if
((
error
=
(
*
join_tab
->
next_select
)(
join
,
join_tab
+
1
,
0
))
<
0
)
if
((
error
=
(
*
join_tab
->
next_select
)(
join
,
join_tab
+
1
,
0
))
<
0
)
return
error
;
return
error
;
/*
Test if this was a SELECT DISTINCT query on a table that
was not in the field list; In this case we can abort if
we found a row, as no new rows can be added to the result.
*/
if
(
not_used_in_distinct
&&
found_records
!=
join
->
found_records
)
if
(
not_used_in_distinct
&&
found_records
!=
join
->
found_records
)
return
0
;
return
0
;
}
}
...
...
sql/sql_yacc.yy
View file @
f06b0d9f
...
@@ -579,7 +579,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
...
@@ -579,7 +579,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
insert_values update delete truncate rename
insert_values update delete truncate rename
show describe load alter optimize flush
show describe load alter optimize flush
reset purge begin commit rollback slave master_def master_defs
reset purge begin commit rollback slave master_def master_defs
repair restore backup analyze check
repair restore backup analyze check
start
field_list field_list_item field_spec kill
field_list field_list_item field_spec kill
select_item_list select_item values_list no_braces
select_item_list select_item values_list no_braces
limit_clause delete_limit_clause fields opt_values values
limit_clause delete_limit_clause fields opt_values values
...
@@ -657,6 +657,7 @@ verb_clause:
...
@@ -657,6 +657,7 @@ verb_clause:
| select
| select
| set
| set
| slave
| slave
| start
| show
| show
| truncate
| truncate
| handler
| handler
...
@@ -1328,6 +1329,11 @@ slave:
...
@@ -1328,6 +1329,11 @@ slave:
lex->type = 0;
lex->type = 0;
};
};
start:
START_SYM TRANSACTION_SYM { Lex->sql_command = SQLCOM_BEGIN;}
{}
;
slave_thread_opts:
slave_thread_opts:
slave_thread_opt
slave_thread_opt
| slave_thread_opts ',' slave_thread_opt;
| slave_thread_opts ',' slave_thread_opt;
...
@@ -1999,7 +2005,7 @@ sum_expr:
...
@@ -1999,7 +2005,7 @@ sum_expr:
{ $$=new Item_sum_and($3); }
{ $$=new Item_sum_and($3); }
| BIT_OR '(' in_sum_expr ')'
| BIT_OR '(' in_sum_expr ')'
{ $$=new Item_sum_or($3); }
{ $$=new Item_sum_or($3); }
| COUNT_SYM '(' '*' ')'
| COUNT_SYM '('
opt_all
'*' ')'
{ $$=new Item_sum_count(new Item_int((int32) 0L,1)); }
{ $$=new Item_sum_count(new Item_int((int32) 0L,1)); }
| COUNT_SYM '(' in_sum_expr ')'
| COUNT_SYM '(' in_sum_expr ')'
{ $$=new Item_sum_count($3); }
{ $$=new Item_sum_count($3); }
...
@@ -2017,11 +2023,12 @@ sum_expr:
...
@@ -2017,11 +2023,12 @@ sum_expr:
{ $$=new Item_sum_sum($3); };
{ $$=new Item_sum_sum($3); };
in_sum_expr:
in_sum_expr:
opt_all
{ Select->in_sum_expr++; }
{ Select->in_sum_expr++; }
expr
expr
{
{
Select->in_sum_expr--;
Select->in_sum_expr--;
$$=$
2
;
$$=$
3
;
};
};
cast_type:
cast_type:
...
@@ -2092,19 +2099,22 @@ opt_pad:
...
@@ -2092,19 +2099,22 @@ opt_pad:
join_table_list:
join_table_list:
'(' join_table_list ')' { $$=$2; }
'(' join_table_list ')' { $$=$2; }
| join_table { $$=$1; }
| join_table { $$=$1; }
| join_table_list ',' join_table_list { $$=$3; }
| join_table_list normal_join join_table_list { $$=$3; }
| join_table_list normal_join join_table_list { $$=$3; }
| join_table_list STRAIGHT_JOIN join_table_list
| join_table_list STRAIGHT_JOIN join_table_list
{ $$=$3 ; $$->straight=1; }
{ $$=$3 ; $$->straight=1; }
| join_table_list INNER_SYM JOIN_SYM join_table_list ON expr
| join_table_list normal_join join_table_list ON expr
{ add_join_on($4,$6); $$=$4; }
{ add_join_on($3,$5); $$=$3; }
| join_table_list INNER_SYM JOIN_SYM join_table_list
| join_table_list normal_join join_table_list
USING
{
{
SELECT_LEX *sel=Select;
SELECT_LEX *sel=Select;
sel->db1=$1->db; sel->table1=$1->alias;
sel->db1=$1->db; sel->table1=$1->alias;
sel->db2=$
4->db; sel->table2=$4
->alias;
sel->db2=$
3->db; sel->table2=$3
->alias;
}
}
USING '(' using_list ')'
'(' using_list ')'
{ add_join_on($4,$8); $$=$4; }
{ add_join_on($3,$7); $$=$3; }
| join_table_list LEFT opt_outer JOIN_SYM join_table_list ON expr
| join_table_list LEFT opt_outer JOIN_SYM join_table_list ON expr
{ add_join_on($5,$7); $5->outer_join|=JOIN_TYPE_LEFT; $$=$5; }
{ add_join_on($5,$7); $5->outer_join|=JOIN_TYPE_LEFT; $$=$5; }
| join_table_list LEFT opt_outer JOIN_SYM join_table_list
| join_table_list LEFT opt_outer JOIN_SYM join_table_list
...
@@ -2133,9 +2143,10 @@ join_table_list:
...
@@ -2133,9 +2143,10 @@ join_table_list:
{ add_join_natural($1,$4); $$=$4; };
{ add_join_natural($1,$4); $$=$4; };
normal_join:
normal_join:
',' {}
JOIN_SYM {}
| JOIN_SYM {}
| INNER_SYM JOIN_SYM {}
| CROSS JOIN_SYM {};
| CROSS JOIN_SYM {}
;
join_table:
join_table:
{
{
...
@@ -2232,6 +2243,10 @@ opt_table_alias:
...
@@ -2232,6 +2243,10 @@ opt_table_alias:
| table_alias ident
| table_alias ident
{ $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); };
{ $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); };
opt_all:
/* empty */
| ALL
;
where_clause:
where_clause:
/* empty */ { Select->where= 0; }
/* empty */ { Select->where= 0; }
...
...
sql/table.cc
View file @
f06b0d9f
...
@@ -95,11 +95,11 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
...
@@ -95,11 +95,11 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
if
(
my_read
(
file
,(
byte
*
)
head
,
64
,
MYF
(
MY_NABP
)))
goto
err_not_open
;
if
(
my_read
(
file
,(
byte
*
)
head
,
64
,
MYF
(
MY_NABP
)))
goto
err_not_open
;
if
(
head
[
0
]
!=
(
uchar
)
254
||
head
[
1
]
!=
1
||
if
(
head
[
0
]
!=
(
uchar
)
254
||
head
[
1
]
!=
1
||
(
head
[
2
]
!=
FRM_VER
&&
head
[
2
]
>
FRM_VER
+
2
))
(
head
[
2
]
!=
FRM_VER
&&
head
[
2
]
!=
FRM_VER
+
1
&&
head
[
2
]
!=
FRM_VER
+
3
))
goto
err_not_open
;
/* purecov: inspected */
goto
err_not_open
;
/* purecov: inspected */
new_field_pack_flag
=
head
[
27
];
new_field_pack_flag
=
head
[
27
];
new_frm_ver
=
(
head
[
2
]
-
FRM_VER
);
new_frm_ver
=
(
head
[
2
]
-
FRM_VER
);
field_pack_length
=
new_frm_ver
<
2
?
11
:
1
5
;
field_pack_length
=
new_frm_ver
<
2
?
11
:
1
7
;
error
=
3
;
error
=
3
;
if
(
!
(
pos
=
get_form_pos
(
file
,
head
,(
TYPELIB
*
)
0
)))
if
(
!
(
pos
=
get_form_pos
(
file
,
head
,(
TYPELIB
*
)
0
)))
...
@@ -154,7 +154,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
...
@@ -154,7 +154,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
for
(
i
=
0
;
i
<
keys
;
i
++
,
keyinfo
++
)
for
(
i
=
0
;
i
<
keys
;
i
++
,
keyinfo
++
)
{
{
if
(
new_frm_ver
==
2
)
if
(
new_frm_ver
==
3
)
{
{
keyinfo
->
flags
=
(
uint
)
uint2korr
(
strpos
)
^
HA_NOSAME
;
keyinfo
->
flags
=
(
uint
)
uint2korr
(
strpos
)
^
HA_NOSAME
;
keyinfo
->
key_length
=
(
uint
)
uint2korr
(
strpos
+
2
);
keyinfo
->
key_length
=
(
uint
)
uint2korr
(
strpos
+
2
);
...
@@ -343,28 +343,37 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
...
@@ -343,28 +343,37 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
for
(
i
=
0
;
i
<
outparam
->
fields
;
i
++
,
strpos
+=
field_pack_length
,
field_ptr
++
)
for
(
i
=
0
;
i
<
outparam
->
fields
;
i
++
,
strpos
+=
field_pack_length
,
field_ptr
++
)
{
{
uint
pack_flag
=
uint2korr
(
strpos
+
6
);
uint
pack_flag
,
interval_nr
,
unireg_type
,
recpos
,
field_length
;
uint
interval_nr
=
(
uint
)
strpos
[
10
];
enum_field_types
field_type
;
enum_field_types
field_type
;
if
(
new_frm_ver
==
2
)
if
(
new_frm_ver
==
3
)
{
{
/* new frm file in 4.1 */
/* new frm file in 4.1 */
field_type
=
(
enum_field_types
)
(
uint
)
strpos
[
11
];
field_length
=
uint2korr
(
strpos
+
3
);
recpos
=
uint3korr
(
strpos
+
5
);
pack_flag
=
uint2korr
(
strpos
+
8
);
unireg_type
=
(
uint
)
strpos
[
10
];
interval_nr
=
(
uint
)
strpos
[
12
];
field_type
=
(
enum_field_types
)
(
uint
)
strpos
[
13
];
}
}
else
else
{
{
/* old frm file */
/* old frm file */
field_length
=
(
uint
)
strpos
[
3
];
recpos
=
uint2korr
(
strpos
+
4
),
pack_flag
=
uint2korr
(
strpos
+
6
);
unireg_type
=
(
uint
)
strpos
[
8
];
interval_nr
=
(
uint
)
strpos
[
10
];
field_type
=
(
enum_field_types
)
f_packtype
(
pack_flag
);
field_type
=
(
enum_field_types
)
f_packtype
(
pack_flag
);
}
}
*
field_ptr
=
reg_field
=
*
field_ptr
=
reg_field
=
make_field
(
record
+
uint2korr
(
strpos
+
4
)
,
make_field
(
record
+
recpos
,
(
uint32
)
strpos
[
3
],
// field_length
(
uint32
)
field_length
,
null_pos
,
null_bit
,
null_pos
,
null_bit
,
pack_flag
,
pack_flag
,
field_type
,
field_type
,
(
Field
::
utype
)
MTYP_TYPENR
(
(
uint
)
strpos
[
8
]
),
(
Field
::
utype
)
MTYP_TYPENR
(
unireg_type
),
(
interval_nr
?
(
interval_nr
?
outparam
->
intervals
+
interval_nr
-
1
:
outparam
->
intervals
+
interval_nr
-
1
:
(
TYPELIB
*
)
0
),
(
TYPELIB
*
)
0
),
...
@@ -1215,7 +1224,7 @@ db_type get_table_type(const char *name)
...
@@ -1215,7 +1224,7 @@ db_type get_table_type(const char *name)
error
=
my_read
(
file
,(
byte
*
)
head
,
4
,
MYF
(
MY_NABP
));
error
=
my_read
(
file
,(
byte
*
)
head
,
4
,
MYF
(
MY_NABP
));
my_close
(
file
,
MYF
(
0
));
my_close
(
file
,
MYF
(
0
));
if
(
error
||
head
[
0
]
!=
(
uchar
)
254
||
head
[
1
]
!=
1
||
if
(
error
||
head
[
0
]
!=
(
uchar
)
254
||
head
[
1
]
!=
1
||
(
head
[
2
]
!=
FRM_VER
&&
head
[
2
]
!=
FRM_VER
+
1
))
(
head
[
2
]
!=
FRM_VER
&&
head
[
2
]
!=
FRM_VER
+
1
&&
head
[
2
]
!=
FRM_VER
+
3
))
DBUG_RETURN
(
DB_TYPE_UNKNOWN
);
DBUG_RETURN
(
DB_TYPE_UNKNOWN
);
DBUG_RETURN
(
ha_checktype
((
enum
db_type
)
(
uint
)
*
(
head
+
3
)));
DBUG_RETURN
(
ha_checktype
((
enum
db_type
)
(
uint
)
*
(
head
+
3
)));
}
}
...
...
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