• unknown's avatar
    Bug #30355: Incorrect ordering of UDF results · 63b65169
    unknown authored
    There's currently no way of knowing the determinicity of an UDF.
    And the optimizer and the sequence() UDFs were making wrong
    assumptions about what the is_const member means.
    Plus there was no implementation of update_system_tables()
    causing the optimizer to overwrite the information returned by
    the <udf>_init function.
    
    Fixed by equating the assumptions about the semantics of 
    is_const and providing a implementation of update_used_tables().
    Added a TODO item for the UDF API change needed to make a better 
    implementation.
    
    
    include/mysql_com.h:
      Bug #30355: comment added
    mysql-test/r/udf.result:
      Bug #30355: test case
    mysql-test/t/udf.test:
      Bug #30355: test case
    sql/item_func.cc:
      Bug #30355: keep const_item_cache and used_tables_cache in sync
    sql/item_func.h:
      Bug #30355: 
       - a better implementation of update_used_tables()
       - keep const_item_cache and used_tables_cache in sync
    sql/udf_example.c:
      Bug #30355: Wrong value for const_item fixed.
    63b65169
udf.test 9.88 KB