SQLite: enable json1 extension
This patch enabled json1 support for sqlite3 by defining SQLITE_ENABLE_JSON1 [ChangeLog][QtSql][SQLite] Enable the json1-extension for the SQLite3 plugin Task-number: QTBUG-63498 Change-Id: Iaf1069ff1396c573125a5a3f490c0df5df560468 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
This commit is contained in:
parent
31f3facac3
commit
f46c9f67ba
2
src/3rdparty/sqlite.pri
vendored
2
src/3rdparty/sqlite.pri
vendored
@ -1,5 +1,5 @@
|
||||
CONFIG(release, debug|release):DEFINES *= NDEBUG
|
||||
DEFINES += SQLITE_ENABLE_COLUMN_METADATA SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_FTS5 SQLITE_ENABLE_RTREE
|
||||
DEFINES += SQLITE_ENABLE_COLUMN_METADATA SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_FTS5 SQLITE_ENABLE_RTREE SQLITE_ENABLE_JSON1
|
||||
!contains(CONFIG, largefile):DEFINES += SQLITE_DISABLE_LFS
|
||||
qtConfig(posix_fallocate): DEFINES += HAVE_POSIX_FALLOCATE=1
|
||||
winrt: DEFINES += SQLITE_OS_WINRT
|
||||
|
@ -199,6 +199,9 @@ private slots:
|
||||
|
||||
void sqlite_openError();
|
||||
|
||||
void sqlite_check_json1_data() { generic_data("QSQLITE"); }
|
||||
void sqlite_check_json1();
|
||||
|
||||
private:
|
||||
void createTestTables(QSqlDatabase db);
|
||||
void dropTestTables(QSqlDatabase db);
|
||||
@ -2350,6 +2353,30 @@ void tst_QSqlDatabase::sqlite_openError()
|
||||
QCOMPARE(error.databaseText(), "unable to open database file");
|
||||
}
|
||||
|
||||
void tst_QSqlDatabase::sqlite_check_json1()
|
||||
{
|
||||
QFETCH(QString, dbName);
|
||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
||||
CHECK_DATABASE(db);
|
||||
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
if (dbType != QSqlDriver::SQLite)
|
||||
QSKIP("SQLite3 specific test");
|
||||
|
||||
QSqlQuery q(db);
|
||||
const QString json1("{\"id\":1}");
|
||||
const QString tableName(qTableName("sqlite_check_json1", __FILE__, db));
|
||||
tst_Databases::safeDropTable(db, tableName);
|
||||
QVERIFY_SQL(q, exec(QString("CREATE TABLE %1(text TEXT)").arg(tableName)));
|
||||
QVERIFY_SQL(q, exec(QString("INSERT INTO %1 VALUES(json('%2'))").arg(tableName, json1)));
|
||||
QVERIFY_SQL(q, prepare(QString("INSERT INTO %1 VALUES(?)").arg(tableName)));
|
||||
q.addBindValue("json('{\"id\":2}')");
|
||||
QVERIFY_SQL(q, prepare(QString("SELECT * from %1 WHERE text = json('%2')").arg(tableName, json1)));
|
||||
QVERIFY_SQL(q, exec());
|
||||
QVERIFY_SQL(q, next());
|
||||
QCOMPARE(q.value(0).toString(), json1);
|
||||
QFAIL_SQL(q, next());
|
||||
}
|
||||
|
||||
void tst_QSqlDatabase::cloneDatabase()
|
||||
{
|
||||
QFETCH(QString, dbName);
|
||||
|
Loading…
x
Reference in New Issue
Block a user