diff options
author | unknown <monty@mysql.com> | 2004-02-05 10:22:08 +0100 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-02-05 10:22:08 +0100 |
commit | 0db0b601abb3be2fdafa612583f4e03360876236 (patch) | |
tree | a27a7e48b7584f9668ca17e4d0817c9d817ca9f2 /sql/sql_class.h | |
parent | e44a7da25f4bc5e2be0303b527eb60a323178a68 (diff) | |
download | mariadb-git-0db0b601abb3be2fdafa612583f4e03360876236.tar.gz |
Added SQL_SELECT::cleanup() to make it easier to reuse SQL_SELECT item's for sub selects. Needed for proper fix for bug #2479.
Added 'select_to_file' class to be able to merge identical code for select_export and select_dump
client/mysql.cc:
Print mysql_insert_id() in 'status'
mysys/charset.c:
after merge fixup
sql/item_func.cc:
Code cleanup + new comments
sql/opt_range.cc:
Added SQL_SELECT::cleanup() to make it easier to reuse SQL_SELECT item's for sub selects.
sql/opt_range.h:
Added SQL_SELECT::cleanup() to make it easier to reuse SQL_SELECT item's for sub selects.
sql/sql_class.cc:
Added 'select_to_file' class to be able to merge identical code for select_export and select_dump
sql/sql_class.h:
Added 'select_to_file' class to be able to merge identical code for select_export and select_dump
sql/sql_select.cc:
Fixed bug when calling 'delete select' in sub selects. (Bug 2479)
(Test case is already commited to global source repository)
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r-- | sql/sql_class.h | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index 7971137d848..51dc8270d09 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -962,41 +962,45 @@ public: }; -class select_export :public select_result { +class select_to_file :public select_result { +protected: sql_exchange *exchange; File file; IO_CACHE cache; ha_rows row_count; + char path[FN_REFLEN]; + +public: + select_to_file(sql_exchange *ex) :exchange(ex), file(-1),row_count(0L) + { path[0]=0; } + ~select_to_file(); + bool send_fields(List<Item> &list, uint flag) { return 0; } + void send_error(uint errcode,const char *err); +}; + + +class select_export :public select_to_file { uint field_term_length; int field_sep_char,escape_char,line_sep_char; bool fixed_row_size; public: - select_export(sql_exchange *ex) :exchange(ex),file(-1),row_count(0L) {} + select_export(sql_exchange *ex) :select_to_file(ex) {} ~select_export(); int prepare(List<Item> &list, SELECT_LEX_UNIT *u); - bool send_fields(List<Item> &list, - uint flag) { return 0; } bool send_data(List<Item> &items); - void send_error(uint errcode,const char *err); bool send_eof(); }; -class select_dump :public select_result { +class select_dump :public select_to_file { sql_exchange *exchange; File file; IO_CACHE cache; ha_rows row_count; - char path[FN_REFLEN]; public: - select_dump(sql_exchange *ex) :exchange(ex),file(-1),row_count(0L) - { path[0]=0; } - ~select_dump(); + select_dump(sql_exchange *ex) :select_to_file(ex) {} int prepare(List<Item> &list, SELECT_LEX_UNIT *u); - bool send_fields(List<Item> &list, - uint flag) { return 0; } bool send_data(List<Item> &items); - void send_error(uint errcode,const char *err); bool send_eof(); }; |