Commit 1ee0144d authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.3 into 10.4

parents ae2004c6 d07a6e33
if (!`SELECT @@aria_used_for_temp_tables`)
{
skip Need Aria to be used for temporary tables;
}
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
# on the presence of the log tables (which are CSV-based). # on the presence of the log tables (which are CSV-based).
--source include/have_csv.inc --source include/have_csv.inc
# Without aria_used_for_temp_tables some I_S tables will be MyISAM,
# while the test expects them to be Aria
-- source include/have_aria_used_for_temp_tables.inc
-- source include/have_innodb.inc -- source include/have_innodb.inc
# Save the initial number of concurrent sessions # Save the initial number of concurrent sessions
......
...@@ -17,6 +17,8 @@ a invisible ...@@ -17,6 +17,8 @@ a invisible
1 9 1 9
insert into t1(a, invisible) values(99,99); insert into t1(a, invisible) values(99,99);
ERROR 42S22: Unknown column 'invisible' in 'field list' ERROR 42S22: Unknown column 'invisible' in 'field list'
select default(invisible) from t1;
ERROR 42S22: Unknown column 'invisible' in 'field list'
insert into t1(invisible) values(99); insert into t1(invisible) values(99);
ERROR 42S22: Unknown column 'invisible' in 'field list' ERROR 42S22: Unknown column 'invisible' in 'field list'
insert into t_tmp select a, invisible from t1; insert into t_tmp select a, invisible from t1;
......
...@@ -13,6 +13,8 @@ select a , invisible from t1; ...@@ -13,6 +13,8 @@ select a , invisible from t1;
--error ER_BAD_FIELD_ERROR --error ER_BAD_FIELD_ERROR
insert into t1(a, invisible) values(99,99); insert into t1(a, invisible) values(99,99);
--error ER_BAD_FIELD_ERROR --error ER_BAD_FIELD_ERROR
select default(invisible) from t1;
--error ER_BAD_FIELD_ERROR
insert into t1(invisible) values(99); insert into t1(invisible) values(99);
insert into t_tmp select a, invisible from t1; insert into t_tmp select a, invisible from t1;
--error ER_WRONG_VALUE_COUNT_ON_ROW --error ER_WRONG_VALUE_COUNT_ON_ROW
......
# bool readonly # bool readonly
--source include/have_aria_used_for_temp_tables.inc
--source include/have_maria.inc --source include/have_maria.inc
# #
# show the global and session values; # show the global and session values;
......
--source include/have_aria.inc --source include/have_aria.inc
--source include/have_aria_used_for_temp_tables.inc
--source include/word_size.inc --source include/word_size.inc
--vertical_results --vertical_results
......
###################### tmp_memory_table_size_func.test ######################## ###################### tmp_memory_table_size_func.test ########################
--source include/have_aria_used_for_temp_tables.inc
--source include/load_sysvars.inc --source include/load_sysvars.inc
--source include/have_sequence.inc --source include/have_sequence.inc
......
...@@ -9053,7 +9053,11 @@ bool Item_default_value::fix_fields(THD *thd, Item **items) ...@@ -9053,7 +9053,11 @@ bool Item_default_value::fix_fields(THD *thd, Item **items)
field value (mark column for read) field value (mark column for read)
*/ */
enum_column_usage save_column_usage= thd->column_usage; enum_column_usage save_column_usage= thd->column_usage;
thd->column_usage= COLUMNS_READ; /*
Fields which has defult value could be read, so it is better hide system
invisible columns.
*/
thd->column_usage= COLUMNS_WRITE;
if (arg->fix_fields_if_needed(thd, &arg)) if (arg->fix_fields_if_needed(thd, &arg))
{ {
thd->column_usage= save_column_usage; thd->column_usage= save_column_usage;
......
...@@ -227,9 +227,8 @@ static void recv_addr_trim(ulint space_id, unsigned pages, lsn_t lsn) ...@@ -227,9 +227,8 @@ static void recv_addr_trim(ulint space_id, unsigned pages, lsn_t lsn)
hash_cell_t* const cell = hash_get_nth_cell( hash_cell_t* const cell = hash_get_nth_cell(
recv_sys->addr_hash, i); recv_sys->addr_hash, i);
for (recv_addr_t* addr = static_cast<recv_addr_t*>(cell->node), for (recv_addr_t* addr = static_cast<recv_addr_t*>(cell->node),
*prev = NULL, *next; *next;
addr; addr; addr = next) {
prev = addr, addr = next) {
next = static_cast<recv_addr_t*>(addr->addr_hash); next = static_cast<recv_addr_t*>(addr->addr_hash);
if (addr->space != space_id || addr->page_no < pages) { if (addr->space != space_id || addr->page_no < pages) {
...@@ -251,22 +250,6 @@ static void recv_addr_trim(ulint space_id, unsigned pages, lsn_t lsn) ...@@ -251,22 +250,6 @@ static void recv_addr_trim(ulint space_id, unsigned pages, lsn_t lsn)
} }
recv = n; recv = n;
} }
if (UT_LIST_GET_LEN(addr->rec_list)) {
DBUG_PRINT("ib_log",
("preserving " ULINTPF
" records for page %u:%u",
UT_LIST_GET_LEN(addr->rec_list),
addr->space, addr->page_no));
} else {
ut_ad(recv_sys->n_addrs);
--recv_sys->n_addrs;
if (addr == cell->node) {
cell->node = next;
} else {
prev->addr_hash = next;
}
}
} }
} }
if (fil_space_t* space = fil_space_get(space_id)) { if (fil_space_t* space = fil_space_get(space_id)) {
...@@ -2022,8 +2005,7 @@ static ulint recv_read_in_area(const page_id_t page_id) ...@@ -2022,8 +2005,7 @@ static ulint recv_read_in_area(const page_id_t page_id)
/** Apply the hash table of stored log records to persistent data pages. /** Apply the hash table of stored log records to persistent data pages.
@param[in] last_batch whether the change buffer merge will be @param[in] last_batch whether the change buffer merge will be
performed as part of the operation */ performed as part of the operation */
void void recv_apply_hashed_log_recs(bool last_batch)
recv_apply_hashed_log_recs(bool last_batch)
{ {
ut_ad(srv_operation == SRV_OPERATION_NORMAL ut_ad(srv_operation == SRV_OPERATION_NORMAL
|| srv_operation == SRV_OPERATION_RESTORE || srv_operation == SRV_OPERATION_RESTORE
...@@ -2088,7 +2070,8 @@ recv_apply_hashed_log_recs(bool last_batch) ...@@ -2088,7 +2070,8 @@ recv_apply_hashed_log_recs(bool last_batch)
recv_addr = static_cast<recv_addr_t*>( recv_addr = static_cast<recv_addr_t*>(
HASH_GET_NEXT(addr_hash, recv_addr))) { HASH_GET_NEXT(addr_hash, recv_addr))) {
if (recv_addr->state == RECV_DISCARDED) { if (recv_addr->state == RECV_DISCARDED
|| !UT_LIST_GET_LEN(recv_addr->rec_list)) {
ut_a(recv_sys->n_addrs); ut_a(recv_sys->n_addrs);
recv_sys->n_addrs--; recv_sys->n_addrs--;
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment