summaryrefslogtreecommitdiff
blob: a0cf7514d0f767a8935346df69b123254914be29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
https://sqlite.org/cgi/src/info/04885763c4cd00cb
https://sqlite.org/cgi/src/info/b20503aaf5b6595a

--- /ext/fts5/test/fts5matchinfo.test
+++ /ext/fts5/test/fts5matchinfo.test
@@ -500,14 +500,18 @@
   INSERT INTO t1 VALUES('c', 'd');
 }
 
+if {$tcl_platform(byteOrder)=="littleEndian"} {
+  set res {X'02000000'}
+} else {
+  set res {X'00000002'}
+}
 do_execsql_test 15.1 {
   SELECT quote(matchinfo(t1, 'n')) FROM t1 LIMIT 1;
-} {X'02000000'}
-
+} $res
 do_execsql_test 15.2 {
   DELETE FROM t1_content WHERE rowid=1;
   SELECT quote(matchinfo(t1, 'n')) FROM t1 LIMIT 1;
-} {X'02000000'}
+} $res
 
 fts5_aux_test_functions db
 do_execsql_test 15.3 {
@@ -517,4 +521,3 @@
 }
 
 finish_test
-
--- /src/insert.c
+++ /src/insert.c
@@ -2170,12 +2170,14 @@
             x = *sqlite3VdbeGetOp(v, addrConflictCk);
             if( x.opcode!=OP_IdxRowid ){
               int p2;      /* New P2 value for copied conflict check opcode */
+              const char *zP4;
               if( sqlite3OpcodeProperty[x.opcode]&OPFLG_JUMP ){
                 p2 = lblRecheckOk;
               }else{
                 p2 = x.p2;
               }
-              sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, x.p4.z, x.p4type);
+              zP4 = x.p4type==P4_INT32 ? SQLITE_INT_TO_PTR(x.p4.i) : x.p4.z;
+              sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, zP4, x.p4type);
               sqlite3VdbeChangeP5(v, x.p5);
               VdbeCoverageIf(v, p2!=x.p2);
             }
--- /test/fts4aa.test
+++ /test/fts4aa.test
@@ -229,13 +229,18 @@
 # 2019-11-18 https://bugs.chromium.org/p/chromium/issues/detail?id=1025467
 db close
 sqlite3 db :memory:
+if {$tcl_platform(byteOrder)=="littleEndian"} {
+  set res {X'0200000000000000000000000E0000000E00000001000000010000000100000001000000'}
+} else {
+  set res {X'0000000200000000000000000000000E0000000E00000001000000010000000100000001'}
+}
 do_execsql_test fts4aa-6.10 {
   CREATE VIRTUAL TABLE f USING fts4();
   INSERT INTO f_segdir VALUES (77,91,0,0,'255 77',x'0001308000004d5c4ddddddd4d4d7b4d4d4d614d8019ff4d05000001204d4d2e4d6e4d4d4d4b4d6c4d004d4d4d4d4d4d3d000000004d5d4d4d645d4d004d4d4d4d4d4d4d4d4d454d6910004d05ffff054d646c4d004d5d4d4d4d4d3d000000004d4d4d4d4d4d4d4d4d4d4d69624d4d4d04004d4d4d4d4d604d4ce1404d554d45');
   INSERT INTO f_segdir VALUES (77,108,0,0,'255 77',x'0001310000fa64004d4d4d3c5d4d654d4d4d614d8000ff4d05000001204d4d2e4d6e4d4d4dff4d4d4d4d4d4d00104d4d4d4d000000004d4d4d0400311d4d4d4d4d4d4d4d4d4d684d6910004d05ffff054d4d6c4d004d4d4d4d4d4d3d000000004d4d4d4d644d4d4d4d4d4d69624d4d4d03ed4d4d4d4d4d604d4ce1404d550080');
   INSERT INTO f_stat VALUES (0,x'80808080100000000064004d4d4d3c4d4d654d4d4d614d8000ff4df6ff1a00204d4d2e4d6e4d4d4d104d4d4d4d4d4d00104d4d4d4d4d4d69574d4d4d000031044d4d4d3e4d4d4c4d05004d6910');
   SELECT quote(matchinfo(f,'pnax')) from f where f match '0 1';
-} {X'0200000000000000000000000E0000000E00000001000000010000000100000001000000'}
+} $res
 
 # 2019-11-18 Detect infinite loop in fts3SelectLeaf()
 db close