1. 28 Sep, 2017 4 commits
    • Alexander Barkov's avatar
      A cleanup for MDEV-13919 sql_mode=ORACLE: Derive length of VARCHAR SP param... · 139441d0
      Alexander Barkov authored
      The intent of this patch is to avoid copying arguments from
      a pair "Item **args, uint arg_count" to List<Item> in
      sp_head::execute_function(). If the number of a stored function parameters
      is huge, such copying can affect performance.
      
      Change:
      1. Adding a new method Row_definition_list::adjust_formal_params_to_actual_params,
         which accepts a pair of "Item **, uint".
      2. Modifying the code to use the new method:
         - the calls for sp_rcontext::retrieve_field_definitions() and
           Row_definition_list::adjust_formal_params_to_actual_params() have
           been moved from sp_rcontext::create() to sp_head::rcontext_create(),
           to handle different argument notations easier (Item** vs List<Item>).
         - sp_rcontext::create() now assumes that the passed Row_definition_list
           is already adjusted to the actual SP parameters, and all "TYPE OF"
           and "ROWTYPE OF" references are resolved.
      3. Removing creation of List<Item> in sp_head::execute_procedure(),
         using the code with "Item**, uint" notation instead.
      4. Improvement of the code for MDEV-10577:
         As a good side effect, this patch gets rid of double security context
         switch inside sp_head::execute_trigger():
         sp_rcontext is created when the context is already switched,
         so the second context switch inside sp_head::rcontext_create() was
         redundant. This is solved by adding a "bool switch_secutiry_ctx" parameter
         to rcontext_create(), so now execute_function() and execute_procedure()
         pass "true", while execute_trigger() passes "false".
      139441d0
    • Alexander Barkov's avatar
      A cleanup for MDEV-10577 and MDEV-13919: moving a few sp_rcontext methods · 596baeb1
      Alexander Barkov authored
      Moving a few methods from sp_rcontext to different classes:
      
      - Table_ident::resolve_table_rowtype_ref
      - Qualified_column_ident::resolve_type_ref
      - Row_definition_list::resolve_table_rowtype_ref
      - Row_definition_list::adjust_formal_params_to_actual_params
      
      It easier to reuse these methods this way in the future.
      596baeb1
    • Alexander Barkov's avatar
    • Alexander Barkov's avatar
  2. 27 Sep, 2017 1 commit
  3. 26 Sep, 2017 1 commit
  4. 25 Sep, 2017 7 commits
  5. 24 Sep, 2017 3 commits
  6. 23 Sep, 2017 7 commits
  7. 22 Sep, 2017 14 commits
  8. 21 Sep, 2017 3 commits