summaryrefslogtreecommitdiff
path: root/sql/table.h
diff options
context:
space:
mode:
authorigor@hundin.mysql.fi <>2003-04-24 14:33:33 +0300
committerigor@hundin.mysql.fi <>2003-04-24 14:33:33 +0300
commit80615fade284e14119fc189f136d30fc475f8aec (patch)
tree6de7abb070ee2d000b388d96503497e5aed12979 /sql/table.h
parent5610c4dea61bac4f7a0db0b911a941f2f869096a (diff)
downloadmariadb-git-80615fade284e14119fc189f136d30fc475f8aec.tar.gz
Many files:
Added the MAX_LENGTH_FOR_SORT_DATA option filesort.cc: Added the MAX_LENGTH_FOR_SORT_DATA option
Diffstat (limited to 'sql/table.h')
-rw-r--r--sql/table.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/sql/table.h b/sql/table.h
index 33e2db98d5a..55bc48db604 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -44,6 +44,17 @@ typedef struct st_grant_info
enum tmp_table_type {NO_TMP_TABLE=0, TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2};
+typedef struct st_filesort_info
+{
+ IO_CACHE *io_cache; /* If sorted through filebyte */
+ byte *addon_buf; /* Pointer to a buffer if sorted with fields */
+ uint addon_length; /* Length of the buffer */
+ struct st_sort_addon_field *addon_field; /* Pointer to the fields info */
+ void (*unpack)(struct st_sort_addon_field *, byte *); /* To unpack back */
+ byte *record_pointers; /* If sorted in memory */
+ ha_rows found_records; /* How many records in sort */
+} FILESORT_INFO;
+
/* Table cache entry struct */
class Field_timestamp;
@@ -120,9 +131,7 @@ struct st_table {
table_map map; /* ID bit of table (1,2,4,8,16...) */
ulong version,flush_version;
uchar *null_flags;
- IO_CACHE *io_cache; /* If sorted trough filebyte */
- byte *record_pointers; /* If sorted in memory */
- ha_rows found_records; /* How many records in sort */
+ FILESORT_INFO sort;
ORDER *group;
ha_rows quick_rows[MAX_KEY];
uint quick_key_parts[MAX_KEY];