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
|
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
|
!contains(CONFIG, largefile):DEFINES += SQLITE_DISABLE_LFS
|
||||||
qtConfig(posix_fallocate): DEFINES += HAVE_POSIX_FALLOCATE=1
|
qtConfig(posix_fallocate): DEFINES += HAVE_POSIX_FALLOCATE=1
|
||||||
winrt: DEFINES += SQLITE_OS_WINRT
|
winrt: DEFINES += SQLITE_OS_WINRT
|
||||||
|
@ -199,6 +199,9 @@ private slots:
|
|||||||
|
|
||||||
void sqlite_openError();
|
void sqlite_openError();
|
||||||
|
|
||||||
|
void sqlite_check_json1_data() { generic_data("QSQLITE"); }
|
||||||
|
void sqlite_check_json1();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createTestTables(QSqlDatabase db);
|
void createTestTables(QSqlDatabase db);
|
||||||
void dropTestTables(QSqlDatabase db);
|
void dropTestTables(QSqlDatabase db);
|
||||||
@ -2350,6 +2353,30 @@ void tst_QSqlDatabase::sqlite_openError()
|
|||||||
QCOMPARE(error.databaseText(), "unable to open database file");
|
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()
|
void tst_QSqlDatabase::cloneDatabase()
|
||||||
{
|
{
|
||||||
QFETCH(QString, dbName);
|
QFETCH(QString, dbName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user