Hi all,

This is a quick email just to gauge interest in a number of patches I've 
created for Sqlite over the last year or so.  What I want to know is 
whether anyone would like me to post one or more of these patches here?  I 
have thought about posting to http://www.sqlite.org/contrib but since the 
patches modify the source code rather than provide installable extensions, 
this is not really feasible -- the patches are linked to a specific Sqlite 
version and need a certain amount of maintenance to keep it current.  This 
is my opportunity to offer something back having had such good use out of 
Sqlite!

So, the patches are as follows...

1. XOR operator -- in addition to AND OR & |, this gives XOR and ^ 
operators. '^' is the bitwise operator so that SELECT 5^3 gives 6. 'XOR' 
is the logical operator so you can do things like SELECT ... FROM ... 
WHERE <expr> XOR <expr> where the select returns where either <expr> is 
true, but not both.

2. READONLY constraint for table columns, for example: CREATE TABLE t(i 
integer, j integer readonly).  This optional constraint prevents values 
from being changed through an UPDATE, and in addition if the integer 
primary key is given the READONLY constraint then also prevents replace 
operations when using INSERT OR REPLACE or UPDATE OR REPLACE.

3. ENFORCE constraint for table columns, for example: CREATE TABLE t(i 
enforce integer, j enforce text).  This optional constraint enforces type 
checking so that an entry must match the column type (i.e. integer, real, 
numeric, text, blob).  Note: this can be done using a CHECK constraint, 
but here is done internally using some additional custom VDBE opcodes to 
give greater efficiency.

4. Optional READONLY option for the ATTACH DATABASE command: the attached 
database can then be opened "readonly" even when the main database is not.

5. Patch to relax restriction for VIEWs to allow them to reference tables 
in attached databases.

Shortly I hope also to have completed a patch to allow a limited form of 
"stored procedures" where the sqlite_prepare function can be used to 
create a VDBE program with support for loops, rudimentary support for 
if/then/else style constructions and generation of output rows that can be 
then executed as and when.

If there is any interest, let me know.  Plus, also say whether you'd like 
the diff file against the original sources or against the amalgamation. 
I'm afraid I can only do this against the current sqlite version (3.6.21) 
but people are welcome to try the patch against whatever version they 
like.  The patches also include tests that will be included in "make 
test".  No guarantees that it will work however well it might work for me!

Please be patient if you do request something, because I will need to 
create the appropriate patch files!

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

Reply via email to