1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Desperate attempt to push part of prepared statements cleanup which was

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
This commit is contained in:
unknown
2004-03-02 22:39:50 +03:00
parent 8286684e26
commit 7b68eaafda
11 changed files with 437 additions and 395 deletions

View File

@ -620,14 +620,13 @@ int mysqld_show_column_types(THD *thd);
int mysqld_help (THD *thd, const char *text);
/* sql_prepare.cc */
bool mysql_stmt_prepare(THD *thd, char *packet, uint packet_length);
void mysql_stmt_prepare(THD *thd, char *packet, uint packet_length);
void mysql_stmt_execute(THD *thd, char *packet);
void mysql_stmt_free(THD *thd, char *packet);
void mysql_stmt_reset(THD *thd, char *packet);
void mysql_stmt_get_longdata(THD *thd, char *pos, ulong packet_length);
int check_insert_fields(THD *thd,TABLE *table,List<Item> &fields,
List<Item> &values, ulong counter);
void setup_param_functions(Item_param *param, uchar param_type);
/* sql_error.cc */
MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, uint code,