summaryrefslogtreecommitdiff
path: root/sql/structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/structs.h')
-rw-r--r--sql/structs.h64
1 files changed, 52 insertions, 12 deletions
diff --git a/sql/structs.h b/sql/structs.h
index 156bf7745af..ee231186e1a 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -20,9 +20,28 @@
struct st_table;
class Field;
-typedef struct st_date_format { /* How to print date */
- uint pos[6]; /* Positions to YY.MM.DD HH:MM:SS */
-} DATE_FORMAT;
+typedef struct st_lex_string
+{
+ char *str;
+ uint length;
+} LEX_STRING;
+
+typedef struct st_lex_string_with_init :public st_lex_string
+{
+ st_lex_string_with_init(const char *str_arg, uint length_arg)
+ {
+ str= (char*) str_arg;
+ length= length_arg;
+ }
+} LEX_STRING_WITH_INIT;
+
+
+typedef struct st_date_time_format {
+ uchar positions[8];
+ char time_separator; /* Separator between hour and minute */
+ uint flag; /* For future */
+ LEX_STRING format;
+} DATE_TIME_FORMAT;
typedef struct st_keyfile_info { /* used with ha_info() */
@@ -104,20 +123,32 @@ typedef struct st_read_record { /* Parameter to read_record */
uint index;
byte *ref_pos; /* pointer to form->refpos */
byte *record;
+ byte *rec_buf; /* to read field values after filesort */
byte *cache,*cache_pos,*cache_end,*read_positions;
IO_CACHE *io_cache;
bool print_error, ignore_not_found_rows;
} READ_RECORD;
-enum timestamp_type { TIMESTAMP_NONE, TIMESTAMP_DATE, TIMESTAMP_FULL,
- TIMESTAMP_TIME };
+
+enum timestamp_type
+{
+ TIMESTAMP_NONE= -2, TIMESTAMP_DATETIME_ERROR= -1,
+ TIMESTAMP_DATE= 0, TIMESTAMP_DATETIME= 1, TIMESTAMP_TIME= 2
+};
+
+/* Parameters to str_to_TIME */
+#define TIME_FUZZY_DATE 1
+#define TIME_DATETIME_ONLY 2
+
typedef struct st_time {
- uint year,month,day,hour,minute,second,second_part;
+ uint year,month,day,hour,minute,second;
+ ulong second_part;
bool neg;
timestamp_type time_type;
} TIME;
+
typedef struct {
ulong year,month,day,hour;
ulonglong minute,second,second_part;
@@ -125,6 +156,14 @@ typedef struct {
} INTERVAL;
+typedef struct st_known_date_time_format {
+ const char *format_name;
+ const char *date_format;
+ const char *datetime_format;
+ const char *time_format;
+} KNOWN_DATE_TIME_FORMAT;
+
+
enum SHOW_TYPE
{
SHOW_UNDEF,
@@ -145,22 +184,23 @@ enum SHOW_TYPE
SHOW_SSL_CTX_SESS_TIMEOUTS, SHOW_SSL_CTX_SESS_CACHE_FULL,
SHOW_SSL_GET_CIPHER_LIST,
#endif /* HAVE_OPENSSL */
- SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING
+ SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING,
+ SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG
};
enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED};
+
+extern const char *show_comp_option_name[];
+
typedef int *(*update_var)(THD *, struct show_var_st *);
+
typedef struct show_var_st {
const char *name;
char *value;
SHOW_TYPE type;
} SHOW_VAR;
-typedef struct lex_string {
- char *str;
- uint length;
-} LEX_STRING;
typedef struct st_lex_user {
LEX_STRING user, host, password;
@@ -182,7 +222,7 @@ typedef struct user_conn {
#define REG_NEW_RECORD 2 /* Write a new record if not found */
#define REG_UPDATE 4 /* Uppdate record */
#define REG_DELETE 8 /* Delete found record */
-#define REG_PROG 16 /* User is updateing database */
+#define REG_PROG 16 /* User is updating database */
#define REG_CLEAR_AFTER_WRITE 32
#define REG_MAY_BE_UPDATED 64
#define REG_AUTO_UPDATE 64 /* Used in D-forms for scroll-tables */