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
5b1eb87b
Commit
5b1eb87b
authored
Nov 21, 2022
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.7 into 10.8
parents
f46efb44
7f6ddce7
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
55 deletions
+60
-55
storage/innobase/include/trx0trx.h
storage/innobase/include/trx0trx.h
+5
-37
storage/innobase/row/row0merge.cc
storage/innobase/row/row0merge.cc
+37
-0
storage/spider/spd_conn.cc
storage/spider/spd_conn.cc
+2
-2
storage/spider/spd_db_mysql.cc
storage/spider/spd_db_mysql.cc
+7
-7
storage/spider/spd_db_mysql.h
storage/spider/spd_db_mysql.h
+7
-7
storage/spider/spd_table.cc
storage/spider/spd_table.cc
+1
-1
storage/spider/spd_table.h
storage/spider/spd_table.h
+1
-1
No files found.
storage/innobase/include/trx0trx.h
View file @
5b1eb87b
...
...
@@ -525,15 +525,7 @@ class trx_mod_table_time_t
/** Do bulk insert operation present in the buffered operation
@return DB_SUCCESS or error code */
dberr_t
write_bulk
(
dict_table_t
*
table
,
trx_t
*
trx
)
{
if
(
!
bulk_store
)
return
DB_SUCCESS
;
dberr_t
err
=
bulk_store
->
write_to_table
(
table
,
trx
);
delete
bulk_store
;
bulk_store
=
nullptr
;
return
err
;
}
dberr_t
write_bulk
(
dict_table_t
*
table
,
trx_t
*
trx
);
/** @return whether the buffer storage exist */
bool
bulk_buffer_exist
()
const
...
...
@@ -1171,42 +1163,18 @@ struct trx_t : ilist_node<>
return
&
it
->
second
;
}
/** Rollback all bulk insert operations */
void
bulk_rollback
()
{
undo_no_t
low_limit
=
UINT64_MAX
;
for
(
auto
&
t
:
mod_tables
)
{
if
(
!
t
.
second
.
is_bulk_insert
())
continue
;
if
(
t
.
second
.
get_first
()
<
low_limit
)
low_limit
=
t
.
second
.
get_first
();
}
trx_savept_t
bulk_save
{
low_limit
};
rollback
(
&
bulk_save
);
}
/** Do the bulk insert for the buffered insert operation
for the transaction.
@return DB_SUCCESS or error code */
dberr_t
bulk_insert_apply
()
{
if
(
UNIV_LIKELY
(
!
bulk_insert
))
return
DB_SUCCESS
;
ut_ad
(
!
check_unique_secondary
);
ut_ad
(
!
check_foreigns
);
for
(
auto
&
t
:
mod_tables
)
if
(
t
.
second
.
is_bulk_insert
())
if
(
dberr_t
err
=
t
.
second
.
write_bulk
(
t
.
first
,
this
))
{
bulk_rollback
();
return
err
;
}
return
DB_SUCCESS
;
return
UNIV_UNLIKELY
(
bulk_insert
)
?
bulk_insert_apply_low
()
:
DB_SUCCESS
;
}
private:
/** Apply the buffered bulk inserts. */
dberr_t
bulk_insert_apply_low
();
/** Assign a rollback segment for modifying temporary tables.
@return the assigned rollback segment */
trx_rseg_t
*
assign_temp_rseg
();
...
...
storage/innobase/row/row0merge.cc
View file @
5b1eb87b
...
...
@@ -5362,3 +5362,40 @@ dberr_t row_merge_bulk_t::write_to_table(dict_table_t *table, trx_t *trx)
return
DB_SUCCESS
;
}
dberr_t
trx_mod_table_time_t
::
write_bulk
(
dict_table_t
*
table
,
trx_t
*
trx
)
{
if
(
!
bulk_store
)
return
DB_SUCCESS
;
dberr_t
err
=
bulk_store
->
write_to_table
(
table
,
trx
);
delete
bulk_store
;
bulk_store
=
nullptr
;
return
err
;
}
dberr_t
trx_t
::
bulk_insert_apply_low
()
{
ut_ad
(
bulk_insert
);
ut_ad
(
!
check_unique_secondary
);
ut_ad
(
!
check_foreigns
);
dberr_t
err
;
for
(
auto
&
t
:
mod_tables
)
if
(
t
.
second
.
is_bulk_insert
())
if
((
err
=
t
.
second
.
write_bulk
(
t
.
first
,
this
))
!=
DB_SUCCESS
)
goto
bulk_rollback
;
return
DB_SUCCESS
;
bulk_rollback:
undo_no_t
low_limit
=
UINT64_MAX
;
for
(
auto
&
t
:
mod_tables
)
{
if
(
t
.
second
.
is_bulk_insert
())
{
if
(
t
.
second
.
get_first
()
<
low_limit
)
low_limit
=
t
.
second
.
get_first
();
delete
t
.
second
.
bulk_store
;
}
}
trx_savept_t
bulk_save
{
low_limit
};
rollback
(
&
bulk_save
);
return
err
;
}
storage/spider/spd_conn.cc
View file @
5b1eb87b
...
...
@@ -118,7 +118,7 @@ uchar *spider_conn_get_key(
DBUG_ENTER
(
"spider_conn_get_key"
);
*
length
=
conn
->
conn_key_length
;
DBUG_PRINT
(
"info"
,(
"spider conn_kind=%u"
,
conn
->
conn_kind
));
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
spider_print_keys
(
conn
->
conn_key
,
conn
->
conn_key_length
);
#endif
DBUG_RETURN
((
uchar
*
)
conn
->
conn_key
);
...
...
@@ -736,7 +736,7 @@ SPIDER_CONN *spider_get_conn(
DBUG_PRINT
(
"info"
,(
"spider link_idx=%u"
,
link_idx
));
DBUG_PRINT
(
"info"
,(
"spider base_link_idx=%u"
,
base_link_idx
));
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
spider_print_keys
(
conn_key
,
share
->
conn_keys_lengths
[
link_idx
]);
#endif
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
...
...
storage/spider/spd_db_mysql.cc
View file @
5b1eb87b
...
...
@@ -912,7 +912,7 @@ int spider_db_mbase_result::fetch_table_status(
#endif
}
else
stat
.
create_time
=
(
time_t
)
0
;
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
{
struct
tm
*
ts
,
tmp_ts
;
char
buf
[
80
];
...
...
@@ -962,7 +962,7 @@ int spider_db_mbase_result::fetch_table_status(
#endif
}
else
stat
.
check_time
=
(
time_t
)
0
;
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
{
struct
tm
*
ts
,
tmp_ts
;
char
buf
[
80
];
...
...
@@ -1041,7 +1041,7 @@ int spider_db_mbase_result::fetch_table_status(
#endif
}
else
stat
.
create_time
=
(
time_t
)
0
;
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
{
struct
tm
*
ts
,
tmp_ts
;
char
buf
[
80
];
...
...
@@ -1066,7 +1066,7 @@ int spider_db_mbase_result::fetch_table_status(
#endif
}
else
stat
.
update_time
=
(
time_t
)
0
;
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
{
struct
tm
*
ts
,
tmp_ts
;
char
buf
[
80
];
...
...
@@ -1091,7 +1091,7 @@ int spider_db_mbase_result::fetch_table_status(
#endif
}
else
stat
.
check_time
=
(
time_t
)
0
;
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
{
struct
tm
*
ts
,
tmp_ts
;
char
buf
[
80
];
...
...
@@ -4122,7 +4122,7 @@ int spider_db_mariadb_util::append_column_value(ha_spider *spider,
ptr
=
tmp_str
.
get_str
();
}
else
if
(
field
->
type
()
==
MYSQL_TYPE_GEOMETRY
)
{
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
double
xmin
,
xmax
,
ymin
,
ymax
;
float8get
(
xmin
,
new_ptr
);
float8get
(
xmax
,
new_ptr
+
8
);
...
...
@@ -4279,7 +4279,7 @@ int spider_db_mysql_util::append_column_value(
}
tmp_str.length(SIZEOF_STORED_DOUBLE * lcnt);
*/
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
double
xmin
,
xmax
,
ymin
,
ymax
;
/*
float8store(buf,xmin);
...
...
storage/spider/spd_db_mysql.h
View file @
5b1eb87b
...
...
@@ -195,13 +195,13 @@ class spider_db_mbase_util: public spider_db_util
spider_string
*
str
)
override
;
#endif
bool
tables_on_different_db_are_joinable
();
bool
socket_has_default_value
();
bool
database_has_default_value
();
bool
default_file_has_default_value
();
bool
host_has_default_value
();
bool
port_has_default_value
();
bool
append_charset_name_before_string
();
bool
tables_on_different_db_are_joinable
()
override
;
bool
socket_has_default_value
()
override
;
bool
database_has_default_value
()
override
;
bool
default_file_has_default_value
()
override
;
bool
host_has_default_value
()
override
;
bool
port_has_default_value
()
override
;
bool
append_charset_name_before_string
()
override
;
};
class
spider_db_mysql_util
:
public
spider_db_mbase_util
...
...
storage/spider/spd_table.cc
View file @
5b1eb87b
...
...
@@ -4247,7 +4247,7 @@ int spider_set_connect_info_default_dbtable(
));
}
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
void
spider_print_keys
(
const
char
*
key
,
uint
length
...
...
storage/spider/spd_table.h
View file @
5b1eb87b
...
...
@@ -431,7 +431,7 @@ int spider_set_connect_info_default_dbtable(
int
dbtable_name_length
);
#if
ndef DBUG_OFF
#if
def DBUG_TRACE
void
spider_print_keys
(
const
char
*
key
,
uint
length
...
...
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