mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Small fixes for pushbuild: compiler warnings, checking that partitioning is enabled when testing it.
Don't fsync() index file when closing Maria table if not transactional. mysql-test/suite/maria/r/maria.result: piece moved mysql-test/suite/maria/r/maria_partition.result: result mysql-test/suite/maria/t/maria.test: - reset default storage engine at end of test, not in the middle - move piece which requires partitioning, to maria_partition.test, otherwise test fails on builds without partitioning compiled in mysql-test/suite/maria/t/maria_partition.test: new test for those Maria bugs which are specific of partitioning mysys/my_uuid.c: compiler warning fix (fix imported from latest 5.1-main) storage/maria/ma_close.c: don't fsync() index file when closing table if not transactional (same test as in _ma_once_end_block_record() when fsync-ing data file) storage/maria/ma_create.c: compiler warning fix (char* assigned to uchar*) storage/maria/ma_loghandler.c: compiler warning fix (char* assigned to uchar*)
This commit is contained in:
parent
8ecda6cd26
commit
5aa1e3b364
8 changed files with 61 additions and 26 deletions
|
@ -2590,11 +2590,6 @@ ALTER TABLE t1 CHANGE c d varchar(10);
|
|||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
drop table t1;
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (1);
|
||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||
ERROR HY000: Table has no partition for value 1
|
||||
drop table t1;
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
lock table t1 read, t2 read;
|
||||
|
|
12
mysql-test/suite/maria/r/maria_partition.result
Normal file
12
mysql-test/suite/maria/r/maria_partition.result
Normal file
|
@ -0,0 +1,12 @@
|
|||
set global storage_engine=maria;
|
||||
set session storage_engine=maria;
|
||||
set global maria_page_checksum=0;
|
||||
set global maria_log_file_size=4294967295;
|
||||
drop table if exists t1,t2;
|
||||
drop view if exists v1;
|
||||
SET SQL_WARNINGS=1;
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (1);
|
||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||
ERROR HY000: Table has no partition for value 1
|
||||
drop table t1;
|
|
@ -1817,12 +1817,6 @@ lock table t1 write concurrent;
|
|||
delete from t1;
|
||||
drop table t1;
|
||||
|
||||
--disable_result_log
|
||||
--disable_query_log
|
||||
eval set global storage_engine=$default_engine, maria_page_checksum=$default_checksum;
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
|
||||
#
|
||||
# Bug#39243 SELECT WHERE does not find row
|
||||
# (Problem with skip_row)
|
||||
|
@ -1867,16 +1861,6 @@ ALTER TABLE t1 CHANGE c d varchar(10);
|
|||
--disable_info
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #39227 Maria: crash with ALTER TABLE PARTITION
|
||||
#
|
||||
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (1);
|
||||
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #39226 Maria: crash with FLUSH TABLES WITH READ LOCK after LOCK TABLES
|
||||
|
||||
|
@ -1886,3 +1870,10 @@ lock table t1 read, t2 read;
|
|||
flush tables with read lock;
|
||||
unlock tables;
|
||||
drop table t1, t2;
|
||||
|
||||
# Set defaults back
|
||||
--disable_result_log
|
||||
--disable_query_log
|
||||
eval set global storage_engine=$default_engine, maria_page_checksum=$default_checksum;
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
|
|
35
mysql-test/suite/maria/t/maria_partition.test
Normal file
35
mysql-test/suite/maria/t/maria_partition.test
Normal file
|
@ -0,0 +1,35 @@
|
|||
# Maria tests which require partitioning enabled
|
||||
|
||||
--source include/have_partition.inc
|
||||
-- source include/have_maria.inc
|
||||
|
||||
let $default_engine=`select @@global.storage_engine`;
|
||||
let $default_checksum=`select @@global.maria_page_checksum`;
|
||||
set global storage_engine=maria;
|
||||
set session storage_engine=maria;
|
||||
set global maria_page_checksum=0;
|
||||
set global maria_log_file_size=4294967295;
|
||||
|
||||
# Initialise
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
drop view if exists v1;
|
||||
--enable_warnings
|
||||
SET SQL_WARNINGS=1;
|
||||
|
||||
#
|
||||
# Bug #39227 Maria: crash with ALTER TABLE PARTITION
|
||||
#
|
||||
|
||||
create table t1 (s1 int);
|
||||
insert into t1 values (1);
|
||||
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||
drop table t1;
|
||||
|
||||
# Set defaults back
|
||||
--disable_result_log
|
||||
--disable_query_log
|
||||
eval set global storage_engine=$default_engine, maria_page_checksum=$default_checksum;
|
||||
--enable_result_log
|
||||
--enable_query_log
|
|
@ -145,12 +145,12 @@ void my_uuid(uchar *to)
|
|||
*/
|
||||
if (nanoseq)
|
||||
{
|
||||
long delta;
|
||||
ulong delta;
|
||||
DBUG_ASSERT((tv > uuid_time) && (nanoseq > 0));
|
||||
/*
|
||||
-1 so we won't make tv= uuid_time for nanoseq >= (tv - uuid_time)
|
||||
*/
|
||||
delta= min(nanoseq, tv - uuid_time -1);
|
||||
delta= min(nanoseq, (ulong)(tv - uuid_time -1));
|
||||
tv-= delta;
|
||||
nanoseq-= delta;
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ int maria_close(register MARIA_HA *info)
|
|||
File must be synced as it is going out of the maria_open_list and so
|
||||
becoming unknown to future Checkpoints.
|
||||
*/
|
||||
if (!share->temporary && my_sync(share->kfile.file, MYF(MY_WME)))
|
||||
if (share->now_transactional && my_sync(share->kfile.file, MYF(MY_WME)))
|
||||
error= my_errno;
|
||||
if (my_close(share->kfile.file, MYF(0)))
|
||||
error= my_errno;
|
||||
|
|
|
@ -1348,7 +1348,8 @@ int _ma_update_state_lsns_sub(MARIA_SHARE *share, LSN lsn, TrID create_trid,
|
|||
int res;
|
||||
LEX_CUSTRING log_array[TRANSLOG_INTERNAL_PARTS + 1];
|
||||
/* table name is logged only for information */
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 0].str= share->open_file_name.str;
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 0].str=
|
||||
(uchar *)(share->open_file_name.str);
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 0].length=
|
||||
share->open_file_name.length + 1;
|
||||
if ((res= translog_write_record(&lsn, LOGREC_IMPORTED_TABLE,
|
||||
|
|
|
@ -7717,7 +7717,8 @@ int translog_assign_id_to_share(MARIA_HA *tbl_info, TRN *trn)
|
|||
is not realpath-ed, etc) which is good: the log can be moved to another
|
||||
directory and continue working.
|
||||
*/
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 1].str= share->open_file_name.str;
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 1].str=
|
||||
(uchar *)share->open_file_name.str;
|
||||
log_array[TRANSLOG_INTERNAL_PARTS + 1].length=
|
||||
share->open_file_name.length + 1;
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue