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
424857e0
Commit
424857e0
authored
Sep 18, 2006
by
acurtis/antony@ltamd64.xiphis.org
Browse files
Options
Browse Files
Download
Plain Diff
Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into xiphis.org:/home/antony/work2/engines-merge
parents
bb859ecd
f53f015b
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
269 additions
and
19 deletions
+269
-19
include/my_base.h
include/my_base.h
+3
-1
mysql-test/include/strict_autoinc.inc
mysql-test/include/strict_autoinc.inc
+28
-0
mysql-test/r/strict_autoinc_1myisam.result
mysql-test/r/strict_autoinc_1myisam.result
+27
-0
mysql-test/r/strict_autoinc_2innodb.result
mysql-test/r/strict_autoinc_2innodb.result
+27
-0
mysql-test/r/strict_autoinc_3heap.result
mysql-test/r/strict_autoinc_3heap.result
+27
-0
mysql-test/r/strict_autoinc_4bdb.result
mysql-test/r/strict_autoinc_4bdb.result
+27
-0
mysql-test/r/strict_autoinc_5ndb.result
mysql-test/r/strict_autoinc_5ndb.result
+27
-0
mysql-test/t/strict_autoinc_1myisam.test
mysql-test/t/strict_autoinc_1myisam.test
+8
-0
mysql-test/t/strict_autoinc_2innodb.test
mysql-test/t/strict_autoinc_2innodb.test
+10
-0
mysql-test/t/strict_autoinc_3heap.test
mysql-test/t/strict_autoinc_3heap.test
+8
-0
mysql-test/t/strict_autoinc_4bdb.test
mysql-test/t/strict_autoinc_4bdb.test
+10
-0
mysql-test/t/strict_autoinc_5ndb.test
mysql-test/t/strict_autoinc_5ndb.test
+10
-0
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+3
-1
sql/handler.cc
sql/handler.cc
+21
-6
sql/handler.h
sql/handler.h
+1
-1
sql/share/errmsg.txt
sql/share/errmsg.txt
+2
-0
storage/heap/ha_heap.cc
storage/heap/ha_heap.cc
+4
-1
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.cc
+2
-1
storage/myisam/ha_myisam.cc
storage/myisam/ha_myisam.cc
+5
-1
storage/myisam/mi_packrec.c
storage/myisam/mi_packrec.c
+14
-6
storage/myisammrg/ha_myisammrg.cc
storage/myisammrg/ha_myisammrg.cc
+5
-1
No files found.
include/my_base.h
View file @
424857e0
...
@@ -372,7 +372,9 @@ enum ha_base_keytype {
...
@@ -372,7 +372,9 @@ enum ha_base_keytype {
#define HA_ERR_TABLE_NEEDS_UPGRADE 164
/* The table changed in storage engine */
#define HA_ERR_TABLE_NEEDS_UPGRADE 164
/* The table changed in storage engine */
#define HA_ERR_TABLE_READONLY 165
/* The table is not writable */
#define HA_ERR_TABLE_READONLY 165
/* The table is not writable */
#define HA_ERR_LAST 165
/*Copy last error nr.*/
#define HA_ERR_AUTOINC_READ_FAILED 166
/* Failed to get the next autoinc value */
#define HA_ERR_AUTOINC_ERANGE 167
/* Failed to set the row autoinc value */
#define HA_ERR_LAST 167
/*Copy last error nr.*/
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
...
...
mysql-test/include/strict_autoinc.inc
0 → 100644
View file @
424857e0
#
# Test for strict-mode autoincrement
#
set
@
org_mode
=@@
sql_mode
;
eval
create
table
t1
(
`a`
tinyint
(
4
)
NOT
NULL
auto_increment
,
primary
key
(
`a`
)
)
engine
=
$type
;
set
@@
sql_mode
=
'strict_all_tables'
;
--
error
ER_WARN_DATA_OUT_OF_RANGE
insert
into
t1
values
(
1000
);
select
count
(
*
)
from
t1
;
set
auto_increment_increment
=
1000
;
set
auto_increment_offset
=
700
;
--
error
ER_WARN_DATA_OUT_OF_RANGE
insert
into
t1
values
(
null
);
select
count
(
*
)
from
t1
;
set
@@
sql_mode
=@
org_mode
;
insert
into
t1
values
(
null
);
select
*
from
t1
;
drop
table
t1
;
# End of test
mysql-test/r/strict_autoinc_1myisam.result
0 → 100644
View file @
424857e0
set @org_mode=@@sql_mode;
create table t1
(
`a` tinyint(4) NOT NULL auto_increment,
primary key (`a`)
) engine = 'MYISAM' ;
set @@sql_mode='strict_all_tables';
insert into t1 values(1000);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set auto_increment_increment=1000;
set auto_increment_offset=700;
insert into t1 values(null);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set @@sql_mode=@org_mode;
insert into t1 values(null);
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
127
drop table t1;
mysql-test/r/strict_autoinc_2innodb.result
0 → 100644
View file @
424857e0
set @org_mode=@@sql_mode;
create table t1
(
`a` tinyint(4) NOT NULL auto_increment,
primary key (`a`)
) engine = 'InnoDB' ;
set @@sql_mode='strict_all_tables';
insert into t1 values(1000);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set auto_increment_increment=1000;
set auto_increment_offset=700;
insert into t1 values(null);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set @@sql_mode=@org_mode;
insert into t1 values(null);
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
127
drop table t1;
mysql-test/r/strict_autoinc_3heap.result
0 → 100644
View file @
424857e0
set @org_mode=@@sql_mode;
create table t1
(
`a` tinyint(4) NOT NULL auto_increment,
primary key (`a`)
) engine = 'MEMORY' ;
set @@sql_mode='strict_all_tables';
insert into t1 values(1000);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set auto_increment_increment=1000;
set auto_increment_offset=700;
insert into t1 values(null);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set @@sql_mode=@org_mode;
insert into t1 values(null);
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
127
drop table t1;
mysql-test/r/strict_autoinc_4bdb.result
0 → 100644
View file @
424857e0
set @org_mode=@@sql_mode;
create table t1
(
`a` tinyint(4) NOT NULL auto_increment,
primary key (`a`)
) engine = 'BDB' ;
set @@sql_mode='strict_all_tables';
insert into t1 values(1000);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set auto_increment_increment=1000;
set auto_increment_offset=700;
insert into t1 values(null);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set @@sql_mode=@org_mode;
insert into t1 values(null);
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
127
drop table t1;
mysql-test/r/strict_autoinc_5ndb.result
0 → 100644
View file @
424857e0
set @org_mode=@@sql_mode;
create table t1
(
`a` tinyint(4) NOT NULL auto_increment,
primary key (`a`)
) engine = 'NDB' ;
set @@sql_mode='strict_all_tables';
insert into t1 values(1000);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set auto_increment_increment=1000;
set auto_increment_offset=700;
insert into t1 values(null);
ERROR 22003: Out of range value adjusted for column 'a' at row 1
select count(*) from t1;
count(*)
0
set @@sql_mode=@org_mode;
insert into t1 values(null);
Warnings:
Warning 1264 Out of range value adjusted for column 'a' at row 1
select * from t1;
a
127
drop table t1;
mysql-test/t/strict_autoinc_1myisam.test
0 → 100644
View file @
424857e0
#
# Bug#20573 Strict mode auto-increment
#
let
$type
=
'MYISAM'
;
--
source
include
/
strict_autoinc
.
inc
# end of test
mysql-test/t/strict_autoinc_2innodb.test
0 → 100644
View file @
424857e0
--
source
include
/
have_innodb
.
inc
#
# Bug#20573 Strict mode auto-increment
#
let
$type
=
'InnoDB'
;
--
source
include
/
strict_autoinc
.
inc
# end of test
mysql-test/t/strict_autoinc_3heap.test
0 → 100644
View file @
424857e0
#
# Bug#20573 Strict mode auto-increment
#
let
$type
=
'MEMORY'
;
--
source
include
/
strict_autoinc
.
inc
# end of test
mysql-test/t/strict_autoinc_4bdb.test
0 → 100644
View file @
424857e0
--
source
include
/
have_bdb
.
inc
#
# Bug#20573 Strict mode auto-increment
#
let
$type
=
'BDB'
;
--
source
include
/
strict_autoinc
.
inc
# end of test
mysql-test/t/strict_autoinc_5ndb.test
0 → 100644
View file @
424857e0
--
source
include
/
have_ndb
.
inc
#
# Bug#20573 Strict mode auto-increment
#
let
$type
=
'NDB'
;
--
source
include
/
strict_autoinc
.
inc
# end of test
sql/ha_ndbcluster.cc
View file @
424857e0
...
@@ -2486,9 +2486,11 @@ int ha_ndbcluster::write_row(byte *record)
...
@@ -2486,9 +2486,11 @@ int ha_ndbcluster::write_row(byte *record)
if
(
has_auto_increment
)
if
(
has_auto_increment
)
{
{
THD
*
thd
=
table
->
in_use
;
THD
*
thd
=
table
->
in_use
;
int
error
;
m_skip_auto_increment
=
FALSE
;
m_skip_auto_increment
=
FALSE
;
update_auto_increment
();
if
((
error
=
update_auto_increment
()))
DBUG_RETURN
(
error
);
m_skip_auto_increment
=
(
insert_id_for_cur_row
==
0
);
m_skip_auto_increment
=
(
insert_id_for_cur_row
==
0
);
}
}
}
}
...
...
sql/handler.cc
View file @
424857e0
...
@@ -332,6 +332,8 @@ static int ha_init_errors(void)
...
@@ -332,6 +332,8 @@ static int ha_init_errors(void)
SETMSG
(
HA_ERR_FOREIGN_DUPLICATE_KEY
,
"FK constraint would lead to duplicate key"
);
SETMSG
(
HA_ERR_FOREIGN_DUPLICATE_KEY
,
"FK constraint would lead to duplicate key"
);
SETMSG
(
HA_ERR_TABLE_NEEDS_UPGRADE
,
ER
(
ER_TABLE_NEEDS_UPGRADE
));
SETMSG
(
HA_ERR_TABLE_NEEDS_UPGRADE
,
ER
(
ER_TABLE_NEEDS_UPGRADE
));
SETMSG
(
HA_ERR_TABLE_READONLY
,
ER
(
ER_OPEN_AS_READONLY
));
SETMSG
(
HA_ERR_TABLE_READONLY
,
ER
(
ER_OPEN_AS_READONLY
));
SETMSG
(
HA_ERR_AUTOINC_READ_FAILED
,
ER
(
ER_AUTOINC_READ_FAILED
));
SETMSG
(
HA_ERR_AUTOINC_ERANGE
,
ER
(
ER_WARN_DATA_OUT_OF_RANGE
));
/* Register the error messages for use with my_error(). */
/* Register the error messages for use with my_error(). */
return
my_error_register
(
errmsgs
,
HA_ERR_FIRST
,
HA_ERR_LAST
);
return
my_error_register
(
errmsgs
,
HA_ERR_FIRST
,
HA_ERR_LAST
);
...
@@ -1656,7 +1658,10 @@ prev_insert_id(ulonglong nr, struct system_variables *variables)
...
@@ -1656,7 +1658,10 @@ prev_insert_id(ulonglong nr, struct system_variables *variables)
RETURN
RETURN
0 ok
0 ok
1 get_auto_increment() was called and returned ~(ulonglong) 0
HA_ERR_AUTOINC_READ_FAILED
get_auto_increment() was called and returned ~(ulonglong) 0
HA_ERR_AUTOINC_ERANGE
storing value in field caused strict mode failure.
IMPLEMENTATION
IMPLEMENTATION
...
@@ -1725,14 +1730,13 @@ prev_insert_id(ulonglong nr, struct system_variables *variables)
...
@@ -1725,14 +1730,13 @@ prev_insert_id(ulonglong nr, struct system_variables *variables)
#define AUTO_INC_DEFAULT_NB_MAX_BITS 16
#define AUTO_INC_DEFAULT_NB_MAX_BITS 16
#define AUTO_INC_DEFAULT_NB_MAX ((1 << AUTO_INC_DEFAULT_NB_MAX_BITS) - 1)
#define AUTO_INC_DEFAULT_NB_MAX ((1 << AUTO_INC_DEFAULT_NB_MAX_BITS) - 1)
bool
handler
::
update_auto_increment
()
int
handler
::
update_auto_increment
()
{
{
ulonglong
nr
,
nb_reserved_values
;
ulonglong
nr
,
nb_reserved_values
;
bool
append
=
FALSE
;
bool
append
=
FALSE
;
THD
*
thd
=
table
->
in_use
;
THD
*
thd
=
table
->
in_use
;
struct
system_variables
*
variables
=
&
thd
->
variables
;
struct
system_variables
*
variables
=
&
thd
->
variables
;
bool
auto_increment_field_not_null
;
bool
auto_increment_field_not_null
;
bool
result
=
0
;
DBUG_ENTER
(
"handler::update_auto_increment"
);
DBUG_ENTER
(
"handler::update_auto_increment"
);
/*
/*
...
@@ -1809,7 +1813,7 @@ bool handler::update_auto_increment()
...
@@ -1809,7 +1813,7 @@ bool handler::update_auto_increment()
nb_desired_values
,
&
nr
,
nb_desired_values
,
&
nr
,
&
nb_reserved_values
);
&
nb_reserved_values
);
if
(
nr
==
~
(
ulonglong
)
0
)
if
(
nr
==
~
(
ulonglong
)
0
)
result
=
1
;
// Mark failure
DBUG_RETURN
(
HA_ERR_AUTOINC_READ_FAILED
);
// Mark failure
/*
/*
That rounding below should not be needed when all engines actually
That rounding below should not be needed when all engines actually
...
@@ -1843,6 +1847,12 @@ bool handler::update_auto_increment()
...
@@ -1843,6 +1847,12 @@ bool handler::update_auto_increment()
if
(
unlikely
(
table
->
next_number_field
->
store
((
longlong
)
nr
,
TRUE
)))
if
(
unlikely
(
table
->
next_number_field
->
store
((
longlong
)
nr
,
TRUE
)))
{
{
/*
first test if the query was aborted due to strict mode constraints
*/
if
(
thd
->
killed
==
THD
::
KILL_BAD_DATA
)
DBUG_RETURN
(
HA_ERR_AUTOINC_ERANGE
);
/*
/*
field refused this value (overflow) and truncated it, use the result of
field refused this value (overflow) and truncated it, use the result of
the truncation (which is going to be inserted); however we try to
the truncation (which is going to be inserted); however we try to
...
@@ -1865,7 +1875,6 @@ bool handler::update_auto_increment()
...
@@ -1865,7 +1875,6 @@ bool handler::update_auto_increment()
thd
->
auto_inc_intervals_in_cur_stmt_for_binlog
.
append
(
auto_inc_interval_for_cur_row
.
minimum
(),
thd
->
auto_inc_intervals_in_cur_stmt_for_binlog
.
append
(
auto_inc_interval_for_cur_row
.
minimum
(),
auto_inc_interval_for_cur_row
.
values
(),
auto_inc_interval_for_cur_row
.
values
(),
variables
->
auto_increment_increment
);
variables
->
auto_increment_increment
);
}
/*
/*
Record this autogenerated value. If the caller then
Record this autogenerated value. If the caller then
...
@@ -1881,7 +1890,7 @@ bool handler::update_auto_increment()
...
@@ -1881,7 +1890,7 @@ bool handler::update_auto_increment()
*/
*/
set_next_insert_id
(
compute_next_insert_id
(
nr
,
variables
));
set_next_insert_id
(
compute_next_insert_id
(
nr
,
variables
));
DBUG_RETURN
(
result
);
DBUG_RETURN
(
result
?
/* some failure occurred */
-
1
:
0
);
}
}
...
@@ -2176,6 +2185,12 @@ void handler::print_error(int error, myf errflag)
...
@@ -2176,6 +2185,12 @@ void handler::print_error(int error, myf errflag)
case
HA_ERR_TABLE_READONLY
:
case
HA_ERR_TABLE_READONLY
:
textno
=
ER_OPEN_AS_READONLY
;
textno
=
ER_OPEN_AS_READONLY
;
break
;
break
;
case
HA_ERR_AUTOINC_READ_FAILED
:
textno
=
ER_AUTOINC_READ_FAILED
;
break
;
case
HA_ERR_AUTOINC_ERANGE
:
textno
=
ER_WARN_DATA_OUT_OF_RANGE
;
break
;
default:
default:
{
{
/* The error was "unknown" to this function.
/* The error was "unknown" to this function.
...
...
sql/handler.h
View file @
424857e0
...
@@ -990,7 +990,7 @@ public:
...
@@ -990,7 +990,7 @@ public:
ulong
type
,
TABLE
*
table
);
ulong
type
,
TABLE
*
table
);
int
ha_open
(
TABLE
*
table
,
const
char
*
name
,
int
mode
,
int
test_if_locked
);
int
ha_open
(
TABLE
*
table
,
const
char
*
name
,
int
mode
,
int
test_if_locked
);
void
adjust_next_insert_id_after_explicit_value
(
ulonglong
nr
);
void
adjust_next_insert_id_after_explicit_value
(
ulonglong
nr
);
bool
update_auto_increment
();
int
update_auto_increment
();
void
print_keydup_error
(
uint
key_nr
,
const
char
*
msg
);
void
print_keydup_error
(
uint
key_nr
,
const
char
*
msg
);
virtual
void
print_error
(
int
error
,
myf
errflag
);
virtual
void
print_error
(
int
error
,
myf
errflag
);
virtual
bool
get_error_message
(
int
error
,
String
*
buf
);
virtual
bool
get_error_message
(
int
error
,
String
*
buf
);
...
...
sql/share/errmsg.txt
View file @
424857e0
...
@@ -5984,6 +5984,8 @@ ER_EVENTS_DB_ERROR
...
@@ -5984,6 +5984,8 @@ ER_EVENTS_DB_ERROR
eng "Cannot proceed because the tables used by events were found damaged at server start"
eng "Cannot proceed because the tables used by events were found damaged at server start"
ER_ONLY_INTEGERS_ALLOWED
ER_ONLY_INTEGERS_ALLOWED
eng "Only normal integers allowed as number here"
eng "Only normal integers allowed as number here"
ER_AUTOINC_READ_FAILED
eng "Failed to read auto-increment value from storage engine"
ER_USERNAME
ER_USERNAME
eng "user name"
eng "user name"
ER_HOSTNAME
ER_HOSTNAME
...
...
storage/heap/ha_heap.cc
View file @
424857e0
...
@@ -176,7 +176,10 @@ int ha_heap::write_row(byte * buf)
...
@@ -176,7 +176,10 @@ int ha_heap::write_row(byte * buf)
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_INSERT
)
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_INSERT
)
table
->
timestamp_field
->
set_time
();
table
->
timestamp_field
->
set_time
();
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
update_auto_increment
();
{
if
((
res
=
update_auto_increment
()))
return
res
;
}
res
=
heap_write
(
file
,
buf
);
res
=
heap_write
(
file
,
buf
);
if
(
!
res
&&
(
++
records_changed
*
HEAP_STATS_UPDATE_THRESHOLD
>
if
(
!
res
&&
(
++
records_changed
*
HEAP_STATS_UPDATE_THRESHOLD
>
file
->
s
->
records
))
file
->
s
->
records
))
...
...
storage/innobase/handler/ha_innodb.cc
View file @
424857e0
...
@@ -3401,7 +3401,8 @@ no_commit:
...
@@ -3401,7 +3401,8 @@ no_commit:
/* We must use the handler code to update the auto-increment
/* We must use the handler code to update the auto-increment
value to be sure that we increment it correctly. */
value to be sure that we increment it correctly. */
update_auto_increment
();
if
((
error
=
update_auto_increment
()))
goto
func_exit
;
auto_inc_used
=
1
;
auto_inc_used
=
1
;
}
}
...
...
storage/myisam/ha_myisam.cc
View file @
424857e0
...
@@ -343,7 +343,11 @@ int ha_myisam::write_row(byte * buf)
...
@@ -343,7 +343,11 @@ int ha_myisam::write_row(byte * buf)
or a new row, then update the auto_increment value in the record.
or a new row, then update the auto_increment value in the record.
*/
*/
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
update_auto_increment
();
{
int
error
;
if
((
error
=
update_auto_increment
()))
return
error
;
}
return
mi_write
(
file
,
buf
);
return
mi_write
(
file
,
buf
);
}
}
...
...
storage/myisam/mi_packrec.c
View file @
424857e0
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
/* Functions to compressed records */
/* Functions to compressed records */
#include "
myisamdef
.h"
#include "
fulltext
.h"
#define IS_CHAR ((uint) 32768)
/* Bit if char (not offset) in tree */
#define IS_CHAR ((uint) 32768)
/* Bit if char (not offset) in tree */
...
@@ -230,11 +230,19 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
...
@@ -230,11 +230,19 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
{
{
for
(
i
=
0
;
i
<
share
->
base
.
keys
;
i
++
)
for
(
i
=
0
;
i
<
share
->
base
.
keys
;
i
++
)
{
{
share
->
keyinfo
[
i
].
keylength
+=
(
uint16
)
diff_length
;
MI_KEYDEF
*
keyinfo
=
&
share
->
keyinfo
[
i
];
share
->
keyinfo
[
i
].
minlength
+=
(
uint16
)
diff_length
;
keyinfo
->
keylength
+=
(
uint16
)
diff_length
;
share
->
keyinfo
[
i
].
maxlength
+=
(
uint16
)
diff_length
;
keyinfo
->
minlength
+=
(
uint16
)
diff_length
;
share
->
keyinfo
[
i
].
seg
[
share
->
keyinfo
[
i
].
keysegs
].
length
=
keyinfo
->
maxlength
+=
(
uint16
)
diff_length
;
(
uint16
)
rec_reflength
;
keyinfo
->
seg
[
keyinfo
->
flag
&
HA_FULLTEXT
?
FT_SEGS
:
keyinfo
->
keysegs
].
length
=
(
uint16
)
rec_reflength
;
}
if
(
share
->
ft2_keyinfo
.
seg
)
{
MI_KEYDEF
*
ft2_keyinfo
=
&
share
->
ft2_keyinfo
;
ft2_keyinfo
->
keylength
+=
(
uint16
)
diff_length
;
ft2_keyinfo
->
minlength
+=
(
uint16
)
diff_length
;
ft2_keyinfo
->
maxlength
+=
(
uint16
)
diff_length
;
}
}
}
}
...
...
storage/myisammrg/ha_myisammrg.cc
View file @
424857e0
...
@@ -126,7 +126,11 @@ int ha_myisammrg::write_row(byte * buf)
...
@@ -126,7 +126,11 @@ int ha_myisammrg::write_row(byte * buf)
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_INSERT
)
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_INSERT
)
table
->
timestamp_field
->
set_time
();
table
->
timestamp_field
->
set_time
();
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
if
(
table
->
next_number_field
&&
buf
==
table
->
record
[
0
])
update_auto_increment
();
{
int
error
;
if
((
error
=
update_auto_increment
()))
return
error
;
}
return
myrg_write
(
file
,
buf
);
return
myrg_write
(
file
,
buf
);
}
}
...
...
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