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
b40082ce
Commit
b40082ce
authored
Oct 07, 2004
by
magnus@neptunus.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into neptunus.(none):/home/magnus/mysql/mysql-4.1-ndb
parents
86918cd1
db93dd1e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
39 deletions
+53
-39
mysql-test/r/ndb_alter_table.result
mysql-test/r/ndb_alter_table.result
+2
-0
mysql-test/t/ndb_alter_table.test
mysql-test/t/ndb_alter_table.test
+2
-0
sql/ha_innodb.cc
sql/ha_innodb.cc
+49
-39
No files found.
mysql-test/r/ndb_alter_table.result
View file @
b40082ce
...
@@ -116,7 +116,9 @@ select * from t1 order by a;
...
@@ -116,7 +116,9 @@ select * from t1 order by a;
a b
a b
0 1
0 1
17 18
17 18
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
alter table t1 modify column a int not null auto_increment;
alter table t1 modify column a int not null auto_increment;
SET SQL_MODE='';
select * from t1 order by a;
select * from t1 order by a;
a b
a b
0 1
0 1
...
...
mysql-test/t/ndb_alter_table.test
View file @
b40082ce
...
@@ -95,7 +95,9 @@ CREATE TABLE t1 (
...
@@ -95,7 +95,9 @@ CREATE TABLE t1 (
INSERT
INTO
t1
VALUES
(
0
,
1
),(
17
,
18
);
INSERT
INTO
t1
VALUES
(
0
,
1
),(
17
,
18
);
select
*
from
t1
order
by
a
;
select
*
from
t1
order
by
a
;
SET
SQL_MODE
=
NO_AUTO_VALUE_ON_ZERO
;
alter
table
t1
modify
column
a
int
not
null
auto_increment
;
alter
table
t1
modify
column
a
int
not
null
auto_increment
;
SET
SQL_MODE
=
''
;
select
*
from
t1
order
by
a
;
select
*
from
t1
order
by
a
;
INSERT
INTO
t1
VALUES
(
0
,
19
),(
20
,
21
);
INSERT
INTO
t1
VALUES
(
0
,
19
),(
20
,
21
);
select
*
from
t1
order
by
a
;
select
*
from
t1
order
by
a
;
...
...
sql/ha_innodb.cc
View file @
b40082ce
...
@@ -20,10 +20,6 @@ NOTE: You can only use noninlined InnoDB functions in this file, because we
...
@@ -20,10 +20,6 @@ NOTE: You can only use noninlined InnoDB functions in this file, because we
have disables the InnoDB inlining in this file. */
have disables the InnoDB inlining in this file. */
/* TODO list for the InnoDB handler in 4.1:
/* TODO list for the InnoDB handler in 4.1:
- Check if the query_id is now right also in prepared and executed stats
in build_template()
- Add multi-language char set support to CREATE TABLE and the comparison
of strings
- Find out what kind of problems the OS X case-insensitivity causes to
- Find out what kind of problems the OS X case-insensitivity causes to
table and database names; should we 'normalize' the names like we do
table and database names; should we 'normalize' the names like we do
in Windows?
in Windows?
...
@@ -2130,11 +2126,6 @@ build_template(
...
@@ -2130,11 +2126,6 @@ build_template(
templ
=
prebuilt
->
mysql_template
+
n_requested_fields
;
templ
=
prebuilt
->
mysql_template
+
n_requested_fields
;
field
=
table
->
field
[
i
];
field
=
table
->
field
[
i
];
/* TODO: Check if the query_id is now right also in prepared
and executed SQL statements. Previously, MySQL-4.1 failed to
update field->query_id so that the formula
thd->query_id == field->query_id did not work. */
if
(
templ_type
==
ROW_MYSQL_REC_FIELDS
if
(
templ_type
==
ROW_MYSQL_REC_FIELDS
&&
!
(
fetch_all_in_key
&&
!
(
fetch_all_in_key
&&
dict_index_contains_col_or_prefix
(
index
,
i
))
&&
dict_index_contains_col_or_prefix
(
index
,
i
))
...
@@ -4727,23 +4718,41 @@ ha_innobase::start_stmt(
...
@@ -4727,23 +4718,41 @@ ha_innobase::start_stmt(
prepared for an update of a row */
prepared for an update of a row */
prebuilt
->
select_lock_type
=
LOCK_X
;
prebuilt
->
select_lock_type
=
LOCK_X
;
}
else
{
}
else
{
if
(
thd
->
lex
->
sql_command
==
SQLCOM_SELECT
if
(
trx
->
isolation_level
!=
TRX_ISO_SERIALIZABLE
&&
thd
->
lex
->
lock_option
==
TL_READ
)
{
&&
thd
->
lex
->
sql_command
==
SQLCOM_SELECT
&&
thd
->
lex
->
lock_option
==
TL_READ
)
{
/* For other than temporary tables, we obtain
no lock for consistent read (plain SELECT) */
prebuilt
->
select_lock_type
=
LOCK_NONE
;
}
else
{
/* Not a consistent read: use LOCK_X as the
select_lock_type value (TODO: how could we know
whether it should be LOCK_S, LOCK_X, or LOCK_NONE?) */
prebuilt
->
select_lock_type
=
LOCK_X
;
}
}
/* For other than temporary tables, we obtain
no lock for consistent read (plain SELECT). */
prebuilt
->
select_lock_type
=
LOCK_NONE
;
}
else
{
/* Not a consistent read: restore the
select_lock_type value. The value of
stored_select_lock_type was decided in:
1) ::store_lock(),
2) ::external_lock(), and
3) ::init_table_handle_for_HANDLER(). */
prebuilt
->
select_lock_type
=
prebuilt
->
stored_select_lock_type
;
}
if
(
prebuilt
->
stored_select_lock_type
!=
LOCK_S
&&
prebuilt
->
stored_select_lock_type
!=
LOCK_X
)
{
fprintf
(
stderr
,
"InnoDB: Error: stored_select_lock_type is %lu inside ::start_stmt()!
\n
"
,
prebuilt
->
stored_select_lock_type
);
/* Set the value to LOCK_X: this is just fault
tolerance, we do not know what the correct value
should be! */
prebuilt
->
select_lock_type
=
LOCK_X
;
}
}
/* Set the MySQL flag to mark that there is an active transaction */
/* Set the MySQL flag to mark that there is an active transaction */
thd
->
transaction
.
all
.
innodb_active_trans
=
1
;
thd
->
transaction
.
all
.
innodb_active_trans
=
1
;
...
@@ -5258,14 +5267,14 @@ ha_innobase::get_auto_increment()
...
@@ -5258,14 +5267,14 @@ ha_innobase::get_auto_increment()
}
}
/***********************************************************************
/***********************************************************************
This function stores
binlog offset and flushes logs
*/
This function stores
the binlog offset and flushes logs.
*/
void
void
innobase_store_binlog_offset_and_flush_log
(
innobase_store_binlog_offset_and_flush_log
(
/*=============================*/
/*=============================
==========
*/
char
*
binlog_name
,
/* in: binlog name */
char
*
binlog_name
,
/* in: binlog name */
longlong
offset
/* in: binlog offset */
longlong
offset
)
/* in: binlog offset */
)
{
{
mtr_t
mtr
;
mtr_t
mtr
;
assert
(
binlog_name
!=
NULL
);
assert
(
binlog_name
!=
NULL
);
...
@@ -5274,7 +5283,7 @@ innobase_store_binlog_offset_and_flush_log(
...
@@ -5274,7 +5283,7 @@ innobase_store_binlog_offset_and_flush_log(
mtr_start_noninline
(
&
mtr
);
mtr_start_noninline
(
&
mtr
);
/* Update the latest MySQL binlog name and offset info
/* Update the latest MySQL binlog name and offset info
in trx sys header */
in trx sys header */
trx_sys_update_mysql_binlog_offset
(
trx_sys_update_mysql_binlog_offset
(
binlog_name
,
binlog_name
,
...
@@ -5288,18 +5297,19 @@ innobase_store_binlog_offset_and_flush_log(
...
@@ -5288,18 +5297,19 @@ innobase_store_binlog_offset_and_flush_log(
log_buffer_flush_to_disk
();
log_buffer_flush_to_disk
();
}
}
char
*
ha_innobase
::
get_mysql_bin_log_name
()
char
*
ha_innobase
::
get_mysql_bin_log_name
()
{
{
return
trx_sys_mysql_bin_log_name
;
return
(
trx_sys_mysql_bin_log_name
)
;
}
}
ulonglong
ha_innobase
::
get_mysql_bin_log_pos
()
ulonglong
ha_innobase
::
get_mysql_bin_log_pos
()
{
{
/*
/* trx... is ib_longlong, which is a typedef for a 64-bit integer
trx... is ib_longlong, which is a typedef for a 64-bit integer (__int64 or
(__int64 or longlong) so it's ok to cast it to ulonglong. */
longlong) so it's ok to cast it to ulonglong.
*/
return
(
trx_sys_mysql_bin_log_pos
);
return
trx_sys_mysql_bin_log_pos
;
}
}
extern
"C"
{
extern
"C"
{
...
...
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