1. 16 Dec, 2016 10 commits
    • Alexander Barkov's avatar
      MDEV-11346 Move functions case_stmt_xxx and add_select_to_union_list as methods to LEX · 4b4efb04
      Alexander Barkov authored
      The full list of functions moved:
      int case_stmt_action_expr(LEX *, Item* expr);
      int case_stmt_action_when(LEX *, Item *when, bool simple);
      int case_stmt_action_then(LEX *);
      bool add_select_to_union_list(LEX *,bool is_union_distinct,  bool is_top_level);
      
      This is a preparatory change for "MDEV-10142 PL/SQL parser",
      to reuse the code easier between sql_yacc.yy and coming soon sql_yacc_ora.yy.
      4b4efb04
    • Alexander Barkov's avatar
      MDEV-11294 Move definitions of Derivation, DTCollation, Type_std_attributes... · cba00921
      Alexander Barkov authored
      MDEV-11294 Move definitions of Derivation, DTCollation, Type_std_attributes from field.h and item.h to sql_type.h
      cba00921
    • Alexander Barkov's avatar
      MDEV-11245 Move prepare_create_field and sp_prepare_create_field() as methods to Column_definition · 01546ee4
      Alexander Barkov authored
      Some upcoming tasks, e.g.:
      - MDEV-10577 sql_mode=ORACLE: %TYPE in variable declarations
      - MDEV-10914 ROW data type for stored routine variables
      
      will need to reuse the code implemented in prepare_create_field(),
      sp_prepare_create_field(), prepare_blob_field().
      
      Before reusing this code, it's a good idea to move these global functions
      as methods to Column_definition.
      
      This patch:
      - actually moves prepare_create_field(), sp_prepare_create_field(),
        prepare_blob_field() as methods to Column_definition
      - makes sp_prepare_create_field() call prepare_create_field() at the end,
        to avoid duplicate code in MDEV-10577 and MDEV-10914.
      - changes the return data type for prepare_create_field() from int to bool,
        to make it consistent with all other functions returning "ok" or "error".
      - moves the implementation sp_head::fill_field_definition() from sp_head.cc
        to sp_head.h, as it now uses globally visible Column_definition methods,
        and is very simple, so inlining is now possible.
      - removes the unused "LEX*" argument from sp_head::fill_field_definition()
      01546ee4
    • Alexander Barkov's avatar
    • Alexander Barkov's avatar
      MDEV-11146 SP variables of the SET data type erroneously allow values with comma · e5dfe04d
      Alexander Barkov authored
      There was a duplicate code to create TYPELIB from List<String>:
      - In typelib() and mysql_prepare_create_table(), which was used to initialize
        table fields.
      - create_typelib() and sp_prepare_create_field(), which was used to initialize
        SP variables.
      create_typelib() was incomplete and didn't check for wrong SET values.
      
      Fix:
      - Moving the code from create_typelib() and mysql_prepare_create_field()
        to news methods Column_definition::create_interval_from_interval_list()
        and Column_definition::prepare_interval_field().
      - Moving the code from calculate_interval_lengths() in sql_table.cc
        to a new method Column_definition::calculate_interval_lengths(), as it's now
        needed only in Column_definition::create_interval_from_interval_list()
      - Reusing the new method Column_definition::prepare_interval_field() in both
        mysql_prepare_create_table() and sp_prepare_create_field(), instead of the
        old duplicate code pieces
      - Removing global functions typelib() and create_typelib()
      
      This patch also fixes:
      MDEV-11155 Bad error message when creating a SET column with comma and non-ASCII characters
      The problem was that ErrCongString() was called with a wrong "charset" parameter.
      e5dfe04d
    • Alexander Barkov's avatar
      Starting the 10.3 branch · 239287b2
      Alexander Barkov authored
      239287b2
    • Alexey Botchkov's avatar
      MDEV-11572 JSON_DEPTH returns wrong results. · ce55094f
      Alexey Botchkov authored
              JSON depth calculation fixed.
      ce55094f
    • Alexey Botchkov's avatar
      MDEV-11569 JSON_ARRAY_INSERT produces an invalid result. · 30c231b0
      Alexey Botchkov authored
              String insertion fixed.
      30c231b0
    • Alexey Botchkov's avatar
      MDEV-JSON_CONTAINS_PATH returns incorrect results and produces wrong warning. · beded435
      Alexey Botchkov authored
              The Item_func_json_contains_path was mistakenly set with the
              no '*' paths limitation.
      beded435
    • Alexey Botchkov's avatar
      MDEV-11562 Assertion `js->state == JST_VALUE' failed in... · e5377be2
      Alexey Botchkov authored
      MDEV-11562 Assertion `js->state == JST_VALUE' failed in check_contains(json_engine_t*, json_engine_t*).
      
              check_contains() fixed. When an item of an array is a complex
              structure, it can be half-read after the end of the recursive
              check_contains() call. So we just manually get to it's ending.
      e5377be2
  2. 15 Dec, 2016 7 commits
  3. 14 Dec, 2016 3 commits
    • Igor Babaev's avatar
      Adjusted test results after merge. · 5cf6fd3e
      Igor Babaev authored
      5cf6fd3e
    • Igor Babaev's avatar
      Fixed bug mdev-11488. · 441fa005
      Igor Babaev authored
      The patch for bug mdev-10882 tried to fix it by providing an
      implementation of the virtual method build_clone for the class
      Item_cache. It's turned out that it is not easy provide a valid
      implementation for Item_cache::build_clone(). At the same time
      if the condition that can be pushed into a materialized view
      contains a cached item this item can be substituted for a basic
      constant of the same value. In such a way we can avoid building
      proper clones for Item_cache objects when constructing pushdown
      conditions.
      441fa005
    • Daniel Black's avatar
      Travis: add lib{stemmer,xml2,pcre3}-dev · e9ada862
      Daniel Black authored
      e9ada862
  4. 13 Dec, 2016 3 commits
  5. 12 Dec, 2016 17 commits