• unknown's avatar
    Desperate attempt to push part of prepared statements cleanup which was · 7b68eaaf
    unknown authored
    reviewed in Saint-Petersbourg (including post-review fixes).
    
    
    include/my_sys.h:
      Added clear_alloc_root (reset alloc root without freeing its memory)
    sql/item.h:
      - rename setup_param -> set_parap (function assigns parameter value to item)
    sql/mysql_priv.h:
      - all return values are void, because return value is never checked in
          dispatch_command
      - removed unused declaration of setup_param_functions
    sql/protocol.h:
      - unused declarations of setup_params_data* removed
    sql/sql_class.cc:
      Cleanup:
        - bzero(mem_root) replaced with clear_alloc_root
        - query_id and command members moved back to THD from Statement
      Assignment of mem_root, free_list, query_id and command optimized
      away from set_statement().
    sql/sql_class.h:
      - query_id and command moved back to THD from Statement
    sql/sql_lex.h:
      - better type for param_list
      - param_count is the same thing as param_list.elements
    sql/sql_parse.cc:
      - comments for dispatch_command
    sql/sql_prepare.cc:
      Cleanup:
      - added comments to many functions and removed trailing spaces in many 
        lines, some stale comments removed.
      - it's faster to iterate using pointers, than classes
      - Renames: error_in_prepare renamed to get_longdata_error (because it is set
        when there is an error in mysql_send_longdata, rather than in
        mysql_prepare), embedded versions of placeholder assignement functions
        now have prefix emb_, setup_ functions renamed to set_, because they
        perform assignment, not installation, setup_params_data now doesn't
        call insert_params and was renamed to setup_set_param_functions,
      - find_prepared_statement should not send error if called from no-reply
        calls, like mysql_stmt_reset
      - error reporting is checked up, to always report errors and not report
        errors twice. send_prep_stmt can be done mostly in send_prepare_result, 
        rather than in test_* functions.
      - now we don't need to reinit THD->mem_root/free_list in mysql_stmt_execute,
        because it's not reset there.
    tests/client_test.c:
      - removed second call to test_subqueries
    7b68eaaf
sql_prepare.cc 33.7 KB