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
6ee7ab8a
Commit
6ee7ab8a
authored
Feb 20, 2006
by
pappa@c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WL 2826: Error handling of ALTER TABLE for partitioning
Fix compiler issues
parent
b8569319
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
81 additions
and
46 deletions
+81
-46
sql/ha_heap.cc
sql/ha_heap.cc
+3
-1
sql/ha_myisammrg.cc
sql/ha_myisammrg.cc
+3
-1
sql/log.cc
sql/log.cc
+3
-1
sql/sql_partition.cc
sql/sql_partition.cc
+41
-26
sql/sql_table.cc
sql/sql_table.cc
+31
-17
No files found.
sql/ha_heap.cc
View file @
6ee7ab8a
...
@@ -57,7 +57,9 @@ handlerton heap_hton= {
...
@@ -57,7 +57,9 @@ handlerton heap_hton= {
NULL
,
/* Partition flags */
NULL
,
/* Partition flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter Tablespace */
NULL
,
/* Alter Tablespace */
HTON_CAN_RECREATE
HTON_CAN_RECREATE
,
NULL
,
/* binlog func */
NULL
/* binlog query */
};
};
static
handler
*
heap_create_handler
(
TABLE_SHARE
*
table
)
static
handler
*
heap_create_handler
(
TABLE_SHARE
*
table
)
...
...
sql/ha_myisammrg.cc
View file @
6ee7ab8a
...
@@ -67,7 +67,9 @@ handlerton myisammrg_hton= {
...
@@ -67,7 +67,9 @@ handlerton myisammrg_hton= {
NULL
,
/* Partition flags */
NULL
,
/* Partition flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter Tablespace */
NULL
,
/* Alter Tablespace */
HTON_CAN_RECREATE
HTON_CAN_RECREATE
,
NULL
,
/* binlog func */
NULL
/* binlog query */
};
};
static
handler
*
myisammrg_create_handler
(
TABLE_SHARE
*
table
)
static
handler
*
myisammrg_create_handler
(
TABLE_SHARE
*
table
)
...
...
sql/log.cc
View file @
6ee7ab8a
...
@@ -101,7 +101,9 @@ handlerton binlog_hton = {
...
@@ -101,7 +101,9 @@ handlerton binlog_hton = {
NULL
,
/* Partition flags */
NULL
,
/* Partition flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter table flags */
NULL
,
/* Alter Tablespace */
NULL
,
/* Alter Tablespace */
HTON_NOT_USER_SELECTABLE
|
HTON_HIDDEN
HTON_NOT_USER_SELECTABLE
|
HTON_HIDDEN
,
NULL
,
/* binlog func */
NULL
/* binlog query */
};
};
...
...
sql/sql_partition.cc
View file @
6ee7ab8a
...
@@ -5116,6 +5116,7 @@ release_part_info_log_entries(TABLE_LOG_MEMORY_ENTRY *log_entry)
...
@@ -5116,6 +5116,7 @@ release_part_info_log_entries(TABLE_LOG_MEMORY_ENTRY *log_entry)
the partition info object
the partition info object
*/
*/
static
bool
bool
write_log_replace_delete_frm
(
ALTER_PARTITION_PARAM_TYPE
*
lpt
,
write_log_replace_delete_frm
(
ALTER_PARTITION_PARAM_TYPE
*
lpt
,
uint
next_entry
,
uint
next_entry
,
...
@@ -5719,7 +5720,7 @@ write_log_completed(ALTER_PARTITION_PARAM_TYPE *lpt, bool dont_crash)
...
@@ -5719,7 +5720,7 @@ write_log_completed(ALTER_PARTITION_PARAM_TYPE *lpt, bool dont_crash)
static
static
void
void
release_log_entries
(
partition
*
part_info
)
release_log_entries
(
partition
_info
*
part_info
)
{
{
lock_global_table_log
();
lock_global_table_log
();
release_part_info_log_entries
(
part_info
->
first_log_entry
);
release_part_info_log_entries
(
part_info
->
first_log_entry
);
...
@@ -5748,7 +5749,7 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5748,7 +5749,7 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
DBUG_ENTER
(
"handle_alter_part_error"
);
DBUG_ENTER
(
"handle_alter_part_error"
);
if
(
!
part_info
->
first_log_entry
&&
if
(
!
part_info
->
first_log_entry
&&
execute_table_log_entry
(
part_info
->
first_log_entry
))
execute_table_log_entry
(
part_info
->
first_log_entry
->
entry_pos
))
{
{
/*
/*
We couldn't recover from error, most likely manual interaction is required.
We couldn't recover from error, most likely manual interaction is required.
...
@@ -5757,19 +5758,24 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5757,19 +5758,24 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
release_log_entries
(
part_info
);
release_log_entries
(
part_info
);
if
(
not_completed
)
if
(
not_completed
)
{
{
char
*
text1
=
"Operation was unsuccessful, table is still intact, "
;
char
*
text1
=
(
char
*
)
"Operation was unsuccessful, table is still intact, "
;
if
(
drop_partition
)
if
(
drop_partition
)
{
{
/* Table is still ok, but we left a shadow frm file behind. */
/* Table is still ok, but we left a shadow frm file behind. */
char
*
text2
=
"but it is possible that a shadow frm file was left behind"
;
char
*
text2
=
(
char
*
)
"but it is possible that a shadow frm file was left behind"
;
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"%s
\n
%s"
,
text1
,
text2
);
"%s
\n
%s"
,
text1
,
text2
);
}
}
else
else
{
{
char
*
text2
=
"but it is possible that a shadow frm file was left behind."
;
char
*
text2
=
char
*
text3
=
"It is also possible that temporary partitions are left behind, "
;
(
char
*
)
"but it is possible that a shadow frm file was left behind."
;
char
*
text4
=
"these could be empty or more or less filled with records"
;
char
*
text3
=
(
char
*
)
"It is also possible that temporary partitions are left behind, "
;
char
*
text4
=
(
char
*
)
"these could be empty or more or less filled with records"
;
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"%s
\n
%s
\n
%s
\n
%s"
,
text1
,
text2
,
text3
,
text4
);
"%s
\n
%s
\n
%s
\n
%s"
,
text1
,
text2
,
text3
,
text4
);
}
}
...
@@ -5782,11 +5788,14 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5782,11 +5788,14 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
Failed during install of shadow frm file, table isn't intact
Failed during install of shadow frm file, table isn't intact
and dropped partitions are still there
and dropped partitions are still there
*/
*/
char
*
text1
=
"Failed during alter of partitions, table is no longer intact, "
;
char
*
text1
=
char
*
text2
=
"The frm file is in an unknown state, and a backup"
;
(
char
*
)
"Failed during alter of partitions, table is no longer intact, "
;
char
*
text3
=
" is required.
char
*
text2
=
push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
(
char
*
)
"The frm file is in an unknown state, and a backup"
;
"
%
s
\
n
%
s
%
s
\
n
", text1, text2, text3);
char
*
text3
=
(
char
*
)
" is required."
;
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"%s
\n
%s%s
\n
"
,
text1
,
text2
,
text3
);
}
}
else
if
(
drop_partition
)
else
if
(
drop_partition
)
{
{
...
@@ -5796,10 +5805,12 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5796,10 +5805,12 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
perform the action manually. We remove the log records and ask the user
perform the action manually. We remove the log records and ask the user
to perform the action manually.
to perform the action manually.
*/
*/
char *text1= "
Failed
during
drop
of
partitions
,
table
is
intact
,
";
char
*
text1
=
char *text2= "
Manual
drop
of
remaining
partitions
is
required
";
(
char
*
)
"Failed during drop of partitions, table is intact, "
;
push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
char
*
text2
=
"
%
s
\
n
%
s
", text1, text2);
(
char
*
)
"Manual drop of remaining partitions is required"
;
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"%s
\n
%s"
,
text1
,
text2
);
}
}
else
else
{
{
...
@@ -5808,11 +5819,14 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5808,11 +5819,14 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
a very bad state so we give user warning and disable the table by
a very bad state so we give user warning and disable the table by
writing an ancient frm version into it.
writing an ancient frm version into it.
*/
*/
char *text1= "
Failed
during
renaming
of
partitions
.
We
are
now
in
a
position
"
char
*
text1
=
char *text2= "
where
table
is
not
reusable
";
(
char
*
)
"Failed during renaming of partitions. We are now in a position"
;
char *text3= "
Table
is
disabled
by
writing
ancient
frm
file
version
into
it
";
char
*
text2
=
push_warning_print(lpt->thd, MYSQL_ERROR::WARN_LEVEL_WARN, 1,
(
char
*
)
" where table is not reusable"
;
"
%
s
%
s
\
n
%
s
", text1, text2, text3);
char
*
text3
=
(
char
*
)
"Table is disabled by writing ancient frm file version into it"
;
push_warning_printf
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"%s%s
\n
%s"
,
text1
,
text2
,
text3
);
}
}
}
}
...
@@ -5839,7 +5853,7 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
...
@@ -5839,7 +5853,7 @@ handle_alter_part_error(ALTER_PARTITION_PARAM_TYPE *lpt, bool not_completed,
completed.
completed.
*/
*/
push_warning
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
push_warning
(
lpt
->
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
1
,
"
Operation
was
successfully
completed
after
failure
of
normal
operation
");
"Operation was successfully completed after failure of normal operation"
);
}
}
}
}
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
...
@@ -5924,15 +5938,16 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
...
@@ -5924,15 +5938,16 @@ uint fast_alter_partition_table(THD *thd, TABLE *table,
In this case it is enough to call optimise_partitions, there is no
In this case it is enough to call optimise_partitions, there is no
need to change frm files or anything else.
need to change frm files or anything else.
*/
*/
int
error
;
written_bin_log
=
FALSE
;
written_bin_log
=
FALSE
;
if
(((
alter_info
->
flags
&
ALTER_OPTIMIZE_PARTITION
)
&&
if
(((
alter_info
->
flags
&
ALTER_OPTIMIZE_PARTITION
)
&&
(table->file->optimize_partitions(thd))) ||
(
error
=
table
->
file
->
optimize_partitions
(
thd
)))
||
((
alter_info
->
flags
&
ALTER_ANALYZE_PARTITION
)
&&
((
alter_info
->
flags
&
ALTER_ANALYZE_PARTITION
)
&&
(table->file->analyze_partitions(thd))) ||
(
error
=
table
->
file
->
analyze_partitions
(
thd
)))
||
((
alter_info
->
flags
&
ALTER_CHECK_PARTITION
)
&&
((
alter_info
->
flags
&
ALTER_CHECK_PARTITION
)
&&
(table->file->check_partitions(thd))) ||
(
error
=
table
->
file
->
check_partitions
(
thd
)))
||
((
alter_info
->
flags
&
ALTER_REPAIR_PARTITION
)
&&
((
alter_info
->
flags
&
ALTER_REPAIR_PARTITION
)
&&
(table->file->repair_partitions(thd))))
(
error
=
table
->
file
->
repair_partitions
(
thd
))))
{
{
table
->
file
->
print_error
(
error
,
MYF
(
0
));
table
->
file
->
print_error
(
error
,
MYF
(
0
));
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
...
...
sql/sql_table.cc
View file @
6ee7ab8a
...
@@ -321,7 +321,7 @@ read_table_log_file_entry(uint entry_no)
...
@@ -321,7 +321,7 @@ read_table_log_file_entry(uint entry_no)
DBUG_ENTER
(
"read_table_log_file_entry"
);
DBUG_ENTER
(
"read_table_log_file_entry"
);
if
(
my_pread
(
file_id
,
file_entry
,
io_size
,
io_size
*
entry_no
,
if
(
my_pread
(
file_id
,
file_entry
,
io_size
,
io_size
*
entry_no
,
MYF
(
MY_WME
)))
MYF
(
MY_WME
))
!=
IO_SIZE
)
error
=
TRUE
;
error
=
TRUE
;
DBUG_RETURN
(
error
);
DBUG_RETURN
(
error
);
}
}
...
@@ -549,23 +549,24 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -549,23 +549,24 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
bool
frm_action
=
FALSE
;
bool
frm_action
=
FALSE
;
LEX_STRING
handler_name
;
LEX_STRING
handler_name
;
handler
*
file
;
handler
*
file
;
MEMROOT
mem_root
;
MEM
_
ROOT
mem_root
;
bool
=
error
=
TRUE
;
bool
error
=
TRUE
;
char
path
[
FN_REFLEN
];
char
path
[
FN_REFLEN
];
char
from_path
[
FN_REFLEN
];
char
from_path
[
FN_REFLEN
];
char
*
par_ext
=
".par"
;
char
*
par_ext
=
(
char
*
)
".par"
;
handlerton
*
hton
;
DBUG_ENTER
(
"execute_table_log_action"
);
DBUG_ENTER
(
"execute_table_log_action"
);
if
(
table_log_entry
->
entry_type
==
TLOG_IGNORE_LOG_ENTRY_CODE
)
if
(
table_log_entry
->
entry_type
==
TLOG_IGNORE_LOG_ENTRY_CODE
)
{
{
DBUG_RETURN
(
FALSE
);
DBUG_RETURN
(
FALSE
);
}
}
handler_name
.
str
=
table_log_entry
->
handler_type
;
handler_name
.
str
=
(
char
*
)
table_log_entry
->
handler_type
;
handler_name
.
length
=
strlen
(
table_log_entry
->
handler_type
);
handler_name
.
length
=
strlen
(
table_log_entry
->
handler_type
);
hton
=
ha_resolve_by_name
(
current_thd
,
handler_name
);
hton
=
ha_resolve_by_name
(
current_thd
,
&
handler_name
);
if
(
!
hton
)
if
(
!
hton
)
{
{
my_error
(
ER_ILLEGAL_HA
,
table_log_entry
->
handler_type
);
my_error
(
ER_ILLEGAL_HA
,
MYF
(
0
),
table_log_entry
->
handler_type
);
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
}
}
init_sql_alloc
(
&
mem_root
,
TABLE_ALLOC_BLOCK_SIZE
,
0
);
init_sql_alloc
(
&
mem_root
,
TABLE_ALLOC_BLOCK_SIZE
,
0
);
...
@@ -573,7 +574,9 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -573,7 +574,9 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
frm_action
=
TRUE
;
frm_action
=
TRUE
;
else
else
{
{
file
=
get_new_handler
(
table_share
,
&
mem_root
,
hton
);
TABLE_SHARE
dummy
;
bzero
(
&
dummy
,
sizeof
(
TABLE_SHARE
));
file
=
get_new_handler
(
&
dummy
,
&
mem_root
,
hton
);
if
(
!
file
)
if
(
!
file
)
{
{
mem_alloc_error
(
sizeof
(
handler
));
mem_alloc_error
(
sizeof
(
handler
));
...
@@ -581,10 +584,12 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -581,10 +584,12 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
}
}
}
}
switch
(
table_log_entry
->
action_type
)
switch
(
table_log_entry
->
action_type
)
case
TLOG_ACTION_DELETE_CODE
:
{
case
TLOG_ACTION_REPLACE_CODE
:
case
TLOG_DELETE_ACTION_CODE
:
if
(
table_log_entry
->
action_type
==
TLOG_ACTION_DELETE_CODE
||
case
TLOG_REPLACE_ACTION_CODE
:
(
table_log_entry
->
action_type
==
TLOG_ACTION_REPLACE_CODE
&&
{
if
(
table_log_entry
->
action_type
==
TLOG_DELETE_ACTION_CODE
||
(
table_log_entry
->
action_type
==
TLOG_REPLACE_ACTION_CODE
&&
table_log_entry
->
phase
==
0UL
))
table_log_entry
->
phase
==
0UL
))
{
{
if
(
frm_action
)
if
(
frm_action
)
...
@@ -598,7 +603,7 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -598,7 +603,7 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
}
}
else
else
{
{
if
(
file
->
delete_table
(
table_name
))
if
(
file
->
delete_table
(
table_
log_entry
->
name
))
break
;
break
;
}
}
if
((
!
inactivate_table_log_entry
(
table_log_entry
->
entry_pos
)))
if
((
!
inactivate_table_log_entry
(
table_log_entry
->
entry_pos
)))
...
@@ -610,9 +615,11 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -610,9 +615,11 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
}
}
break
;
break
;
}
}
if
(
table_log_entry
->
action_type
==
TLOG_
ACTION_DELETE
_CODE
)
if
(
table_log_entry
->
action_type
==
TLOG_
DELETE_ACTION
_CODE
)
break
;
break
;
case
TLOG_ACTION_RENAME_CODE
:
}
case
TLOG_RENAME_ACTION_CODE
:
{
error
=
TRUE
;
error
=
TRUE
;
if
(
frm_action
)
if
(
frm_action
)
{
{
...
@@ -639,6 +646,7 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
...
@@ -639,6 +646,7 @@ execute_table_log_action(TABLE_LOG_ENTRY *table_log_entry)
}
}
}
}
break
;
break
;
}
default:
default:
DBUG_ASSERT
(
0
);
DBUG_ASSERT
(
0
);
break
;
break
;
...
@@ -978,7 +986,7 @@ execute_table_log_entry(uint first_entry)
...
@@ -978,7 +986,7 @@ execute_table_log_entry(uint first_entry)
DBUG_ASSERT
(
table_log_entry
.
entry_type
==
TLOG_LOG_ENTRY_CODE
||
DBUG_ASSERT
(
table_log_entry
.
entry_type
==
TLOG_LOG_ENTRY_CODE
||
table_log_entry
.
entry_type
==
TLOG_IGNORE_LOG_ENTRY_CODE
);
table_log_entry
.
entry_type
==
TLOG_IGNORE_LOG_ENTRY_CODE
);
if
(
execute_table_log_action
(
file
,
&
table_log_entry
))
if
(
execute_table_log_action
(
&
table_log_entry
))
{
{
DBUG_ASSERT
(
0
);
DBUG_ASSERT
(
0
);
/* Write to error log and continue with next log entry */
/* Write to error log and continue with next log entry */
...
@@ -1028,7 +1036,6 @@ execute_table_log_recovery()
...
@@ -1028,7 +1036,6 @@ execute_table_log_recovery()
}
}
}
}
}
}
release_handler_objects
();
VOID
(
init_table_log
());
VOID
(
init_table_log
());
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
@@ -1231,6 +1238,9 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags)
...
@@ -1231,6 +1238,9 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags)
}
}
if
(
flags
&
WFRM_INSTALL_SHADOW
)
if
(
flags
&
WFRM_INSTALL_SHADOW
)
{
{
#ifdef WITH_PARTITION_STORAGE_ENGINE
partition_info
*
part_info
=
lpt
->
part_info
;
#endif
/*
/*
Build frm file name
Build frm file name
*/
*/
...
@@ -1243,17 +1253,21 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags)
...
@@ -1243,17 +1253,21 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags)
*/
*/
VOID
(
pthread_mutex_lock
(
&
LOCK_open
));
VOID
(
pthread_mutex_lock
(
&
LOCK_open
));
if
(
my_delete
(
frm_name
,
MYF
(
MY_WME
))
||
if
(
my_delete
(
frm_name
,
MYF
(
MY_WME
))
||
#ifdef WITH_PARTITION_STORAGE_ENGINE
inactivate_table_log_entry
(
part_info
->
frm_log_entry
->
entry_pos
)
||
inactivate_table_log_entry
(
part_info
->
frm_log_entry
->
entry_pos
)
||
(
sync_table_log
(),
FALSE
)
||
(
sync_table_log
(),
FALSE
)
||
#endif
my_rename
(
shadow_frm_name
,
frm_name
,
MYF
(
MY_WME
))
||
my_rename
(
shadow_frm_name
,
frm_name
,
MYF
(
MY_WME
))
||
lpt
->
table
->
file
->
create_handler_files
(
path
,
shadow_path
,
TRUE
))
lpt
->
table
->
file
->
create_handler_files
(
path
,
shadow_path
,
TRUE
))
{
{
error
=
1
;
error
=
1
;
}
}
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
#ifdef WITH_PARTITION_STORAGE_ENGINE
inactivate_table_log_entry
(
part_info
->
frm_log_entry
->
entry_pos
);
inactivate_table_log_entry
(
part_info
->
frm_log_entry
->
entry_pos
);
part_info
->
frm_log_entry
=
NULL
;
part_info
->
frm_log_entry
=
NULL
;
VOID
(
sync_table_log
());
VOID
(
sync_table_log
());
#endif
}
}
end:
end:
...
...
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