diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 287a70f1f7394..89f6102ef8355 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -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; diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index a8da9068ab862..6412980a5fa73 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -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; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index a36a19357eb9f..1cd2a369d7aa3 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -4177,7 +4177,7 @@ void SELECT_LEX::update_used_tables() } Item *item; - List_iterator_fast it(join->fields_list); + List_iterator_fast it(join->all_fields); while ((item= it++)) { item->update_used_tables();