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

536 Commits

Author SHA1 Message Date
drh
8c6f666b26 Optimization: Convert an ORDER BY clause into a no-op if the query also
contains a GROUP BY clause that will force the same output order.

FossilOrigin-Name: ca9d86baf70f210d331ce93102177c8005c494cb
2010-04-26 19:17:26 +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
44dbca83c7 Comment out unused code when SQLITE_OMIT_FLOATING_POINT is selected.
Added testcase() macros to boundary conditions in util.c routines.

FossilOrigin-Name: dfc6595d347ea87923a857778b68751103f535d2
2010-01-13 04:22:20 +00:00
drh
13573c71d8 Use #ifdefs to disable unused code when SQLITE_OMIT_FLOATING_POINT is defined.
FossilOrigin-Name: 66bab8561926963a87f15ad559cba36545c9892c
2010-01-12 17:04:07 +00:00
drh
1d9da70ad7 Fix the expression comparison logic to take the COLLATE operator into account.
Ticket [360c6073e197]

FossilOrigin-Name: 44bb1bfe5dedd8054ddd933941ee4112ed8d3b68
2010-01-07 15:17:02 +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
27ee406e2c Remove some code in the column cache that is no longer used. Replace it with
an assert().

FossilOrigin-Name: 1f890efb7863bd743b9f6ef841e0c0c4e67d76e1
2009-12-30 01:13:11 +00:00
drh
c82b7513bf Remove obsolete comment text from expr.c. No functional code changes.
FossilOrigin-Name: 84058be0beb799bc989d73a8d4cd8791ab709395
2009-12-30 00:12:39 +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
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
88376ca791 Remove an unreachable branch from the OP_Affinity suppression logic.
FossilOrigin-Name: 598727e6dae87f133c658fa125684f6ad978be60
2009-11-19 15:44:53 +00:00
drh
cd7f457e6d Fix a bug introduced with recent optimizations: The unary minus operator
is TK_UMINUS, not TK_MINUS.

FossilOrigin-Name: 4bd43307090258f8652c995b056101c51b81274a
2009-11-19 14:48:40 +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
5c03f30a9a Changes to test_intarray.c so that it build with SQLITE_OMIT_VIRTUALTABLE.
Added testcase() macros to expr.c.

FossilOrigin-Name: f0599d28fabe9e67a7150a91c266cb7655a2002e
2009-11-13 15:03:59 +00:00
drh
8cff69df11 Enhance the OP_Found and OP_NotFound opcodes so that they can accept an
array of registers as an unpacked record in addition to a record built
using OP_MakeRecord.  Use this to avoid OP_MakeRecord calls during IN
expression processing.

FossilOrigin-Name: b9eab885cd2ca1a1633329e7036c125e8dba62c5
2009-11-12 19:59:44 +00:00
drh
e3365e6c37 Factor out the IN operator code generation into a subroutine. Use this
subroutine to implement both logic and branching versions of the IN operator.

FossilOrigin-Name: fcff5b7e2d059ffb8d21df57d0c9648bd876e813
2009-11-12 17:52:24 +00:00
drh
36c563a293 Factor out the code generator for BETWEEN into a subroutine.
FossilOrigin-Name: 5735f60b23460e7677b9c982a26bc13b0f4ed02b
2009-11-12 13:32:22 +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
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
shane
f639c40f77 Fix compiler warnings on MSVC build.
FossilOrigin-Name: 01c4b5b84ec7ce589e20ea66e80011f092ab32f0
2009-11-03 19:42:30 +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
drh
e05c929b78 Reduce the memory required by prepared statements that use the IN operator
with a list on the right and an INTEGER PRIMARY KEY on the left.

FossilOrigin-Name: e7984ad2f7e4be30e7198ebd6609a7f6177513e2
2009-10-29 13:48:10 +00:00
dan
937d0dea4f Add the experimental sqlite3_reoptimize() API.
FossilOrigin-Name: 9bd6f3d8864d422fe42074688b191915b27ad8ea
2009-10-15 18:35:38 +00:00
drh
6d4486ae9f Change the version number to 3.6.19. Fix a couple of incorrect testcase()
macros associated with the new IS and IS NOT operators in expr.c.

FossilOrigin-Name: e3b73394bf9c0391e997079b160eace3589415ab
2009-09-23 14:45:05 +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
e0af83aca6 Combine the OP_Statement and OP_Transaction opcodes.
FossilOrigin-Name: aec9dbd8d21c55c3945287a3dfa55d3ed168f977
2009-09-08 19:15:01 +00:00
drh
d7d385dde0 Do not reuse function parameters in subsequent expressions since the
function call might have triggered a text encoding change.
Fix for ticket [2ea2425d34be].

FossilOrigin-Name: f22e388727f0ba0f187cdee51ff8ba17a5d50b8a
2009-09-03 01:18:00 +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
2bd935168e Fix some authorization callback problems.
FossilOrigin-Name: 8a746fbfd51f70f56e25ade59df49d2dc03c131c
2009-08-31 08:22:46 +00:00
dan
76d462ee78 Fixes for new triggers scheme.
FossilOrigin-Name: 9eb91efda5241609ff18ff15ef5eaa0e86788eab
2009-08-30 11:42:51 +00:00
dan
165921a742 Changes to support recursive triggers.
FossilOrigin-Name: 9b9c19211593d5ff7b39254a29c284560a8bcedb
2009-08-28 18:53:45 +00:00
drh
d00151613a Change the expression code generator to account for the fact that the new
sqlite3AtoF() never returns NaN.  Also, clarification of a comment in
where.c.

FossilOrigin-Name: 75f596a04a74eb3a538c7be5b41756c970a21a1b
2009-08-21 13:22:25 +00:00
dan
fcd4a150e2 Change the way an Expr that has been converted to TK_REGISTER stores its original opcode. The previous method, overloading Expr.iColumn, did not work in all cases.
FossilOrigin-Name: 71ea9d0e148fbd3d633651c61c81044e37cf88b9
2009-08-19 17:17:00 +00:00
dan
9267f85790 Merge with 709e16145e.
FossilOrigin-Name: 6c8a0e2b37d9f4399ef90a44cbc492526201d0d5
2009-08-19 14:42:25 +00:00
drh
feb306f556 Unknown functions in the DEFAULT clause of a table cause an error when
the DEFAULT value is needed.  Ticket [2d401a94287b5].

FossilOrigin-Name: 093917d7fda442012dfd1a1b2f20f85d2eefa093
2009-08-18 16:05:46 +00:00
dan
02fa469619 First version of sqlite_stat2 (schema forces exactly 10 samples).
FossilOrigin-Name: dd96bda2a85c1d94fb4a0bf5f27e2977f7f7e42e
2009-08-17 17:06:58 +00:00
danielk1977
c7538b5f63 When extracting values from a record to use in an UPDATEd version of that record, apply OP_RealAffinity if required. Fix for #3992. (CVS 6945)
FossilOrigin-Name: 3616766a6f5c8179cc55444c29ecf29cc69f88ce
2009-07-27 10:05:04 +00:00
drh
b5526ea67f Remove an unused variable from sqlite3ExprListDup(). Ticket #3973. (CVS 6898)
FossilOrigin-Name: 17c05aefd6c9e938a4cc5d3de348d8c8fdc9394d
2009-07-16 12:41:05 +00:00
drh
bf66446972 Fix the comment on the sqlite3PExpr() subroutine. Ticket #3924. (CVS 6789)
FossilOrigin-Name: 4bb96db6b4d2cfa71430a2646c1082a494e3519f
2009-06-19 18:32:54 +00:00
shane
cf6973963a Fix compiler warnings with MSVC build. (CVS 6699)
FossilOrigin-Name: 0791588520603d106aa0b8ce24d68b740b7b80c8
2009-06-01 16:53:09 +00:00
drh
20bc393c6a Fix typo reported by ticket #3888. Other minor edits to facilitate
coverage testing. (CVS 6695)

FossilOrigin-Name: 164adf261d2536f16c83e44f6482dfb3d04a45d5
2009-05-30 23:35:43 +00:00
drh
33cd490992 Simplifications to the expr.c source module resulting from structural
testing. (CVS 6694)

FossilOrigin-Name: f760bb7a0372d11ac7e3287b8a56fc4261e6371c
2009-05-30 20:49:20 +00:00
drh
f7bca5740d Fix for ticket #3887. Other unrelated bits of code cleanup in the expr.c
source module. (CVS 6693)

FossilOrigin-Name: 00e7250f11e190cd915870438d172f574d110e6d
2009-05-30 14:16:31 +00:00
drh
20411ea700 Enhance the sqlite3VdbeGetOp() routine so that it always returns a pointer
to VdbeOp, even following an OOM fault.  This simplifies error handling in
callers.  Cleanup to the column cache logic and the expr.c source module. (CVS 6691)

FossilOrigin-Name: ede06dacdf7acab23cd9666a0a0d092a637bcb78
2009-05-29 19:00:12 +00:00
drh
fd773cf970 Refinements in expression handling logic that have resulted from recent
structural testing. (CVS 6690)

FossilOrigin-Name: bd89f2c29b00e6b473f30c2e929d2f626721ad92
2009-05-29 14:39:07 +00:00
drh
b74b101766 Remove references to deleted function sqlite3ExprRegister(). Changes to
the expr.c source module to promote better testing. (CVS 6686)

FossilOrigin-Name: 6ae4ad6ebee4db88c411df97bb1de574708dd53c
2009-05-28 21:04:37 +00:00
drh
33e619fc1c Additional refinements to Expr handling. Restore compression of trigger
expressions.  Change Expr.zToken to Expr.u.zToken and added Expr.u.iValue.
Remove an unnecessary ExprDup from CHECK constraint processing.  And so forth. (CVS 6682)

FossilOrigin-Name: 4ac2bdfbb4230b6ceaae87e738fa61036bbe03cb
2009-05-28 01:00:55 +00:00
drh
b7916a78ff Simplifications to the Expr object: Remove Expr.span completely and convert
Expr.token into a char* Expr.zToken.  Also simplify the Token object by
removing the Token.dyn and Token.quoted fields. (CVS 6681)

FossilOrigin-Name: 7cb1c3ba0759539cb035978fdaff6316775986f3
2009-05-27 10:31:29 +00:00