Please send a test case. You can send it directly to me at d...@sqlite.org if you like.
On 11/27/17, no...@null.net <no...@null.net> wrote: > [version sqlite-snapshot-201711181730] > > I am seeing an error when attempting to insert a row with > SQLITE_DEBUG enabled: > > assertion "0" failed: file "sqlite3.c", line 72132, function: > valueFromExpr > > Running "PRAGMA vdbe_addoptrace=ON" immediately before the insert > produces the following > > 1 Expire 0 0 0 00 > 2 Halt 0 0 0 00 > 0 Init 0 1 0 00 Start at 1 > 1 OpenWrite 0 4 0 00 root=4 iDb=0 > 2 NewRowid 0 1 0 00 r[1]=rowid > 3 Variable 1 2 0 00 r[2]=parameter(1,) > 4 Variable 2 3 0 00 r[3]=parameter(2,) > 5 Variable 3 4 0 00 r[4]=parameter(3,) > 6 Variable 4 5 0 00 r[5]=parameter(4,) > 7 Variable 5 6 0 00 r[6]=parameter(5,) > 8 Variable 6 7 0 00 r[7]=parameter(6,) > 9 Variable 7 9 0 00 r[9]=parameter(7,) > 10 Variable 8 10 0 00 r[10]=parameter(8,) > 11 Variable 9 11 0 00 r[11]=parameter(9,) > 12 HaltIfNull 1299 2 2 00 if r[2]=null halt > 13 HaltIfNull 1299 2 3 00 if r[3]=null halt > 14 HaltIfNull 1299 2 4 00 if r[4]=null halt > 15 HaltIfNull 1299 2 5 00 if r[5]=null halt > 16 HaltIfNull 1299 2 6 00 if r[6]=null halt > 17 HaltIfNull 1299 2 7 00 if r[7]=null halt > 18 HaltIfNull 1299 2 9 00 if r[9]=null halt > 19 HaltIfNull 1299 2 10 00 if r[10]=null halt > 20 MakeRecord 2 10 12 00 r[12]=mkrec(r[2..11]) > 21 Insert 0 12 1 00 intkey=r[1] data=r[12] > 0 Init 0 1 0 00 Start at 1 > CLEAR > PUSH to 1 > 1 Param 16 2 0 00 > 2 Param 21 3 0 00 > 3 Param 12 4 0 00 > 4 Param 13 5 0 00 > 5 Param 14 6 0 00 > 6 Param 15 7 0 00 > 7 Param 17 8 0 00 > 8 Param 19 9 0 00 > 9 Param 20 10 0 00 > POP to 0 > 10 Function0 511 2 1 00 r[1]=func(r[2]) > CLEAR > 11 OpenWrite 0 111 0 00 root=111 iDb=0 > 12 OpenWrite 1 115 0 00 root=115 iDb=0 > 13 Param 16 11 0 00 > 14 NotNull 11 0 0 00 if r[11]!=NULL goto 0 > 15 NewRowid 0 11 0 00 r[11]=rowid > 16 MustBeInt 11 0 0 00 > 17 SoftNull 12 0 0 00 r[12]=NULL > 18 String8 0 13 0 00 r[13]='' > 19 Param 21 14 0 00 > 20 Param 18 15 0 00 > 21 NotNull 15 -4 0 00 if r[15]!=NULL goto -4 > PUSH to 1 > PUSH to 2 > 22 String8 0 34 0 00 r[34]='' > 23 String8 0 35 0 00 r[35]='' > POP to 1 > 24 Function0 3 34 15 00 r[15]=func(r[34]) > POP to 0 > 25 Param 19 16 0 00 > 26 Param 20 17 0 00 > PUSH to 1 > 27 String8 0 36 0 00 r[36]='' > 28 Param 20 40 0 00 > 29 Integer 1000 41 0 00 r[41]=1000 > 30 Divide 41 40 39 00 r[39]=r[40]/r[41] > 31 NotNull 39 -5 0 00 if r[39]!=NULL goto -5 > PUSH to 2 > PUSH to 3 > 32 String8 0 42 0 00 r[42]='' > 33 String8 0 43 0 00 r[43]='' > 34 String8 0 44 0 00 r[44]='' > POP to 2 > 35 Function0 7 42 41 00 r[41]=func(r[42]) > PUSH to 3 > 36 String8 0 45 0 00 r[45]='' > 37 String8 0 46 0 00 r[46]='' > POP to 2 > 38 Function0 3 45 40 00 r[40]=func(r[45]) > 39 Subtract 40 41 39 00 r[39]=r[41]-r[40] > POP to 1 > 40 Integer 3600 40 0 00 r[40]=3600 > 41 Divide 40 39 37 00 r[37]=r[39]/r[40] > 42 Cast 37 68 0 00 affinity(r[37]) > PUSH to 2 > 43 Param 20 41 0 00 > 44 Integer 1000 48 0 00 r[48]=1000 > 45 Divide 48 41 47 00 r[47]=r[41]/r[48] > 46 NotNull 47 -6 0 00 if r[47]!=NULL goto -6 > PUSH to 3 > PUSH to 4 > 47 String8 0 49 0 00 r[49]='' > 48 String8 0 50 0 00 r[50]='' > 49 String8 0 51 0 00 r[51]='' > POP to 3 > 50 Function0 7 49 48 00 r[48]=func(r[49]) > PUSH to 4 > 51 String8 0 52 0 00 r[52]='' > 52 String8 0 53 0 00 r[53]='' > POP to 3 > 53 Function0 3 52 41 00 r[41]=func(r[52]) > 54 Subtract 41 48 47 00 r[47]=r[48]-r[41] > POP to 2 > POP to 1 > 55 Function0 1 47 39 00 r[39]=func(r[47]) > PUSH to 2 > 56 Param 20 56 0 00 > 57 Integer 1000 57 0 00 r[57]=1000 > 58 Divide 57 56 55 00 r[55]=r[56]/r[57] > 59 NotNull 55 -7 0 00 if r[55]!=NULL goto -7 > PUSH to 3 > PUSH to 4 > 60 String8 0 58 0 00 r[58]='' > 61 String8 0 59 0 00 r[59]='' > 62 String8 0 60 0 00 r[60]='' > POP to 3 > 63 Function0 7 58 57 00 r[57]=func(r[58]) > PUSH to 4 > 64 String8 0 61 0 00 r[61]='' > 65 String8 0 62 0 00 r[62]='' > POP to 3 > 66 Function0 3 61 56 00 r[56]=func(r[61]) > 67 Subtract 56 57 55 00 r[55]=r[57]-r[56] > POP to 2 > POP to 1 > 68 Function0 1 55 54 00 r[54]=func(r[55]) > 69 Integer 3600 56 0 00 r[56]=3600 > 70 Divide 56 54 48 00 r[48]=r[54]/r[56] > 71 Cast 48 68 0 00 affinity(r[48]) > 72 Integer 3600 56 0 00 r[56]=3600 > 73 Multiply 56 48 41 00 r[41]=r[56]*r[48] > 74 Subtract 41 39 40 00 r[40]=r[39]-r[41] > 75 Integer 60 41 0 00 r[41]=60 > 76 Divide 41 40 38 00 r[38]=r[40]/r[41] > POP to 0 > 77 Function0 7 36 18 00 r[18]=func(r[36]) > 78 Null 0 19 0 00 r[19]=NULL > 79 Integer -1 20 0 00 r[20]=-1 > 80 Null 0 21 0 00 r[21]=NULL > 81 Param 12 22 0 00 > 82 Param 13 23 0 00 > 83 Param 14 24 0 00 > 84 Param 15 25 0 00 > 85 Null 0 26 0 00 r[26]=NULL > 86 Null 0 27 0 00 r[27]=NULL > 87 Param 17 28 0 00 > 88 Null 0 29 0 00 r[29]=NULL > 89 Null 0 30 0 00 r[30]=NULL > 90 HaltIfNull 1299 2 13 00 if r[13]=null halt > 91 HaltIfNull 1299 2 15 00 if r[15]=null halt > 92 HaltIfNull 1299 2 16 00 if r[16]=null halt > 93 HaltIfNull 1299 2 17 00 if r[17]=null halt > 94 HaltIfNull 1299 2 22 00 if r[22]=null halt > 95 HaltIfNull 1299 2 23 00 if r[23]=null halt > 96 HaltIfNull 1299 2 24 00 if r[24]=null halt > 97 HaltIfNull 1299 2 25 00 if r[25]=null halt > 98 HaltIfNull 1299 2 28 00 if r[28]=null halt > 99 NotNull 20 -9 0 00 if r[20]!=NULL goto -9 > PUSH to 1 > 100 NotNull 21 -8 0 00 if r[21]!=NULL goto -8 > POP to 0 > PUSH to 1 > 101 IsNull 20 -10 0 00 if r[20]==NULL goto -10 > PUSH to 2 > 102 IsNull 21 -8 0 00 if r[21]==NULL goto -8 > POP to 1 > POP to 0 > 103 Halt 275 2 0 00 > 104 NotExists 0 -11 11 00 intkey=r[11] > 105 Halt 1555 2 0 00 > 106 Affinity 12 19 0 00 affinity(r[12..30]) > 107 Null 0 31 0 00 r[31]=NULL > 108 String8 0 41 0 00 r[41]='' > 109 Eq 41 -12 13 00 if r[13]==r[41] goto -12 > 110 SCopy 13 32 0 00 r[32]=r[13] > 111 IntCopy 11 33 0 00 r[33]=r[11] > 112 MakeRecord 32 2 31 00 r[31]=mkrec(r[32..33]) > 113 NoConflict 1 -12 32 00 key=r[32] > 114 Halt 2067 2 0 00 > 115 IsNull 14 -13 0 00 if r[14]==NULL goto -13 > 116 SCopy 14 41 0 00 r[41]=r[14] > 117 MustBeInt 41 0 0 00 > 118 Eq 11 -13 41 00 if r[41]==r[11] goto -13 > 119 OpenRead 2 111 0 00 root=111 iDb=0 > 120 NotExists 2 0 41 00 intkey=r[41] > 121 Goto 0 -13 0 00 > 122 FkCounter 0 1 0 00 fkctr[0]+=1 > 123 Close 2 0 0 00 > 124 IsNull 20 -14 0 00 if r[20]==NULL goto -14 > 125 SCopy 20 41 0 00 r[41]=r[20] > 126 MustBeInt 41 0 0 00 > 127 OpenRead 3 153 0 00 root=153 iDb=0 > 128 NotExists 3 0 41 00 intkey=r[41] > 129 Goto 0 -14 0 00 > 130 FkCounter 1 1 0 00 fkctr[1]+=1 > 131 Close 3 0 0 00 > 132 FkIfZero 0 0 0 00 if fkctr[0]==0 goto 0 > > The error looks like it occurs inside a trigger statement. The database > schema is perhaps a bit large for the mailing list, but I'm happy to > email the database directly to the developers if that is useful. > > Anything else I can provide to troubleshoot this further? > > -- > Mark Lawrence > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users