Author: mjordan Date: Sun Feb 8 20:34:17 2015 New Revision: 431617 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=431617 Log: res/res_odbc: Remove unneeded queries when determining if a table exists
This patch modifies the ast_odbc_find_table function such that it only performs a lookup of the requested table if the table is not already known. Prior to this patch, a queries would be executed against the database even if the table was already known and cached. Review: https://reviewboard.asterisk.org/r/4405/ ASTERISK-24742 #close Reported by: ibercom patches: patch.diff uploaded by ibercom (License 6599) Modified: branches/11/res/res_odbc.c Modified: branches/11/res/res_odbc.c URL: http://svnview.digium.com/svn/asterisk/branches/11/res/res_odbc.c?view=diff&rev=431617&r1=431616&r2=431617 ============================================================================== --- branches/11/res/res_odbc.c (original) +++ branches/11/res/res_odbc.c Sun Feb 8 20:34:17 2015 @@ -453,7 +453,7 @@ SQLLEN sqlptr; SQLHSTMT stmt = NULL; int res = 0, error = 0, try = 0; - struct odbc_obj *obj = ast_odbc_request_obj(database, 0); + struct odbc_obj *obj; AST_RWLIST_RDLOCK(&odbc_tables); AST_RWLIST_TRAVERSE(&odbc_tables, tableptr, list) { @@ -464,13 +464,10 @@ if (tableptr) { AST_RWLIST_RDLOCK(&tableptr->columns); AST_RWLIST_UNLOCK(&odbc_tables); - if (obj) { - ast_odbc_release_obj(obj); - } return tableptr; } - if (!obj) { + if (!(obj = ast_odbc_request_obj(database, 0))) { ast_log(LOG_WARNING, "Unable to retrieve database handle for table description '%s@%s'\n", tablename, database); AST_RWLIST_UNLOCK(&odbc_tables); return NULL; @@ -556,9 +553,7 @@ destroy_table_cache(tableptr); tableptr = NULL; } - if (obj) { - ast_odbc_release_obj(obj); - } + ast_odbc_release_obj(obj); return tableptr; } -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits