From 85a7a78ac13dd28eee159713c1736d5a16468e1c Mon Sep 17 00:00:00 2001 From: anon Date: Wed, 14 Aug 2024 22:25:09 +0200 Subject: [PATCH] started to clean up the query situation --- source/queries.inc | 41 +++++++++++++++++++++++++++++++++++++++++ source/storage.c | 45 ++------------------------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) create mode 100644 source/queries.inc diff --git a/source/queries.inc b/source/queries.inc new file mode 100644 index 0000000..4e380af --- /dev/null +++ b/source/queries.inc @@ -0,0 +1,41 @@ +static const char * const insert_entry_sql = + "INSERT INTO entries (stamp, data) VALUES (?, ?);" +; +static const char * const empty_query = + "SELECT * FROM entries " + "ORDER BY stamp DESC " + "LIMIT ? " + "OFFSET ?;" +; +static const char * const literal_query = + "SELECT * FROM entries " + "WHERE data GLOB CONCAT('*', ?, '*') " + "GROUP BY data " + "ORDER BY stamp DESC " + "LIMIT ? " + "OFFSET ?;" +; +static const char * const literal_caseless_query = + "SELECT * FROM entries " + "WHERE data LIKE CONCAT('%', ?, '%') " + "GROUP BY data " + "ORDER BY stamp DESC " + "LIMIT ? " + "OFFSET ?;" +; +static const char * const levenstein_query = + "SELECT * FROM entries " + "GROUP BY data " + "ORDER BY DAMERAU_LEVENSHTEIN_SUBSTRING(data, ?), " + "stamp DESC " + "LIMIT ? " + "OFFSET ?;" +; +static const char * const levenstein_caseless_query = + "SELECT * FROM entries " + "GROUP BY data " + "ORDER BY DAMERAU_LEVENSHTEIN_SUBSTRING(LOWER(data), LOWER(?)), " + "stamp DESC " + "LIMIT ? " + "OFFSET ?;" +; diff --git a/source/storage.c b/source/storage.c index 66b5d89..d78e39d 100644 --- a/source/storage.c +++ b/source/storage.c @@ -9,53 +9,12 @@ * This might became a scaling issue in the future tho, * but untill then hardcoding will work. */ +#include "queries.inc" +static const char * const * query_method; bool is_levenstein = false; bool is_caseless = false; -static const char * const insert_entry_sql = - "INSERT INTO entries (stamp, data) VALUES (?, ?);" -; -static const char * const empty_query = - "SELECT * FROM entries " - "ORDER BY stamp DESC " - "LIMIT ? " - "OFFSET ?;" -; -static const char * const literal_query = - "SELECT * FROM entries " - "WHERE data GLOB CONCAT('*', ?, '*') " - "GROUP BY data " - "ORDER BY stamp DESC " - "LIMIT ? " - "OFFSET ?;" -; -static const char * const literal_caseless_query = - "SELECT * FROM entries " - "WHERE data LIKE CONCAT('%', ?, '%') " - "GROUP BY data " - "ORDER BY stamp DESC " - "LIMIT ? " - "OFFSET ?;" -; -static const char * const levenstein_query = - "SELECT * FROM entries " - "GROUP BY data " - "ORDER BY DAMERAU_LEVENSHTEIN_SUBSTRING(data, ?), " - "stamp DESC " - "LIMIT ? " - "OFFSET ?;" -; -static const char * const levenstein_caseless_query = - "SELECT * FROM entries " - "GROUP BY data " - "ORDER BY DAMERAU_LEVENSHTEIN_SUBSTRING(LOWER(data), LOWER(?)), " - "stamp DESC " - "LIMIT ? " - "OFFSET ?;" -; -static const char * const * query_method; - static sqlite3 * db = NULL; /* These statements must be global so they can be prepared once