← Back to team overview

maria-developers team mailing list archive

Re: [Commits] e0a1e63: MDEV-9619: Assertion `null_ref_table' failed in virtual table_map Item_direct_view_ref::used_tables() const on 2nd execution of PS

 

Hi, Oleksandr!

On Feb 18, Oleksandr Byelkin wrote:
> revision-id: e0a1e632e4e6084cd989f217943618f4e9ac9179 (mariadb-5.5.54-25-ge0a1e63)
> parent(s): 29d78dbb44ee9890b6bc28873344f20fc9157928
> committer: Oleksandr Byelkin
> timestamp: 2017-02-18 17:47:31 +0100
> message:
> 
> MDEV-9619: Assertion `null_ref_table' failed in virtual table_map
> Item_direct_view_ref::used_tables() const on 2nd execution of PS
> 
> Refer left expression indirectly in case it changes from execution to
> execution.

Looks reasonable. Ok to push with these changes:

1. replace

-  DBUG_ASSERT(null_ref_table);
+  DBUG_ASSERT(fixed);

as discussed.

2. Remove

 bool Item_direct_view_ref::fix_fields(THD *thd, Item **reference)
 {
-  DBUG_ASSERT(1);

these two changes should, probably, be done in a separate cleanup
commit.

3. 

> diff --git a/sql/item.h b/sql/item.h
> index 89155ac..dff7bc4 100644
> --- a/sql/item.h
> +++ b/sql/item.h
> @@ -1543,6 +1543,8 @@ class Item {
>    virtual void mark_as_condition_AND_part(TABLE_LIST *embedding) {};
>  };
>  
> +typedef Item (*Item_ptr);
> +

remove this, your patch compiles just fine without it.

Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx