Skip to content

Commit

Permalink
MDEV-19680:: Assertion `!table || (!table->read_set || bitmap_is_set(…
Browse files Browse the repository at this point in the history
…table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' or alike failed upon SELECT with mix of functions from simple view

Set read_set bitmap for view from the JOIN::all_fields list instead of JOIN::fields_list
as split_sum_func would have added items to the all_fields list.
  • Loading branch information
Varun Gupta committed Dec 26, 2019
1 parent 9f7fcb9 commit 359d91a
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
13 changes: 13 additions & 0 deletions mysql-test/r/func_misc.result
Original file line number Diff line number Diff line change
Expand Up @@ -1479,3 +1479,16 @@ EXECUTE stmt;
x
x
DEALLOCATE PREPARE stmt;
#
# MDEV-19680: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) ||
# (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))'
# or alike failed upon SELECT with mix of functions from simple view
#
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2);
CREATE VIEW v1 AS SELECT * FROM t1;
SELECT ISNULL( BENCHMARK(1, MIN(a))) FROM v1;
ISNULL( BENCHMARK(1, MIN(a)))
0
DROP VIEW v1;
DROP TABLE t1;
15 changes: 15 additions & 0 deletions mysql-test/t/func_misc.test
Original file line number Diff line number Diff line change
Expand Up @@ -1154,3 +1154,18 @@ DROP PROCEDURE p1;
PREPARE stmt FROM "SELECT 'x' ORDER BY NAME_CONST( 'f', 'foo' )";
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

--echo #
--echo # MDEV-19680: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) ||
--echo # (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))'
--echo # or alike failed upon SELECT with mix of functions from simple view
--echo #

CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1),(2);
CREATE VIEW v1 AS SELECT * FROM t1;

SELECT ISNULL( BENCHMARK(1, MIN(a))) FROM v1;

DROP VIEW v1;
DROP TABLE t1;
2 changes: 1 addition & 1 deletion sql/sql_lex.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4177,7 +4177,7 @@ void SELECT_LEX::update_used_tables()
}

Item *item;
List_iterator_fast<Item> it(join->fields_list);
List_iterator_fast<Item> it(join->all_fields);
while ((item= it++))
{
item->update_used_tables();
Expand Down

0 comments on commit 359d91a

Please sign in to comment.