1. 24 Mar, 2014 36 commits
  2. 23 Mar, 2014 3 commits
    • Alexander Barkov's avatar
      MDEV-5781 Item_sum_std::val_real(): Assertion `nr >= 0.0' fails on query with... · ce3c457e
      Alexander Barkov authored
      MDEV-5781 Item_sum_std::val_real(): Assertion `nr >= 0.0' fails on query with STDDEV_POP, ROUND and variable
      
      ce3c457e
    • Alexander Barkov's avatar
      A joint patch for: · 92bd6801
      Alexander Barkov authored
      - MDEV-5689 ExtractValue(xml, 'substring(/x,/y)') crashes
      - MDEV-5709 ExtractValue() with XPath variable references returns wrong result.
      
      Description:
      
      1. The main problem was that that nodeset_func->fix_fields() was
      called in Item_func_xml_extractvalue::val_str() and
      Item_func_xml_update::val_str(), which led in some cases to
      execution of the XPath engine *before* having a parsed XML value.
      Moved to Item_xml_str_func::fix_fields().
      
      2. Cleanup: added a new method Item_xml_str_func::fix_fields() and moved
      most of the code from Item_xml_str_func::fix_length_and_dec()
      to Item_xml_str_func::fix_fields(), to follow the usual Item layout.
      
      3. Cleanup: a parsed XML value is useless without the raw XML value
      it was built from.
      
      Previously the parsed and the raw values where stored in separate String
      instances. It was hard to follow how they are synchronized.
      Added a helper class XML which contains both parsed and raw values.
      Makes things easier to read and modify.
      
      4. MDEV-5709: const_item() could incorrectly return a "true"
      result when XPath expression contains users/SP variable references.
      Now nodeset_func->const_item() is also taken into account to
      catch such cases.
      
      5. Minor code enhancements.
      92bd6801
    • Alexander Barkov's avatar
      MDEV-5870 Assertion `ltime->neg == 0' fails with COALESCE, ADDDATE, MAKEDATE · e0f75b1b
      Alexander Barkov authored
      A huge number in the "day" part of an interval made the code to return
      a negative date erroneously. Adding a test to return an error on a too
      large "day" value.
      e0f75b1b
  3. 22 Mar, 2014 1 commit
    • Igor Babaev's avatar
      Fixed bug mdev-5931. · 887a210f
      Igor Babaev authored
      After constant table row substitution the where condition may be converted
      to always true. The function calculate_cond_selectivity_for_table() should
      take into account this possibility.
      887a210f