1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-16 23:02:26 +03:00
Commit Graph

264 Commits

Author SHA1 Message Date
drh
60625313b0 Increase the default SQLITE_MAX_SCHEMA_RETRY to 50. Make sure that macro
covers every case where a prepared statement might need to be reprepared due
to a schema change.  The sqlite3_exec() interface now uses 
sqlite3_prepare_v2().

FossilOrigin-Name: c1d7304c80c4a6244c8a9f6fad1eebd0f339c724
2013-04-06 18:06:51 +00:00
mistachkin
48864df97d Many spelling fixes in comments. No changes to code.
FossilOrigin-Name: 6f6e2d50941e444ebc83604daddcc034137a05b7
2013-03-21 21:20:32 +00:00
dan
dbd4d5fc77 If SQLITE_OMIT_UTF16 is defined, avoid setting the 'enc' field of Schema objects to any value except SQLITE_UTF8. Otherwise, assert() statements may fail or spurious SQLITE_NOMEM errors may be returned at the vdbe level later on.
FossilOrigin-Name: 69746ef787680a4b7590bd1d3c86b229d9d0dac4
2013-03-08 07:10:37 +00:00
mistachkin
ba2bba3c32 Silence harmless compiler warning seen with SQLITE_OMIT_DEPRECATED.
FossilOrigin-Name: c5cee969322d14114e4136510c3891a2e743520d
2012-09-18 23:21:32 +00:00
drh
a19b89627e Make sure the Index.azColl pointers do not point to connection-specific memory.
Also, remove an unnecessary reinitialization to sqlite3.pDfltColl.

FossilOrigin-Name: c469850b2eb61a63150cc5fc7d2fe98f0b5abffb
2012-06-06 10:56:22 +00:00
drh
81028a455d The former sqlite3ResetInternalSchema() routine was really two different
routines, selected by parameter, each with a confused mission.  So split
this routine up into three separate smaller routines, calling each
separately as needed.  Hopefully this will make further refactoring and
schema reset collateral damage containment easier.

FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
drh
74ea19b489 Add an assert() that verifies that the statement pointer from
the sqlite3_prepare() family of functions is always NULL if the routines
return other than SQLITE_OK.

FossilOrigin-Name: 0bb1cfc63f982db7b29c8e6be6698a6dad100f70
2012-05-14 12:20:54 +00:00
drh
e73c91496f Minor changes needed to restore full branch test coverage.
FossilOrigin-Name: bc10a753579b65ba4604867204b7b3d8383f3ac7
2011-11-09 16:12:24 +00:00
drh
2b89fbcb1e Do not do a backup if the number of reserved bytes in the source and
destination do not match.  Try to make the match, but if unable fail.

FossilOrigin-Name: 0ca8a2332b28d88585dc890e5162b095e783fc20
2011-04-09 02:09:44 +00:00
drh
cdf011dcc4 Additional schema mutex checks for sqlite3RootPageMoved().
Reduce the scope of sqlite3ResetInternalSchema() in a few places.

FossilOrigin-Name: 39c00907833413c0d97d3e06fdda967b825d23ea
2011-04-04 21:25:28 +00:00
drh
2120608e0f Add a description of access rules for the Schema object and lots of asserts
to verify that the access rules are followed.

FossilOrigin-Name: ae8374af057b6e6546e9265148cfffe32fcb0849
2011-04-04 18:22:02 +00:00
drh
c7792fa052 Begin a series of changes designed to reduce the scope and frequency of
invalidating schemas.  Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations.  This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.

FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
drh
d50ffc416f Fix additional cases of possible signed integer overflow, especially with
regard to negation.

FossilOrigin-Name: 2d5800bd8cfc7d7f5578a71b1aeaa74b2ec4b372
2011-03-08 02:38:28 +00:00
drh
c126e63e4f Remove dead code identified by the clang static analyzer.
FossilOrigin-Name: 01a79d5a7af48fb7e50291c0c7c6283d3fb359d0
2011-03-06 21:28:32 +00:00
dan
0ecdeb2414 Fix a couple of typos in comments. No changes to actual code.
FossilOrigin-Name: 9167fdb3560b1567a0bdc9a1906a87ec98e161f1
2011-01-25 13:43:35 +00:00
drh
60ac3f426c Fix the max_page_count pragma so that it will not set to a value smaller
than the current database size, as the documentation requires.  Also,
remove all occurances of atoi() from the core.

FossilOrigin-Name: 2031974b606ef713b5f34522b2221470d98687c5
2010-11-23 18:59:27 +00:00
dan
2ce224535f Experimental changes to EXPLAIN QUERY PLAN.
FossilOrigin-Name: f4747eb83dacce6430ad6e5eb20155ffad975514
2010-11-08 19:01:16 +00:00
dan
d19c933e8e Change the way SubProgram objects are deleted so that the code is the same for deletion and measurement.
FossilOrigin-Name: 00e55102a8309eb6df08ad4a8937ba02688bac62
2010-07-26 12:05:17 +00:00
drh
9e55d47d33 Reorder variable declarations in the previous check-in to avoid putting code
before declarations when not testing.

FossilOrigin-Name: d1fe8ab4a176180053d35300ad0540a27c6cd76d
2010-07-06 09:29:01 +00:00
dan
9859c427a2 Ensure the correct error code is returned if an attempt to parse a database schema made by an ATTACH statement fails.
FossilOrigin-Name: c272196115ab3926e56b6f4183ec127e3f98ef9c
2010-07-06 07:36:18 +00:00
drh
6498f0bb2e Avoid unnecessary calls to sqlite3_step() with null prepared statements
while parsing the schema.

FossilOrigin-Name: ae04d2d15d3d96f607adb394a631d96cd4cf2c1d
2010-04-09 09:14:05 +00:00
drh
8b307fbfa0 Automatically generate transient indices for tables in joins that would
otherwise have to use a full table scan.

FossilOrigin-Name: 1b2a04125f964e14f3fb90171c5ab86a0641d1c9
2010-04-06 15:57:05 +00:00
dan
b7dca7d733 Modify the vdbe so that the comparison operator opcodes do not modify the data type of operands. Fix for [aa92c76cd4].
FossilOrigin-Name: 8858042fa1449516a2c7dbb991dca3eb6c5794cb
2010-03-05 16:32:12 +00:00
drh
a6129fa79a Enhancements to the way errors are reported up when an automatic
statement reprepare fails.

FossilOrigin-Name: 1a6d4bb130382564093b6370818ae4a7633f4074
2010-02-24 17:15:19 +00:00
drh
413c3d36a2 Continuing improvements to error reporting and the sqlite3_log() routine.
FossilOrigin-Name: edea3bb740ddd096a46e00678b59d465bb1e2903
2010-02-23 20:11:56 +00:00
drh
9978c97ec5 Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging
output for CORRUPT, and CANTOPEN errors.

FossilOrigin-Name: 7c4cca6d1a23a6d1591b62f58c3716a944969947
2010-02-23 17:36:32 +00:00
drh
6a9c64b363 Make sure internal queries are well ordered, even when the
reverse_unordered_selects pragma is in effect.
Ticket [eb942c64a157].

FossilOrigin-Name: 0209f17180065d9c213b6c437be1c3c40660665f
2010-01-12 23:54:14 +00:00
shaneh
d77f56efe5 Fix typo in comment of prepare.c.
FossilOrigin-Name: 333c3ffe6d4d2293d01958812b9c02b0bf9796a4
2009-12-17 21:05:42 +00:00
drh
c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
dan
937d0dea4f Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
2009-10-15 18:35:38 +00:00
dan
65a7cd1631 More fixes and comment updates.
FossilOrigin-Name: 38a9327bad1a01e3d7a47fad44ece2f6c7e88643
2009-09-01 12:16:01 +00:00
dan
2832ad4221 More fixes for test cases.
FossilOrigin-Name: 85d9f23be1e8673dbda42e43b9b23332ada9225f
2009-08-31 15:27:27 +00:00
dan
165921a742 Changes to support recursive triggers.
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
drh
3d5f74b275 Alternative fix for ticket #3810. This is a replacement for check-in (6956). (CVS 6960)
FossilOrigin-Name: ba1afc040171810d0c996708d7b9cb11abcd99d8
2009-08-06 17:43:31 +00:00
drh
35ccb3d3bc Return a better error message when problems are encountered parsing a
TEMP trigger or TEMP view that references objects in other databases that
have been modified or dropped.  Ticket #3810. (CVS 6956)

FossilOrigin-Name: 102785b9fbc5ab5dd740110243f080e3f3661e87
2009-08-01 16:27:00 +00:00
danielk1977
595a523a10 Allow virtual tables to be used in shared-cache mode. (CVS 6928)
FossilOrigin-Name: 5d9e767a05e381235e064061043e30cc03a11a07
2009-07-24 17:58:53 +00:00
drh
1adecdf814 Remove unused code (that was commented out) from prepare.c. Remove an
incorrect NEVER() macro.  Fix the comment on schemaIsValid() to correctly
describe its return behavior. (CVS 6845)

FossilOrigin-Name: 90deb65835febc908f21bca89ef497d1048afe0a
2009-07-03 19:19:50 +00:00
danielk1977
94b30733f7 When a b-tree transaction is committed when there are open cursors, downgrade shared-cache write-locks to read-locks instead of relinquishing all locks. Fix for #3942. (CVS 6837)
FossilOrigin-Name: 611e704fdf90a3d3932ca1cbab4be7e282bf1ddf
2009-07-02 17:21:57 +00:00
danielk1977
602b466e99 Cause opening a transaction on a sharable b-tree module automatically obtain a read-lock on page 1. This means there is no way for sqlite3BtreeGetMeta() to fail. (CVS 6836)
FossilOrigin-Name: e3c055f167f895ae45858de9d9d8a264df2f36b6
2009-07-02 07:47:33 +00:00
drh
9635cc7c0d Get the notify2.test running again by removing an ALWAYS() that was mistakenly
inserted and by taking care not to report corruption following an
SQLITE_LOCKED failure during schema parsing. (CVS 6815)

FossilOrigin-Name: 6e9140a729bd26dd102e603abf6ea16d67e8546e
2009-06-25 11:50:21 +00:00
drh
27731d7c73 Make sure sqlite3BtreeCreateTable() returns an error code if the largest
rootpage field is invalid in auto_vacuum mode.  Update file-format comments
to describe all of the "meta" values. (CVS 6797)

FossilOrigin-Name: bda38f5e86db45234c2dbb0f8d1a81f6ff6d04e4
2009-06-22 12:05:10 +00:00
drh
58fbb314ae Changes to prepare.c and callback.c to promote better test coverage. (CVS 6770)
FossilOrigin-Name: 08cca219f16efab93cb00f04d2e2f8033893e5f1
2009-06-17 00:35:30 +00:00
drh
9da742f969 Changes sqlite3_prepare_v2() (and related routines) so that if it fails due
to a missing table and the schema is out of date, it retries once before
returning SQLITE_SCHEMA.  Other changes to prepare.c to facilitate coverage
testing. (CVS 6769)

FossilOrigin-Name: 256ec3c6af41c2324db82e4deb54edbba5b581e8
2009-06-16 17:49:36 +00:00
drh
c5e47ac238 Fix two instances where a malformed header in a database file (in other words
a corrupt database file) can lead to an assertion fault. (CVS 6712)

FossilOrigin-Name: 4e92c7f20afa51849128aa1d784ab885b517a73d
2009-06-04 00:11:56 +00:00
danielk1977
0d19f7ac57 Define a set of constants to use as the "index" argument to sqlite3BtreeGetMeta and UpdateMeta. This makes some parts of the code easier to follow. (CVS 6709)
FossilOrigin-Name: 6dbf4eca00f845baa7200aba421d0bc158ba96aa
2009-06-03 11:25:07 +00:00
drh
e7b3470705 Malloc for space to hold the Parse object in sqlite3_prepare() and friends.
Or, if compiled with SQLITE_USE_ALLOCA, obtain space for the object from
alloca(). (CVS 6702)

FossilOrigin-Name: c7c0c58e472cd8277b2ad58bb60834190bace4fa
2009-06-01 18:18:20 +00:00
drh
c4a64facce Rework the logic that generates a schema for tables created using
"CREATE TABLE ... AS SELECT ...".  Instead of trying to copy the raw
datatype string from the right-hand side, just make the type one 
of TEXT, INT, REAL, NUM, or nothing.  This is much simpler than 
trying to parse and quote datatype strings.  Other minor 
implifications to build.c are bundled with this change. (CVS 6626)

FossilOrigin-Name: 33cf83591e6e13875ef6ada5b8ac8ab07619d8bc
2009-05-11 20:53:28 +00:00
drh
8a93919082 Change the journal_mode pragma so that it always returns the current
journal mode, even on a failed attempt to change the journal mode.
Allow the journal mode to be changed as long as there is not a pending
transaction.  Ticket #3811. (CVS 6526)

FossilOrigin-Name: 419e320ae51639794335d19699f8e1189e524e7d
2009-04-20 17:43:03 +00:00
drh
860e077a7a Fix the sqlite3_prepare() family of interfaces so that they zero the *ppStmt
value even on an SQLITE_MISUSE return.  Make it clear in the documentation
that the ppStmt parameter cannot be zero. (CVS 6441)

FossilOrigin-Name: 23bf9f266559603e37b2703715eaf8ef5af6bb17
2009-04-02 18:32:26 +00:00
drh
769e97e032 Remove dead code from the UTF conversion routines. Fix a bug in
sqlite3_prepare16_v2() in which an out-of-memory error fails to
set the statement return pointer to NULL. (CVS 6423)

FossilOrigin-Name: 94e2f815ebb38981a2226d8aed9f3731f8833f7c
2009-04-01 16:33:37 +00:00