annotate src/lib-dict/dict-sql-settings.h @ 22325:e01bc3015b2f

lib-index: Check .log.2 rotation only when syncing Instead of also whenever appending transactions to .log file. This shouldn't change the behavior much, and it's needed for the following change to work correctly.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 11 Jul 2017 15:33:56 +0300
parents c22acf3af571
children 124286dedf19
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #ifndef DICT_SQL_SETTINGS_H
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 #define DICT_SQL_SETTINGS_H
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
19256
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
4 enum dict_sql_type {
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
5 DICT_SQL_TYPE_STRING = 0,
19257
22015b472147 dict-sql: Added support for "uint" field type.
Timo Sirainen <tss@iki.fi>
parents: 19256
diff changeset
6 DICT_SQL_TYPE_UINT,
19256
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
7 DICT_SQL_TYPE_HEXBLOB
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
8 };
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
9
19073
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
10 struct dict_sql_field {
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
11 const char *name;
19256
6785752f1e25 dict-sql: Added support for extensible field types.
Timo Sirainen <tss@iki.fi>
parents: 19073
diff changeset
12 enum dict_sql_type value_type;
19073
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
13 };
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
14
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 struct dict_sql_map {
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 /* pattern is in simplified form: all variables are stored as simple
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 '$' character. fields array is sorted by the variable index. */
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 const char *pattern;
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 const char *table;
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 const char *username_field;
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 const char *value_field;
19298
6bb60a869c71 dict-sql: Added support for value_type field, which deprecates value_hexblob.
Timo Sirainen <tss@iki.fi>
parents: 19257
diff changeset
22 const char *value_type;
19073
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
23 bool value_hexblob;
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24
19073
0453c466c601 dict-sql: Implemented support for binary fields.
Timo Sirainen <tss@iki.fi>
parents: 15218
diff changeset
25 ARRAY(struct dict_sql_field) sql_fields;
21401
c22acf3af571 dict-sql: Support multiple values for lookups
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 20165
diff changeset
26
c22acf3af571 dict-sql: Support multiple values for lookups
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 20165
diff changeset
27 /* generated: */
c22acf3af571 dict-sql: Support multiple values for lookups
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 20165
diff changeset
28 unsigned int values_count;
c22acf3af571 dict-sql: Support multiple values for lookups
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 20165
diff changeset
29 const char *const *value_fields;
c22acf3af571 dict-sql: Support multiple values for lookups
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 20165
diff changeset
30 const enum dict_sql_type *value_types;
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 };
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 struct dict_sql_settings {
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 const char *connect;
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 unsigned int max_field_count;
14920
a097ef0a9d6d Array API changed: ARRAY_DEFINE(name, type) -> ARRAY(type) name
Timo Sirainen <tss@iki.fi>
parents: 8113
diff changeset
37 ARRAY(struct dict_sql_map) maps;
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38 };
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
39
15218
22c22d704422 lib-dict: dict_init() now returns error string instead of logging it
Timo Sirainen <tss@iki.fi>
parents: 14920
diff changeset
40 struct dict_sql_settings *
20165
87d2e33aef64 dict-sql: Cache reading settings files.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 19298
diff changeset
41 dict_sql_settings_read(const char *path, const char **error_r);
87d2e33aef64 dict-sql: Cache reading settings files.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 19298
diff changeset
42
87d2e33aef64 dict-sql: Cache reading settings files.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents: 19298
diff changeset
43 void dict_sql_settings_deinit(void);
8113
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44
2d3e942a4cde dict sql: Added configuration for mapping dict paths to SQL fields.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45 #endif