Begin;
Initialize;
InitializeSession "TESTDB";
Command "create database TESTDB";
TerminateSession;
InitializeSession "TESTDB";
Command "create table T (f1 int, f2 int, f3 ntext)";
Command "insert T values (?,?,?), (?,?,?), (?,?,?), (?,?,?), (?,?,?), (?,?,?)"
	[1,10,"match value",
	 2,20,"match value",
	 3,30,"match value",
	 4,40,"match value",
	 5,50,"match value",
	 6,60,"match value"];
Command "insert T values (?,?,?), (?,?,?), (?,?,?), (?,?,?), (?,?,?), (?,?,?)"
	[-1,-10,"no macchi",
	 -2,-20,"no macchi",
	 -3,-30,"no macchi",
	 -4,-40,"no macchi",
	 -5,-50,"no macchi",
	 -6,-60,"no macchi"];
Command "create index I1 on T(f1)";
Command "create fulltext index I3 on T(f3) hint 'inverted=(nolocation=true, notf=true)'";
Command "select * from T  limit -1 " ;
AssureCount 0;
Command "select * from T  limit ? offset ?" [0,-1];
AssureCount 0;
Command "select * from T  limit ? offset 0" [1];
AssureCount 0;
Command "select * from T  limit 11 offset ?" [1];
AssureCount 11;
Command "select * from T where f2 between -40 and 40 limit ? " [0];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit -1 offset ?" [-1];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit 0 offset 0" ;
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit ? offset ?" [1,1];
AssureCount 1;
Command "select * from T where f1 between -1 and 5 limit ? offset -1" [0];
AssureCount 0;
Command "select * from T where f1 between -1 and 5 limit ? offset ?" [-1,0];
AssureCount 0;
Command "select * from T where f1 between -1 and 5 limit 0 offset 1" ;
AssureCount 0;
Command "select * from T where f3 like '%match%' limit 1 offset -1" ;
AssureCount 0;
Command "select * from T where f3 like '%match%' limit 0 offset ?" [0];
AssureCount 0;
Command "select * from T where f3 like '%match%' limit ? offset 1" [-1];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit 3 offset 2" ;
AssureCount 3;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit ? offset ?" [2,4];
AssureCount 1;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit ? offset 5" [-1];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit ? offset 2" [6];
AssureCount 3;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit 1 offset 4" ;
AssureCount 1;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit ? offset ?" [0,5];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit ? offset ?" [-1,2];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit ? offset 4" [0];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit 0 offset ?" [5];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit 0 offset -1" ;
AssureCount 0;
Command "select * from T  limit ? offset ?" [7,6];
AssureCount 7;
Command "select * from T  limit -1 offset ?" [12];
AssureCount 0;
Command "select * from T  limit 0 offset 13" ;
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit ? offset 4" [5];
AssureCount 5;
Command "select * from T where f2 between -40 and 40 limit 0 offset ?" [4];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit 1 offset 8" ;
AssureCount 1;
Command "select * from T where f2 between -40 and 40 limit ? offset ?" [0,9];
AssureCount 0;
Command "select * from T where f1 between -1 and 5 limit 1 offset ?" [3];
AssureCount 1;
Command "select * from T where f1 between -1 and 5 limit ? offset 6" [1];
AssureCount 1;
Command "select * from T where f1 between -1 and 5 limit 0 offset 7" ;
AssureCount 0;
Command "select * from T where f3 like '%match%' limit 3 offset 3" ;
AssureCount 3;
Command "select * from T where f3 like '%match%' limit ? offset 7" [1];
AssureCount 0;
Command "select * from T where f3 like '%match%' limit ? offset ?" [0,-1];
AssureCount 0;
Command "select * from T where f3 like '%match%' limit 0 offset ?" [0];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit 0 offset 0" ;
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit ? offset ?" [1,1];
AssureCount 1;
Command "select * from T where f2 between -40 and 40 and f1 between 1 and 5 limit 0 offset ?" [-1];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit -1 offset 0" ;
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit ? offset 1" [4];
AssureCount 4;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit ? offset ?" [1,-1];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit ? offset 0" [1];
AssureCount 0;
Command "select * from T where f1 between 2 and 5 and f3 like '%match%' limit 8 offset 1" ;
AssureCount 4;
Command "select * from T where f1 between -1 and 5 limit ? offset ?" [0,0];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 and f3 like '%match%' limit 0 offset ?" [0];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit ? offset ?" [0,0];
AssureCount 0;
Command "select * from T where f2 between -40 and 40 limit ? " [16];
AssureCount 8;
Command "select * from T where f3 like '%match%' limit ? offset ?" [-1,6];
AssureCount 0;
TerminateSession;
InitializeSession "TESTDB";
Command "drop database TESTDB";
TerminateSession;
Terminate;
End;
