From cc143105b884bfcaa188c6e9f93babec5958ea87 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 12 Dec 2014 22:12:19 +0100 Subject: sticker/Match: add operator "EQUALS" Mapped to "=" in the MPD protocol. This is the first operator, initially supporting value matches in the MPD protocol. --- src/sticker/StickerDatabase.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/sticker/StickerDatabase.cxx') diff --git a/src/sticker/StickerDatabase.cxx b/src/sticker/StickerDatabase.cxx index 3c1245a6e..bd809c1d3 100644 --- a/src/sticker/StickerDatabase.cxx +++ b/src/sticker/StickerDatabase.cxx @@ -43,6 +43,7 @@ enum sticker_sql { STICKER_SQL_DELETE, STICKER_SQL_DELETE_VALUE, STICKER_SQL_FIND, + STICKER_SQL_FIND_VALUE, }; static const char *const sticker_sql[] = { @@ -60,6 +61,9 @@ static const char *const sticker_sql[] = { "DELETE FROM sticker WHERE type=? AND uri=? AND name=?", //[STICKER_SQL_FIND] = "SELECT uri,value FROM sticker WHERE type=? AND uri LIKE (? || '%') AND name=?", + + //[STICKER_SQL_FIND_VALUE] = + "SELECT uri,value FROM sticker WHERE type=? AND uri LIKE (? || '%') AND name=? AND value=?", }; static const char sticker_sql_create[] = @@ -383,9 +387,12 @@ BindFind(const char *type, const char *base_uri, const char *name, case StickerOperator::EXISTS: return BindAllOrNull(error, sticker_stmt[STICKER_SQL_FIND], type, base_uri, name); - } - (void)value; + case StickerOperator::EQUALS: + return BindAllOrNull(error, + sticker_stmt[STICKER_SQL_FIND_VALUE], + type, base_uri, name, value); + } assert(false); gcc_unreachable(); -- cgit v1.2.3