summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-02-05 10:22:08 +0100
committerunknown <monty@mysql.com>2004-02-05 10:22:08 +0100
commit0db0b601abb3be2fdafa612583f4e03360876236 (patch)
treea27a7e48b7584f9668ca17e4d0817c9d817ca9f2 /sql/sql_class.h
parente44a7da25f4bc5e2be0303b527eb60a323178a68 (diff)
downloadmariadb-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.h30
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();
};