res_config_pgsql: Fix ast_update2_realtime calls.

Fix so multiple updates from a single call works (add missing ',').
Remove bogus ast_free's that weren't supposed to be there.
Moved a few spaces for readability.

Review: https://reviewboard.asterisk.org/r/3194/
........

Merged revisions 407873 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 407874 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Walter Doekes
2014-02-10 16:43:29 +00:00
parent 56c607a818
commit 4a4d8f7ab5

View File

@@ -838,8 +838,8 @@ static int update2_pgsql(const char *database, const char *tablename, const stru
return -1; return -1;
} }
ast_str_set(&sql, 0, "UPDATE %s SET ", tablename); ast_str_set(&sql, 0, "UPDATE %s SET", tablename);
ast_str_set(&where, 0, "WHERE"); ast_str_set(&where, 0, " WHERE");
for (field = lookup_fields; field; field = field->next) { for (field = lookup_fields; field; field = field->next) {
if (!find_column(table, field->name)) { if (!find_column(table, field->name)) {
@@ -852,7 +852,6 @@ static int update2_pgsql(const char *database, const char *tablename, const stru
if (pgresult) { if (pgresult) {
ast_log(LOG_ERROR, "PostgreSQL RealTime: detected invalid input: '%s'\n", field->value); ast_log(LOG_ERROR, "PostgreSQL RealTime: detected invalid input: '%s'\n", field->value);
release_table(table); release_table(table);
ast_free(sql);
return -1; return -1;
} }
ast_str_append(&where, 0, "%s %s='%s'", first ? "" : " AND", field->name, ast_str_buffer(escapebuf)); ast_str_append(&where, 0, "%s %s='%s'", first ? "" : " AND", field->name, ast_str_buffer(escapebuf));
@@ -883,15 +882,15 @@ static int update2_pgsql(const char *database, const char *tablename, const stru
if (pgresult) { if (pgresult) {
ast_log(LOG_ERROR, "PostgreSQL RealTime: detected invalid input: '%s'\n", field->value); ast_log(LOG_ERROR, "PostgreSQL RealTime: detected invalid input: '%s'\n", field->value);
release_table(table); release_table(table);
ast_free(sql);
return -1; return -1;
} }
ast_str_append(&sql, 0, "%s %s='%s'", first ? "" : ",", field->name, ast_str_buffer(escapebuf)); ast_str_append(&sql, 0, "%s %s='%s'", first ? "" : ",", field->name, ast_str_buffer(escapebuf));
first = 0;
} }
release_table(table); release_table(table);
ast_str_append(&sql, 0, " %s", ast_str_buffer(where)); ast_str_append(&sql, 0, "%s", ast_str_buffer(where));
ast_debug(1, "PostgreSQL RealTime: Update SQL: %s\n", ast_str_buffer(sql)); ast_debug(1, "PostgreSQL RealTime: Update SQL: %s\n", ast_str_buffer(sql));