#ifndef ZABBIX_DBUPGRADE_H
#define ZABBIX_DBUPGRADE_H
#define ZBX_DBPATCH_FUNCTION_PARAM_LEN 255
#define DBPATCH_VERSION(zabbix_version) zbx_dbpatches_##zabbix_version
#define DBPATCHES_ARRAY_DECL(zabbix_version) extern zbx_dbpatch_t zbx_dbpatches_##zabbix_version[]
#define DBPATCH_START(zabbix_version) zbx_dbpatch_t DBPATCH_VERSION(zabbix_version)[] = {
#define DBPATCH_END() {0}};
#define DBPATCH_ADD(version, duplicates, mandatory) {NULL, version, duplicates, mandatory},
#define DBPATCH_ADD(version, duplicates, mandatory) {DBpatch_##version, version, duplicates, mandatory},
#define ZBX_FS_SQL_NAME "`%s`"
#define ZBX_FS_SQL_NAME "%s"
int DBcreate_table(const zbx_db_table_t *table);
int DBrename_table(const char *table_name, const char *new_name);
int DBdrop_table(const char *table_name);
int DBadd_field(const char *table_name, const zbx_db_field_t *field);
int DBrename_field(const char *table_name, const char *field_name, const zbx_db_field_t *field);
int DBmodify_field_type(const char *table_name, const zbx_db_field_t *field, const zbx_db_field_t *old_field);
int DBdrop_field_autoincrement(const char *table_name, const zbx_db_field_t *field);
int DBset_not_null(const char *table_name, const zbx_db_field_t *field);
int DBset_default(const char *table_name, const zbx_db_field_t *field);
int DBdrop_default(const char *table_name, const zbx_db_field_t *field);
int DBdrop_not_null(const char *table_name, const zbx_db_field_t *field);
int DBdrop_field(const char *table_name, const char *field_name);