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
6c69e3d2
Commit
6c69e3d2
authored
Jan 11, 2005
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug#7798 - ndb - range scan with invalid table version could cause node failure
parent
28f5a019
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
5 deletions
+57
-5
mysql-test/r/ndb_index_ordered.result
mysql-test/r/ndb_index_ordered.result
+16
-0
mysql-test/t/ndb_index_ordered.test
mysql-test/t/ndb_index_ordered.test
+18
-0
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+23
-5
No files found.
mysql-test/r/ndb_index_ordered.result
View file @
6c69e3d2
...
@@ -420,3 +420,19 @@ count(*)-8
...
@@ -420,3 +420,19 @@ count(*)-8
select count(*)-9 from t1 use index (ti) where ti <= '23:59:59';
select count(*)-9 from t1 use index (ti) where ti <= '23:59:59';
count(*)-9
count(*)-9
0
0
drop table t1;
create table t1(a int primary key, b int not null, index(b));
insert into t1 values (1,1), (2,2);
set autocommit=0;
begin;
select count(*) from t1;
count(*)
2
ALTER TABLE t1 ADD COLUMN c int;
select a from t1 where b = 2;
a
2
show tables;
Tables_in_test
t1
drop table t1;
mysql-test/t/ndb_index_ordered.test
View file @
6c69e3d2
...
@@ -236,3 +236,21 @@ select count(*)-5 from t1 use index (ti) where ti < '10:11:11';
...
@@ -236,3 +236,21 @@ select count(*)-5 from t1 use index (ti) where ti < '10:11:11';
select
count
(
*
)
-
6
from
t1
use
index
(ti) where ti <= '10:11:11'
;
select
count
(
*
)
-
6
from
t1
use
index
(ti) where ti <= '10:11:11'
;
select
count
(
*
)
-
8
from
t1
use
index
(ti) where ti < '23:59:59'
;
select
count
(
*
)
-
8
from
t1
use
index
(ti) where ti < '23:59:59'
;
select
count
(
*
)
-
9
from
t1
use
index
(ti) where ti <= '23:59:59'
;
select
count
(
*
)
-
9
from
t1
use
index
(ti) where ti <= '23:59:59'
;
drop
table
t1
;
# bug#7798
create
table
t1
(
a
int
primary
key
,
b
int
not
null
,
index
(
b
));
insert
into
t1
values
(
1
,
1
),
(
2
,
2
);
connect
(
con1
,
localhost
,,,
test
);
connect
(
con2
,
localhost
,,,
test
);
connection
con1
;
set
autocommit
=
0
;
begin
;
select
count
(
*
)
from
t1
;
connection
con2
;
ALTER
TABLE
t1
ADD
COLUMN
c
int
;
connection
con1
;
select
a
from
t1
where
b
=
2
;
show
tables
;
drop
table
t1
;
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
6c69e3d2
...
@@ -1879,7 +1879,6 @@ void Dbtc::packKeyData000Lab(Signal* signal,
...
@@ -1879,7 +1879,6 @@ void Dbtc::packKeyData000Lab(Signal* signal,
Uint32
totalLen
)
Uint32
totalLen
)
{
{
CacheRecord
*
const
regCachePtr
=
cachePtr
.
p
;
CacheRecord
*
const
regCachePtr
=
cachePtr
.
p
;
UintR
Tmp
;
jam
();
jam
();
Uint32
len
=
0
;
Uint32
len
=
0
;
...
@@ -8503,14 +8502,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
...
@@ -8503,14 +8502,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
apiConnectptr
.
i
=
scanTabReq
->
apiConnectPtr
;
apiConnectptr
.
i
=
scanTabReq
->
apiConnectPtr
;
tabptr
.
i
=
scanTabReq
->
tableId
;
tabptr
.
i
=
scanTabReq
->
tableId
;
if
(
apiConnectptr
.
i
>=
capiConnectFilesize
||
if
(
apiConnectptr
.
i
>=
capiConnectFilesize
)
tabptr
.
i
>=
ctabrecFilesize
)
{
{
jam
();
jam
();
warningHandlerLab
(
signal
);
warningHandlerLab
(
signal
);
return
;
return
;
}
//if
}
//if
ptrAss
(
apiConnectptr
,
apiConnectRecord
);
ptrAss
(
apiConnectptr
,
apiConnectRecord
);
ApiConnectRecord
*
transP
=
apiConnectptr
.
p
;
ApiConnectRecord
*
transP
=
apiConnectptr
.
p
;
if
(
transP
->
apiConnectstate
!=
CS_CONNECTED
)
{
if
(
transP
->
apiConnectstate
!=
CS_CONNECTED
)
{
jam
();
jam
();
// could be left over from TCKEYREQ rollback
// could be left over from TCKEYREQ rollback
...
@@ -8524,9 +8525,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
...
@@ -8524,9 +8525,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
}
else
{
}
else
{
jam
();
jam
();
errCode
=
ZSTATE_ERROR
;
errCode
=
ZSTATE_ERROR
;
goto
SCAN_TAB_error
;
goto
SCAN_TAB_error
_no_state_change
;
}
}
}
}
if
(
tabptr
.
i
>=
ctabrecFilesize
)
{
errCode
=
ZUNKNOWN_TABLE_ERROR
;
goto
SCAN_TAB_error
;
}
ptrAss
(
tabptr
,
tableRecord
);
ptrAss
(
tabptr
,
tableRecord
);
if
((
aiLength
==
0
)
||
if
((
aiLength
==
0
)
||
(
!
tabptr
.
p
->
checkTable
(
schemaVersion
))
||
(
!
tabptr
.
p
->
checkTable
(
schemaVersion
))
||
...
@@ -8621,8 +8629,18 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
...
@@ -8621,8 +8629,18 @@ void Dbtc::execSCAN_TABREQ(Signal* signal)
errCode
=
ZNO_SCANREC_ERROR
;
errCode
=
ZNO_SCANREC_ERROR
;
goto
SCAN_TAB_error
;
goto
SCAN_TAB_error
;
SCAN_TAB_error:
SCAN_TAB_error:
jam
();
jam
();
/**
* Prepare for up coming ATTRINFO/KEYINFO
*/
transP
->
apiConnectstate
=
CS_ABORTING
;
transP
->
abortState
=
AS_IDLE
;
transP
->
transid
[
0
]
=
transid1
;
transP
->
transid
[
1
]
=
transid2
;
SCAN_TAB_error_no_state_change:
ScanTabRef
*
ref
=
(
ScanTabRef
*
)
&
signal
->
theData
[
0
];
ScanTabRef
*
ref
=
(
ScanTabRef
*
)
&
signal
->
theData
[
0
];
ref
->
apiConnectPtr
=
transP
->
ndbapiConnect
;
ref
->
apiConnectPtr
=
transP
->
ndbapiConnect
;
ref
->
transId1
=
transid1
;
ref
->
transId1
=
transid1
;
...
...
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