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
8f7bb4ec
Commit
8f7bb4ec
authored
Apr 20, 2005
by
mskold@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
parents
f284512c
c9e68705
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
84 additions
and
23 deletions
+84
-23
mysql-test/r/ndb_update.result
mysql-test/r/ndb_update.result
+25
-5
mysql-test/t/ndb_alter_table.test
mysql-test/t/ndb_alter_table.test
+1
-0
mysql-test/t/ndb_autodiscover.test
mysql-test/t/ndb_autodiscover.test
+1
-0
mysql-test/t/ndb_autodiscover2.test
mysql-test/t/ndb_autodiscover2.test
+1
-0
mysql-test/t/ndb_basic.test
mysql-test/t/ndb_basic.test
+1
-0
mysql-test/t/ndb_blob.test
mysql-test/t/ndb_blob.test
+1
-0
mysql-test/t/ndb_cache.test
mysql-test/t/ndb_cache.test
+1
-0
mysql-test/t/ndb_charset.test
mysql-test/t/ndb_charset.test
+1
-0
mysql-test/t/ndb_index.test
mysql-test/t/ndb_index.test
+1
-0
mysql-test/t/ndb_index_ordered.test
mysql-test/t/ndb_index_ordered.test
+1
-0
mysql-test/t/ndb_index_unique.test
mysql-test/t/ndb_index_unique.test
+1
-0
mysql-test/t/ndb_insert.test
mysql-test/t/ndb_insert.test
+1
-0
mysql-test/t/ndb_limit.test
mysql-test/t/ndb_limit.test
+1
-0
mysql-test/t/ndb_lock.test
mysql-test/t/ndb_lock.test
+1
-0
mysql-test/t/ndb_minmax.test
mysql-test/t/ndb_minmax.test
+1
-0
mysql-test/t/ndb_multi.test
mysql-test/t/ndb_multi.test
+1
-0
mysql-test/t/ndb_replace.test
mysql-test/t/ndb_replace.test
+1
-0
mysql-test/t/ndb_restore.test
mysql-test/t/ndb_restore.test
+1
-0
mysql-test/t/ndb_subquery.test
mysql-test/t/ndb_subquery.test
+1
-0
mysql-test/t/ndb_transaction.test
mysql-test/t/ndb_transaction.test
+1
-0
mysql-test/t/ndb_truncate.test
mysql-test/t/ndb_truncate.test
+1
-0
mysql-test/t/ndb_types.test
mysql-test/t/ndb_types.test
+1
-0
mysql-test/t/ndb_update.test
mysql-test/t/ndb_update.test
+14
-2
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+0
-1
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+24
-15
No files found.
mysql-test/r/ndb_update.result
View file @
8f7bb4ec
...
...
@@ -2,12 +2,32 @@ DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
pk1 INT NOT NULL PRIMARY KEY,
b INT NOT NULL,
c INT NOT NULL
c INT NOT NULL
UNIQUE
) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (0,
0, 1),(1,1,2),(2,2,3
);
INSERT INTO t1 VALUES (0,
1, 0),(1,2,1),(2,3,2
);
UPDATE t1 set b = c;
select * from t1 order by pk1;
pk1 b c
0 1 1
1 2 2
2 3 3
0 0 0
1 1 1
2 2 2
UPDATE t1 set pk1 = 4 where pk1 = 1;
select * from t1 order by pk1;
pk1 b c
0 0 0
2 2 2
4 1 1
UPDATE t1 set pk1 = 1, c = 2 where pk1 = 4;
ERROR 23000: Duplicate entry '1' for key 1
select * from t1 order by pk1;
pk1 b c
0 0 0
2 2 2
4 1 1
UPDATE t1 set pk1 = pk1 + 10;
select * from t1 order by pk1;
pk1 b c
10 0 0
12 2 2
14 1 1
DROP TABLE IF EXISTS t1;
mysql-test/t/ndb_alter_table.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
have_multi_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
...
...
mysql-test/t/ndb_autodiscover.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
,
t8
,
t9
,
t10
;
...
...
mysql-test/t/ndb_autodiscover2.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
#
# Simple test to show use of discover when the server has been restarted
...
...
mysql-test/t/ndb_basic.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
;
...
...
mysql-test/t/ndb_blob.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
...
...
mysql-test/t/ndb_cache.test
View file @
8f7bb4ec
--
source
include
/
have_query_cache
.
inc
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
set
GLOBAL
query_cache_size
=
1355776
;
reset
query
cache
;
...
...
mysql-test/t/ndb_charset.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
...
...
mysql-test/t/ndb_index.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
...
...
mysql-test/t/ndb_index_ordered.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
,
test1
,
test2
;
...
...
mysql-test/t/ndb_index_unique.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
;
...
...
mysql-test/t/ndb_insert.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
...
...
mysql-test/t/ndb_limit.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t2
;
...
...
mysql-test/t/ndb_lock.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
connect
(
con1
,
localhost
,
root
,,);
connect
(
con2
,
localhost
,
root
,,);
...
...
mysql-test/t/ndb_minmax.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
,
t2
;
...
...
mysql-test/t/ndb_multi.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
have_multi_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
...
...
mysql-test/t/ndb_replace.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
#
# Test of REPLACE with NDB
...
...
mysql-test/t/ndb_restore.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
use
test
;
...
...
mysql-test/t/ndb_subquery.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
...
...
mysql-test/t/ndb_transaction.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
,
t2
,
t3
,
t4
,
t5
,
t6
,
t7
;
...
...
mysql-test/t/ndb_truncate.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t2
;
...
...
mysql-test/t/ndb_types.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
...
...
mysql-test/t/ndb_update.test
View file @
8f7bb4ec
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
...
...
@@ -14,9 +15,20 @@ DROP TABLE IF EXISTS t1;
CREATE
TABLE
t1
(
pk1
INT
NOT
NULL
PRIMARY
KEY
,
b
INT
NOT
NULL
,
c
INT
NOT
NULL
c
INT
NOT
NULL
UNIQUE
)
ENGINE
=
ndbcluster
;
INSERT
INTO
t1
VALUES
(
0
,
0
,
1
),(
1
,
1
,
2
),(
2
,
2
,
3
);
INSERT
INTO
t1
VALUES
(
0
,
1
,
0
),(
1
,
2
,
1
),(
2
,
3
,
2
);
UPDATE
t1
set
b
=
c
;
select
*
from
t1
order
by
pk1
;
UPDATE
t1
set
pk1
=
4
where
pk1
=
1
;
select
*
from
t1
order
by
pk1
;
--
error
1062
UPDATE
t1
set
pk1
=
1
,
c
=
2
where
pk1
=
4
;
select
*
from
t1
order
by
pk1
;
UPDATE
t1
set
pk1
=
pk1
+
10
;
select
*
from
t1
order
by
pk1
;
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
--
enable_warnings
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
8f7bb4ec
...
...
@@ -1838,7 +1838,6 @@ void Dbtc::execKEYINFO(Signal* signal)
do
{
if
(
cfirstfreeDatabuf
==
RNIL
)
{
jam
();
abort
();
seizeDatabuferrorLab
(
signal
);
return
;
}
//if
...
...
sql/ha_ndbcluster.cc
View file @
8f7bb4ec
...
...
@@ -1863,8 +1863,10 @@ int ha_ndbcluster::write_row(byte *record)
m_skip_auto_increment
=
!
auto_increment_column_changed
;
}
if
((
res
=
set_primary_key
(
op
)))
return
res
;
if
((
res
=
(
m_primary_key_update
?
set_primary_key_from_old_data
(
op
,
record
)
:
set_primary_key
(
op
))))
return
res
;
}
// Set non-key attribute(s)
...
...
@@ -2001,7 +2003,7 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
{
int
read_res
,
insert_res
,
delete_res
;
DBUG_PRINT
(
"info"
,
(
"primary key update, doing pk read+
insert+delete
"
));
DBUG_PRINT
(
"info"
,
(
"primary key update, doing pk read+
delete+insert
"
));
// Get all old fields, since we optimize away fields not in query
read_res
=
complemented_pk_read
(
old_data
,
new_data
);
if
(
read_res
)
...
...
@@ -2009,15 +2011,7 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
DBUG_PRINT
(
"info"
,
(
"pk read failed"
));
DBUG_RETURN
(
read_res
);
}
// Insert new row
insert_res
=
write_row
(
new_data
);
if
(
insert_res
)
{
DBUG_PRINT
(
"info"
,
(
"insert failed"
));
DBUG_RETURN
(
insert_res
);
}
// Delete old row
DBUG_PRINT
(
"info"
,
(
"insert succeded"
));
m_primary_key_update
=
TRUE
;
delete_res
=
delete_row
(
old_data
);
m_primary_key_update
=
FALSE
;
...
...
@@ -2025,9 +2019,23 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
{
DBUG_PRINT
(
"info"
,
(
"delete failed"
));
// Undo write_row(new_data)
DBUG_RETURN
(
delete_r
ow
(
new_data
)
);
DBUG_RETURN
(
delete_r
es
);
}
DBUG_PRINT
(
"info"
,
(
"insert+delete succeeded"
));
// Insert new row
DBUG_PRINT
(
"info"
,
(
"delete succeded"
));
insert_res
=
write_row
(
new_data
);
if
(
insert_res
)
{
DBUG_PRINT
(
"info"
,
(
"insert failed"
));
if
(
trans
->
commitStatus
()
==
NdbConnection
::
Started
)
{
m_primary_key_update
=
TRUE
;
insert_res
=
write_row
((
byte
*
)
old_data
);
m_primary_key_update
=
FALSE
;
}
DBUG_RETURN
(
insert_res
);
}
DBUG_PRINT
(
"info"
,
(
"delete+insert succeeded"
));
DBUG_RETURN
(
0
);
}
...
...
@@ -2125,8 +2133,9 @@ int ha_ndbcluster::delete_row(const byte *record)
no_uncommitted_rows_update
(
-
1
);
// If deleting from cursor, NoCommit will be handled in next_result
DBUG_RETURN
(
0
);
if
(
!
m_primary_key_update
)
// If deleting from cursor, NoCommit will be handled in next_result
DBUG_RETURN
(
0
);
}
else
{
...
...
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