And according to the official document:

If xRead() returns SQLITE_IOERR_SHORT_READ it must also fill in the unread 
portions of the buffer with zeros. A VFS that fails to zero-fill short reads 
might seem to work. However, failure to zero-fill short reads will eventually 
lead to database corruption. 

http://www.sqlite.org/c3ref/io_methods.html 

It's seems not as simple as you sad :-)

--
  Best Regards
  BaiYang
  baiy...@263.net.cn
  http://baiy.cn
**** < END OF EMAIL > ****

From: Roger Binns
Date: 2012-04-27 07:06
To: General Discussion of SQLite Database
Subject: Re: [sqlite] the xRead method in sqlite3_io_methods
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 26/04/12 15:27, BaiYang wrote:
> I'm confused, does you mean a xRead should NEVER return a
> "SQLITE_IOERR_SHORT_READ" ?

It is a fatal error.  The only time it is okay is after the file is first
created (zero length) and SQLite tries to read the header page which
doesn't exist at that point in time.

At all other times a short error is fatal.  The extended error code is so
that the caller has more details than just I/O error.

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

iEYEARECAAYFAk+Z1O8ACgkQmOOfHg372QTyoACglrfe4j5Grsl2YzJ387bbquxE
U4YAoOCoFPF425QNlEB3/tYntK+vTbHk
=5wii
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to