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
fe5e05cd
Commit
fe5e05cd
authored
Jan 17, 2003
by
Sinisa@sinisa.nasamreza.org
Browse files
Options
Browse Files
Download
Plain Diff
Merge sinisa@work.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
parents
2325a5f6
19e81a98
Changes
25
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
343 additions
and
76 deletions
+343
-76
include/my_global.h
include/my_global.h
+7
-0
include/my_pthread.h
include/my_pthread.h
+6
-2
innobase/btr/btr0btr.c
innobase/btr/btr0btr.c
+1
-6
innobase/btr/btr0cur.c
innobase/btr/btr0cur.c
+8
-2
innobase/include/btr0btr.h
innobase/include/btr0btr.h
+9
-0
innobase/include/btr0cur.h
innobase/include/btr0cur.h
+7
-1
innobase/row/row0purge.c
innobase/row/row0purge.c
+11
-0
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+4
-0
innobase/trx/trx0trx.c
innobase/trx/trx0trx.c
+2
-2
myisam/myisamchk.c
myisam/myisamchk.c
+3
-3
mysql-test/r/merge.result
mysql-test/r/merge.result
+2
-2
mysql-test/r/null.result
mysql-test/r/null.result
+36
-0
mysql-test/r/rpl_loaddata.result
mysql-test/r/rpl_loaddata.result
+13
-0
mysql-test/std_data/rpl_loaddata.dat
mysql-test/std_data/rpl_loaddata.dat
+2
-0
mysql-test/t/merge.test
mysql-test/t/merge.test
+1
-1
mysql-test/t/null.test
mysql-test/t/null.test
+31
-0
mysql-test/t/rpl_loaddata.test
mysql-test/t/rpl_loaddata.test
+16
-0
mysql-test/t/rpl_log-master.opt
mysql-test/t/rpl_log-master.opt
+1
-0
sql/field_conv.cc
sql/field_conv.cc
+9
-0
sql/ha_innodb.cc
sql/ha_innodb.cc
+140
-48
sql/ha_myisammrg.cc
sql/ha_myisammrg.cc
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+1
-1
sql/opt_sum.cc
sql/opt_sum.cc
+3
-4
sql/sql_handler.cc
sql/sql_handler.cc
+4
-2
sql/sql_load.cc
sql/sql_load.cc
+25
-1
No files found.
include/my_global.h
View file @
fe5e05cd
...
...
@@ -153,6 +153,13 @@ C_MODE_END
#undef HAVE_INITGROUPS
#endif
/* gcc/egcs issues */
#if defined(__GNUC) && defined(__EXCEPTIONS)
#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile"
#endif
/* Fix a bug in gcc 2.8.0 on IRIX 6.2 */
#if SIZEOF_LONG == 4 && defined(__LONG_MAX__)
#undef __LONG_MAX__
/* Is a longlong value in gcc 2.8.0 ??? */
...
...
include/my_pthread.h
View file @
fe5e05cd
...
...
@@ -581,9 +581,13 @@ extern int pthread_dummy(int);
#define THREAD_NAME_SIZE 10
#if defined(__ia64__)
#define DEFAULT_THREAD_STACK (128*1024)
/*
MySQL can survive with 32K, but some glibc libraries require > 128K stack
To resolve hostnames
*/
#define DEFAULT_THREAD_STACK (192*1024L)
#else
#define DEFAULT_THREAD_STACK (
64*1024
)
#define DEFAULT_THREAD_STACK (
192*1024L
)
#endif
struct
st_my_thread_var
...
...
innobase/btr/btr0btr.c
View file @
fe5e05cd
...
...
@@ -135,7 +135,7 @@ btr_page_insert_fits(
/******************************************************************
Gets the root node of a tree and x-latches it. */
static
page_t
*
btr_root_get
(
/*=========*/
...
...
@@ -146,9 +146,6 @@ btr_root_get(
ulint
space
;
ulint
root_page_no
;
page_t
*
root
;
ut_ad
(
mtr_memo_contains
(
mtr
,
dict_tree_get_lock
(
tree
),
MTR_MEMO_X_LOCK
)
||
mtr_memo_contains
(
mtr
,
dict_tree_get_lock
(
tree
),
MTR_MEMO_S_LOCK
));
space
=
dict_tree_get_space
(
tree
);
root_page_no
=
dict_tree_get_page
(
tree
);
...
...
@@ -334,8 +331,6 @@ btr_page_alloc(
page_t
*
new_page
;
ulint
new_page_no
;
ut_ad
(
mtr_memo_contains
(
mtr
,
dict_tree_get_lock
(
tree
),
MTR_MEMO_X_LOCK
));
if
(
tree
->
type
&
DICT_IBUF
)
{
return
(
btr_page_alloc_for_ibuf
(
tree
,
mtr
));
...
...
innobase/btr/btr0cur.c
View file @
fe5e05cd
...
...
@@ -3180,7 +3180,7 @@ btr_store_big_rec_extern_fields(
ut_ad
(
mtr_memo_contains
(
local_mtr
,
dict_tree_get_lock
(
index
->
tree
),
MTR_MEMO_X_LOCK
));
ut_ad
(
mtr_memo_contains
(
local_mtr
,
buf_block_align
(
data
),
ut_ad
(
mtr_memo_contains
(
local_mtr
,
buf_block_align
(
rec
),
MTR_MEMO_PAGE_X_FIX
));
ut_a
(
index
->
type
&
DICT_CLUSTERED
);
...
...
@@ -3315,7 +3315,13 @@ void
btr_free_externally_stored_field
(
/*=============================*/
dict_index_t
*
index
,
/* in: index of the data, the index
tree MUST be X-latched */
tree MUST be X-latched; if the tree
height is 1, then also the root page
must be X-latched! (this is relevant
in the case this function is called
from purge where 'data' is located on
an undo log page, not an index
page) */
byte
*
data
,
/* in: internally stored data
+ reference to the externally
stored part */
...
...
innobase/include/btr0btr.h
View file @
fe5e05cd
...
...
@@ -55,6 +55,15 @@ UNIQUE definition on secondary indexes when we decide if we can use the
insert buffer to speed up inserts */
#define BTR_IGNORE_SEC_UNIQUE 2048
/******************************************************************
Gets the root node of a tree and x-latches it. */
page_t
*
btr_root_get
(
/*=========*/
/* out: root page, x-latched */
dict_tree_t
*
tree
,
/* in: index tree */
mtr_t
*
mtr
);
/* in: mtr */
/******************************************************************
Gets a buffer page and declares its latching order level. */
UNIV_INLINE
...
...
innobase/include/btr0cur.h
View file @
fe5e05cd
...
...
@@ -507,7 +507,13 @@ void
btr_free_externally_stored_field
(
/*=============================*/
dict_index_t
*
index
,
/* in: index of the data, the index
tree MUST be X-latched */
tree MUST be X-latched; if the tree
height is 1, then also the root page
must be X-latched! (this is relevant
in the case this function is called
from purge where 'data' is located on
an undo log page, not an index
page) */
byte
*
data
,
/* in: internally stored data
+ reference to the externally
stored part */
...
...
innobase/row/row0purge.c
View file @
fe5e05cd
...
...
@@ -429,7 +429,18 @@ row_purge_upd_exist_or_extern(
index
=
dict_table_get_first_index
(
node
->
table
);
mtr_x_lock
(
dict_tree_get_lock
(
index
->
tree
),
&
mtr
);
/* NOTE: we must also acquire an X-latch to the
root page of the tree. We will need it when we
free pages from the tree. If the tree is of height 1,
the tree X-latch does NOT protect the root page,
because it is also a leaf page. Since we will have a
latch on an undo log page, we would break the
latching order if we would only later latch the
root page of such a tree! */
btr_root_get
(
index
->
tree
,
&
mtr
);
/* We assume in purge of externally stored fields
that the space id of the undo log record is 0! */
...
...
innobase/srv/srv0srv.c
View file @
fe5e05cd
...
...
@@ -1814,8 +1814,12 @@ srv_conc_enter_innodb(
/* Go to wait for the event; when a thread leaves InnoDB it will
release this thread */
trx
->
op_info
=
"waiting in InnoDB queue"
;
os_event_wait
(
slot
->
event
);
trx
->
op_info
=
""
;
os_fast_mutex_lock
(
&
srv_conc_mutex
);
srv_conc_n_waiting_threads
--
;
...
...
innobase/trx/trx0trx.c
View file @
fe5e05cd
...
...
@@ -1517,10 +1517,10 @@ trx_print(
#ifdef UNIV_LINUX
buf
+=
sprintf
(
buf
,
", process no %lu"
,
trx
->
mysql_process_no
);
#e
lse
#e
ndif
buf
+=
sprintf
(
buf
,
", OS thread id %lu"
,
os_thread_pf
(
trx
->
mysql_thread_id
));
#endif
if
(
ut_strlen
(
trx
->
op_info
)
>
0
)
{
buf
+=
sprintf
(
buf
,
" %s"
,
trx
->
op_info
);
}
...
...
myisam/myisamchk.c
View file @
fe5e05cd
...
...
@@ -129,7 +129,7 @@ int main(int argc, char **argv)
char
buff
[
22
],
buff2
[
22
];
if
(
!
(
check_param
.
testflag
&
T_SILENT
)
||
check_param
.
testflag
&
T_INFO
)
puts
(
"
\n
---------
\n
"
);
printf
(
"
\n
Total of all %d ISAM-files:
\n
Data records: %9s Deleted blocks: %9s
\n
"
,
check_param
.
total_files
,
llstr
(
check_param
.
total_records
,
buff
),
printf
(
"
\n
Total of all %d
My
ISAM-files:
\n
Data records: %9s Deleted blocks: %9s
\n
"
,
check_param
.
total_files
,
llstr
(
check_param
.
total_records
,
buff
),
llstr
(
check_param
.
total_deleted
,
buff2
));
}
free_defaults
(
default_argv
);
...
...
@@ -328,7 +328,7 @@ static void usage(void)
print_version
();
puts
(
"By Monty, for your professional use"
);
puts
(
"This software comes with NO WARRANTY: see the PUBLIC for details.
\n
"
);
puts
(
"Description, check and repair of ISAM tables."
);
puts
(
"Description, check and repair of
My
ISAM tables."
);
puts
(
"Used without options all tables on the command will be checked for errors"
);
printf
(
"Usage: %s [OPTIONS] tables[.MYI]
\n
"
,
my_progname
);
puts
(
"
\n
Global options:
\n
\
...
...
@@ -1674,7 +1674,7 @@ void mi_check_print_error(MI_CHECK *param, const char *fmt,...)
if
(
!
param
->
warning_printed
&&
!
param
->
error_printed
)
{
if
(
param
->
testflag
&
T_SILENT
)
fprintf
(
stderr
,
"%s: ISAM file %s
\n
"
,
my_progname
,
param
->
isam_file_name
);
fprintf
(
stderr
,
"%s:
My
ISAM file %s
\n
"
,
my_progname
,
param
->
isam_file_name
);
param
->
out_flag
|=
O_DATA_LOST
;
}
param
->
error_printed
|=
1
;
...
...
mysql-test/r/merge.result
View file @
fe5e05cd
...
...
@@ -258,7 +258,7 @@ t3 CREATE TABLE `t3` (
`othr` int(11) NOT NULL default '0'
) TYPE=MRG_MyISAM UNION=(t1,t2)
drop table t3,t2,t1;
create table t1 (a int not null) type=merge;
create table t1 (a int not null
, key(a)
) type=merge;
select * from t1;
a
drop table t1;
...
...
@@ -536,7 +536,7 @@ INSERT INTO t2 VALUES (1,2), (2,2);
CREATE TABLE t ( a int(11) NOT NULL default '0', b int(11) NOT NULL default '0', KEY a (a,b)) TYPE=MRG_MyISAM UNION=(t1,t2);
select max(b) from t where a = 2;
max(b)
NULL
2
select max(b) from t1 where a = 2;
max(b)
1
...
...
mysql-test/r/null.result
View file @
fe5e05cd
...
...
@@ -73,3 +73,39 @@ b ifnull(t2.b,"this is null")
NULL this is null
NULL this is null
drop table t1;
CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
UPDATE t1 SET d=1/NULL;
UPDATE t1 SET d=NULL;
INSERT INTO t1 (a) values (null);
Column 'a' cannot be null
INSERT INTO t1 (a) values (1/null);
Column 'a' cannot be null
INSERT INTO t1 (a) values (null),(null);
INSERT INTO t1 (b) values (null);
Column 'b' cannot be null
INSERT INTO t1 (b) values (1/null);
Column 'b' cannot be null
INSERT INTO t1 (b) values (null),(null);
INSERT INTO t1 (c) values (null);
Column 'c' cannot be null
INSERT INTO t1 (c) values (1/null);
Column 'c' cannot be null
INSERT INTO t1 (c) values (null),(null);
INSERT INTO t1 (d) values (null);
Column 'd' cannot be null
INSERT INTO t1 (d) values (1/null);
Column 'd' cannot be null
INSERT INTO t1 (d) values (null),(null);
select * from t1;
a b c d
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
0 0000-00-00 00:00:00 0
drop table t1;
mysql-test/r/rpl_loaddata.result
0 → 100644
View file @
fe5e05cd
slave stop;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
slave start;
create table t1(a int not null auto_increment, b int, primary key(a) );
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
select * from t1;
a b
1 10
2 15
drop table t1;
mysql-test/std_data/rpl_loaddata.dat
0 → 100644
View file @
fe5e05cd
\N 10
\N 15
mysql-test/t/merge.test
View file @
fe5e05cd
...
...
@@ -105,7 +105,7 @@ drop table t3,t2,t1;
#
# Test table without unions
#
create
table
t1
(
a
int
not
null
)
type
=
merge
;
create
table
t1
(
a
int
not
null
,
key
(
a
)
)
type
=
merge
;
select
*
from
t1
;
drop
table
t1
;
...
...
mysql-test/t/null.test
View file @
fe5e05cd
...
...
@@ -48,3 +48,34 @@ insert into t1 values(10,null);
select
t2
.
b
,
ifnull
(
t2
.
b
,
"this is null"
)
from
t1
as
t2
left
join
t1
as
t3
on
t2
.
b
=
t3
.
a
order
by
1
;
drop
table
t1
;
#
# Test inserting and updating with NULL
#
CREATE
TABLE
t1
(
a
varchar
(
16
)
NOT
NULL
,
b
smallint
(
6
)
NOT
NULL
,
c
datetime
NOT
NULL
,
d
smallint
(
6
)
NOT
NULL
);
INSERT
INTO
t1
SET
a
=
""
,
d
=
"2003-01-14 03:54:55"
;
UPDATE
t1
SET
d
=
1
/
NULL
;
UPDATE
t1
SET
d
=
NULL
;
--
error
1048
INSERT
INTO
t1
(
a
)
values
(
null
);
--
error
1048
INSERT
INTO
t1
(
a
)
values
(
1
/
null
);
INSERT
INTO
t1
(
a
)
values
(
null
),(
null
);
--
error
1048
INSERT
INTO
t1
(
b
)
values
(
null
);
--
error
1048
INSERT
INTO
t1
(
b
)
values
(
1
/
null
);
INSERT
INTO
t1
(
b
)
values
(
null
),(
null
);
--
error
1048
INSERT
INTO
t1
(
c
)
values
(
null
);
--
error
1048
INSERT
INTO
t1
(
c
)
values
(
1
/
null
);
INSERT
INTO
t1
(
c
)
values
(
null
),(
null
);
--
error
1048
INSERT
INTO
t1
(
d
)
values
(
null
);
--
error
1048
INSERT
INTO
t1
(
d
)
values
(
1
/
null
);
INSERT
INTO
t1
(
d
)
values
(
null
),(
null
);
select
*
from
t1
;
drop
table
t1
;
mysql-test/t/rpl_loaddata.test
0 → 100644
View file @
fe5e05cd
# See if replication of a "LOAD DATA in an autoincrement column"
# Honours autoincrement values
# i.e. if the master and slave have the same sequence
source
include
/
master
-
slave
.
inc
;
create
table
t1
(
a
int
not
null
auto_increment
,
b
int
,
primary
key
(
a
)
);
load
data
infile
'../../std_data/rpl_loaddata.dat'
into
table
t1
;
save_master_pos
;
connection
slave
;
sync_with_master
;
select
*
from
t1
;
connection
master
;
drop
table
t1
;
save_master_pos
;
connection
slave
;
sync_with_master
;
mysql-test/t/rpl_log-master.opt
0 → 100644
View file @
fe5e05cd
--skip-external-locking
sql/field_conv.cc
View file @
fe5e05cd
...
...
@@ -118,6 +118,15 @@ set_field_to_null(Field *field)
field
->
reset
();
return
0
;
}
field
->
reset
();
if
(
current_thd
->
count_cuted_fields
)
{
current_thd
->
cuted_fields
++
;
// Increment error counter
return
0
;
}
if
(
!
current_thd
->
no_errors
)
my_printf_error
(
ER_BAD_NULL_ERROR
,
ER
(
ER_BAD_NULL_ERROR
),
MYF
(
0
),
field
->
field_name
);
return
1
;
}
...
...
sql/ha_innodb.cc
View file @
fe5e05cd
This diff is collapsed.
Click to expand it.
sql/ha_myisammrg.cc
View file @
fe5e05cd
...
...
@@ -231,7 +231,7 @@ void ha_myisammrg::info(uint flag)
#endif
if
(
flag
&
HA_STATUS_CONST
)
{
if
(
table
->
key_parts
)
if
(
table
->
key_parts
&&
info
.
rec_per_key
)
memcpy
((
char
*
)
table
->
key_info
[
0
].
rec_per_key
,
(
char
*
)
info
.
rec_per_key
,
sizeof
(
table
->
key_info
[
0
].
rec_per_key
)
*
table
->
key_parts
);
...
...
sql/mysqld.cc
View file @
fe5e05cd
...
...
@@ -749,7 +749,7 @@ static void *kill_server(void *sig_ptr)
#define RETURN_FROM_KILL_SERVER DBUG_RETURN(0)
#else
static
void
__cdecl
kill_server
(
int
sig_ptr
)
#define RETURN_FROM_KILL_SERVER DBUG_RETURN
#define RETURN_FROM_KILL_SERVER DBUG_
VOID_
RETURN
#endif
{
int
sig
=
(
int
)
(
long
)
sig_ptr
;
// This is passed a int
...
...
sql/opt_sum.cc
View file @
fe5e05cd
...
...
@@ -38,7 +38,7 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
table_map
removed_tables
=
0
;
Item
*
item
;
COND
*
org_conds
=
conds
;
/* Add all ON conditions to WHERE condition */
for
(
TABLE_LIST
*
tl
=
tables
;
tl
;
tl
=
tl
->
next
)
{
...
...
@@ -165,10 +165,9 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
error
=
table
->
file
->
index_last
(
table
->
record
[
0
])
!=
0
;
else
{
(
void
)
table
->
file
->
index_read
(
table
->
record
[
0
],
key_buff
,
error
=
table
->
file
->
index_read
(
table
->
record
[
0
],
key_buff
,
ref
.
key_length
,
HA_READ_AFTER_KEY
);
error
=
table
->
file
->
index_prev
(
table
->
record
[
0
])
||
HA_READ_PREFIX_LAST
)
||
key_cmp
(
table
,
key_buff
,
ref
.
key
,
ref
.
key_length
);
}
if
(
table
->
key_read
)
...
...
sql/sql_handler.cc
View file @
fe5e05cd
...
...
@@ -109,6 +109,8 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
if
(
cond
&&
cond
->
fix_fields
(
thd
,
tables
))
return
-
1
;
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
if
(
keyname
)
{
if
((
keyno
=
find_type
(
keyname
,
&
table
->
keynames
,
1
+
2
)
-
1
)
<
0
)
...
...
@@ -128,8 +130,6 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
insert_fields
(
thd
,
tables
,
tables
->
db
,
tables
->
alias
,
&
it
);
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
select_limit
+=
offset_limit
;
send_fields
(
thd
,
list
,
1
);
...
...
@@ -139,6 +139,8 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
if
(
!
lock
)
goto
err0
;
// mysql_lock_tables() printed error message already
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
for
(
num_rows
=
0
;
num_rows
<
select_limit
;
)
{
switch
(
mode
)
{
...
...
sql/sql_load.cc
View file @
fe5e05cd
...
...
@@ -357,8 +357,10 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields,
{
List_iterator_fast
<
Item
>
it
(
fields
);
Item_field
*
sql_field
;
ulonglong
id
;
DBUG_ENTER
(
"read_fixed_length"
);
id
=
0
;
/* No fields can be null in this format. mark all fields as not null */
while
((
sql_field
=
(
Item_field
*
)
it
++
))
sql_field
->
field
->
set_notnull
();
...
...
@@ -401,6 +403,14 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields,
thd
->
cuted_fields
++
;
/* To long row */
if
(
write_record
(
table
,
&
info
))
DBUG_RETURN
(
1
);
/*
If auto_increment values are used, save the first one
for LAST_INSERT_ID() and for the binary/update log.
We can't use insert_id() as we don't want to touch the
last_insert_id_used flag.
*/
if
(
!
id
&&
thd
->
insert_id_used
)
id
=
thd
->
last_insert_id
;
if
(
table
->
next_number_field
)
table
->
next_number_field
->
reset
();
// Clear for next record
if
(
read_info
.
next_line
())
// Skip to next line
...
...
@@ -408,6 +418,8 @@ read_fixed_length(THD *thd,COPY_INFO &info,TABLE *table,List<Item> &fields,
if
(
read_info
.
line_cuted
)
thd
->
cuted_fields
++
;
/* To long row */
}
if
(
id
&&
!
read_info
.
error
)
thd
->
insert_id
(
id
);
// For binary/update log
DBUG_RETURN
(
test
(
read_info
.
error
));
}
...
...
@@ -421,10 +433,12 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table,
List_iterator_fast
<
Item
>
it
(
fields
);
Item_field
*
sql_field
;
uint
enclosed_length
;
ulonglong
id
;
DBUG_ENTER
(
"read_sep_field"
);
enclosed_length
=
enclosed
.
length
();
id
=
0
;
for
(;;
it
.
rewind
())
{
if
(
thd
->
killed
)
...
...
@@ -477,6 +491,14 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table,
}
if
(
write_record
(
table
,
&
info
))
DBUG_RETURN
(
1
);
/*
If auto_increment values are used, save the first one
for LAST_INSERT_ID() and for the binary/update log.
We can't use insert_id() as we don't want to touch the
last_insert_id_used flag.
*/
if
(
!
id
&&
thd
->
insert_id_used
)
id
=
thd
->
last_insert_id
;
if
(
table
->
next_number_field
)
table
->
next_number_field
->
reset
();
// Clear for next record
if
(
read_info
.
next_line
())
// Skip to next line
...
...
@@ -484,6 +506,8 @@ read_sep_field(THD *thd,COPY_INFO &info,TABLE *table,
if
(
read_info
.
line_cuted
)
thd
->
cuted_fields
++
;
/* To long row */
}
if
(
id
&&
!
read_info
.
error
)
thd
->
insert_id
(
id
);
// For binary/update log
DBUG_RETURN
(
test
(
read_info
.
error
));
}
...
...
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