Skip to content

Commit e1ea78f

Browse files
committed
grammar: add tests for like operator and between
1 parent dd85b16 commit e1ea78f

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/tests/testsqlobjects.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,14 +223,24 @@ void TestTable::createTableWithIn()
223223

224224
void TestTable::createTableWithNotLikeConstraint()
225225
{
226-
QString sSQL = "CREATE TABLE hopefully_working("
227-
"value TEXT CONSTRAINT 'value' CHECK(value NOT LIKE 'prefix%')"
226+
QString sSQL = "CREATE TABLE hopefully_working(\n"
227+
"value TEXT CONSTRAINT 'value' CHECK(value NOT LIKE 'prefix%'),\n"
228+
"value2 TEXT CONSTRAINT 'value' CHECK(value2 NOT MATCH 'prefix%'),\n"
229+
"value3 TEXT CONSTRAINT 'value' CHECK(value3 NOT REGEXP 'prefix%'),\n"
230+
"value4 TEXT CONSTRAINT 'value' CHECK(value4 NOT GLOB 'prefix%'),\n"
231+
"value5 INTEGER CONSTRAINT 'value' CHECK(value5 BETWEEN 1+4 AND 100 OR 200),\n"
232+
"value6 INTEGER CONSTRAINT 'value' CHECK(value6 NOT BETWEEN 1 AND 100)\n"
228233
");";
229234

230235
Table tab = Table::parseSQL(sSQL);
231236
QVERIFY(tab.name() == "hopefully_working");
232237

233238
QVERIFY(tab.fields().at(0)->check() == "value NOT LIKE 'prefix%'");
239+
QVERIFY(tab.fields().at(1)->check() == "value2 NOT MATCH 'prefix%'");
240+
QVERIFY(tab.fields().at(2)->check() == "value3 NOT REGEXP 'prefix%'");
241+
QVERIFY(tab.fields().at(3)->check() == "value4 NOT GLOB 'prefix%'");
242+
QVERIFY(tab.fields().at(4)->check() == "value5 BETWEEN 1 + 4 AND 100 OR 200");
243+
QVERIFY(tab.fields().at(5)->check() == "value6 NOT BETWEEN 1 AND 100");
234244
}
235245

236246
QTEST_MAIN(TestTable)

0 commit comments

Comments
 (0)