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
7fcc77f4
Commit
7fcc77f4
authored
May 25, 2006
by
pekka@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#14509 v5.1 part 2/2 : handler level
parent
57724650
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
45 deletions
+62
-45
mysql-test/r/ndb_basic.result
mysql-test/r/ndb_basic.result
+24
-24
mysql-test/t/ndb_alter_table.test
mysql-test/t/ndb_alter_table.test
+15
-15
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+9
-5
sql/ha_ndbcluster.h
sql/ha_ndbcluster.h
+14
-1
No files found.
mysql-test/r/ndb_basic.result
View file @
7fcc77f4
...
...
@@ -649,30 +649,30 @@ counter datavalue
6 newval
7 newval
8 newval
35
newval
36
newval
37
newval
38
newval
39
newval
40
newval
41
newval
42
newval
43
newval
44
newval
45
newval
46
newval
47
newval
48
newval
49
newval
50
newval
51
newval
52
newval
53
newval
54
newval
55
newval
56
newval
57
newval
58
newval
9
newval
10
newval
11
newval
12
newval
13
newval
14
newval
15
newval
16
newval
17
newval
18
newval
19
newval
20
newval
21
newval
22
newval
23
newval
24
newval
25
newval
26
newval
27
newval
28
newval
29
newval
30
newval
31
newval
32
newval
drop table t1;
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
select * from t1;
...
...
mysql-test/t/ndb_alter_table.test
View file @
7fcc77f4
...
...
@@ -325,21 +325,6 @@ on t1 (c010, c011, c012, c013);
drop
table
t1
;
# simple test that auto incr is not lost at rename or alter
create
table
t1
(
a
int
primary
key
auto_increment
,
b
int
)
engine
=
ndb
;
insert
into
t1
(
b
)
values
(
101
),(
102
),(
103
);
select
*
from
t1
where
a
=
3
;
alter
table
t1
rename
t2
;
insert
into
t2
(
b
)
values
(
201
),(
202
),(
203
);
select
*
from
t2
where
a
=
6
;
alter
table
t2
add
c
int
;
insert
into
t2
(
b
)
values
(
301
),(
302
),(
303
);
select
*
from
t2
where
a
=
9
;
alter
table
t2
rename
t1
;
insert
into
t1
(
b
)
values
(
401
),(
402
),(
403
);
select
*
from
t1
where
a
=
12
;
drop
table
t1
;
# End of 4.1 tests
# On-line alter table
...
...
@@ -398,3 +383,18 @@ LOAD DATA INFILE 'tmp.dat' INTO TABLE ndb_show_tables;
select
'no_copy'
from
ndb_show_tables
where
id
=
@
t1_id
and
name
like
'%t1%'
;
DROP
TABLE
t1
,
ndb_show_tables
;
# simple test that auto incr is not lost at rename or alter
create
table
t1
(
a
int
primary
key
auto_increment
,
b
int
)
engine
=
ndb
;
insert
into
t1
(
b
)
values
(
101
),(
102
),(
103
);
select
*
from
t1
where
a
=
3
;
alter
table
t1
rename
t2
;
insert
into
t2
(
b
)
values
(
201
),(
202
),(
203
);
select
*
from
t2
where
a
=
6
;
alter
table
t2
add
c
int
;
insert
into
t2
(
b
)
values
(
301
),(
302
),(
303
);
select
*
from
t2
where
a
=
9
;
alter
table
t2
rename
t1
;
insert
into
t1
(
b
)
values
(
401
),(
402
),(
403
);
select
*
from
t1
where
a
=
12
;
drop
table
t1
;
sql/ha_ndbcluster.cc
View file @
7fcc77f4
...
...
@@ -2464,7 +2464,8 @@ int ha_ndbcluster::write_row(byte *record)
Uint64
auto_value
;
uint
retries
=
NDB_AUTO_INCREMENT_RETRIES
;
do
{
ret
=
ndb
->
getAutoIncrementValue
(
m_table
,
auto_value
,
1
);
Ndb_tuple_id_range_guard
g
(
m_share
);
ret
=
ndb
->
getAutoIncrementValue
(
m_table
,
g
.
range
,
auto_value
,
1
);
}
while
(
ret
==
-
1
&&
--
retries
&&
ndb
->
getNdbError
().
status
==
NdbError
::
TemporaryError
);
...
...
@@ -2565,7 +2566,8 @@ int ha_ndbcluster::write_row(byte *record)
DBUG_PRINT
(
"info"
,
(
"Trying to set next auto increment value to %llu"
,
(
ulonglong
)
next_val
));
if
(
ndb
->
setAutoIncrementValue
(
m_table
,
next_val
,
TRUE
)
Ndb_tuple_id_range_guard
g
(
m_share
);
if
(
ndb
->
setAutoIncrementValue
(
m_table
,
g
.
range
,
next_val
,
TRUE
)
==
-
1
)
ERR_RETURN
(
ndb
->
getNdbError
());
}
...
...
@@ -3528,8 +3530,9 @@ void ha_ndbcluster::info(uint flag)
if
(
m_table
)
{
Ndb
*
ndb
=
get_ndb
();
Ndb_tuple_id_range_guard
g
(
m_share
);
if
(
ndb
->
readAutoIncrementValue
(
m_table
,
if
(
ndb
->
readAutoIncrementValue
(
m_table
,
g
.
range
,
auto_increment_value
)
==
-
1
)
{
const
NdbError
err
=
ndb
->
getNdbError
();
...
...
@@ -5231,10 +5234,11 @@ ulonglong ha_ndbcluster::get_auto_increment()
int
ret
;
uint
retries
=
NDB_AUTO_INCREMENT_RETRIES
;
do
{
Ndb_tuple_id_range_guard
g
(
m_share
);
ret
=
m_skip_auto_increment
?
ndb
->
readAutoIncrementValue
(
m_table
,
auto_value
)
:
ndb
->
getAutoIncrementValue
(
m_table
,
auto_value
,
cache_size
);
ndb
->
readAutoIncrementValue
(
m_table
,
g
.
range
,
auto_value
)
:
ndb
->
getAutoIncrementValue
(
m_table
,
g
.
range
,
auto_value
,
cache_size
);
}
while
(
ret
==
-
1
&&
--
retries
&&
ndb
->
getNdbError
().
status
==
NdbError
::
TemporaryError
);
...
...
sql/ha_ndbcluster.h
View file @
7fcc77f4
...
...
@@ -106,6 +106,7 @@ typedef struct st_ndbcluster_share {
ulonglong
commit_count
;
char
*
db
;
char
*
table_name
;
Ndb
::
TupleIdRange
tuple_id_range
;
#ifdef HAVE_NDB_BINLOG
uint32
flags
;
NdbEventOperation
*
op
;
...
...
@@ -138,6 +139,19 @@ set_ndb_share_state(NDB_SHARE *share, NDB_SHARE_STATE state)
pthread_mutex_unlock
(
&
share
->
mutex
);
}
struct
Ndb_tuple_id_range_guard
{
Ndb_tuple_id_range_guard
(
NDB_SHARE
*
_share
)
:
share
(
_share
),
range
(
share
->
tuple_id_range
)
{
pthread_mutex_lock
(
&
share
->
mutex
);
}
~
Ndb_tuple_id_range_guard
()
{
pthread_mutex_unlock
(
&
share
->
mutex
);
}
NDB_SHARE
*
share
;
Ndb
::
TupleIdRange
&
range
;
};
#ifdef HAVE_NDB_BINLOG
/* NDB_SHARE.flags */
#define NSF_HIDDEN_PK 1
/* table has hidden primary key */
...
...
@@ -725,7 +739,6 @@ static void set_tabname(const char *pathname, char *tabname);
int
drop_indexes
(
Ndb
*
ndb
,
TABLE
*
tab
);
int
add_index_handle
(
THD
*
thd
,
NdbDictionary
::
Dictionary
*
dict
,
KEY
*
key_info
,
const
char
*
index_name
,
uint
index_no
);
int
initialize_autoincrement
(
const
void
*
table
);
int
get_metadata
(
const
char
*
path
);
void
release_metadata
(
THD
*
thd
,
Ndb
*
ndb
);
NDB_INDEX_TYPE
get_index_type
(
uint
idx_no
)
const
;
...
...
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