@@ -71,6 +71,11 @@ struct mysql_helper_column_map {
7171};
7272
7373#define MYSQL_HELPER_COL_MAP_GET_STR (d ,m ) (*((char **)((d) + (m)->data.ofs)))
74+
75+ /* field declaration helper macros */
76+ #define _MYSQL_HELPER_COL_MAP (type ,name ,is_un ,mysqlt ,field ) \
77+ {#name,{mysql_helper_field_type_##field,is_un,mysqlt,sizeof(((struct mysql_helper_column_map *)0)->data.field[0])},{.field=&((type *)0)->name}}
78+
7479#define MYSQL_HELPER_COL_MAP_I8 (type ,name ) _MYSQL_HELPER_COL_MAP(type, name, 0, MYSQL_TYPE_TINY, i8)
7580#define MYSQL_HELPER_COL_MAP_U8 (type ,name ) _MYSQL_HELPER_COL_MAP(type, name, 1, MYSQL_TYPE_TINY, u8)
7681#define MYSQL_HELPER_COL_MAP_I16 (type ,name ) _MYSQL_HELPER_COL_MAP(type, name, 0, MYSQL_TYPE_SHORT, i16)
@@ -87,20 +92,16 @@ struct mysql_helper_column_map {
8792#define MYSQL_HELPER_COL_MAP_CUSTOM_STR (name ,value ) \
8893 {name,{mysql_helper_field_type_cstr,0,MYSQL_TYPE_STRING,0},{.custom_str=value}}
8994
90- #define MYSQL_HELPER_COL_MAP_ADD_IF (name , class , type , buf ) \
91- do { \
92- if (*name) { \
93- struct mysql_helper_column_map __field__ = MYSQL_HELPER_COL_MAP_##type(class, name); \
94- vmbuf_memcpy(&buf, &__field__, sizeof(__field__)); \
95- } \
96- } while (0)
97-
9895#define MYSQL_HELPER_COL_MAP_ADD (name , class , type , buf ) \
9996 { \
100- struct mysql_helper_column_map __field__ = MYSQL_HELPER_COL_MAP_##type(class, name); \
97+ struct mysql_helper_column_map __field__ = \
98+ MYSQL_HELPER_COL_MAP_##type(class, name); \
10199 vmbuf_memcpy(&buf, &__field__, sizeof(__field__)); \
102100 }
103101
102+ #define MYSQL_HELPER_COL_MAP_ADD_IF (name , class , type , buf ) \
103+ if (name && *name) \
104+ MYSQL_HELPER_COL_MAP_ADD(name, class, type, buf)
104105
105106void mysql_helper_connect_init (struct mysql_helper * mysql_helper );
106107int mysql_helper_real_connect (struct mysql_helper * mysql_helper , struct mysql_login_info * login_info );
@@ -150,10 +151,6 @@ enum {
150151 mysql_helper_field_type_ts_unix
151152};
152153
153- /* field declaration helper macros */
154- #define _MYSQL_HELPER_COL_MAP (type ,name ,is_un ,mysqlt ,field ) \
155- {#name,{mysql_helper_field_type_##field,is_un,mysqlt,sizeof(((struct mysql_helper_column_map *)0)->data.field[0])},{.field=&((type *)0)->name}}
156-
157154/* get data from field */
158155#define _MYSQL_HELPER_FIELD_TYPE_TO_STR (T ) case mysql_helper_field_type_##T: return #T
159156
0 commit comments