On Mon Nov 20, 2017 at 11:04:01AM +0000, Hick Gunter wrote: > > Can you provide the original SQL (both for the INSERT and the CREATE > TRIGGER) and the explain output (SQLite byte code, i.e .explain > followed by explain <query>)?
Here is the trigger code: CREATE TABLE func_update_project( change_id INTEGER NOT NULL, id INTEGER NOT NULL, name VARCHAR(40), parent_id INTEGER, project_status_id INTEGER, title VARCHAR ); CREATE TRIGGER func_update_project_ai_1 AFTER INSERT ON func_update_project FOR EACH ROW BEGIN -- SELECT debug( -- ' change_id: ' || NEW.change_id, -- ' id: ' || NEW.id, -- ' name: ' || COALESCE(NEW.name,''), -- ' parent_id: ' || COALESCE(NEW.parent_id,''), -- ' project_status_id: ' || COALESCE(NEW.project_status_id,''), -- ' title: ' || COALESCE(NEW.title,'') -- ); SELECT RAISE(ABORT, 'Bif::Error::InvalidName') WHERE CAST(NEW.name AS INTEGER) = NEW.name ; UPDATE bifcodes SET bifcode = bifcode || ( SELECT '{U1:_,U14:update_project,' || 'U4:name,' || CASE WHEN NEW.name IS NOT NULL THEN printf('U%d:%s,', LENGTH(CAST(NEW.name AS BLOB)), CAST(NEW.name AS BLOB)) ELSE '~' END || 'U11:parent_uuid,' || CASE WHEN pp.uuid IS NOT NULL THEN printf('U%d:%s,', LENGTH(CAST(pp.uuid AS BLOB)), CAST(pp.uuid AS BLOB)) ELSE '~' END || 'U19:project_status_uuid,' || CASE WHEN ps.uuid IS NOT NULL THEN printf('U%d:%s,', LENGTH(CAST(ps.uuid AS BLOB)), CAST(ps.uuid AS BLOB)) ELSE '~' END || 'U5:title,' || CASE WHEN NEW.title IS NOT NULL THEN printf('U%d:%s,', LENGTH(CAST(NEW.title AS BLOB)), CAST(NEW.title AS BLOB)) ELSE '~' END || 'U4:uuid,' || printf('U%d:%s,', LENGTH(p.uuid), p.uuid) || '}' FROM nodes p LEFT JOIN nodes pp ON pp.id = NEW.parent_id LEFT JOIN nodes ps ON ps.id = NEW.project_status_id WHERE p.id = NEW.id ) WHERE change_id = NEW.change_id ; INSERT INTO deltas( id, change_id, function ) SELECT nextval('deltas'), NEW.change_id, 'update_project' ; INSERT INTO node_deltas( delta_id, change_id, node_id, parent_id, name ) SELECT currval('deltas'), NEW.change_id, NEW.id, NEW.parent_id, NEW.name ; INSERT INTO project_deltas( delta_id, change_id, project_id, title, project_status_id ) SELECT currval('deltas'), NEW.change_id, NEW.id, NEW.title, NEW.project_status_id WHERE COALESCE(NEW.title,NEW.project_status_id) IS NOT NULL ; DELETE FROM func_update_project; END; The udf that is called twice is the "nextval()" function. The insert is straightfoward: INSERT INTO func_update_project( change_id, id, project_status_id, title ) VALUES ( 49, 3, NULL, NULL ) ; I can't use .explain from the sqlite command-line on my database because of the UDFs, but I can print the formatted output of the explain command. The VALUES case and the SELECT case are further below, but here is the diff of just the opcodes: --- values.txt 2017-11-20 14:01:17.268360600 +0100 +++ select.txt 2017-11-20 14:02:11.694907800 +0100 @@ -124,16 +124,29 @@ MakeRecord Insert ResetCount -OpenWrite -OpenWrite +InitCoroutine String8 Function0 +Param +String8 +Yield +EndCoroutine +OpenEphemeral +Yield +MakeRecord +NewRowid +Insert +Goto +OpenWrite +OpenWrite +Rewind +Column NotNull NewRowid MustBeInt SoftNull -Param -String8 +Column +Column HaltIfNull HaltIfNull NotExists @@ -214,6 +227,8 @@ MakeRecord Insert Program +Next +Close ResetCount InitCoroutine String8 Here is the VALUES case (search for EOF to find the end); addr opcode p1 p2 p3 p4 p5 comment 0 Init 0 13 0 00 1 OpenWrite 0 94 0 6 00 2 NewRowid 0 1 0 00 3 Variable 1 2 0 00 4 Variable 2 3 0 00 5 Variable 3 6 0 00 6 Variable 4 7 0 00 7 HaltIfNull 1299 2 2 func_update_project.change_id 01 8 HaltIfNull 1299 2 3 func_update_project.id 01 9 MakeRecord 2 6 8 DDBDDB 00 10 Insert 0 8 1 func_update_project 39 11 Program -6 12 9 program 00 12 Halt 0 0 0 00 13 Transaction 0 1 331 0 01 14 Null 0 4 0 00 15 Null 0 5 0 00 16 Goto 0 1 0 00 0 Init 0 1 0 -- TRIGGER 00 func_update_project_ai_1 1 Param 10 1 0 00 2 Cast 1 68 0 00 3 Param 10 2 0 00 4 Ne 2 6 1 (BINARY) 54 5 Halt 1811 2 0 Bif::Error::InvalidName 00 6 Null 0 4 5 00 7 OpenWrite 0 99 0 2 00 8 Param 8 8 0 00 9 SeekRowid 0 11 8 00 10 Rowid 0 5 0 00 11 IsNull 5 108 0 00 12 Null 0 6 0 00 13 Column 0 1 2 00 14 Once 0 104 0 00 15 Null 0 9 9 00 16 Integer 1 10 0 00 17 OpenRead 1 162 0 9 00 18 OpenRead 2 162 0 9 00 19 OpenRead 3 162 0 9 00 20 Param 9 11 0 00 21 SeekRowid 1 104 11 00 22 Integer 0 12 0 00 23 Param 11 13 0 00 24 SeekRowid 2 101 13 00 25 Integer 1 12 0 00 26 Integer 0 14 0 00 27 Param 12 15 0 00 28 SeekRowid 3 98 15 00 29 Integer 1 14 0 00 30 String8 0 26 0 {U1:_,U14:update_project, 00 31 String8 0 27 0 U4:name, 00 32 Concat 27 26 25 00 33 Param 10 26 0 00 34 IsNull 26 43 0 00 35 String8 0 28 0 U%d:%s, 00 36 Param 10 31 0 00 37 Cast 31 65 0 00 38 Function0 1 31 29 length(1) 01 39 Param 10 30 0 00 40 Cast 30 65 0 00 41 Function0 7 28 27 printf(-1) 03 42 Goto 0 44 0 00 43 String8 0 27 0 ~ 00 44 Concat 27 25 24 00 45 String8 0 27 0 U11:parent_uuid, 00 46 Concat 27 24 23 00 47 Column 2 8 24 00 48 IsNull 24 57 0 00 49 String8 0 32 0 U%d:%s, 00 50 SCopy 24 25 0 00 51 Cast 25 65 0 00 52 Function0 0 25 33 length(1) 01 53 SCopy 24 34 0 00 54 Cast 34 65 0 00 55 Function0 1 32 27 printf(-1) 03 56 Goto 0 58 0 00 57 String8 0 27 0 ~ 00 58 Concat 27 23 22 00 59 String8 0 27 0 U19:project_status_uuid, 00 60 Concat 27 22 21 00 61 Column 3 8 22 00 62 IsNull 22 71 0 00 63 String8 0 35 0 U%d:%s, 00 64 SCopy 22 23 0 00 65 Cast 23 65 0 00 66 Function0 0 23 36 length(1) 01 67 SCopy 22 37 0 00 68 Cast 37 65 0 00 69 Function0 1 35 27 printf(-1) 03 70 Goto 0 72 0 00 71 String8 0 27 0 ~ 00 72 Concat 27 21 20 00 73 String8 0 27 0 U5:title, 00 74 Concat 27 20 19 00 75 Param 13 20 0 00 76 IsNull 20 85 0 00 77 String8 0 38 0 U%d:%s, 00 78 Param 13 41 0 00 79 Cast 41 65 0 00 80 Function0 1 41 39 length(1) 01 81 Param 13 40 0 00 82 Cast 40 65 0 00 83 Function0 7 38 27 printf(-1) 03 84 Goto 0 86 0 00 85 String8 0 27 0 ~ 00 86 Concat 27 19 18 00 87 String8 0 27 0 U4:uuid, 00 88 Concat 27 18 17 00 89 String8 0 42 0 U%d:%s, 00 90 Column 1 8 18 40 91 Function0 0 18 43 length(1) 01 92 Column 1 8 44 00 93 Function0 1 42 27 printf(-1) 03 94 Concat 27 17 16 00 95 String8 0 17 0 } 00 96 Concat 17 16 9 00 97 DecrJumpZero 10 104 0 00 98 IfPos 14 101 0 00 99 NullRow 3 0 0 00 100 Goto 0 29 0 00 101 IfPos 12 104 0 00 102 NullRow 2 0 0 00 103 Goto 0 25 0 00 104 Concat 9 2 7 00 105 HaltIfNull 1299 2 7 bifcodes.bifcode 01 106 MakeRecord 6 2 16 D 00 107 Insert 0 16 5 bifcodes 05 108 ResetCount 0 0 0 00 109 OpenWrite 4 123 0 3 00 110 OpenWrite 5 124 0 k(2,,) 00 111 String8 0 52 0 deltas 00 112 Function0 1 52 45 nextval(1) 01 113 NotNull 45 115 0 00 114 NewRowid 4 45 0 00 115 MustBeInt 45 0 0 00 116 SoftNull 46 0 0 00 117 Param 8 47 0 00 118 String8 0 48 0 update_project 00 119 HaltIfNull 1299 2 47 deltas.change_id 01 120 HaltIfNull 1299 2 48 deltas.function 01 121 NotExists 4 123 45 00 122 Halt 1555 2 0 deltas.id 02 123 Affinity 46 3 0 DDB 00 124 SCopy 47 50 0 00 125 IntCopy 45 51 0 00 126 MakeRecord 50 2 49 00 127 IsNull 47 134 0 00 128 SCopy 47 18 0 00 129 MustBeInt 18 133 0 00 130 OpenRead 6 108 0 21 00 131 NotExists 6 133 18 00 132 Goto 0 134 0 00 133 FkCounter 0 1 0 00 134 Close 6 0 0 00 135 FkIfZero 0 139 0 00 136 OpenRead 7 246 0 0 00 137 SeekRowid 7 139 45 00 138 FkCounter 0 -1 0 00 139 FkIfZero 0 143 0 00 140 OpenRead 8 244 0 0 00 141 SeekRowid 8 143 45 00 142 FkCounter 0 -1 0 00 143 FkIfZero 0 147 0 00 144 OpenRead 9 222 0 0 00 145 SeekRowid 9 147 45 00 146 FkCounter 0 -1 0 00 147 FkIfZero 0 151 0 00 148 OpenRead 10 211 0 0 00 149 SeekRowid 10 151 45 00 150 FkCounter 0 -1 0 00 151 FkIfZero 0 155 0 00 152 OpenRead 11 190 0 0 00 153 SeekRowid 11 155 45 00 154 FkCounter 0 -1 0 00 155 FkIfZero 0 159 0 00 156 OpenRead 12 188 0 0 00 157 SeekRowid 12 159 45 00 158 FkCounter 0 -1 0 00 159 FkIfZero 0 163 0 00 160 OpenRead 13 175 0 0 00 161 SeekRowid 13 163 45 00 162 FkCounter 0 -1 0 00 163 FkIfZero 0 167 0 00 164 OpenRead 14 172 0 0 00 165 SeekRowid 14 167 45 00 166 FkCounter 0 -1 0 00 167 FkIfZero 0 171 0 00 168 OpenRead 15 155 0 0 00 169 SeekRowid 15 171 45 00 170 FkCounter 0 -1 0 00 171 FkIfZero 0 175 0 00 172 OpenRead 16 153 0 0 00 173 SeekRowid 16 175 45 00 174 FkCounter 0 -1 0 00 175 FkIfZero 0 179 0 00 176 OpenRead 17 152 0 0 00 177 SeekRowid 17 179 45 00 178 FkCounter 0 -1 0 00 179 FkIfZero 0 183 0 00 180 OpenRead 18 146 0 0 00 181 SeekRowid 18 183 45 00 182 FkCounter 0 -1 0 00 183 FkIfZero 0 187 0 00 184 OpenRead 19 144 0 0 00 185 SeekRowid 19 187 45 00 186 FkCounter 0 -1 0 00 187 FkIfZero 0 191 0 00 188 OpenRead 20 141 0 0 00 189 SeekRowid 20 191 45 00 190 FkCounter 0 -1 0 00 191 FkIfZero 0 195 0 00 192 OpenRead 21 132 0 0 00 193 SeekRowid 21 195 45 00 194 FkCounter 0 -1 0 00 195 IdxInsert 5 49 50 2 10 196 MakeRecord 46 3 53 00 197 Insert 4 53 45 deltas 31 198 Program 41 199 68 program 00 199 ResetCount 0 0 0 00 200 InitCoroutine 75 209 201 00 201 String8 0 76 0 deltas 00 202 Function0 1 76 70 currval(1) 01 203 Param 8 71 0 00 204 Param 9 72 0 00 205 Param 11 73 0 00 206 Param 10 74 0 00 207 Yield 75 0 0 00 208 EndCoroutine 75 0 0 00 209 OpenEphemeral 22 5 0 00 210 Yield 75 215 0 00 211 MakeRecord 70 5 77 00 212 NewRowid 22 78 0 00 213 Insert 22 77 78 00 214 Goto 0 210 0 00 215 OpenWrite 23 155 0 5 00 216 OpenWrite 24 156 0 k(2,,) 00 217 Rewind 22 276 0 00 218 Column 22 0 69 00 219 NotNull 69 221 0 00 220 NewRowid 23 69 0 00 221 MustBeInt 69 0 0 00 222 SoftNull 70 0 0 00 223 Column 22 1 71 00 224 Column 22 2 72 00 225 Column 22 3 73 00 226 Column 22 4 74 00 227 HaltIfNull 1299 2 71 node_deltas.change_id 01 228 HaltIfNull 1299 2 72 node_deltas.node_id 01 229 NotExists 23 231 69 00 230 Halt 1555 2 0 node_deltas.delta_id 02 231 Affinity 70 5 0 DDDDB 00 232 SCopy 72 80 0 00 233 IntCopy 69 81 0 00 234 MakeRecord 80 2 79 00 235 IsNull 73 242 0 00 236 SCopy 73 78 0 00 237 MustBeInt 78 241 0 00 238 OpenRead 25 162 0 22 00 239 NotExists 25 241 78 00 240 Goto 0 242 0 00 241 FkCounter 0 1 0 00 242 Close 25 0 0 00 243 IsNull 72 250 0 00 244 SCopy 72 78 0 00 245 MustBeInt 78 249 0 00 246 OpenRead 26 162 0 22 00 247 NotExists 26 249 78 00 248 Goto 0 250 0 00 249 FkCounter 0 1 0 00 250 Close 26 0 0 00 251 IsNull 71 258 0 00 252 SCopy 71 78 0 00 253 MustBeInt 78 257 0 00 254 OpenRead 27 108 0 21 00 255 NotExists 27 257 78 00 256 Goto 0 258 0 00 257 FkCounter 0 1 0 00 258 Close 27 0 0 00 259 IsNull 69 266 0 00 260 SCopy 69 78 0 00 261 MustBeInt 78 265 0 00 262 OpenRead 28 123 0 3 00 263 NotExists 28 265 78 00 264 Goto 0 266 0 00 265 FkCounter 0 1 0 00 266 Close 28 0 0 00 267 FkIfZero 0 271 0 00 268 OpenRead 29 217 0 0 00 269 SeekRowid 29 271 69 00 270 FkCounter 0 -1 0 00 271 IdxInsert 24 79 80 2 10 272 MakeRecord 70 5 82 00 273 Insert 23 82 69 node_deltas 31 274 Program 63 275 83 program 00 275 Next 22 218 0 00 276 Close 22 0 0 00 277 ResetCount 0 0 0 00 278 InitCoroutine 90 291 279 00 279 Param 13 78 0 00 280 NotNull 78 282 0 00 281 Param 12 78 0 00 282 IsNull 78 290 0 00 283 String8 0 91 0 deltas 00 284 Function0 1 91 85 currval(1) 01 285 Param 8 86 0 00 286 Param 9 87 0 00 287 Param 13 88 0 00 288 Param 12 89 0 00 289 Yield 90 0 0 00 290 EndCoroutine 90 0 0 00 291 OpenEphemeral 30 5 0 00 292 Yield 90 297 0 00 293 MakeRecord 85 5 92 00 294 NewRowid 30 93 0 00 295 Insert 30 92 93 00 296 Goto 0 292 0 00 297 OpenWrite 31 188 0 5 00 298 Rewind 30 338 0 00 299 Column 30 0 84 00 300 NotNull 84 302 0 00 301 NewRowid 31 84 0 00 302 MustBeInt 84 0 0 00 303 SoftNull 85 0 0 00 304 Column 30 1 86 00 305 Column 30 2 87 00 306 Column 30 3 88 00 307 Column 30 4 89 00 308 HaltIfNull 1299 2 86 project_deltas.change_id 01 309 HaltIfNull 1299 2 87 project_deltas.project_id 01 310 SCopy 88 93 0 00 311 NotNull 93 313 0 00 312 SCopy 89 93 0 00 313 NotNull 93 315 0 00 314 Halt 275 2 0 project_deltas_one_of 03 315 NotExists 31 317 84 00 316 Halt 1555 2 0 project_deltas.delta_id 02 317 IsNull 89 325 0 00 318 IsNull 87 325 0 00 319 OpenRead 32 197 0 k(2,,) 00 320 Copy 89 94 0 00 321 Copy 87 95 0 00 322 MakeRecord 94 2 93 DD 00 323 Found 32 325 93 0 00 324 FkCounter 0 1 0 00 325 Close 32 0 0 00 326 IsNull 84 333 0 00 327 SCopy 84 93 0 00 328 MustBeInt 93 332 0 00 329 OpenRead 33 123 0 3 00 330 NotExists 33 332 93 00 331 Goto 0 333 0 00 332 FkCounter 0 1 0 00 333 Close 33 0 0 00 334 MakeRecord 85 5 93 DDDBD 00 335 Insert 31 93 84 project_deltas 31 336 Program 78 337 96 program 00 337 Next 30 299 0 00 338 Close 30 0 0 00 339 ResetCount 0 0 0 00 340 Clear 94 0 -1 func_update_project 00 341 ResetCount 0 0 0 00 342 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER deltas_ai_seq 00 1 Null 0 1 2 00 2 OpenWrite 0 110 0 2 00 3 Last 0 17 0 00 4 Column 0 0 5 00 5 String8 0 6 0 deltas_sequence 00 6 Ne 6 16 5 (BINARY) 51 7 Column 0 1 6 00 8 Param 4 7 0 00 9 Ge 7 16 6 (BINARY) 53 10 Rowid 0 2 0 00 11 IsNull 2 17 0 00 12 SCopy 5 3 0 00 13 Param 4 4 0 00 14 MakeRecord 3 2 7 00 15 Insert 0 7 2 sqlite_sequence 07 16 Prev 0 4 0 01 17 ResetCount 0 0 0 00 18 Null 0 14 15 00 19 OpenWrite 1 108 0 21 00 20 Param 6 59 0 00 21 SeekRowid 1 23 59 00 22 Rowid 1 15 0 00 23 OpenWrite 2 112 0 k(2,,) 00 24 OpenWrite 3 111 0 k(1,) 00 25 IsNull 15 124 0 00 26 Rowid 1 16 0 00 27 Null 0 17 0 00 28 Column 1 2 18 00 29 Null 0 19 0 00 30 Null 0 20 0 00 31 Null 0 21 0 00 32 Null 0 22 0 00 33 Null 0 23 0 00 34 Null 0 24 0 00 35 Column 1 9 25 -1 00 36 Null 0 26 0 00 37 Null 0 27 0 00 38 Null 0 28 0 00 39 Null 0 29 0 00 40 Null 0 30 0 00 41 Null 0 31 0 00 42 Null 0 32 0 00 43 Null 0 33 0 00 44 Null 0 34 0 00 45 Null 0 35 0 00 46 Null 0 36 0 00 47 Copy 15 37 0 00 48 Null 0 38 0 00 49 Column 1 1 39 00 50 Column 1 2 40 00 51 Column 1 3 6 0 00 52 Integer 1 60 0 00 53 Add 60 6 41 00 54 Column 1 4 42 00 55 Column 1 5 43 00 56 Column 1 6 44 00 57 Column 1 7 45 00 58 Column 1 8 46 00 59 Column 1 9 47 -1 00 60 Column 1 10 48 00 61 Column 1 11 49 00 62 Column 1 12 50 00 63 Column 1 13 51 00 64 Column 1 14 52 00 65 Column 1 15 53 00 66 Column 1 16 54 00 67 Column 1 17 55 en 00 68 Column 1 18 56 00 69 Column 1 19 57 00 70 Column 1 20 58 00 71 HaltIfNull 1299 2 41 changes.dcount 01 72 Affinity 38 21 0 DBDDDDDBBDBBBBBBBBBBC 00 73 Null 0 8 0 00 74 Integer 0 60 0 00 75 Ne 60 79 58 (BINARY) 53 76 SCopy 58 9 0 00 77 IntCopy 37 10 0 00 78 MakeRecord 9 2 8 00 79 Null 0 11 0 00 80 String8 0 60 0 00 81 Eq 60 89 39 (BINARY) 52 82 SCopy 39 12 0 00 83 IntCopy 37 13 0 00 84 MakeRecord 12 2 11 00 85 NoConflict 3 89 12 1 00 86 IdxRowid 3 60 0 00 87 Eq 60 89 15 90 88 Halt 2067 2 0 changes.uuid 02 89 FkIfZero 0 97 0 00 90 IsNull 18 97 0 00 91 SCopy 18 60 0 00 92 MustBeInt 60 96 0 00 93 OpenRead 4 108 0 21 00 94 NotExists 4 96 60 00 95 Goto 0 97 0 00 96 FkCounter 0 -1 0 00 97 Close 4 0 0 00 98 Integer 0 60 0 00 99 Ne 60 103 58 (BINARY) 53 100 Column 1 20 61 00 101 Rowid 1 62 0 00 102 IdxDelete 2 61 2 00 103 Column 1 1 60 00 104 String8 0 63 0 00 105 Eq 63 108 60 (BINARY) 52 106 Column 1 1 63 00 107 IdxDelete 3 63 1 00 108 Delete 1 0 0 00 109 IsNull 40 117 0 00 110 SCopy 40 60 0 00 111 MustBeInt 60 116 0 00 112 Eq 37 117 60 90 113 OpenRead 5 108 0 21 00 114 NotExists 5 116 60 00 115 Goto 0 117 0 00 116 FkCounter 0 1 0 00 117 Close 5 0 0 00 118 IsNull 8 120 0 00 119 IdxInsert 2 8 9 2 00 120 IsNull 11 122 0 00 121 IdxInsert 3 11 12 1 00 122 MakeRecord 38 21 60 00 123 Insert 1 60 37 changes 05 124 ResetCount 0 0 0 00 125 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER node_deltas_ai_1 00 1 Param 6 2 0 00 2 Param 8 3 0 00 3 Param 9 4 0 00 4 Param 10 5 0 00 5 Param 11 6 0 00 6 Function0 31 2 1 debug(-1) 05 7 Null 0 10 11 00 8 OpenWrite 0 157 0 4 00 9 Param 9 16 0 00 10 SeekRowid 0 27 16 00 11 Column 0 3 17 1 00 12 Integer 0 18 0 00 13 Eq 18 26 17 (BINARY) 44 14 Column 0 2 18 0 00 15 Integer 1 19 0 00 16 Param 11 20 0 00 17 NotNull 20 19 0 00 18 Integer 0 19 0 00 19 Ne 19 26 18 (BINARY) 44 20 Column 0 1 18 0 00 21 Integer 1 19 0 00 22 Param 10 20 0 00 23 NotNull 20 25 0 00 24 Integer 0 19 0 00 25 Eq 19 27 18 (BINARY) 54 26 Rowid 0 11 0 00 27 OpenWrite 1 158 0 k(2,,) 00 28 IsNull 11 56 0 00 29 Null 0 12 0 00 30 Column 0 1 17 0 00 31 Integer 1 18 0 00 32 Param 10 19 0 00 33 NotNull 19 35 0 00 34 Integer 0 18 0 00 35 Or 18 17 13 00 36 Column 0 2 18 0 00 37 Integer 1 19 0 00 38 Param 11 20 0 00 39 NotNull 20 41 0 00 40 Integer 0 19 0 00 41 Or 19 18 14 00 42 Integer 1 15 0 00 43 HaltIfNull 1299 2 13 nodes_tomerge.parent_id 01 44 HaltIfNull 1299 2 14 nodes_tomerge.name 01 45 HaltIfNull 1299 2 15 nodes_tomerge.dirty 01 46 Affinity 12 4 0 DDDD 00 47 SCopy 15 8 0 00 48 IntCopy 11 9 0 00 49 MakeRecord 8 2 7 00 50 Column 0 3 21 1 00 51 Rowid 0 22 0 00 52 IdxDelete 1 21 2 00 53 IdxInsert 1 7 8 2 00 54 MakeRecord 12 4 19 00 55 Insert 0 19 11 nodes_tomerge 05 56 ResetCount 0 0 0 00 57 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER 00 project_deltas_ai_1 1 Param 6 2 0 00 2 Param 9 3 0 00 3 Param 10 4 0 00 4 Param 11 5 0 00 5 Function0 15 2 1 debug(-1) 04 6 OpenWrite 0 198 0 4 00 7 OpenWrite 1 199 0 k(1,) 00 8 NewRowid 0 6 0 00 9 Param 9 7 0 00 10 Integer 0 8 0 00 11 Integer 0 9 0 00 12 Null 0 10 0 00 13 IsNull 7 31 0 00 14 Affinity 7 4 0 DDDD 00 15 SCopy 7 12 0 00 16 IntCopy 6 13 0 00 17 MakeRecord 12 2 11 00 18 NoConflict 1 20 12 1 00 19 Goto 0 31 0 00 20 IsNull 7 27 0 00 21 SCopy 7 14 0 00 22 MustBeInt 14 26 0 00 23 OpenRead 2 203 0 9 00 24 NotExists 2 26 14 00 25 Goto 0 27 0 00 26 FkCounter 0 1 0 00 27 Close 2 0 0 00 28 IdxInsert 1 11 12 1 10 29 MakeRecord 7 4 14 00 30 Insert 0 14 6 projects_tomerge 39 31 ResetCount 0 0 0 00 32 Null 0 15 16 00 33 OpenWrite 3 198 0 4 08 34 OpenWrite 4 199 0 k(1,) 02 35 Param 9 21 0 00 36 IsNull 21 43 0 00 37 Affinity 21 1 0 D 00 38 SeekLE 4 43 21 1 00 39 IdxLT 4 43 21 1 00 40 IdxRowid 4 22 0 00 41 NotExists 3 0 22 00 42 Rowid 3 16 0 00 43 IsNull 16 60 0 00 44 Column 3 0 17 00 45 Column 3 1 23 0 00 46 Integer 1 24 0 00 47 Param 10 25 0 00 48 NotNull 25 50 0 00 49 Integer 0 24 0 00 50 Add 24 23 18 00 51 Column 3 2 24 0 00 52 Integer 1 25 0 00 53 Param 11 26 0 00 54 NotNull 26 56 0 00 55 Integer 0 25 0 00 56 Add 25 24 19 00 57 Column 3 3 20 00 58 MakeRecord 17 4 25 DDDD 00 59 Insert 3 25 16 projects_tomerge 05 60 ResetCount 0 0 0 00 61 Halt 0 0 0 00 EOF Here is the SELECT case (search for EOF to find the end); addr opcode p1 p2 p3 p4 p5 comment 0 Init 0 13 0 00 1 OpenWrite 0 94 0 6 00 2 NewRowid 0 1 0 00 3 Variable 1 2 0 00 4 Variable 2 3 0 00 5 Variable 3 6 0 00 6 Variable 4 7 0 00 7 HaltIfNull 1299 2 2 func_update_project.change_id 01 8 HaltIfNull 1299 2 3 func_update_project.id 01 9 MakeRecord 2 6 8 DDBDDB 00 10 Insert 0 8 1 func_update_project 39 11 Program -6 12 9 program 00 12 Halt 0 0 0 00 13 Transaction 0 1 331 0 01 14 Null 0 4 0 00 15 Null 0 5 0 00 16 Goto 0 1 0 00 0 Init 0 1 0 -- TRIGGER 00 func_update_project_ai_1 1 Param 10 1 0 00 2 Cast 1 68 0 00 3 Param 10 2 0 00 4 Ne 2 6 1 (BINARY) 54 5 Halt 1811 2 0 Bif::Error::InvalidName 00 6 Null 0 4 5 00 7 OpenWrite 0 99 0 2 00 8 Param 8 8 0 00 9 SeekRowid 0 11 8 00 10 Rowid 0 5 0 00 11 IsNull 5 108 0 00 12 Null 0 6 0 00 13 Column 0 1 2 00 14 Once 0 104 0 00 15 Null 0 9 9 00 16 Integer 1 10 0 00 17 OpenRead 1 162 0 9 00 18 OpenRead 2 162 0 9 00 19 OpenRead 3 162 0 9 00 20 Param 9 11 0 00 21 SeekRowid 1 104 11 00 22 Integer 0 12 0 00 23 Param 11 13 0 00 24 SeekRowid 2 101 13 00 25 Integer 1 12 0 00 26 Integer 0 14 0 00 27 Param 12 15 0 00 28 SeekRowid 3 98 15 00 29 Integer 1 14 0 00 30 String8 0 26 0 {U1:_,U14:update_project, 00 31 String8 0 27 0 U4:name, 00 32 Concat 27 26 25 00 33 Param 10 26 0 00 34 IsNull 26 43 0 00 35 String8 0 28 0 U%d:%s, 00 36 Param 10 31 0 00 37 Cast 31 65 0 00 38 Function0 1 31 29 length(1) 01 39 Param 10 30 0 00 40 Cast 30 65 0 00 41 Function0 7 28 27 printf(-1) 03 42 Goto 0 44 0 00 43 String8 0 27 0 ~ 00 44 Concat 27 25 24 00 45 String8 0 27 0 U11:parent_uuid, 00 46 Concat 27 24 23 00 47 Column 2 8 24 00 48 IsNull 24 57 0 00 49 String8 0 32 0 U%d:%s, 00 50 SCopy 24 25 0 00 51 Cast 25 65 0 00 52 Function0 0 25 33 length(1) 01 53 SCopy 24 34 0 00 54 Cast 34 65 0 00 55 Function0 1 32 27 printf(-1) 03 56 Goto 0 58 0 00 57 String8 0 27 0 ~ 00 58 Concat 27 23 22 00 59 String8 0 27 0 U19:project_status_uuid, 00 60 Concat 27 22 21 00 61 Column 3 8 22 00 62 IsNull 22 71 0 00 63 String8 0 35 0 U%d:%s, 00 64 SCopy 22 23 0 00 65 Cast 23 65 0 00 66 Function0 0 23 36 length(1) 01 67 SCopy 22 37 0 00 68 Cast 37 65 0 00 69 Function0 1 35 27 printf(-1) 03 70 Goto 0 72 0 00 71 String8 0 27 0 ~ 00 72 Concat 27 21 20 00 73 String8 0 27 0 U5:title, 00 74 Concat 27 20 19 00 75 Param 13 20 0 00 76 IsNull 20 85 0 00 77 String8 0 38 0 U%d:%s, 00 78 Param 13 41 0 00 79 Cast 41 65 0 00 80 Function0 1 41 39 length(1) 01 81 Param 13 40 0 00 82 Cast 40 65 0 00 83 Function0 7 38 27 printf(-1) 03 84 Goto 0 86 0 00 85 String8 0 27 0 ~ 00 86 Concat 27 19 18 00 87 String8 0 27 0 U4:uuid, 00 88 Concat 27 18 17 00 89 String8 0 42 0 U%d:%s, 00 90 Column 1 8 18 40 91 Function0 0 18 43 length(1) 01 92 Column 1 8 44 00 93 Function0 1 42 27 printf(-1) 03 94 Concat 27 17 16 00 95 String8 0 17 0 } 00 96 Concat 17 16 9 00 97 DecrJumpZero 10 104 0 00 98 IfPos 14 101 0 00 99 NullRow 3 0 0 00 100 Goto 0 29 0 00 101 IfPos 12 104 0 00 102 NullRow 2 0 0 00 103 Goto 0 25 0 00 104 Concat 9 2 7 00 105 HaltIfNull 1299 2 7 bifcodes.bifcode 01 106 MakeRecord 6 2 16 D 00 107 Insert 0 16 5 bifcodes 05 108 ResetCount 0 0 0 00 109 InitCoroutine 49 116 110 00 110 String8 0 50 0 deltas 00 111 Function0 1 50 46 nextval(1) 01 112 Param 8 47 0 00 113 String8 0 48 0 update_project 00 114 Yield 49 0 0 00 115 EndCoroutine 49 0 0 00 116 OpenEphemeral 4 3 0 00 117 Yield 49 122 0 00 118 MakeRecord 46 3 51 00 119 NewRowid 4 52 0 00 120 Insert 4 51 52 00 121 Goto 0 117 0 00 122 OpenWrite 5 123 0 3 00 123 OpenWrite 6 124 0 k(2,,) 00 124 Rewind 4 213 0 00 125 Column 4 0 45 00 126 NotNull 45 128 0 00 127 NewRowid 5 45 0 00 128 MustBeInt 45 0 0 00 129 SoftNull 46 0 0 00 130 Column 4 1 47 00 131 Column 4 2 48 00 132 HaltIfNull 1299 2 47 deltas.change_id 01 133 HaltIfNull 1299 2 48 deltas.function 01 134 NotExists 5 136 45 00 135 Halt 1555 2 0 deltas.id 02 136 Affinity 46 3 0 DDB 00 137 SCopy 47 54 0 00 138 IntCopy 45 55 0 00 139 MakeRecord 54 2 53 00 140 IsNull 47 147 0 00 141 SCopy 47 52 0 00 142 MustBeInt 52 146 0 00 143 OpenRead 7 108 0 21 00 144 NotExists 7 146 52 00 145 Goto 0 147 0 00 146 FkCounter 0 1 0 00 147 Close 7 0 0 00 148 FkIfZero 0 152 0 00 149 OpenRead 8 246 0 0 00 150 SeekRowid 8 152 45 00 151 FkCounter 0 -1 0 00 152 FkIfZero 0 156 0 00 153 OpenRead 9 244 0 0 00 154 SeekRowid 9 156 45 00 155 FkCounter 0 -1 0 00 156 FkIfZero 0 160 0 00 157 OpenRead 10 222 0 0 00 158 SeekRowid 10 160 45 00 159 FkCounter 0 -1 0 00 160 FkIfZero 0 164 0 00 161 OpenRead 11 211 0 0 00 162 SeekRowid 11 164 45 00 163 FkCounter 0 -1 0 00 164 FkIfZero 0 168 0 00 165 OpenRead 12 190 0 0 00 166 SeekRowid 12 168 45 00 167 FkCounter 0 -1 0 00 168 FkIfZero 0 172 0 00 169 OpenRead 13 188 0 0 00 170 SeekRowid 13 172 45 00 171 FkCounter 0 -1 0 00 172 FkIfZero 0 176 0 00 173 OpenRead 14 175 0 0 00 174 SeekRowid 14 176 45 00 175 FkCounter 0 -1 0 00 176 FkIfZero 0 180 0 00 177 OpenRead 15 172 0 0 00 178 SeekRowid 15 180 45 00 179 FkCounter 0 -1 0 00 180 FkIfZero 0 184 0 00 181 OpenRead 16 155 0 0 00 182 SeekRowid 16 184 45 00 183 FkCounter 0 -1 0 00 184 FkIfZero 0 188 0 00 185 OpenRead 17 153 0 0 00 186 SeekRowid 17 188 45 00 187 FkCounter 0 -1 0 00 188 FkIfZero 0 192 0 00 189 OpenRead 18 152 0 0 00 190 SeekRowid 18 192 45 00 191 FkCounter 0 -1 0 00 192 FkIfZero 0 196 0 00 193 OpenRead 19 146 0 0 00 194 SeekRowid 19 196 45 00 195 FkCounter 0 -1 0 00 196 FkIfZero 0 200 0 00 197 OpenRead 20 144 0 0 00 198 SeekRowid 20 200 45 00 199 FkCounter 0 -1 0 00 200 FkIfZero 0 204 0 00 201 OpenRead 21 141 0 0 00 202 SeekRowid 21 204 45 00 203 FkCounter 0 -1 0 00 204 FkIfZero 0 208 0 00 205 OpenRead 22 132 0 0 00 206 SeekRowid 22 208 45 00 207 FkCounter 0 -1 0 00 208 IdxInsert 6 53 54 2 10 209 MakeRecord 46 3 61 00 210 Insert 5 61 45 deltas 31 211 Program 41 212 71 program 00 212 Next 4 125 0 00 213 Close 4 0 0 00 214 ResetCount 0 0 0 00 215 InitCoroutine 78 224 216 00 216 String8 0 79 0 deltas 00 217 Function0 1 79 73 currval(1) 01 218 Param 8 74 0 00 219 Param 9 75 0 00 220 Param 11 76 0 00 221 Param 10 77 0 00 222 Yield 78 0 0 00 223 EndCoroutine 78 0 0 00 224 OpenEphemeral 23 5 0 00 225 Yield 78 230 0 00 226 MakeRecord 73 5 80 00 227 NewRowid 23 81 0 00 228 Insert 23 80 81 00 229 Goto 0 225 0 00 230 OpenWrite 24 155 0 5 00 231 OpenWrite 25 156 0 k(2,,) 00 232 Rewind 23 291 0 00 233 Column 23 0 72 00 234 NotNull 72 236 0 00 235 NewRowid 24 72 0 00 236 MustBeInt 72 0 0 00 237 SoftNull 73 0 0 00 238 Column 23 1 74 00 239 Column 23 2 75 00 240 Column 23 3 76 00 241 Column 23 4 77 00 242 HaltIfNull 1299 2 74 node_deltas.change_id 01 243 HaltIfNull 1299 2 75 node_deltas.node_id 01 244 NotExists 24 246 72 00 245 Halt 1555 2 0 node_deltas.delta_id 02 246 Affinity 73 5 0 DDDDB 00 247 SCopy 75 83 0 00 248 IntCopy 72 84 0 00 249 MakeRecord 83 2 82 00 250 IsNull 76 257 0 00 251 SCopy 76 81 0 00 252 MustBeInt 81 256 0 00 253 OpenRead 26 162 0 22 00 254 NotExists 26 256 81 00 255 Goto 0 257 0 00 256 FkCounter 0 1 0 00 257 Close 26 0 0 00 258 IsNull 75 265 0 00 259 SCopy 75 81 0 00 260 MustBeInt 81 264 0 00 261 OpenRead 27 162 0 22 00 262 NotExists 27 264 81 00 263 Goto 0 265 0 00 264 FkCounter 0 1 0 00 265 Close 27 0 0 00 266 IsNull 74 273 0 00 267 SCopy 74 81 0 00 268 MustBeInt 81 272 0 00 269 OpenRead 28 108 0 21 00 270 NotExists 28 272 81 00 271 Goto 0 273 0 00 272 FkCounter 0 1 0 00 273 Close 28 0 0 00 274 IsNull 72 281 0 00 275 SCopy 72 81 0 00 276 MustBeInt 81 280 0 00 277 OpenRead 29 123 0 3 00 278 NotExists 29 280 81 00 279 Goto 0 281 0 00 280 FkCounter 0 1 0 00 281 Close 29 0 0 00 282 FkIfZero 0 286 0 00 283 OpenRead 30 217 0 0 00 284 SeekRowid 30 286 72 00 285 FkCounter 0 -1 0 00 286 IdxInsert 25 82 83 2 10 287 MakeRecord 73 5 85 00 288 Insert 24 85 72 node_deltas 31 289 Program 66 290 86 program 00 290 Next 23 233 0 00 291 Close 23 0 0 00 292 ResetCount 0 0 0 00 293 InitCoroutine 93 306 294 00 294 Param 13 81 0 00 295 NotNull 81 297 0 00 296 Param 12 81 0 00 297 IsNull 81 305 0 00 298 String8 0 94 0 deltas 00 299 Function0 1 94 88 currval(1) 01 300 Param 8 89 0 00 301 Param 9 90 0 00 302 Param 13 91 0 00 303 Param 12 92 0 00 304 Yield 93 0 0 00 305 EndCoroutine 93 0 0 00 306 OpenEphemeral 31 5 0 00 307 Yield 93 312 0 00 308 MakeRecord 88 5 95 00 309 NewRowid 31 96 0 00 310 Insert 31 95 96 00 311 Goto 0 307 0 00 312 OpenWrite 32 188 0 5 00 313 Rewind 31 353 0 00 314 Column 31 0 87 00 315 NotNull 87 317 0 00 316 NewRowid 32 87 0 00 317 MustBeInt 87 0 0 00 318 SoftNull 88 0 0 00 319 Column 31 1 89 00 320 Column 31 2 90 00 321 Column 31 3 91 00 322 Column 31 4 92 00 323 HaltIfNull 1299 2 89 project_deltas.change_id 01 324 HaltIfNull 1299 2 90 project_deltas.project_id 01 325 SCopy 91 96 0 00 326 NotNull 96 328 0 00 327 SCopy 92 96 0 00 328 NotNull 96 330 0 00 329 Halt 275 2 0 project_deltas_one_of 03 330 NotExists 32 332 87 00 331 Halt 1555 2 0 project_deltas.delta_id 02 332 IsNull 92 340 0 00 333 IsNull 90 340 0 00 334 OpenRead 33 197 0 k(2,,) 00 335 Copy 92 97 0 00 336 Copy 90 98 0 00 337 MakeRecord 97 2 96 DD 00 338 Found 33 340 96 0 00 339 FkCounter 0 1 0 00 340 Close 33 0 0 00 341 IsNull 87 348 0 00 342 SCopy 87 96 0 00 343 MustBeInt 96 347 0 00 344 OpenRead 34 123 0 3 00 345 NotExists 34 347 96 00 346 Goto 0 348 0 00 347 FkCounter 0 1 0 00 348 Close 34 0 0 00 349 MakeRecord 88 5 96 DDDBD 00 350 Insert 32 96 87 project_deltas 31 351 Program 81 352 99 program 00 352 Next 31 314 0 00 353 Close 31 0 0 00 354 ResetCount 0 0 0 00 355 Clear 94 0 -1 func_update_project 00 356 ResetCount 0 0 0 00 357 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER deltas_ai_seq 00 1 Null 0 1 2 00 2 OpenWrite 0 110 0 2 00 3 Last 0 17 0 00 4 Column 0 0 5 00 5 String8 0 6 0 deltas_sequence 00 6 Ne 6 16 5 (BINARY) 51 7 Column 0 1 6 00 8 Param 4 7 0 00 9 Ge 7 16 6 (BINARY) 53 10 Rowid 0 2 0 00 11 IsNull 2 17 0 00 12 SCopy 5 3 0 00 13 Param 4 4 0 00 14 MakeRecord 3 2 7 00 15 Insert 0 7 2 sqlite_sequence 07 16 Prev 0 4 0 01 17 ResetCount 0 0 0 00 18 Null 0 14 15 00 19 OpenWrite 1 108 0 21 00 20 Param 6 59 0 00 21 SeekRowid 1 23 59 00 22 Rowid 1 15 0 00 23 OpenWrite 2 112 0 k(2,,) 00 24 OpenWrite 3 111 0 k(1,) 00 25 IsNull 15 124 0 00 26 Rowid 1 16 0 00 27 Null 0 17 0 00 28 Column 1 2 18 00 29 Null 0 19 0 00 30 Null 0 20 0 00 31 Null 0 21 0 00 32 Null 0 22 0 00 33 Null 0 23 0 00 34 Null 0 24 0 00 35 Column 1 9 25 -1 00 36 Null 0 26 0 00 37 Null 0 27 0 00 38 Null 0 28 0 00 39 Null 0 29 0 00 40 Null 0 30 0 00 41 Null 0 31 0 00 42 Null 0 32 0 00 43 Null 0 33 0 00 44 Null 0 34 0 00 45 Null 0 35 0 00 46 Null 0 36 0 00 47 Copy 15 37 0 00 48 Null 0 38 0 00 49 Column 1 1 39 00 50 Column 1 2 40 00 51 Column 1 3 6 0 00 52 Integer 1 60 0 00 53 Add 60 6 41 00 54 Column 1 4 42 00 55 Column 1 5 43 00 56 Column 1 6 44 00 57 Column 1 7 45 00 58 Column 1 8 46 00 59 Column 1 9 47 -1 00 60 Column 1 10 48 00 61 Column 1 11 49 00 62 Column 1 12 50 00 63 Column 1 13 51 00 64 Column 1 14 52 00 65 Column 1 15 53 00 66 Column 1 16 54 00 67 Column 1 17 55 en 00 68 Column 1 18 56 00 69 Column 1 19 57 00 70 Column 1 20 58 00 71 HaltIfNull 1299 2 41 changes.dcount 01 72 Affinity 38 21 0 DBDDDDDBBDBBBBBBBBBBC 00 73 Null 0 8 0 00 74 Integer 0 60 0 00 75 Ne 60 79 58 (BINARY) 53 76 SCopy 58 9 0 00 77 IntCopy 37 10 0 00 78 MakeRecord 9 2 8 00 79 Null 0 11 0 00 80 String8 0 60 0 00 81 Eq 60 89 39 (BINARY) 52 82 SCopy 39 12 0 00 83 IntCopy 37 13 0 00 84 MakeRecord 12 2 11 00 85 NoConflict 3 89 12 1 00 86 IdxRowid 3 60 0 00 87 Eq 60 89 15 90 88 Halt 2067 2 0 changes.uuid 02 89 FkIfZero 0 97 0 00 90 IsNull 18 97 0 00 91 SCopy 18 60 0 00 92 MustBeInt 60 96 0 00 93 OpenRead 4 108 0 21 00 94 NotExists 4 96 60 00 95 Goto 0 97 0 00 96 FkCounter 0 -1 0 00 97 Close 4 0 0 00 98 Integer 0 60 0 00 99 Ne 60 103 58 (BINARY) 53 100 Column 1 20 61 00 101 Rowid 1 62 0 00 102 IdxDelete 2 61 2 00 103 Column 1 1 60 00 104 String8 0 63 0 00 105 Eq 63 108 60 (BINARY) 52 106 Column 1 1 63 00 107 IdxDelete 3 63 1 00 108 Delete 1 0 0 00 109 IsNull 40 117 0 00 110 SCopy 40 60 0 00 111 MustBeInt 60 116 0 00 112 Eq 37 117 60 90 113 OpenRead 5 108 0 21 00 114 NotExists 5 116 60 00 115 Goto 0 117 0 00 116 FkCounter 0 1 0 00 117 Close 5 0 0 00 118 IsNull 8 120 0 00 119 IdxInsert 2 8 9 2 00 120 IsNull 11 122 0 00 121 IdxInsert 3 11 12 1 00 122 MakeRecord 38 21 60 00 123 Insert 1 60 37 changes 05 124 ResetCount 0 0 0 00 125 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER node_deltas_ai_1 00 1 Param 6 2 0 00 2 Param 8 3 0 00 3 Param 9 4 0 00 4 Param 10 5 0 00 5 Param 11 6 0 00 6 Function0 31 2 1 debug(-1) 05 7 Null 0 10 11 00 8 OpenWrite 0 157 0 4 00 9 Param 9 16 0 00 10 SeekRowid 0 27 16 00 11 Column 0 3 17 1 00 12 Integer 0 18 0 00 13 Eq 18 26 17 (BINARY) 44 14 Column 0 2 18 0 00 15 Integer 1 19 0 00 16 Param 11 20 0 00 17 NotNull 20 19 0 00 18 Integer 0 19 0 00 19 Ne 19 26 18 (BINARY) 44 20 Column 0 1 18 0 00 21 Integer 1 19 0 00 22 Param 10 20 0 00 23 NotNull 20 25 0 00 24 Integer 0 19 0 00 25 Eq 19 27 18 (BINARY) 54 26 Rowid 0 11 0 00 27 OpenWrite 1 158 0 k(2,,) 00 28 IsNull 11 56 0 00 29 Null 0 12 0 00 30 Column 0 1 17 0 00 31 Integer 1 18 0 00 32 Param 10 19 0 00 33 NotNull 19 35 0 00 34 Integer 0 18 0 00 35 Or 18 17 13 00 36 Column 0 2 18 0 00 37 Integer 1 19 0 00 38 Param 11 20 0 00 39 NotNull 20 41 0 00 40 Integer 0 19 0 00 41 Or 19 18 14 00 42 Integer 1 15 0 00 43 HaltIfNull 1299 2 13 nodes_tomerge.parent_id 01 44 HaltIfNull 1299 2 14 nodes_tomerge.name 01 45 HaltIfNull 1299 2 15 nodes_tomerge.dirty 01 46 Affinity 12 4 0 DDDD 00 47 SCopy 15 8 0 00 48 IntCopy 11 9 0 00 49 MakeRecord 8 2 7 00 50 Column 0 3 21 1 00 51 Rowid 0 22 0 00 52 IdxDelete 1 21 2 00 53 IdxInsert 1 7 8 2 00 54 MakeRecord 12 4 19 00 55 Insert 0 19 11 nodes_tomerge 05 56 ResetCount 0 0 0 00 57 Halt 0 0 0 00 0 Init 0 1 0 -- TRIGGER 00 project_deltas_ai_1 1 Param 6 2 0 00 2 Param 9 3 0 00 3 Param 10 4 0 00 4 Param 11 5 0 00 5 Function0 15 2 1 debug(-1) 04 6 OpenWrite 0 198 0 4 00 7 OpenWrite 1 199 0 k(1,) 00 8 NewRowid 0 6 0 00 9 Param 9 7 0 00 10 Integer 0 8 0 00 11 Integer 0 9 0 00 12 Null 0 10 0 00 13 IsNull 7 31 0 00 14 Affinity 7 4 0 DDDD 00 15 SCopy 7 12 0 00 16 IntCopy 6 13 0 00 17 MakeRecord 12 2 11 00 18 NoConflict 1 20 12 1 00 19 Goto 0 31 0 00 20 IsNull 7 27 0 00 21 SCopy 7 14 0 00 22 MustBeInt 14 26 0 00 23 OpenRead 2 203 0 9 00 24 NotExists 2 26 14 00 25 Goto 0 27 0 00 26 FkCounter 0 1 0 00 27 Close 2 0 0 00 28 IdxInsert 1 11 12 1 10 29 MakeRecord 7 4 14 00 30 Insert 0 14 6 projects_tomerge 39 31 ResetCount 0 0 0 00 32 Null 0 15 16 00 33 OpenWrite 3 198 0 4 08 34 OpenWrite 4 199 0 k(1,) 02 35 Param 9 21 0 00 36 IsNull 21 43 0 00 37 Affinity 21 1 0 D 00 38 SeekLE 4 43 21 1 00 39 IdxLT 4 43 21 1 00 40 IdxRowid 4 22 0 00 41 NotExists 3 0 22 00 42 Rowid 3 16 0 00 43 IsNull 16 60 0 00 44 Column 3 0 17 00 45 Column 3 1 23 0 00 46 Integer 1 24 0 00 47 Param 10 25 0 00 48 NotNull 25 50 0 00 49 Integer 0 24 0 00 50 Add 24 23 18 00 51 Column 3 2 24 0 00 52 Integer 1 25 0 00 53 Param 11 26 0 00 54 NotNull 26 56 0 00 55 Integer 0 25 0 00 56 Add 25 24 19 00 57 Column 3 3 20 00 58 MakeRecord 17 4 25 DDDD 00 59 Insert 3 25 16 projects_tomerge 05 60 ResetCount 0 0 0 00 61 Halt 0 0 0 00 EOF -- Mark Lawrence _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users