From b0f3cc1594308ed3f3977bdcd451e8cf0eb0478d Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 15 May 2018 22:15:04 +0200 Subject: sqlite: Allow for duplicated placeholders with just one placeholder This accounts for a case of a placeholder being duplicated in the prepare query, but where only one placeholder was used. This amends e4e87a2ece1e0c9901514fea094f31863b64b570 Task-number: QTBUG-68299 Change-Id: Ia92ee912facd51a13e7222886debb219b24442b0 Reviewed-by: Simon Hausmann --- tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tests/auto/sql') diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 23c8460133..38da5431fa 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -2347,6 +2347,16 @@ void tst_QSqlQuery::prepare_bind_exec() QCOMPARE(q.value(0).toInt(), 107); QCOMPARE(q.value(1).toString(), QString("name")); QCOMPARE(q.value(2).toString(), QString("107")); + + // Test just duplicated placeholders + QVERIFY(q.prepare("insert into " + qtest_prepare + " (id, name, name2) values (110, :name, :name)")); + q.bindValue(":name", "name"); + QVERIFY_SQL(q, exec()); + QVERIFY(q.exec("select * from " + qtest_prepare + " where id > 109 order by id")); + QVERIFY(q.next()); + QCOMPARE(q.value(0).toInt(), 110); + QCOMPARE(q.value(1).toString(), QString("name")); + QCOMPARE(q.value(2).toString(), QString("name")); } // end of SQLite scope } -- cgit v1.2.3