1 /** 2 * chewing-sql.c 3 * 4 * Copyright (c) 2013 5 * libchewing Core Team. See ChangeLog for details. 6 * 7 * See the file "COPYING" for information on usage and redistribution 8 * of this file. 9 */ 10 11 /* *INDENT-OFF* */ 12 #ifndef CHEWING_SQL_H 13 #define CHEWING_SQL_H 14 /* *INDENT-ON* */ 15 16 #ifdef HAVE_CONFIG_H 17 # include <config.h> 18 #endif 19 20 21 /* 22 * userphrase_v1 table 23 */ 24 25 enum { 26 BIND_USERPHRASE_TIME = 1, 27 BIND_USERPHRASE_ORIG_FREQ = 2, 28 BIND_USERPHRASE_MAX_FREQ = 3, 29 BIND_USERPHRASE_USER_FREQ = 4, 30 BIND_USERPHRASE_LENGTH = 5, 31 BIND_USERPHRASE_PHRASE = 6, 32 BIND_USERPHRASE_PHONE_0 = 10, 33 BIND_USERPHRASE_PHONE_1 = 11, 34 BIND_USERPHRASE_PHONE_2 = 12, 35 BIND_USERPHRASE_PHONE_3 = 13, 36 BIND_USERPHRASE_PHONE_4 = 14, 37 BIND_USERPHRASE_PHONE_5 = 15, 38 BIND_USERPHRASE_PHONE_6 = 16, 39 BIND_USERPHRASE_PHONE_7 = 17, 40 BIND_USERPHRASE_PHONE_8 = 18, 41 BIND_USERPHRASE_PHONE_9 = 19, 42 BIND_USERPHRASE_PHONE_10 = 20, 43 }; 44 45 enum { 46 COLUMN_USERPHRASE_TIME, 47 COLUMN_USERPHRASE_ORIG_FREQ, 48 COLUMN_USERPHRASE_MAX_FREQ, 49 COLUMN_USERPHRASE_USER_FREQ, 50 COLUMN_USERPHRASE_LENGTH, 51 COLUMN_USERPHRASE_PHRASE, 52 COLUMN_USERPHRASE_PHONE_0, 53 COLUMN_USERPHRASE_PHONE_1, 54 COLUMN_USERPHRASE_PHONE_2, 55 COLUMN_USERPHRASE_PHONE_3, 56 COLUMN_USERPHRASE_PHONE_4, 57 COLUMN_USERPHRASE_PHONE_5, 58 COLUMN_USERPHRASE_PHONE_6, 59 COLUMN_USERPHRASE_PHONE_7, 60 COLUMN_USERPHRASE_PHONE_8, 61 COLUMN_USERPHRASE_PHONE_9, 62 COLUMN_USERPHRASE_PHONE_10, 63 COLUMN_USERPHRASE_COUNT, 64 }; 65 66 enum { 67 STMT_USERPHRASE_SELECT, 68 STMT_USERPHRASE_SELECT_BY_PHONE, 69 STMT_USERPHRASE_SELECT_BY_PHONE_PHRASE, 70 STMT_USERPHRASE_UPSERT, 71 STMT_USERPHRASE_DELETE, 72 STMT_USERPHRASE_GET_MAX_FREQ, 73 STMT_USERPHRASE_COUNT, 74 }; 75 76 typedef struct SqlStmtUserphrase_ { 77 const char *stmt; 78 const char column[COLUMN_USERPHRASE_COUNT]; 79 } SqlStmtUserphrase; 80 81 /* 82 * config_v1 table 83 */ 84 85 enum { 86 BIND_CONFIG_ID = 1, 87 BIND_CONFIG_VALUE = 2, 88 }; 89 90 enum { 91 COLUMN_CONFIG_ID, 92 COLUMN_CONFIG_VALUE, 93 COLUMN_CONFIG_COUNT, 94 }; 95 96 enum { 97 STMT_CONFIG_SELECT, 98 STMT_CONFIG_INSERT, 99 STMT_CONFIG_INCREASE, 100 STMT_CONFIG_COUNT, 101 }; 102 103 enum { 104 CONFIG_ID_LIFETIME, 105 }; 106 107 typedef struct SqlStmtConfig_ { 108 const char *stmt; 109 const char column[COLUMN_CONFIG_COUNT]; 110 } SqlStmtConfig; 111 112 extern const SqlStmtUserphrase SQL_STMT_USERPHRASE[STMT_USERPHRASE_COUNT]; 113 114 struct ChewingData; 115 116 int InitUserphrase(struct ChewingData *pgdata, const char *path); 117 void TerminateUserphrase(struct ChewingData *pgdata); 118 119 /* *INDENT-OFF* */ 120 #endif 121 /* *INDENT-ON* */ 122