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
b7f8285c
Commit
b7f8285c
authored
Oct 07, 2004
by
brian@brian-akers-computer.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into brian-akers-computer.local:/Users/brian/mysql/mysql-4.1
parents
c9e6ad2c
a8d2692c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
149 additions
and
13 deletions
+149
-13
mysql-test/r/ndb_subquery.result
mysql-test/r/ndb_subquery.result
+42
-0
mysql-test/t/ndb_subquery.test
mysql-test/t/ndb_subquery.test
+38
-0
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+20
-4
ndb/test/run-test/atrt-mysql-test-run
ndb/test/run-test/atrt-mysql-test-run
+1
-1
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+40
-4
sql/mysqld.cc
sql/mysqld.cc
+8
-4
No files found.
mysql-test/r/ndb_subquery.result
0 → 100644
View file @
b7f8285c
drop table if exists t1;
drop table if exists t2;
create table t1 (p int not null primary key, u int not null, o int not null,
unique (u), key(o)) engine=ndb;
create table t2 (p int not null primary key, u int not null, o int not null,
unique (u), key(o)) engine=ndb;
insert into t1 values (1,1,1),(2,2,2),(3,3,3);
insert into t2 values (1,1,1),(2,2,2),(3,3,3), (4,4,4), (5,5,5);
explain select * from t2 where p NOT IN (select p from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
2 DEPENDENT SUBQUERY t1 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
select * from t2 where p NOT IN (select p from t1) order by p;
p u o
4 4 4
5 5 5
explain select * from t2 where p NOT IN (select u from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
2 DEPENDENT SUBQUERY t1 unique_subquery u u 4 func 1 Using index
select * from t2 where p NOT IN (select u from t1) order by p;
p u o
4 4 4
5 5 5
explain select * from t2 where p NOT IN (select o from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
2 DEPENDENT SUBQUERY t1 index_subquery o o 4 func 1 Using index
select * from t2 where p NOT IN (select o from t1) order by p;
p u o
4 4 4
5 5 5
explain select * from t2 where p NOT IN (select p+0 from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using where
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
select * from t2 where p NOT IN (select p+0 from t1) order by p;
p u o
4 4 4
5 5 5
drop table t1;
drop table t2;
mysql-test/t/ndb_subquery.test
0 → 100644
View file @
b7f8285c
--
source
include
/
have_ndb
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
drop
table
if
exists
t2
;
--
enable_warnings
##########
# bug#5367
create
table
t1
(
p
int
not
null
primary
key
,
u
int
not
null
,
o
int
not
null
,
unique
(
u
),
key
(
o
))
engine
=
ndb
;
create
table
t2
(
p
int
not
null
primary
key
,
u
int
not
null
,
o
int
not
null
,
unique
(
u
),
key
(
o
))
engine
=
ndb
;
insert
into
t1
values
(
1
,
1
,
1
),(
2
,
2
,
2
),(
3
,
3
,
3
);
insert
into
t2
values
(
1
,
1
,
1
),(
2
,
2
,
2
),(
3
,
3
,
3
),
(
4
,
4
,
4
),
(
5
,
5
,
5
);
# Use pk
explain
select
*
from
t2
where
p
NOT
IN
(
select
p
from
t1
);
select
*
from
t2
where
p
NOT
IN
(
select
p
from
t1
)
order
by
p
;
# Use unique index
explain
select
*
from
t2
where
p
NOT
IN
(
select
u
from
t1
);
select
*
from
t2
where
p
NOT
IN
(
select
u
from
t1
)
order
by
p
;
# Use ordered index
explain
select
*
from
t2
where
p
NOT
IN
(
select
o
from
t1
);
select
*
from
t2
where
p
NOT
IN
(
select
o
from
t1
)
order
by
p
;
# Use scan
explain
select
*
from
t2
where
p
NOT
IN
(
select
p
+
0
from
t1
);
select
*
from
t2
where
p
NOT
IN
(
select
p
+
0
from
t1
)
order
by
p
;
drop
table
t1
;
drop
table
t2
;
# bug#5367
##########
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
b7f8285c
...
...
@@ -1249,7 +1249,8 @@ void Dbtc::execTCRELEASEREQ(Signal* signal)
jam
();
signal
->
theData
[
0
]
=
tuserpointer
;
signal
->
theData
[
1
]
=
ZINVALID_CONNECTION
;
sendSignal
(
tapiBlockref
,
GSN_TCRELEASEREF
,
signal
,
2
,
JBB
);
signal
->
theData
[
2
]
=
__LINE__
;
sendSignal
(
tapiBlockref
,
GSN_TCRELEASEREF
,
signal
,
3
,
JBB
);
return
;
}
else
{
jam
();
...
...
@@ -1262,7 +1263,9 @@ void Dbtc::execTCRELEASEREQ(Signal* signal)
sendSignal
(
tapiBlockref
,
GSN_TCRELEASECONF
,
signal
,
1
,
JBB
);
}
else
{
if
(
tapiBlockref
==
apiConnectptr
.
p
->
ndbapiBlockref
)
{
if
(
apiConnectptr
.
p
->
apiConnectstate
==
CS_CONNECTED
)
{
if
(
apiConnectptr
.
p
->
apiConnectstate
==
CS_CONNECTED
||
(
apiConnectptr
.
p
->
apiConnectstate
==
CS_ABORTING
&&
apiConnectptr
.
p
->
abortState
==
AS_IDLE
)){
jam
();
/* JUST REPLY OK */
releaseApiCon
(
signal
,
apiConnectptr
.
i
);
signal
->
theData
[
0
]
=
tuserpointer
;
...
...
@@ -1272,14 +1275,19 @@ void Dbtc::execTCRELEASEREQ(Signal* signal)
jam
();
signal
->
theData
[
0
]
=
tuserpointer
;
signal
->
theData
[
1
]
=
ZINVALID_CONNECTION
;
signal
->
theData
[
2
]
=
__LINE__
;
signal
->
theData
[
3
]
=
apiConnectptr
.
p
->
apiConnectstate
;
sendSignal
(
tapiBlockref
,
GSN_TCRELEASEREF
,
signal
,
2
,
JBB
);
GSN_TCRELEASEREF
,
signal
,
4
,
JBB
);
}
}
else
{
jam
();
signal
->
theData
[
0
]
=
tuserpointer
;
signal
->
theData
[
1
]
=
ZINVALID_CONNECTION
;
sendSignal
(
tapiBlockref
,
GSN_TCRELEASEREF
,
signal
,
2
,
JBB
);
signal
->
theData
[
2
]
=
__LINE__
;
signal
->
theData
[
3
]
=
tapiBlockref
;
signal
->
theData
[
4
]
=
apiConnectptr
.
p
->
ndbapiBlockref
;
sendSignal
(
tapiBlockref
,
GSN_TCRELEASEREF
,
signal
,
5
,
JBB
);
}
//if
}
//if
}
//Dbtc::execTCRELEASEREQ()
...
...
@@ -11359,6 +11367,7 @@ void Dbtc::execTCKEYCONF(Signal* signal)
Uint32
Ttcindxrec
=
regApiPtr
->
tcindxrec
;
// Copy reply from TcKeyConf
ndbassert
(
regApiPtr
->
noIndexOp
);
regApiPtr
->
noIndexOp
--
;
// Decrease count
regApiPtr
->
tcIndxSendArray
[
Ttcindxrec
]
=
indexOp
->
tcIndxReq
.
senderData
;
regApiPtr
->
tcIndxSendArray
[
Ttcindxrec
+
1
]
=
...
...
@@ -11417,6 +11426,12 @@ void Dbtc::execTCKEYREF(Signal* signal)
abortErrorLab
(
signal
);
break
;
}
/**
* Increase count as it will be decreased below...
* (and the code is written to handle failing lookup on "real" table
* not lookup on index table)
*/
regApiPtr
->
noIndexOp
++
;
// else continue
}
case
(
IOS_INDEX_OPERATION
):
{
...
...
@@ -11426,6 +11441,7 @@ void Dbtc::execTCKEYREF(Signal* signal)
TcIndxReq
*
const
tcIndxReq
=
&
indexOp
->
tcIndxReq
;
TcIndxRef
*
const
tcIndxRef
=
(
TcIndxRef
*
)
signal
->
getDataPtrSend
();
ndbassert
(
regApiPtr
->
noIndexOp
);
regApiPtr
->
noIndexOp
--
;
// Decrease count
tcIndxRef
->
connectPtr
=
tcIndxReq
->
senderData
;
tcIndxRef
->
transId
[
0
]
=
tcKeyRef
->
transId
[
0
];
...
...
ndb/test/run-test/atrt-mysql-test-run
View file @
b7f8285c
...
...
@@ -3,7 +3,7 @@
set
-x
p
=
`
pwd
`
cd
$MYSQL_BASE_DIR
/mysql-test
./mysql-test-run
--with-ndbcluster
--ndbconnectstring
=
$NDB_CONNECTSTRING
$*
|
tee
$p
/output.txt
./mysql-test-run
--with-ndbcluster
--ndb
-
connectstring
=
$NDB_CONNECTSTRING
$*
|
tee
$p
/output.txt
f
=
`
grep
-c
fail
$p
/output.txt
`
o
=
`
grep
-c
pass
$p
/output.txt
`
...
...
sql/ha_ndbcluster.cc
View file @
b7f8285c
...
...
@@ -2135,11 +2135,47 @@ int ha_ndbcluster::index_read(byte *buf,
DBUG_PRINT
(
"enter"
,
(
"active_index: %u, key_len: %u, find_flag: %d"
,
active_index
,
key_len
,
find_flag
));
int
error
;
ndb_index_type
type
=
get_index_type
(
active_index
);
const
KEY
*
key_info
=
table
->
key_info
+
active_index
;
switch
(
type
){
case
PRIMARY_KEY_ORDERED_INDEX
:
case
PRIMARY_KEY_INDEX
:
if
(
find_flag
==
HA_READ_KEY_EXACT
&&
key_info
->
key_length
==
key_len
)
{
DBUG_RETURN
(
pk_read
(
key
,
key_len
,
buf
));
}
else
if
(
type
==
PRIMARY_KEY_INDEX
)
{
DBUG_RETURN
(
1
);
}
break
;
case
UNIQUE_ORDERED_INDEX
:
case
UNIQUE_INDEX
:
if
(
find_flag
==
HA_READ_KEY_EXACT
&&
key_info
->
key_length
==
key_len
)
{
DBUG_RETURN
(
unique_index_read
(
key
,
key_len
,
buf
));
}
else
if
(
type
==
UNIQUE_INDEX
)
{
DBUG_RETURN
(
1
);
}
break
;
case
ORDERED_INDEX
:
break
;
default:
case
UNDEFINED_INDEX
:
DBUG_ASSERT
(
false
);
return
1
;
break
;
}
key_range
start_key
;
start_key
.
key
=
key
;
start_key
.
length
=
key_len
;
start_key
.
flag
=
find_flag
;
DBUG_RETURN
(
read_range_first_to_buf
(
&
start_key
,
NULL
,
false
,
true
,
buf
));
start_key
.
key
=
key
;
start_key
.
length
=
key_len
;
start_key
.
flag
=
find_flag
;
error
=
ordered_index_scan
(
&
start_key
,
0
,
true
,
buf
);
DBUG_RETURN
(
error
==
HA_ERR_END_OF_FILE
?
HA_ERR_KEY_NOT_FOUND
:
error
);
}
...
...
sql/mysqld.cc
View file @
b7f8285c
...
...
@@ -963,7 +963,7 @@ void clean_up(bool print_message)
if
(
print_message
&&
errmesg
)
sql_print_information
(
ER
(
ER_SHUTDOWN_COMPLETE
),
my_progname
);
#if !defined(
__WIN__) && !defined(
EMBEDDED_LIBRARY)
#if !defined(EMBEDDED_LIBRARY)
if
(
!
opt_bootstrap
)
(
void
)
my_delete
(
pidfile_name
,
MYF
(
0
));
// This may not always exist
#endif
...
...
@@ -1500,7 +1500,11 @@ static void init_signals(void)
}
static
void
start_signal_handler
(
void
)
{}
{
// Save vm id of this process
if
(
!
opt_bootstrap
)
create_pid_file
();
}
static
void
check_data_home
(
const
char
*
path
)
{}
...
...
@@ -2934,10 +2938,10 @@ we force server id to 2, but this MySQL server will not act as a slave.");
#ifndef __NETWARE__
(
void
)
pthread_kill
(
signal_thread
,
MYSQL_KILL_SIGNAL
);
#endif
/* __NETWARE__ */
#ifndef __WIN__
if
(
!
opt_bootstrap
)
(
void
)
my_delete
(
pidfile_name
,
MYF
(
MY_WME
));
// Not needed anymore
#endif
if
(
unix_sock
!=
INVALID_SOCKET
)
unlink
(
mysqld_unix_port
);
exit
(
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