-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/03/13 04:24, Dave McKee wrote:
> What else isn't losslessly maintained in a dump -> load cycle?

Various database settings and any strings with nuls in them.  Also the
sqlite shell expects to be loaded into a clean database.  For example it
doesn't delete existing tables of the same name, and it unilaterally
deletes the contents of sqlite_sequence.  These are mostly convenience
issues rather than data loss, but attention should be paid at restore time.

I made a dump of the same database using the SQLite shell and using the
APSW shell (I'm the author).  The only actual data loss is SQLite shell
ignoring strings after the first nul.

  https://gist.github.com/rogerbinns/5064697

You'll note the APSW shell puts a lot of extra information in there that
would be relevant if you were doing a restore.

Something else the SQLite shell does is deal with corrupt databases.  The
last time I looked at the code, if it encountered an error iterating over
a table, then it would try again iterating backwards.  I don't remember
what it did with respect to errors if only part of the data could be
iterated over.

TLDR: good question and there are a *lot* of issues under the surface
depending on how you intend to do the restore and what things matter to
your code

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAlEwsFoACgkQmOOfHg372QSsTQCffwvaQFk1c/XAhZHJpPxCHflE
2PUAn1Rp0MVHtsUbNjbkEdYEBwf0omFc
=j1SZ
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to