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
77cbf5d3
Commit
77cbf5d3
authored
Nov 17, 2005
by
mskold@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed incorrectly use if table with wrong schema version
parent
b919b29d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
7 deletions
+42
-7
mysql-test/r/ndb_alter_table.result
mysql-test/r/ndb_alter_table.result
+1
-2
mysql-test/t/ndb_alter_table.test
mysql-test/t/ndb_alter_table.test
+2
-0
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+39
-5
No files found.
mysql-test/r/ndb_alter_table.result
View file @
77cbf5d3
...
...
@@ -179,8 +179,7 @@ a b c
2 two two
alter table t1 drop index c;
select * from t1 where b = 'two';
a b c
2 two two
ERROR HY000: Table definition has changed, please retry transaction
select * from t1 where b = 'two';
a b c
2 two two
...
...
mysql-test/t/ndb_alter_table.test
View file @
77cbf5d3
...
...
@@ -147,6 +147,8 @@ select * from t1 where b = 'two';
connection
server1
;
alter
table
t1
drop
index
c
;
connection
server2
;
# This should fail since index information is not automatically refreshed
--
error
1105
select
*
from
t1
where
b
=
'two'
;
select
*
from
t1
where
b
=
'two'
;
connection
server1
;
...
...
sql/ha_ndbcluster.cc
View file @
77cbf5d3
...
...
@@ -50,6 +50,8 @@ static const char *ha_ndb_ext=".ndb";
#define NDB_FAILED_AUTO_INCREMENT ~(Uint64)0
#define NDB_AUTO_INCREMENT_RETRIES 10
#define NDB_INVALID_SCHEMA_OBJECT 241
#define ERR_PRINT(err) \
DBUG_PRINT("error", ("%d message: %s", err.code, err.message))
...
...
@@ -212,7 +214,21 @@ Thd_ndb::Thd_ndb()
Thd_ndb
::~
Thd_ndb
()
{
if
(
ndb
)
{
#ifndef DBUG_OFF
Ndb
::
Free_list_usage
tmp
;
tmp
.
m_name
=
0
;
while
(
ndb
->
get_free_list_usage
(
&
tmp
))
{
uint
leaked
=
(
uint
)
tmp
.
m_created
-
tmp
.
m_free
;
if
(
leaked
)
fprintf
(
stderr
,
"NDB: Found %u %s%s that %s not been released
\n
"
,
leaked
,
tmp
.
m_name
,
(
leaked
==
1
)
?
""
:
"'s"
,
(
leaked
==
1
)
?
"has"
:
"have"
);
}
#endif
delete
ndb
;
}
ndb
=
0
;
}
...
...
@@ -3269,15 +3285,19 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
DBUG_PRINT
(
"info"
,
(
"Table schema version: %d"
,
tab
->
getObjectVersion
()));
}
if
(
m_table
!=
(
void
*
)
tab
||
m_table_version
<
tab
->
getObjectVersion
()
)
if
(
m_table
!=
(
void
*
)
tab
)
{
/*
The table has been altered, refresh the index list
*/
build_index_list
(
ndb
,
table
,
ILBP_OPEN
);
m_table
=
(
void
*
)
tab
;
m_table_version
=
tab
->
getObjectVersion
();
}
else
if
(
m_table_version
<
tab
->
getObjectVersion
())
{
/*
The table has been altered, caller has to retry
*/
NdbError
err
=
ndb
->
getNdbError
(
NDB_INVALID_SCHEMA_OBJECT
);
DBUG_RETURN
(
ndb_to_mysql_error
(
&
err
));
}
m_table_info
=
tab_info
;
}
no_uncommitted_rows_init
(
thd
);
...
...
@@ -4657,7 +4677,21 @@ bool ndbcluster_end()
{
DBUG_ENTER
(
"ndbcluster_end"
);
if
(
g_ndb
)
{
#ifndef DBUG_OFF
Ndb
::
Free_list_usage
tmp
;
tmp
.
m_name
=
0
;
while
(
g_ndb
->
get_free_list_usage
(
&
tmp
))
{
uint
leaked
=
(
uint
)
tmp
.
m_created
-
tmp
.
m_free
;
if
(
leaked
)
fprintf
(
stderr
,
"NDB: Found %u %s%s that %s not been released
\n
"
,
leaked
,
tmp
.
m_name
,
(
leaked
==
1
)
?
""
:
"'s"
,
(
leaked
==
1
)
?
"has"
:
"have"
);
}
#endif
delete
g_ndb
;
}
g_ndb
=
NULL
;
if
(
g_ndb_cluster_connection
)
delete
g_ndb_cluster_connection
;
...
...
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