Merge "res_config_mysql: Fix broken column type checking" into 13

changes/66/466/1
Joshua Colp 10 years ago committed by Gerrit Code Review
commit 5fcaf727cc

@ -1202,38 +1202,44 @@ static int require_mysql(const char *database, const char *tablename, va_list ap
PICK_WHICH_ALTER_ACTION(bigint) PICK_WHICH_ALTER_ACTION(bigint)
} }
} }
} else if (strncmp(column->type, "float", 5) == 0 && !ast_rq_is_int(type) && type != RQ_FLOAT) { } else if (strncmp(column->type, "float", 5) == 0) {
if (table->database->requirements == RQ_WARN) { if (!ast_rq_is_int(type) && type != RQ_FLOAT) {
ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type); if (table->database->requirements == RQ_WARN) {
res = -1; ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type);
} else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) { res = -1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) {
} else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) { table_altered = 1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) {
} else { table_altered = 1;
res = -1; } else {
res = -1;
}
} }
} else if ((strncmp(column->type, "datetime", 8) == 0 || strncmp(column->type, "timestamp", 9) == 0) && type != RQ_DATETIME) { } else if (strncmp(column->type, "datetime", 8) == 0 || strncmp(column->type, "timestamp", 9) == 0) {
if (table->database->requirements == RQ_WARN) { if (type != RQ_DATETIME) {
ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type); if (table->database->requirements == RQ_WARN) {
res = -1; ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type);
} else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) { res = -1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) {
} else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) { table_altered = 1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) {
} else { table_altered = 1;
res = -1; } else {
res = -1;
}
} }
} else if ((strncmp(column->type, "date", 4) == 0) && type != RQ_DATE) { } else if (strncmp(column->type, "date", 4) == 0) {
if (table->database->requirements == RQ_WARN) { if (type != RQ_DATE) {
ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type); if (table->database->requirements == RQ_WARN) {
res = -1; ast_log(LOG_WARNING, "Realtime table %s@%s: Column %s cannot be a %s\n", tablename, database, column->name, column->type);
} else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) { res = -1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECLOSE && modify_mysql(database, tablename, column, type, size) == 0) {
} else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) { table_altered = 1;
table_altered = 1; } else if (table->database->requirements == RQ_CREATECHAR && modify_mysql(database, tablename, column, RQ_CHAR, size) == 0) {
} else { table_altered = 1;
res = -1; } else {
res = -1;
}
} }
} else { /* Other, possibly unsupported types? */ } else { /* Other, possibly unsupported types? */
if (table->database->requirements == RQ_WARN) { if (table->database->requirements == RQ_WARN) {

Loading…
Cancel
Save