From 7ea3569e3894f19fbae6cfdb3406f2240570e3c1 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 8 Dec 2022 15:03:51 -0500 Subject: Added a bunch of stuff for making LINGO puzzles --- lib/field.cpp | 5 ++++- lib/form.cpp | 5 +++++ lib/form.h | 5 +++++ lib/pronunciation.cpp | 5 +++++ lib/pronunciation.h | 5 +++++ lib/query.h | 2 +- lib/version.h | 2 +- 7 files changed, 26 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/field.cpp b/lib/field.cpp index ad6d958..4b7fff6 100644 --- a/lib/field.cpp +++ b/lib/field.cpp @@ -110,7 +110,10 @@ namespace verbly { field::operator filter() const { - if (isJoin()) + if (type_ == type::hierarchal_join) + { + return filter(*this, filter::comparison::hierarchally_matches, filter()); + } else if (isJoin()) { return filter(*this, filter::comparison::matches, filter()); } else { diff --git a/lib/form.cpp b/lib/form.cpp index 4983274..b5348cb 100644 --- a/lib/form.cpp +++ b/lib/form.cpp @@ -18,6 +18,11 @@ namespace verbly { const field form::pronunciations = field::joinThrough(object::form, "form_id", object::pronunciation, "forms_pronunciations", "pronunciation_id"); + const field form::anagrams = field::joinField(object::form, "anagram_set_id", object::form); + + const field form::merographs = field::selfJoin(object::form, "form_id", "merography", "holograph_id", "merograph_id"); + const field form::holographs = field::selfJoin(object::form, "form_id", "merography", "merograph_id", "holograph_id"); + field form::words(inflection category) { return field::joinThroughWhere(object::form, "form_id", object::word, "lemmas_forms", "lemma_id", "category", static_cast(category)); diff --git a/lib/form.h b/lib/form.h index b365943..39f53aa 100644 --- a/lib/form.h +++ b/lib/form.h @@ -136,6 +136,11 @@ namespace verbly { static const field pronunciations; + static const field anagrams; + + static const field merographs; + static const field holographs; + private: bool valid_ = false; diff --git a/lib/pronunciation.cpp b/lib/pronunciation.cpp index 3aef815..093e11a 100644 --- a/lib/pronunciation.cpp +++ b/lib/pronunciation.cpp @@ -18,6 +18,11 @@ namespace verbly { const field pronunciation::prerhyme = field::stringField(object::pronunciation, "prerhyme", true); const field pronunciation::rhyme = field::stringField(object::pronunciation, "rhyme", true); + const field pronunciation::anaphones = field::joinField(object::pronunciation, "anaphone_set_id", object::pronunciation); + + const field pronunciation::merophones = field::selfJoin(object::pronunciation, "pronunciation_id", "merophony", "holophone_id", "merophone_id"); + const field pronunciation::holophones = field::selfJoin(object::pronunciation, "pronunciation_id", "merophony", "merophone_id", "holophone_id"); + const field pronunciation::rhymes_field::rhymeJoin = field::joinField(object::pronunciation, "rhyme", object::pronunciation); const pronunciation::rhymes_field pronunciation::rhymes = {}; diff --git a/lib/pronunciation.h b/lib/pronunciation.h index cd241bd..210d61d 100644 --- a/lib/pronunciation.h +++ b/lib/pronunciation.h @@ -148,6 +148,11 @@ namespace verbly { static const field forms; + static const field anaphones; + + static const field merophones; + static const field holophones; + // Rhyming relationship class rhymes_field { diff --git a/lib/query.h b/lib/query.h index 65b4e9d..09d7f1f 100644 --- a/lib/query.h +++ b/lib/query.h @@ -43,9 +43,9 @@ namespace verbly { } statement stmt(Object::objectType, std::move(queryFilter)); - queryString_ = stmt.getQueryString(Object::select, std::move(sortOrder), limit); + bindings_ = stmt.getBindings(); } diff --git a/lib/version.h b/lib/version.h index 0404f5f..4dc5e52 100644 --- a/lib/version.h +++ b/lib/version.h @@ -4,7 +4,7 @@ namespace verbly { const int DATABASE_MAJOR_VERSION = 1; - const int DATABASE_MINOR_VERSION = 1; + const int DATABASE_MINOR_VERSION = 3; }; -- cgit 1.4.1