Skip to content

Commit

Permalink
Merge 10.3 into 10.4
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Nov 20, 2019
2 parents 589a123 + aa3d28a commit 1c92406
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 2 deletions.
10 changes: 10 additions & 0 deletions mysql-test/main/partition_pruning.result
Original file line number Diff line number Diff line change
Expand Up @@ -3487,6 +3487,16 @@ a b c d
1 a b 1
drop table t1;
#
# MDEV-14667 Assertion `used_parts > 0' failed in ha_partition::init_record_priority_queue.
#
create table t1 (a int);
insert into t1 values (1),(2);
create table t2 (b int, c int, key(c,b)) partition by hash(b) partitions 2;
insert into t2 values (3,4),(5,6);
select straight_join * from t1, t2 where b != NULL;
a b c
drop table t1, t2;
#
# MDEV-17493: Partition pruning doesn't work for nested outer joins
#
create table t0(a int);
Expand Down
13 changes: 13 additions & 0 deletions mysql-test/main/partition_pruning.test
Original file line number Diff line number Diff line change
Expand Up @@ -1538,6 +1538,19 @@ select * from t1 where (a = 1 AND b < 'd' AND (c = 'b' OR (c = 'c' AND d = 1)) O
(a = 1 AND b >= 'a' AND (c = 'c' OR (c = 'd' AND d = 2))));
drop table t1;

--echo #
--echo # MDEV-14667 Assertion `used_parts > 0' failed in ha_partition::init_record_priority_queue.
--echo #

create table t1 (a int);
insert into t1 values (1),(2);

create table t2 (b int, c int, key(c,b)) partition by hash(b) partitions 2;
insert into t2 values (3,4),(5,6);

select straight_join * from t1, t2 where b != NULL;
drop table t1, t2;

--echo #
--echo # MDEV-17493: Partition pruning doesn't work for nested outer joins
--echo #
Expand Down
5 changes: 4 additions & 1 deletion sql/ha_partition.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5267,7 +5267,10 @@ bool ha_partition::init_record_priority_queue()
{
size_t alloc_len;
uint used_parts= bitmap_bits_set(&m_part_info->read_partitions);
DBUG_ASSERT(used_parts > 0);

if (used_parts == 0) /* Do nothing since no records expected. */
DBUG_RETURN(false);

/* Allocate record buffer for each used partition. */
m_priority_queue_rec_len= m_rec_length + PARTITION_BYTES_IN_POS;
if (!m_using_extended_keys)
Expand Down
8 changes: 7 additions & 1 deletion storage/innobase/handler/handler0alter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5671,10 +5671,17 @@ static bool innobase_instant_try(
case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_BLOB:
case MYSQL_TYPE_LONG_BLOB:
variable_length:
/* Store the empty string for 'core'
variable-length NOT NULL columns. */
dfield_set_data(d, field_ref_zero, 0);
break;
case MYSQL_TYPE_STRING:
if (col->mbminlen != col->mbmaxlen
&& user_table->not_redundant()) {
goto variable_length;
}
/* fall through */
default:
/* For fixed-length NOT NULL 'core' columns,
get a dummy default value from SQL. Note that
Expand All @@ -5691,7 +5698,6 @@ static bool innobase_instant_try(
: NULL, true, (*af)->ptr, len,
dict_table_is_comp(user_table));
ut_ad(new_field->field->pack_length() == len);

}
}

Expand Down

0 comments on commit 1c92406

Please sign in to comment.