mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
astdb: Improve prefix searches in astdb
Using the LIKE operator requires a full table scan of 'astdb', whereas a comparison operation is able to use the primary key index. This patch adds a new function to the AstDB API for quick prefix matches and updates res_sorcery_astdb to utilize it. This showed substantial performance improvement in my test environment. Related to ASTERISK~26806, but does not completely resolve it. Change-Id: I7d37f9ba2aea139dabf2ca72d31fbe34bd9b2fa1
This commit is contained in:
@@ -83,6 +83,16 @@ int ast_db_deltree(const char *family, const char *keytree);
|
||||
*/
|
||||
struct ast_db_entry *ast_db_gettree(const char *family, const char *keytree);
|
||||
|
||||
/*!
|
||||
* \brief Get a list of values with the given key prefix
|
||||
*
|
||||
* \param family The family to search under
|
||||
* \param key_prefix The key prefix to search under
|
||||
*
|
||||
* \retval NULL An error occurred
|
||||
*/
|
||||
struct ast_db_entry *ast_db_gettree_by_prefix(const char *family, const char *key_prefix);
|
||||
|
||||
/*! \brief Free structure created by ast_db_gettree() */
|
||||
void ast_db_freetree(struct ast_db_entry *entry);
|
||||
|
||||
|
Reference in New Issue
Block a user