ah, i do have something to add. i realized i can “ask” sql what is actually in the database.
at the beginning of addUpdates(), i do:
(Pdb) self.col.db.execute("select flds from notes where csum = ?", 2856611645)
[['<div align="center">مٌتِأَهِل</div>\x1f<div align="center">moteahel <p></div><p><div><div align="left">evlenmiş</div>']]
(Pdb) y = [x for x in rows if x[2].find("moteahel") != -1]
(Pdb) y[0][2]
'<div align="center">مٌتِأَهِل</div>\x1f<div align="center">moteahel <p></div><p><div><div align="left">evlenmiş</div>'
then, od -x
. first is the value returned from the database; the second, what is in the
argument to addUpdates():
bash apollo2 (master): {52122} od -x
مٌتِأَهِل
0000000 85d9 8cd9 aad8 90d9 a3d8 8ed9 87d9 90d9
0000020 84d9 000a
0000023
bash apollo2 (master): {52123} od -x
مٌتِأَهِل
0000000 85d9 8cd9 aad8 90d9 a7d8 8ed9 94d9 87d9
0000020 90d9 84d9 000a
0000025
then, back in addUpdates():
(Pdb) z = self.col.db.execute("select flds from notes where csum = ?", 2856611645)
(Pdb) z
[['<div align="center">مٌتِأَهِل</div>\x1f<div align="center">moteahel <p></div><p><div><div align="left">evlenmiş</div>']]
(Pdb) y = [x for x in rows if x[2].find("moteahel") != -1]
(Pdb) zz = z[0][0].split("\x1f")[0]
(Pdb) zz
'<div align="center">مٌتِأَهِل</div>'
(Pdb) y
[[1616121457, -1, '<div align="center">مٌتِأَهِل</div>\x1f<div align="center">moteahel <p></div><p><div><div align="left">evlenmiş</div>', '', 1616085188287, '<div align="center">مٌتِأَهِل</div>\x1f<div align="center">moteahel <p></div><p><div><div align="left">evlenmiş</div>', ''], [1616121457, -1, '<div align="center">مٌتِأَهِل</div><p><div align="right">anlam</div>\x1f<div align="center">evlenmiş <p></div><p><div><div align="left">moteahel</div>', '', 1616085188288, '<div align="center">مٌتِأَهِل</div><p><div align="right">anlam</div>\x1f<div align="center">evlenmiş <p></div><p><div><div align="left">moteahel</div>', '']]
(Pdb) yy = y[0][2].split("\x1f")[0]
(Pdb) yy
'<div align="center">مٌتِأَهِل</div>'
(Pdb) fieldChecksum(zz)
2856611645
(Pdb) fieldChecksum(yy)
3012355254
(Pdb) fieldChecksum(unicodedata.normalize('NFC', zz))
2856611645
(Pdb) fieldChecksum(unicodedata.normalize('NFC', yy))
2856611645
so, the data we are trying to add isn’t stable under normalize()
. and
someone (anki? python sql? sql?) is normalizing before writing to
the disk (or something).
cheers.