[asterisk-commits] mjordan: trunk r431619 - in /trunk: ./ res/res_odbc.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun Feb 8 20:35:38 CST 2015
Author: mjordan
Date: Sun Feb 8 20:35:31 2015
New Revision: 431619
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=431619
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)
........
Merged revisions 431617 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 431618 from http://svn.asterisk.org/svn/asterisk/branches/13
Modified:
trunk/ (props changed)
trunk/res/res_odbc.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-13-merged' - no diff available.
Modified: trunk/res/res_odbc.c
URL: http://svnview.digium.com/svn/asterisk/trunk/res/res_odbc.c?view=diff&rev=431619&r1=431618&r2=431619
==============================================================================
--- trunk/res/res_odbc.c (original)
+++ trunk/res/res_odbc.c Sun Feb 8 20:35:31 2015
@@ -461,7 +461,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) {
@@ -472,13 +472,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;
@@ -564,9 +561,7 @@
destroy_table_cache(tableptr);
tableptr = NULL;
}
- if (obj) {
- ast_odbc_release_obj(obj);
- }
+ ast_odbc_release_obj(obj);
return tableptr;
}
More information about the asterisk-commits
mailing list