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