diff options
author | June McEnroe <june@causal.agency> | 2019-12-06 16:18:42 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-12-06 16:18:42 -0500 |
commit | 44361901d3a0b3063c01d05899bdbfa26a8e5361 (patch) | |
tree | fd2c3e0850df8e1faa5d163bf8b51e3eac2c5e22 | |
parent | Rename IDs to nouns and join with USING (diff) | |
download | litterbox-44361901d3a0b3063c01d05899bdbfa26a8e5361.tar.gz litterbox-44361901d3a0b3063c01d05899bdbfa26a8e5361.zip |
Fold networks into contexts
-rw-r--r-- | database.h | 6 | ||||
-rw-r--r-- | unscoop.c | 18 |
2 files changed, 6 insertions, 18 deletions
diff --git a/database.h b/database.h index eec6cb6..485791b 100644 --- a/database.h +++ b/database.h @@ -150,13 +150,9 @@ static inline int dbVersion(sqlite3 *db) { static const char *InitSQL = { "BEGIN TRANSACTION;" - "CREATE TABLE networks (" - "network INTEGER PRIMARY KEY," - "name TEXT NOT NULL UNIQUE" - ");" "CREATE TABLE contexts (" "context INTEGER PRIMARY KEY," - "network INTEGER NOT NULL REFERENCES networks," + "network TEXT NOT NULL," "name TEXT NOT NULL," "query BOOLEAN NOT NULL," "UNIQUE (network, name)" diff --git a/unscoop.c b/unscoop.c index 8017f35..fa3a5a2 100644 --- a/unscoop.c +++ b/unscoop.c @@ -233,21 +233,14 @@ int main(int argc, char *argv[]) { errx(EX_SOFTWARE, "regcomp: %s: %s", buf, matcher->pattern); } - sqlite3_stmt *insertNetwork = dbPrepare( - db, 0, "INSERT OR IGNORE INTO networks (name) VALUES ($network);" - ); - dbBindText(insertNetwork, 1, network, -1); - dbStep(insertNetwork); - sqlite3_finalize(insertNetwork); - sqlite3_stmt *insertContext = dbPrepare( db, 0, "INSERT OR IGNORE INTO contexts (network, name, query)" - "SELECT network, $context, $query FROM networks WHERE name = $network;" + "VALUES ($network, $context, $query);" ); - dbBindText(insertContext, 1, context, -1); - dbBindInt(insertContext, 2, context[0] != '#' && context[0] != '&'); - dbBindText(insertContext, 3, network, -1); + dbBindText(insertContext, 1, network, -1); + dbBindText(insertContext, 2, context, -1); + dbBindInt(insertContext, 3, context[0] != '#' && context[0] != '&'); dbStep(insertContext); sqlite3_finalize(insertContext); @@ -255,8 +248,7 @@ int main(int argc, char *argv[]) { sqlite3_stmt *selectContext = dbPrepare( db, 0, "SELECT context FROM contexts" - " JOIN networks USING (network)" - " WHERE networks.name = $network AND contexts.name = $context;" + " WHERE network = $network AND name = $context;" ); dbBindText(selectContext, 1, network, -1); dbBindText(selectContext, 2, context, -1); |