I love the idea of READONLY and ENFORCE. I would certainly make use of those in amalgamation form. What license do you put these under?
You should really publish these all somewhere, there are some great features. Good work. - John Brooks On Tue, Dec 15, 2009 at 6:26 AM, <wcl...@gfs-hofheim.de> wrote: > 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 > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users