diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-11-08 14:53:26 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-11-08 14:53:26 -0500 |
commit | 350bfdb5ea9b4f7e50746c50a46d8032cbc5a104 (patch) | |
tree | e339d118669f85de1afb858828a7affd0b47c745 /generator | |
parent | b92db337bf7cbe2ea0564be6c63c336d2bcd4567 (diff) | |
download | verbly-d1.0.tar.gz verbly-d1.0.tar.bz2 verbly-d1.0.zip |
Created database versioning system d1.0
Also added an ANALYZE statement to the end of the datafile generation process. This generates information that allows sqlite to sometimes come up with a better query plan, and in many cases can significant speed up queries. This constitutes a minor database update, but because this is the first version that uses the database versioning system, older versions are essentially incompatible. refs #2
Diffstat (limited to 'generator')
-rw-r--r-- | generator/generator.cpp | 23 | ||||
-rw-r--r-- | generator/generator.h | 4 | ||||
-rw-r--r-- | generator/schema.sql | 5 |
3 files changed, 32 insertions, 0 deletions
diff --git a/generator/generator.cpp b/generator/generator.cpp index e125b4a..d774bd9 100644 --- a/generator/generator.cpp +++ b/generator/generator.cpp | |||
@@ -11,6 +11,7 @@ | |||
11 | #include "part.h" | 11 | #include "part.h" |
12 | #include "field.h" | 12 | #include "field.h" |
13 | #include "../lib/util.h" | 13 | #include "../lib/util.h" |
14 | #include "../lib/version.h" | ||
14 | 15 | ||
15 | namespace verbly { | 16 | namespace verbly { |
16 | namespace generator { | 17 | namespace generator { |
@@ -112,6 +113,9 @@ namespace verbly { | |||
112 | // Writes the database schema | 113 | // Writes the database schema |
113 | writeSchema(); | 114 | writeSchema(); |
114 | 115 | ||
116 | // Writes the database version | ||
117 | writeVersion(); | ||
118 | |||
115 | // Dumps data to the database | 119 | // Dumps data to the database |
116 | dumpObjects(); | 120 | dumpObjects(); |
117 | 121 | ||
@@ -154,6 +158,9 @@ namespace verbly { | |||
154 | 158 | ||
155 | // Populates the adjective similarity relationship from WordNet | 159 | // Populates the adjective similarity relationship from WordNet |
156 | readWordNetSimilarity(); | 160 | readWordNetSimilarity(); |
161 | |||
162 | // Generates analysis data to assist in query planning. | ||
163 | analyzeDatabase(); | ||
157 | } | 164 | } |
158 | 165 | ||
159 | void generator::readWordNetSynsets() | 166 | void generator::readWordNetSynsets() |
@@ -581,6 +588,15 @@ namespace verbly { | |||
581 | } | 588 | } |
582 | } | 589 | } |
583 | 590 | ||
591 | void generator::writeVersion() | ||
592 | { | ||
593 | std::list<field> fields; | ||
594 | fields.emplace_back("major", DATABASE_MAJOR_VERSION); | ||
595 | fields.emplace_back("minor", DATABASE_MINOR_VERSION); | ||
596 | |||
597 | db_.insertIntoTable("version", std::move(fields)); | ||
598 | } | ||
599 | |||
584 | void generator::dumpObjects() | 600 | void generator::dumpObjects() |
585 | { | 601 | { |
586 | { | 602 | { |
@@ -1110,6 +1126,13 @@ namespace verbly { | |||
1110 | } | 1126 | } |
1111 | } | 1127 | } |
1112 | 1128 | ||
1129 | void generator::analyzeDatabase() | ||
1130 | { | ||
1131 | std::cout << "Analyzing data..." << std::endl; | ||
1132 | |||
1133 | db_.runQuery("ANALYZE"); | ||
1134 | } | ||
1135 | |||
1113 | std::list<std::string> generator::readFile(std::string path) | 1136 | std::list<std::string> generator::readFile(std::string path) |
1114 | { | 1137 | { |
1115 | std::ifstream file(path); | 1138 | std::ifstream file(path); |
diff --git a/generator/generator.h b/generator/generator.h index 43b3272..5458c97 100644 --- a/generator/generator.h +++ b/generator/generator.h | |||
@@ -60,6 +60,8 @@ namespace verbly { | |||
60 | 60 | ||
61 | void writeSchema(); | 61 | void writeSchema(); |
62 | 62 | ||
63 | void writeVersion(); | ||
64 | |||
63 | void dumpObjects(); | 65 | void dumpObjects(); |
64 | 66 | ||
65 | void readWordNetAntonymy(); | 67 | void readWordNetAntonymy(); |
@@ -88,6 +90,8 @@ namespace verbly { | |||
88 | 90 | ||
89 | void readWordNetSimilarity(); | 91 | void readWordNetSimilarity(); |
90 | 92 | ||
93 | void analyzeDatabase(); | ||
94 | |||
91 | // Helpers | 95 | // Helpers |
92 | 96 | ||
93 | std::list<std::string> readFile(std::string path); | 97 | std::list<std::string> readFile(std::string path); |
diff --git a/generator/schema.sql b/generator/schema.sql index c0f2bcb..d97c06e 100644 --- a/generator/schema.sql +++ b/generator/schema.sql | |||
@@ -1,3 +1,8 @@ | |||
1 | CREATE TABLE `version` ( | ||
2 | `major` INTEGER NOT NULL, | ||
3 | `minor` INTEGER NOT NULL | ||
4 | ); | ||
5 | |||
1 | CREATE TABLE `notions` ( | 6 | CREATE TABLE `notions` ( |
2 | `notion_id` INTEGER PRIMARY KEY, | 7 | `notion_id` INTEGER PRIMARY KEY, |
3 | `part_of_speech` SMALLINT NOT NULL, | 8 | `part_of_speech` SMALLINT NOT NULL, |