-C Add\sauthorization\scallbacks\sto\sALTER\sTABLE.\s(CVS\s2093)
-D 2004-11-12T15:53:37
+C Change\spragmas\sschema_cookie\sand\suser_cookie\sto\sschema_version\sand\suser_version.\s(CVS\s2094)
+D 2004-11-12T16:12:00
F Makefile.in c4d2416860f472a1e3393714d0372074197565df
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
F src/pager.c ee88fcecb081e3635c281bc09d604e934429e2f5
F src/pager.h 9eba8c53dd91eae7f3f90743b2ee242da02a9862
F src/parse.y b64ebeb91d9fc1c813f4517b80e3a3659e94b032
-F src/pragma.c bb1c76dae9911b9312997b353c1e316fa603a0c6
+F src/pragma.c 32ce8fad1a1e05eff97a3dfe02acc61b6936eeee
F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357
F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
F src/select.c 156990c636102bb6b8de85e7ff3396a62568476b
F test/pager2.test c7e731ac56a2984a605b032ffd19b9deee820377
F test/pager3.test 647f696a9cf7409df00a1e0047c2eb55585a1b85
F test/pagesize.test 6f94b70ed9645dbe6314b627ae765c5dec8036d9
-F test/pragma.test 1d2ca2b52e08ed5af81f7f02e4490182bfd2f832
+F test/pragma.test d14ed14407a00c10562ca35128120dc09019ed34
F test/printf.test 92ba4c510b4fc61120ffa4a01820446ed917ae57
F test/progress.test 5ddba78cb6011fba36093973cfb3ac473b8fb96a x
F test/quick.test 9e968949a20b5ed5990c03dc45df3781a03c4b1a
F www/oldnews.tcl 7aa4478e64631859770a5fe4b413919ba6ee8a08
F www/omitted.tcl 7bd62b6f0f53b60c5360895b16b3af8407bbca03
F www/opcode.tcl dafa030a5a3cc24a2f9fd4cfbfb7d7323d2151b0
-F www/pragma.tcl 5bac2d73a92136fb711d558003648383ec2b139b
+F www/pragma.tcl c62b02e3c5d80d0166c0ace75a70ee0cfa4cca54
F www/quickstart.tcl 6f6f694b6139be2d967b1492eb9a6bdf7058aa60
F www/speed.tcl de99c82c4729a10b6733463636f15473c4ec95bc
F www/sqlite.tcl b51fd15f0531a54874de785a9efba323eecd5975
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl fdacb0ba2d39831e8a6240d05a490026ad4c4e4c
-P a1b2cc63e604785bd51e358ff72c485d858752e3
-R ef4bbd1e2466e0b000964937492388e1
+P c4115aa3a1b010704af76c5ae9f6dcbfa4038df8
+R aad8608531c726385c6e9788af9bc8b9
U danielk1977
-Z f041132b38a543a682f3a1cb1fe1f777
+Z 1177c79f2e60c6c7d6713520bedefc82
-c4115aa3a1b010704af76c5ae9f6dcbfa4038df8
\ No newline at end of file
+5e058318441bb5043c609cc8fba1653995e90efb
\ No newline at end of file
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
-** $Id: pragma.c,v 1.76 2004/11/11 05:10:44 danielk1977 Exp $
+** $Id: pragma.c,v 1.77 2004/11/12 16:12:00 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
}
}else
/*
- ** PRAGMA [database.]schema_cookie
- ** PRAGMA [database.]schema_cookie = <integer>
+ ** PRAGMA [database.]schema_version
+ ** PRAGMA [database.]schema_version = <integer>
**
- ** PRAGMA [database.]user_cookie
- ** PRAGMA [database.]user_cookie = <integer>
+ ** PRAGMA [database.]user_version
+ ** PRAGMA [database.]user_version = <integer>
**
- ** The pragma's schema_cookie and user_cookie are used to set or get
- ** the value of the schema-cookie and user-cookie, respectively. Both
- ** the schema-cookie and the user-cookie are 32-bit signed integers
+ ** The pragma's schema_version and user_version are used to set or get
+ ** the value of the schema-version and user-version, respectively. Both
+ ** the schema-version and the user-version are 32-bit signed integers
** stored in the database header.
**
** The schema-cookie is usually only manipulated internally by SQLite. It
** is incremented by SQLite whenever the database schema is modified (by
- ** creating or dropping a table or index). The schema cookie is used by
+ ** creating or dropping a table or index). The schema version is used by
** SQLite each time a query is executed to ensure that the internal cache
** of the schema used when compiling the SQL query matches the schema of
** the database against which the compiled query is actually executed.
- ** Subverting this mechanism by using "PRAGMA schema_cookie" to modify
- ** the schema-cookie is potentially dangerous and may lead to program
+ ** Subverting this mechanism by using "PRAGMA schema_version" to modify
+ ** the schema-version is potentially dangerous and may lead to program
** crashes or database corruption. Use with caution!
**
- ** The user-cookie is not used internally by SQLite. It may be used by
+ ** The user-version is not used internally by SQLite. It may be used by
** applications for any purpose.
*/
- if( sqlite3StrICmp(zLeft, "schema_cookie")==0 ||
- sqlite3StrICmp(zLeft, "user_cookie")==0 ){
+ if( sqlite3StrICmp(zLeft, "schema_version")==0 ||
+ sqlite3StrICmp(zLeft, "user_version")==0 ){
int iCookie; /* Cookie index. 0 for schema-cookie, 6 for user-cookie. */
if( zLeft[0]=='s' || zLeft[0]=='S' ){
#
# This file implements tests for the PRAGMA command.
#
-# $Id: pragma.test,v 1.22 2004/11/11 05:10:44 danielk1977 Exp $
+# $Id: pragma.test,v 1.23 2004/11/12 16:12:00 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
#----------------------------------------------------------------------
-# Test cases pragma-8.* test the "PRAGMA schema_cookie" and "PRAGMA
-# user_cookie" statements.
+# Test cases pragma-8.* test the "PRAGMA schema_version" and "PRAGMA
+# user_version" statements.
#
-# pragma-8.1: PRAGMA schema_cookie
-# pragma-8.2: PRAGMA user_cookie
+# pragma-8.1: PRAGMA schema_version
+# pragma-8.2: PRAGMA user_version
#
-# First check that we can set the schema cookie and then retrieve the
+# First check that we can set the schema version and then retrieve the
# same value.
do_test pragma-8.1.1 {
execsql {
- PRAGMA schema_cookie = 105;
+ PRAGMA schema_version = 105;
}
} {}
do_test pragma-8.1.2 {
execsql {
- PRAGMA schema_cookie;
+ PRAGMA schema_version;
}
} 105
do_test pragma-8.1.3 {
execsql {
- PRAGMA schema_cookie = 106;
+ PRAGMA schema_version = 106;
}
} {}
do_test pragma-8.1.4 {
execsql {
- PRAGMA schema_cookie;
+ PRAGMA schema_version;
}
} 106
-# Check that creating a table modifies the schema-cookie (this is really
-# to verify that the value being read is in fact the schema cookie).
+# Check that creating a table modifies the schema-version (this is really
+# to verify that the value being read is in fact the schema version).
do_test pragma-8.1.5 {
execsql {
CREATE TABLE t4(a, b, c);
} {1 2 3}
do_test pragma-8.1.6 {
execsql {
- PRAGMA schema_cookie;
+ PRAGMA schema_version;
}
} 107
# Now open a second connection to the database. Ensure that changing the
-# schema-cookie using the first connection forces the second connection
+# schema-version using the first connection forces the second connection
# to reload the schema. This has to be done using the C-API test functions,
# because the TCL API accounts for SCHEMA_ERROR and retries the query.
do_test pragma-8.1.7 {
} {1 2 3}
do_test pragma-8.1.8 {
execsql {
- PRAGMA schema_cookie = 108;
+ PRAGMA schema_version = 108;
}
} {}
do_test pragma-8.1.9 {
sqlite3_finalize $::STMT
} SQLITE_SCHEMA
-# Make sure the schema-cookie can be manipulated in an attached database.
+# Make sure the schema-version can be manipulated in an attached database.
file delete -force test2.db
file delete -force test2.db-journal
do_test pragma-8.1.11 {
execsql {
ATTACH 'test2.db' AS aux;
CREATE TABLE aux.t1(a, b, c);
- PRAGMA aux.schema_cookie = 205;
+ PRAGMA aux.schema_version = 205;
}
} {}
do_test pragma-8.1.12 {
execsql {
- PRAGMA aux.schema_cookie;
+ PRAGMA aux.schema_version;
}
} 205
do_test pragma-8.1.13 {
execsql {
- PRAGMA schema_cookie;
+ PRAGMA schema_version;
}
} 108
-# And check that modifying the schema-cookie in an attached database
+# And check that modifying the schema-version in an attached database
# forces the second connection to reload the schema.
do_test pragma-8.1.14 {
set ::DB2 [sqlite3 db2 test.db]
} {}
do_test pragma-8.1.15 {
execsql {
- PRAGMA aux.schema_cookie = 206;
+ PRAGMA aux.schema_version = 206;
}
} {}
do_test pragma-8.1.16 {
db2 close
} {}
-# Now test that the user-cookie can be read and written (and that we aren't
-# accidentally manipulating the schema-cookie instead).
+# Now test that the user-version can be read and written (and that we aren't
+# accidentally manipulating the schema-version instead).
do_test pragma-8.2.1 {
execsql {
- PRAGMA user_cookie;
+ PRAGMA user_version;
}
} {0}
do_test pragma-8.2.2 {
execsql {
- PRAGMA user_cookie = 2;
+ PRAGMA user_version = 2;
}
} {}
do_test pragma-8.2.3 {
execsql {
- PRAGMA user_cookie;
+ PRAGMA user_version;
}
} {2}
do_test pragma-8.2.4 {
execsql {
- PRAGMA schema_cookie;
+ PRAGMA schema_version;
}
} {108}
-# Check that the user-cookie in the auxilary database can be manipulated (
+# Check that the user-version in the auxilary database can be manipulated (
# and that we aren't accidentally manipulating the same in the main db).
do_test pragma-8.2.5 {
execsql {
- PRAGMA aux.user_cookie;
+ PRAGMA aux.user_version;
}
} {0}
do_test pragma-8.2.6 {
execsql {
- PRAGMA aux.user_cookie = 3;
+ PRAGMA aux.user_version = 3;
}
} {}
do_test pragma-8.2.7 {
execsql {
- PRAGMA aux.user_cookie;
+ PRAGMA aux.user_version;
}
} {3}
do_test pragma-8.2.8 {
execsql {
- PRAGMA main.user_cookie;
+ PRAGMA main.user_version;
}
} {2}
-# Now check that a ROLLBACK resets the user-cookie if it has been modified
+# Now check that a ROLLBACK resets the user-version if it has been modified
# within a transaction.
do_test pragma-8.2.9 {
execsql {
BEGIN;
- PRAGMA aux.user_cookie = 10;
- PRAGMA user_cookie = 11;
+ PRAGMA aux.user_version = 10;
+ PRAGMA user_version = 11;
}
} {}
do_test pragma-8.2.10 {
execsql {
- PRAGMA aux.user_cookie;
+ PRAGMA aux.user_version;
}
} {10}
do_test pragma-8.2.11 {
execsql {
- PRAGMA main.user_cookie;
+ PRAGMA main.user_version;
}
} {11}
do_test pragma-8.2.12 {
execsql {
ROLLBACK;
- PRAGMA aux.user_cookie;
+ PRAGMA aux.user_version;
}
} {3}
do_test pragma-8.2.13 {
execsql {
- PRAGMA main.user_cookie;
+ PRAGMA main.user_version;
}
} {2}
-# Try a negative value for the user-cookie
+# Try a negative value for the user-version
do_test pragma-8.2.14 {
execsql {
- PRAGMA user_cookie = -450;
+ PRAGMA user_version = -450;
}
} {}
do_test pragma-8.2.15 {
execsql {
- PRAGMA user_cookie;
+ PRAGMA user_version;
}
} {-450}
#
# Run this Tcl script to generate the pragma.html file.
#
-set rcsid {$Id: pragma.tcl,v 1.2 2004/11/11 05:10:44 danielk1977 Exp $}
+set rcsid {$Id: pragma.tcl,v 1.3 2004/11/12 16:12:00 danielk1977 Exp $}
source common.tcl
header {Pragma statements supported by SQLite}
<li>Pragmas used to <a href="#modify">modify the operation</a> of the
SQLite library in some manner, or to query for the current mode of
operation.
-<li>Pragmas used to <a href="#cookie">query or modify the databases two
- cookie values</a>, the schema-cookie and the user-cookie.
+<li>Pragmas used to <a href="#version">query or modify the databases two
+ version values</a>, the schema-version and the user-version.
<li>Pragmas used to <a href="#debug">debug the library</a> and verify that
database files are not corrupted.
</ul>
</ul>
}
-Section {Pragmas to query/modify cookie values} cookie
+Section {Pragmas to query/modify version values} version
puts {
<ul>
-<li><p><b>PRAGMA [database.]schema_cookie;
- <br>PRAGMA [database.]schema_cookie = </b><i>integer </i><b>;
- <br>PRAGMA [database.]user_cookie;
- <br>PRAGMA [database.]user_cookie = </b><i>integer </i><b>;</b>
+<li><p><b>PRAGMA [database.]schema_version;
+ <br>PRAGMA [database.]schema_version = </b><i>integer </i><b>;
+ <br>PRAGMA [database.]user_version;
+ <br>PRAGMA [database.]user_version = </b><i>integer </i><b>;</b>
-<p> The pragmas schema_cookie and user_cookie are used to set or get
- the value of the schema-cookie and user-cookie, respectively. Both
- the schema-cookie and the user-cookie are 32-bit signed integers
+<p> The pragmas schema_version and user_version are used to set or get
+ the value of the schema-version and user-version, respectively. Both
+ the schema-version and the user-version are 32-bit signed integers
stored in the database header.</p>
-<p> The schema-cookie is usually only manipulated internally by SQLite.
+<p> The schema-version is usually only manipulated internally by SQLite.
It is incremented by SQLite whenever the database schema is modified
- (by creating or dropping a table or index). The schema cookie is
+ (by creating or dropping a table or index). The schema version is
used by SQLite each time a query is executed to ensure that the
internal cache of the schema used when compiling the SQL query matches
the schema of the database against which the compiled query is actually
- executed. Subverting this mechanism by using "PRAGMA schema_cookie"
- to modify the schema-cookie is potentially dangerous and may lead
+ executed. Subverting this mechanism by using "PRAGMA schema_version"
+ to modify the schema-version is potentially dangerous and may lead
to program crashes or database corruption. Use with caution!</p>
-<p> The user-cookie is not used internally by SQLite. It may be used by
+<p> The user-version is not used internally by SQLite. It may be used by
applications for any purpose.</p>
</li>
</ul>