1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00
Commit Graph

1116 Commits

Author SHA1 Message Date
drh
107b56e86d Add assert()s to mem2.c (activated by SQLITE_MEMDEBUG) which verify that
memory alloctions that might have come from lookaside are always freed
using a lookaside-aware free routine.

FossilOrigin-Name: c2af2164cf7b279ebb3e08201561348be6e765df
2010-03-12 16:32:53 +00:00
drh
c92271c549 Fix typo in a comment in the sqliteInt.h. No changes to code.
FossilOrigin-Name: 1716821ddb992fd6d1330604d4f59586bf056b00
2010-03-10 14:06:35 +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
c05a9a8a57 Suppress harmless compiler warnings.
FossilOrigin-Name: fc2c63ac78ba7d48fe3232f88093e980ea34eaa9
2010-03-04 16:12:34 +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
a756466349 Log all error messages if logging is enabled.
FossilOrigin-Name: a8076aede33c07e9a2aaa05be8a888f37b45e41c
2010-02-22 19:32:31 +00:00
drh
3f28070109 Add a new, experimental logging interface designed to aid in debugging of
deeply embedded projects that use SQLite.

FossilOrigin-Name: 103321e37ae46eacfad4e127d13477ad5dd02bab
2010-02-18 18:45:09 +00:00
drh
b4a1fed2ea Add a new full-text search variant that tracks the total number of documents
and document sizes, to make ranking search results easier.  Currently
called FTS4.

FossilOrigin-Name: 1b6e6094c88214e02c9e3638932997ac20bfe413
2010-02-03 19:55:13 +00:00
drh
a2460e0730 Comment cleanup in sqliteInt.h.
FossilOrigin-Name: 67c3aea563e019083f0ed87b57982a0379637d4f
2010-01-14 00:39:26 +00:00
drh
85c8f291e3 Make the sqlite3IsNaN() function a macro that evaluates to FALSE when
compiled with SQLITE_OMIT_FLOATING_POINT.

FossilOrigin-Name: 56f232d562bc239103a5afd2e64c4b926a20de08
2010-01-13 17:39:53 +00:00
drh
f49f352320 Adjustments to column cache handling in order to restore 100% branch
test coverage.

FossilOrigin-Name: cc6b959bc1f968e08eea1afd387201d70a0c1e80
2009-12-30 14:12:38 +00:00
drh
b6da74ebd5 Immediately purge entries from the column cache when the associated register
undergoes an affinity change.  Ticket [eb5548a849].  Enhance the
SQLITE_TESTCTRL_OPTIMIZATIONS setting of sqlite3_test_control so that it
can disable the column cache for testing purposes, in an effort to prevent
future problems of a similar nature to this one.

FossilOrigin-Name: ea4e57e1c1b6663ceb12872e31a8503f6c14e3d8
2009-12-24 16:00:28 +00:00
drh
07096f68ae Move the query flattener turn-off from a pragma to an sqlite3_test_control()
call.  Make provisions (not yet implemented) to turn off other optimizers
using the same call.

FossilOrigin-Name: 4a97c623f4e190134de4b2ca406e311034a74797
2009-12-22 23:52:32 +00:00
drh
7b688ede64 Add a pragma to disable the query flattener - for use during testing.
FossilOrigin-Name: 1d8550e5c88db0ea76aea579c1a5bf99d48fbe43
2009-12-22 00:29:53 +00:00
drh
c01a3c1775 Ensure WHERE clause terms involving tables on the right end of a join
are not prematurely evaluated when tables on the left end of the join
make use of the OR-clause optimization.  
Fix for ticket [31338dca7e].

FossilOrigin-Name: 2c2de252666662f5459904fc33a9f2956cbff23c
2009-12-16 22:10:49 +00:00
drh
8e14c59611 Add the SQLITE_4_BYTE_ALIGNED_MALLOC compile-time option which tells some
assert() statements that the underlying system only requires 4-byte alignment
of 8-byte data objects like double or int64 and that system malloc() only
guarantees 4-byte alignment of returned pointers.

FossilOrigin-Name: 08faee686eb2fabe0dde51231ee55880e78541e8
2009-12-04 23:10:12 +00:00
dan
bb5f168f2e Move [7d30880114] to the trunk. Add optimizations to reduce the number of opcodes used for BEFORE UPDATE triggers.
FossilOrigin-Name: 1b7c5250ccb63182324bfc3f1ea28f17b6db357a
2009-11-27 12:12:34 +00:00
drh
5f18a221a1 Simplifications to the sqlite3_trace() bound parameter substitution logic.
FossilOrigin-Name: cb4b928648504ce29d751834e9ee3b5278dfca65
2009-11-26 14:01:53 +00:00
drh
c7bc4fde3c Initial check-in of code that inserts tokenizations of the values
for bound parameters into the output of sqlite3_trace().

FossilOrigin-Name: 545cfb3b63f482036ae152e6ebcce86d373585a8
2009-11-25 18:03:42 +00:00
dan
f6963f99dd Change so that deleting an Expr structure requires only one frame per level in the expression tree, not two.
FossilOrigin-Name: a4380ab326e4b0de29271c824d041193e86b7139
2009-11-23 14:39:14 +00:00
drh
2f2855b638 Suppress more instances of unnecessary OP_IsNull and OP_Affinity opcodes.
FossilOrigin-Name: bf6c0bd1c5568c6292ea0a64c8a5071e1bd3079a
2009-11-18 01:25:26 +00:00
drh
039fc32e84 Code generator tries to avoid pointless OP_IsNull and OP_Affinity opcodes.
FossilOrigin-Name: ebb0c8a3e977dc741704e733b5a5d931d9b27028
2009-11-17 18:31:47 +00:00
drh
a6c2ed91ca Optimizations to the main loop inside sqlite3VdbeExec() to help VDBE byte code
run a few percent faster.

FossilOrigin-Name: d622ac6ac7a297754494d3a33dbaeea02836272e
2009-11-14 23:22:23 +00:00
drh
ae6bb9570b Generate VDBE code for the built-in COALESCE() and IFNULL() functions. This
allows unused arguments to never be evaluated, which is a performance win when
the unused argument is a subquery.

FossilOrigin-Name: 30055b257c3c65f8123cad5ac6c62c4c6ca2c900
2009-11-11 00:24:31 +00:00
drh
481aa74e21 Recover an ophaned branch that resulted from some ill-advised "shunning".
This check-in should be identical to [bd443f39a9] except that it should
be on the trunk.

FossilOrigin-Name: 38eaf1ab6e05161e6dc7cd69e942aeca16548c45
2009-11-05 18:46:02 +00:00
drh
1860e3f98f Remove "const" from parameter of sqlite3BtreeFactory() to avoid a compiler
warning.

FossilOrigin-Name: eb7a544fe49d1626bacecfe53ddc03fe082e3243
2009-11-04 13:30:01 +00:00
drh
8677d30812 Create a new datatype "ynVar" to hold "nVar" (number of variable) values.
This is normally 16-bits can can be 32-bits if SQLITE_MAX_VARIABLE_NUMBER
is large enough.

FossilOrigin-Name: 24a4d520d540d92b611abc4eb57dc6da9be4eac6
2009-11-04 13:17:14 +00:00
drh
75f8d8be1a All SQLITE_MAX_VARIABLE_NUMBER to exceed 32767. The sizes of some structures
increase when the compile-time parameter is configured this way.

FossilOrigin-Name: 16a24b4485420bdf30d3c8e22cfbaf008e07df02
2009-11-03 01:22:07 +00:00
drh
1450bc6e52 Avoid storing the result register for EXISTS and SELECT in any field of
the Expr object - simply return the register number as the return value
of the function that codes those expressions.

FossilOrigin-Name: 7253f8fad1efe6b88666f0f8740d247ff07a7640
2009-10-30 13:25:56 +00:00
dan
f7b0b0ad5f When generating WHERE clause terms internally for NATURAL and USING joins, identify the table by its position in the FROM list, not by its name or alias. Fix for [b73fb0bd64].
FossilOrigin-Name: 6fe6371175482d38ac4aeea994c7b20c18b7de01
2009-10-19 15:52:32 +00:00
dan
937d0dea4f Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
2009-10-15 18:35:38 +00:00
drh
fcb9f7ad7a Fixed warnings with MSVC compile.
FossilOrigin-Name: e0aa50c382a56bb02eaa589619b7e670006a26b3
2009-10-13 19:19:23 +00:00
drh
4c4298392e Add asserts as evidence that all FK constraints are either immediate or
deferred.

FossilOrigin-Name: 634ef4fc9f4051245b38f558bb1c733031548c2f
2009-10-12 22:30:49 +00:00
dan
02470b20f3 Handle an SQLITE_IGNORE returned when requesting authorization to read parent key columns by pretending the parent key columns contain NULL values.
FossilOrigin-Name: 3c24df38e6ae5dfe999bbf3133b65df0074c6a50
2009-10-03 07:04:11 +00:00
dan
47a06346ff When inserting a row into a child table, invoke the authorization callback to request permission to read the parent key columns.
FossilOrigin-Name: 9842f2d5f606eb8f641ecae9fbc5368b8d7e4286
2009-10-02 14:23:41 +00:00
dan
e7a94d8128 If an update does not modify any child or parent key columns, omit foreign key processing for the statement.
FossilOrigin-Name: edff3500058eb8ad2381f855ef7a09ecb680f7b8
2009-10-01 16:09:04 +00:00
dan
d66c83095e Fix the DROP TABLE command so that it cannot be used to bypass foreign key constraints (if foreign key support is enabled).
FossilOrigin-Name: 8353808c9e70412fdee31bfda7810e948f1c7485
2009-09-28 14:49:01 +00:00
dan
432cc5b9f3 When ALTER TABLE RENAME TO is used to change the name of a table that is the parent table of a foreign key constraint, modify that foreign key constraint to use the new table name.
FossilOrigin-Name: b4a10c39e726dc190e9597e382baddc034294114
2009-09-26 17:51:48 +00:00
drh
1f638ceb34 Comment enhancements. Add an ALWAYS macro in fkey.c to indicate a branch
that is always taken.

FossilOrigin-Name: d5b714cffffe588dd4dd10e0b82df8d99657be88
2009-09-24 13:48:10 +00:00
dan
94d7f50a0f Remove unused parameter from sqlite3CodeRowTrigger(). Fix header comments for this function and CodeRowTriggerDirect().
FossilOrigin-Name: 0443f7c9112ca91aa45c78a3d6287e5fcf5c3b73
2009-09-24 09:05:49 +00:00
drh
ff738bce0d Make sure a transaction is available for rollback whenever a REDUCE conflict
resolution occurs and there is the possibility to ABORT.
Ticket [4a03edc4c8c]

FossilOrigin-Name: f0c56fa90dc95aff6fe6764b5ab75a90199247b0
2009-09-24 00:09:58 +00:00
dan
8099ce6f4a Add missing comments to fkey.c. Also, change the terminology used for comments and names in fkey.c from "referenced/referencing" to "parent/child". This is arguably less correct, but is easier to follow.
FossilOrigin-Name: 540c2d18e14c277b55f95729fbafc04ca66466b2
2009-09-23 08:43:35 +00:00
drh
6a2fe09387 Generalize the IS and IS NOT operators so that their right-hand side can be
an arbitrary expression and not simple the constant NULL.  They work like
= and <> except that NULL values compare equal to one another an unequal to
everything else.

FossilOrigin-Name: 98853f6104076c50ea92175e17a3254bfbbd4619
2009-09-23 02:29:36 +00:00
dan
ba9108b84a Fix compilation errors when OMIT_FOREIGN_KEY is defined.
FossilOrigin-Name: c447cb37d6439090eb08028d54a91d7d06043744
2009-09-22 07:13:42 +00:00
dan
75cbd984f7 Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030e9757d052af0f394e56bea96b8b59b|1ff6d29030].
FossilOrigin-Name: fb6ceed388f6d75bdc2ac2f43e5c98da74e2a448
2009-09-21 16:06:03 +00:00
dan
1da40a381f Check in implementation of foreign key constraints.
FossilOrigin-Name: d5d399811876391642937edeb9e8434dd9e356f5
2009-09-19 17:00:31 +00:00
dan
e0af83aca6 Combine the OP_Statement and OP_Transaction opcodes.
FossilOrigin-Name: aec9dbd8d21c55c3945287a3dfa55d3ed168f977
2009-09-08 19:15:01 +00:00
dan
2283d46cd6 If recursive-triggers are enabled, fire DELETE triggers if database rows are removed as a result of OR REPLACE conflict resolution.
FossilOrigin-Name: 85cb0c94a63eda5f059ebe40887c7af9b4869893
2009-09-08 15:55:15 +00:00
drh
3e9ca09453 Code simplifications, especially to the pseudo-table logic, and comment
improvements.

FossilOrigin-Name: 52449a9569b7142095cc88ee208b31cc59a3cab4
2009-09-08 01:14:48 +00:00
drh
417168ade2 Add the SQLITE_LIMIT_TRIGGER_DEPTH option to sqlite3_limit().
FossilOrigin-Name: d7dc8b433691745b3842282569f1573d1e057963
2009-09-07 18:14:02 +00:00