D. Richard Hipp wrote:
> 
> Adding new result codes is complicated.  There exist applications that  
> only check for the current set of result codes.  So if new result  
> codes are added, those applications might fail.  Hence adding new  
> result codes can lead to compatibility problems in legacy applications.
> 

Oh, that again. :-)

It still seems to me that most applications embed the source of a 
particular version of sqlite, and those applications are safe until the 
developer updates them to a newer version. That developer is then 
responsible for ensuring his application code works correctly with the 
new version of sqlite he is updating to. He is also free to continue to 
use the older version of sqlite in his application if he doesn't want to 
make any sqlite related changes for a particular release.

This sort of compatibility problem would only be an issue for updates to 
an sqlite shared library that multiple applications are linking to at 
run time. So this is perhaps another good reason not to do this.

Perhaps the next major release should address this by specifically 
reserving the right to add new error codes in future versions, and 
requiring application developers (who are using a shared library) to be 
prepared to handle new, unknown, error codes. They can still call 
sqlite3_errmsg to get a string to report the new error, they just won't 
be able to assume that they can do anything in particular to recover 
from the new error. If they aren't prepared to do that, they can always 
eliminate the concern by statically linking to, or embedding, a 
particular version of sqlite, for which they can handle every possible 
error.


> We have bigger fish to fry.
> 

What kind of fish are you frying now, or is it top secret?

Dennis Cote
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to