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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
6c977025
Commit
6c977025
authored
Feb 14, 2008
by
istruewing@stella.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge stella.local:/home2/mydev/mysql-5.0-ateam
into stella.local:/home2/mydev/mysql-5.0-axmrg
parents
b6c8f8a5
7fa875e4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
3 deletions
+64
-3
mysql-test/r/federated.result
mysql-test/r/federated.result
+24
-0
mysql-test/t/federated.test
mysql-test/t/federated.test
+21
-0
sql/ha_federated.cc
sql/ha_federated.cc
+19
-3
No files found.
mysql-test/r/federated.result
View file @
6c977025
...
@@ -2045,6 +2045,30 @@ select 1 from t1 order by a;
...
@@ -2045,6 +2045,30 @@ select 1 from t1 order by a;
drop table t1;
drop table t1;
drop table t1;
drop table t1;
drop view v1;
drop view v1;
CREATE TABLE t1 (a INT, b INT, KEY(a,b));
INSERT INTO t1 VALUES(NULL,1),(1,NULL),(NULL,NULL),(1,1),(2,2);
CREATE TABLE t1 (a INT, b INT, KEY(a,b)) ENGINE=federated
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1';
SELECT * FROM t1 WHERE a IS NULL;
a b
NULL NULL
NULL 1
SELECT * FROM t1 WHERE a IS NOT NULL;
a b
1 NULL
1 1
2 2
SELECT * FROM t1 WHERE a=1 AND b=1;
a b
1 1
SELECT * FROM t1 WHERE a IS NULL AND b=1;
a b
NULL 1
SELECT * FROM t1 WHERE a IS NOT NULL AND b=1;
a b
1 1
DROP TABLE t1;
DROP TABLE t1;
DROP TABLE IF EXISTS federated.t1;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;
DROP TABLE IF EXISTS federated.t1;
...
...
mysql-test/t/federated.test
View file @
6c977025
...
@@ -1716,5 +1716,26 @@ connection slave;
...
@@ -1716,5 +1716,26 @@ connection slave;
drop
table
t1
;
drop
table
t1
;
drop
view
v1
;
drop
view
v1
;
#
# BUG#33946 - Join on Federated tables with Unique index gives error 1430
# from storage engine
#
connection
slave
;
CREATE
TABLE
t1
(
a
INT
,
b
INT
,
KEY
(
a
,
b
));
INSERT
INTO
t1
VALUES
(
NULL
,
1
),(
1
,
NULL
),(
NULL
,
NULL
),(
1
,
1
),(
2
,
2
);
connection
master
;
--
replace_result
$SLAVE_MYPORT
SLAVE_PORT
eval
CREATE
TABLE
t1
(
a
INT
,
b
INT
,
KEY
(
a
,
b
))
ENGINE
=
federated
CONNECTION
=
'mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'
;
SELECT
*
FROM
t1
WHERE
a
IS
NULL
;
SELECT
*
FROM
t1
WHERE
a
IS
NOT
NULL
;
SELECT
*
FROM
t1
WHERE
a
=
1
AND
b
=
1
;
SELECT
*
FROM
t1
WHERE
a
IS
NULL
AND
b
=
1
;
SELECT
*
FROM
t1
WHERE
a
IS
NOT
NULL
AND
b
=
1
;
DROP
TABLE
t1
;
connection
slave
;
DROP
TABLE
t1
;
source
include
/
federated_cleanup
.
inc
;
source
include
/
federated_cleanup
.
inc
;
sql/ha_federated.cc
View file @
6c977025
...
@@ -1094,10 +1094,20 @@ bool ha_federated::create_where_from_key(String *to,
...
@@ -1094,10 +1094,20 @@ bool ha_federated::create_where_from_key(String *to,
{
{
if
(
*
ptr
++
)
if
(
*
ptr
++
)
{
{
/*
We got "IS [NOT] NULL" condition against nullable column. We
distinguish between "IS NOT NULL" and "IS NULL" by flag. For
"IS NULL", flag is set to HA_READ_KEY_EXACT.
*/
if
(
emit_key_part_name
(
&
tmp
,
key_part
)
||
if
(
emit_key_part_name
(
&
tmp
,
key_part
)
||
tmp
.
append
(
FEDERATED_ISNULL
))
tmp
.
append
(
ranges
[
i
]
->
flag
==
HA_READ_KEY_EXACT
?
FEDERATED_ISNULL
:
" IS NOT NULL "
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
continue
;
/*
We need to adjust pointer and length to be prepared for next
key part. As well as check if this was last key part.
*/
goto
prepare_for_next_key_part
;
}
}
}
}
...
@@ -1199,12 +1209,18 @@ bool ha_federated::create_where_from_key(String *to,
...
@@ -1199,12 +1209,18 @@ bool ha_federated::create_where_from_key(String *to,
if
(
tmp
.
append
(
FEDERATED_CLOSEPAREN
))
if
(
tmp
.
append
(
FEDERATED_CLOSEPAREN
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
prepare_for_next_key_part:
if
(
store_length
>=
length
)
if
(
store_length
>=
length
)
break
;
break
;
DBUG_PRINT
(
"info"
,
(
"remainder %d"
,
remainder
));
DBUG_PRINT
(
"info"
,
(
"remainder %d"
,
remainder
));
DBUG_ASSERT
(
remainder
>
1
);
DBUG_ASSERT
(
remainder
>
1
);
length
-=
store_length
;
length
-=
store_length
;
ptr
+=
store_length
;
/*
For nullable columns, null-byte is already skipped before, that is
ptr was incremented by 1. Since store_length still counts null-byte,
we need to subtract 1 from store_length.
*/
ptr
+=
store_length
-
test
(
key_part
->
null_bit
);
if
(
tmp
.
append
(
FEDERATED_AND
))
if
(
tmp
.
append
(
FEDERATED_AND
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
...
...
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