@@ -81,6 +81,12 @@ void DatabaseInterface::upgradeDBFromVersion(Version originalVersion)
8181 runStatements (_dbIndexesSql);
8282 }
8383
84+ if (originalVersion <= " 0.95.4" )
85+ {
86+ if (!tableHasColumn (" DataSets" , " showRSyntax" ))
87+ runStatements (" ALTER TABLE DataSets ADD COLUMN showRSyntax INT;" );
88+ }
89+
8490 transactionWriteEnd ();
8591}
8692
@@ -102,7 +108,7 @@ DatabaseInterface::~DatabaseInterface()
102108}
103109
104110
105- int DatabaseInterface::dataSetInsert (const std::string & dataFilePath, long dataFileTimestamp, const std::string & description, const std::string & databaseJson, const std::string & emptyValuesJson, bool dataSynch)
111+ int DatabaseInterface::dataSetInsert (const std::string & dataFilePath, long dataFileTimestamp, const std::string & description, const std::string & databaseJson, const std::string & emptyValuesJson, bool dataSynch, bool showRSyntax )
106112{
107113 JASPTIMER_SCOPE (DatabaseInterface::dataSetInsert);
108114 std::function<void (sqlite3_stmt *stmt)> prepare = [&](sqlite3_stmt *stmt)
@@ -113,17 +119,18 @@ int DatabaseInterface::dataSetInsert(const std::string & dataFilePath, long data
113119 sqlite3_bind_text (stmt, 4 , databaseJson.c_str (), databaseJson.length (), SQLITE_TRANSIENT);
114120 sqlite3_bind_text (stmt, 5 , emptyValuesJson.c_str (), emptyValuesJson.length (), SQLITE_TRANSIENT);
115121 sqlite3_bind_int (stmt, 6 , dataSynch);
122+ sqlite3_bind_int (stmt, 7 , showRSyntax);
116123 };
117124
118125 transactionWriteBegin ();
119- int id = runStatementsId (" INSERT OR REPLACE INTO DataSets (dataFilePath, dataFileTimestamp, description, databaseJson, emptyValuesJson, dataFileSynch, id) VALUES (?, ?, ?, ?, ?, ?, 1) RETURNING id;" , prepare);
126+ int id = runStatementsId (" INSERT OR REPLACE INTO DataSets (dataFilePath, dataFileTimestamp, description, databaseJson, emptyValuesJson, dataFileSynch, showRSyntax, id) VALUES (?, ?, ?, ?, ?, ?, ?, 1) RETURNING id;" , prepare);
120127 runStatements (" CREATE TABLE " + dataSetName (id) + " (rowNumber INTEGER PRIMARY KEY);" ); // Can be overwritten through dataSetCreateTable
121128 transactionWriteEnd ();
122129
123130 return id;
124131}
125132
126- void DatabaseInterface::dataSetUpdate (int dataSetId, const std::string & dataFilePath, long dataFileTimestamp, const std::string & description, const std::string & databaseJson, const std::string & emptyValuesJson, bool dataSynch)
133+ void DatabaseInterface::dataSetUpdate (int dataSetId, const std::string & dataFilePath, long dataFileTimestamp, const std::string & description, const std::string & databaseJson, const std::string & emptyValuesJson, bool dataSynch, bool showRSyntax )
127134{
128135 JASPTIMER_SCOPE (DatabaseInterface::dataSetUpdate);
129136 std::function<void (sqlite3_stmt *stmt)> prepare = [&](sqlite3_stmt *stmt)
@@ -134,15 +141,16 @@ void DatabaseInterface::dataSetUpdate(int dataSetId, const std::string & dataFil
134141 sqlite3_bind_text (stmt, 4 , databaseJson.c_str (), databaseJson.length (), SQLITE_TRANSIENT);
135142 sqlite3_bind_text (stmt, 5 , emptyValuesJson.c_str (), emptyValuesJson.length (), SQLITE_TRANSIENT);
136143 sqlite3_bind_int (stmt, 6 , dataSynch);
137- sqlite3_bind_int (stmt, 7 , dataSetId);
144+ sqlite3_bind_int (stmt, 7 , showRSyntax);
145+ sqlite3_bind_int (stmt, 8 , dataSetId);
138146 };
139147
140148 // Log::log() << "UPDATE DataSet " << dataSetId << " with Empty Values: " << emptyValuesJson << std::endl;
141149
142- runStatements (" UPDATE DataSets SET dataFilePath=?, dataFileTimestamp=?, description=?, databaseJson=?, emptyValuesJson=?, dataFileSynch=?, revision=revision+1 WHERE id = ?;" , prepare);
150+ runStatements (" UPDATE DataSets SET dataFilePath=?, dataFileTimestamp=?, description=?, databaseJson=?, emptyValuesJson=?, dataFileSynch=?, showRSyntax=?, revision=revision+1 WHERE id = ?;" , prepare);
143151}
144152
145- void DatabaseInterface::dataSetLoad (int dataSetId, std::string & dataFilePath, long & dataFileTimestamp, std::string & description, std::string & databaseJson, std::string & emptyValuesJson, int & revision, bool & dataSynch)
153+ void DatabaseInterface::dataSetLoad (int dataSetId, std::string & dataFilePath, long & dataFileTimestamp, std::string & description, std::string & databaseJson, std::string & emptyValuesJson, int & revision, bool & dataSynch, bool & showRSyntax )
146154{
147155 JASPTIMER_SCOPE (DatabaseInterface::dataSetLoad);
148156 std::function<void (sqlite3_stmt *stmt)> prepare = [&](sqlite3_stmt *stmt)
@@ -154,7 +162,7 @@ void DatabaseInterface::dataSetLoad(int dataSetId, std::string & dataFilePath, l
154162 {
155163 int colCount = sqlite3_column_count (stmt);
156164
157- assert (colCount == 7 );
165+ assert (colCount == 8 );
158166
159167 dataFilePath = _wrap_sqlite3_column_text (stmt, 0 );
160168 dataFileTimestamp = sqlite3_column_int ( stmt, 1 );
@@ -163,11 +171,12 @@ void DatabaseInterface::dataSetLoad(int dataSetId, std::string & dataFilePath, l
163171 emptyValuesJson = _wrap_sqlite3_column_text (stmt, 4 );
164172 revision = sqlite3_column_int ( stmt, 5 );
165173 dataSynch = sqlite3_column_int ( stmt, 6 );
174+ showRSyntax = sqlite3_column_int ( stmt, 7 );
166175
167176 // Log::log() << "Output loadDataset(dataSetId="<<dataSetId<<") had (dataFilePath='"<<dataFilePath<<"', databaseJson='"<<databaseJson<<"', emptyValuesJson='"<<emptyValuesJson<<"')" << std::endl;
168177 };
169178
170- runStatements (" SELECT dataFilePath, dataFileTimestamp, description, databaseJson, emptyValuesJson, revision, dataFileSynch FROM DataSets WHERE id = ?;" , prepare, processRow);
179+ runStatements (" SELECT dataFilePath, dataFileTimestamp, description, databaseJson, emptyValuesJson, revision, dataFileSynch, showRSyntax FROM DataSets WHERE id = ?;" , prepare, processRow);
171180}
172181
173182int DatabaseInterface::dataSetColCount (int dataSetId)
0 commit comments