Skip to content

Commit 104bb68

Browse files
committed
Fix sql syntax error
1 parent 69b7757 commit 104bb68

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/Database.cpp

+12-8
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,9 @@ Database::stmtPtr Database::prepareStatement(const std::string& sqlStatement) {
124124
};
125125

126126
if (res != SQLITE_OK) {
127-
std::cerr << "Error preparing SQL statement: " << sqlStatement << ". Error code " << res << '\n';
128-
std::cout << "https://www.sqlite.org/c3ref/c_abort.html\n";
127+
std::cerr << "Error preparing SQL statement: " << sqlStatement << ".\n Error code " << res << '\n';
128+
printErrorMsg();
129+
std::cerr << "https://www.sqlite.org/c3ref/c_abort.html" << '\n';
129130
}
130131

131132
return stmtPtr(stmt, [](auto* s) { sqlite3_finalize(s); });
@@ -257,10 +258,9 @@ void Database::createVariablesDimensionsTable() {
257258

258259
/***********************************************************************************/
259260
void Database::populateHistoricalJoinTable(const ds::DatasetDesc& datasetDesc) {
260-
auto insertJoinTableStmt{ prepareStatement("INSERT INTO TimestampVariableFilepath(filepath_id, variable_id, timestamp_id) VALUES ((SELECT id FROM Filepaths WHERE filepath = @PT), \
261+
auto insertJoinTableStmt{ prepareStatement("INSERT OR IGNORE INTO TimestampVariableFilepath(filepath_id, variable_id, timestamp_id) VALUES ((SELECT id FROM Filepaths WHERE filepath = @PT), \
261262
(SELECT id FROM Variables WHERE variable = @VR), \
262-
(SELECT id from Timestamps WHERE timestamp = @TS)) \
263-
ON CONFLICT DO NOTHING; \
263+
(SELECT id from Timestamps WHERE timestamp = @TS)); \
264264
")};
265265

266266
execStatement("BEGIN TRANSACTION");
@@ -287,9 +287,8 @@ void Database::populateHistoricalJoinTable(const ds::DatasetDesc& datasetDesc) {
287287
/***********************************************************************************/
288288
void Database::populateVarsDimTable(const std::unordered_set<ds::VariableDesc>& insertedVariables) {
289289

290-
auto insertStmt{ prepareStatement("INSERT INTO VarsDims(variable_id, dim_id) VALUES ((SELECT id from Variables WHERE variable = @VR), \
291-
(SELECT id FROM Dimensions WHERE name = @DM) ) \
292-
ON CONFLICT DO NOTHING; \
290+
auto insertStmt{ prepareStatement("INSERT OR IGNORE INTO VarsDims(variable_id, dim_id) VALUES ((SELECT id from Variables WHERE variable = @VR), \
291+
(SELECT id FROM Dimensions WHERE name = @DM) ); \
293292
") };
294293

295294
execStatement("BEGIN TRANSACTION");
@@ -372,4 +371,9 @@ void Database::createHistoricalTable() {
372371
execStatement(createFilePathIndexQuery);
373372
}
374373

374+
/***********************************************************************************/
375+
void Database::printErrorMsg() {
376+
std::cerr << sqlite3_errmsg(m_DBHandle) << std::endl;
377+
}
378+
375379
} // namespace tsm

src/Database.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class Database {
5656
void populateVarsDimTable(const std::unordered_set<ds::VariableDesc>& insertedVariables);
5757
///
5858
void createHistoricalTable();
59+
///
60+
void printErrorMsg();
5961

6062
sqlite3* m_DBHandle{ nullptr };
6163
const std::filesystem::path m_inputPath;

0 commit comments

Comments
 (0)