1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-10-22 22:13:04 +03:00
Commit Graph

523 Commits

Author SHA1 Message Date
mistachkin
2b434a7ec0 Move variable declaration to fix compilation with MSVC.
FossilOrigin-Name: d45f7a013f05fe7603d5e6d02df0e6bab2c7ffd8
2012-06-19 04:36:48 +00:00
drh
72b3fbc7b5 Improved accuracy on text-to-real and real-to-text conversions. Most
conversions now round-trip correctly.  Still need to fix some corner
cases.

FossilOrigin-Name: 8ecffca900cd6a8922001fd458a266ce8c83fb66
2012-06-19 03:11:25 +00:00
drh
a748fdcc43 Evaluate typeof(X) and length(Y) where X is any column and Y is a blob column
without actually loading X and Y from disk.

FossilOrigin-Name: b899dbeb60752843287e2c6ad3577e1d00f0d587
2012-03-28 01:34:47 +00:00
drh
af8001bfb3 Another attempt to fix warnings in the randomFunc() function.
FossilOrigin-Name: 768df4e11670ac704d96e3b601d009aaa2fd793a
2012-02-11 19:53:24 +00:00
drh
96d7b510e9 Fix a warning coming from the Solaris Studio compiler.
FossilOrigin-Name: 33294bbd1724665832464b33f865a29dc82b90f6
2012-02-10 20:43:05 +00:00
drh
94a6d998f6 Fix a problem with NULL handling in aggregate min/max when returning
values from the row containing the min or max.

FossilOrigin-Name: f27c7b4fb193126548e6a620ac89664d1efa3856
2012-02-02 18:42:09 +00:00
drh
7a95789c0c For queries of the form "SELECT p, max(q) FROM t1", the value of column p
returned is the one on the same row that holds the maximum value of q.

FossilOrigin-Name: adb29232b659c5332b6841776372407fcc350b08
2012-02-02 17:35:43 +00:00
drh
df901d34e5 Simplifications to the upper() and lower() SQL functions.
Updates to documentation on sqlite3_bind_text() and sqlite3_result_text()
to make it clear that users should not try to create strings with
embedded NULs and that if they do the result of expression on those strings
is undefined.  Ticket [57c971fc74524a]

FossilOrigin-Name: 9984cc20ca70b7fb39c0b99580a1317a7b0c9c85
2011-10-13 18:00:11 +00:00
drh
1aa4f3e529 Fix a couple of compiler warnings.
FossilOrigin-Name: 3899f3b95ed50773a72d907b39b451fefce69c9e
2011-06-15 12:43:36 +00:00
drh
0a32fa6d81 Use only unsigned values in the implementatin of LIKE and GLOB so that
values won't overflow to negative when dealing with malformed UTF8.

FossilOrigin-Name: 77f01578bb565d1bc884b374b68bae10ce34a084
2011-06-13 12:19:21 +00:00
drh
840561f2a4 Change the name of an internal function to avoid conflicts with the math
library.

FossilOrigin-Name: 1bd1484cd7e09709d87aa84b82e87597d00a4162
2011-04-27 18:08:42 +00:00
drh
3ca84ef623 Add the (deliberately undocumented) sqlite_log() SQL function as a built-in.
FossilOrigin-Name: f7806e03995b314771aa72a08ce55d56d60096cf
2011-04-25 18:03:10 +00:00
drh
158b9cb965 Fix all known instances of signed-integer overflow. Within SQL expressions,
integer overflow now forces coercion to floating point.  The shift operators
work with any integer right-hand operand with negative values reversing
the direction of the shift.

FossilOrigin-Name: abf21394124a0af46f072793718964cee2ce55d0
2011-03-05 20:59:46 +00:00
drh
cfd654bf2a Fix an instance of signed arithmetic overflow and an one bit-shift overflow.
Mark six other signed arithmetic overflow locations that need fixing.

FossilOrigin-Name: 04abab71ecd52f6070b9f84781a3df3d6dba7722
2011-03-05 13:54:15 +00:00
drh
901e994b8b When registering the built-in LIKE and GLOB functions, make sure that they
are tagged with SQLITE_UTF8 so that if other application-defined LIKE and
GLOB implementations are provided for UTF16, then the appropriate function
will be selected.

FossilOrigin-Name: e1660764f20fed3fe92156d2b7f06075ff6ac145
2010-12-15 18:54:37 +00:00
drh
9339da1f22 Rework the text to numeric conversion routines so that they work with either
UTF8 or UTF16 and do not require a NULL terminator.  This allowed text to
numeric conversion without reallocating the string.

FossilOrigin-Name: 14eed3a0e0a45c6f2904a3a134aa27c159916f7b
2010-09-30 00:50:49 +00:00
drh
6ac78a0d9f Fix several harmless compiler warnings.
FossilOrigin-Name: 7be03ecc04235420e54fed8a88742243278de160
2010-09-28 14:26:36 +00:00
dan
d2199f0f8d Add the sqlite3_create_function_v2() API, a version of create_function that allows a destructor to be specified.
FossilOrigin-Name: 9a724dfbe822c77e76721abe3443c9cb018bb2e2
2010-08-27 17:48:52 +00:00
drh
a3e414cd48 Fix disabled implementation-mark comments in func.c.
FossilOrigin-Name: 57c0960038b8ce97f9d6665f15e7f6ec310c681f
2010-08-03 18:06:25 +00:00
drh
b975598ea0 Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and
all memory from sqlite3_malloc() is freed by sqlite3_free().

FossilOrigin-Name: ac1f37a647e9ed1c00a901d26d9956a86c40117a
2010-07-24 16:34:37 +00:00
drh
a4741840f6 Remove an unreachable branch from the function initialization logic.
FossilOrigin-Name: 064d3ddd6199b7b049b1706974e4295f78fb5ab9
2010-04-25 20:58:37 +00:00
drh
545f587fc8 When commands such as ALTER TABLE and VACUUM use SQL internally, make sure
they use only the built-in functions and not application-defined overrides
for those functions.

FossilOrigin-Name: 0291ed974d5bf1e344e2c38422530cc961b897da
2010-04-24 14:02:59 +00:00
drh
8bb76d39a0 Rename the sqlite_compile_option_*() SQL functions to sqlite_compileoption_*()
for consistency with the C/C++ interface.

FossilOrigin-Name: dd4962aa34c4dd118d2cb15465384636eacc64d5
2010-02-26 16:37:47 +00:00
drh
264a2d4de1 Minor simplifications to the compile-time option reporting functions and
pragmas to facilitate coverage testing.

FossilOrigin-Name: 633d874783a94f923ff8240f9153764033d37a89
2010-02-25 15:28:41 +00:00
drh
380083ce18 Merge the compile-time option introspection interfaces into the trunk.
FossilOrigin-Name: 9f429434c0404f03a3e5c6741b769afe98a5c6c9
2010-02-23 20:32:15 +00:00
shaneh
dc97a8cdc1 Refactored compile time option diagnostic support to use strings identifiers instead of bitmask.
FossilOrigin-Name: 76a0294ab4208a0858a13bab0858e1bc1448b651
2010-02-23 20:08:35 +00:00
shaneh
bdea6d1368 Test new api to report which options (defines) were used to compile SQLite.
FossilOrigin-Name: 84c9756993caf82710a0905ed1987d144bc764fd
2010-02-23 04:19:54 +00:00
shaneh
147e176aff Avoid using the internal printf routine for round(x,y) in the common case where y==0.
FossilOrigin-Name: d76ad8b3c494ffb4e670da0e92a1f8dbf7f48daf
2010-02-17 04:19:27 +00:00
drh
ab2f1f9560 Add a few documentation evidence comments to the built-in function
implementations.

FossilOrigin-Name: 8bd0f8147dbf75367243b3eecfb705da6e794ab7
2010-01-11 18:26:42 +00:00
drh
2ba3cccf22 Add evidence marks for the abs() and soundex() SQL functions.
FossilOrigin-Name: 003f3ed10cdb64b73d6df00e28260dd3491e1f16
2009-12-08 02:06:08 +00:00
shaneh
779b8f126e Update comment for substrFunc(). Added additional SUBSTR() test cases.
FossilOrigin-Name: d7b3801dc7fad1b002f892fb5d82047ebff98369
2009-11-12 05:04:50 +00:00
drh
4adc4cb93b Tweaks to the SUBSTR() function to make it dramatically faster in the common
case where the input string is large but the 2nd and 3rd arguments are small
positive integers.

FossilOrigin-Name: 5a474a867c5988ad5ec03719516fdd38f0da5c2c
2009-11-11 20:53:31 +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
47baebc2a6 Incorporate fossil-scm version information into the build. Add the
SQLITE_SOURCE_ID macro to the header.  Add the sqlite3_sourceid() interface.
Add the sqlite_source_id() SQL function.

FossilOrigin-Name: 302dabe98f50b472bccd65c58504bc8a330049c4
2009-08-14 16:01:24 +00:00
drh
8bfd719065 Make sure group_concat() ignores initial NULL values. (CVS 6787)
FossilOrigin-Name: 90c3b23ccac8a9e7fc1cc831e43888e4e43badc9
2009-06-19 16:44:41 +00:00
drh
8bfdf72136 Reorganize and cleanup the prepared statement object. Remove code that has
been commented out for ages and is no longer relevant to anything. (CVS 6786)

FossilOrigin-Name: 37ae5f5e8feb34a8e6e8b34aa18df1e9a1ce55cb
2009-06-19 14:06:03 +00:00
drh
50d654da3b Additional changes to reduce stack usage. The SQLITE_SMALL_STACK compile-time
option is now available. (CVS 6708)

FossilOrigin-Name: baea79fd0cfeb860973846c3f2776776c87f0ae3
2009-06-03 01:24:54 +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
drh
d54a79118a Do not use deprecated interfaces internally when compiling with
SQLITE_OMIT_DEPRECATED.  Ticket #3813. (CVS 6523)

FossilOrigin-Name: 7f17956dfbf3090fd5832378e77bd83a525fed9d
2009-04-20 12:07:37 +00:00
drh
8dc09a0616 Fix the group_concat() function so that it inserts the separator string
even if the initial content strings are empty.  Ticket #3806. (CVS 6510)

FossilOrigin-Name: b83fbf15a3920755ed77dc9c91b4f00a86ddb9ac
2009-04-15 15:16:53 +00:00
drh
d3264c7cdf Mark an branch in alter.c as always false. Only run the assert() on
the sqlite3_aggregate_count() function in func.c if the
SQLITE_OMIT_DEPRECATED compile-time option is off. (CVS 6508)

FossilOrigin-Name: c0bba77ae619e709f3fb068526073a4a83cf33b6
2009-04-15 13:39:47 +00:00
drh
2e79c3d51c Add an assert() to the implementation of count(*) that checks the
correct operation of the sqlite3_aggregate_count() function. (CVS 6473)

FossilOrigin-Name: f322be3833c4a938ee7d9e4bcfd5decaca57db0b
2009-04-08 23:04:14 +00:00
drh
3034e3d364 Change the way that the random() SQL function prevents the maximum
negative integer so that it is testable. (CVS 6436)

FossilOrigin-Name: 995f2b9b1031fadc85e179701536b9dd4153654b
2009-04-02 14:05:21 +00:00
drh
d27135ad82 Use ALWAYS and NEVER macros on unchangeable conditions within func.c. (CVS 6435)
FossilOrigin-Name: eb65e64e7ed5edbe506365971d4d81ea037098d3
2009-04-02 13:36:37 +00:00
drh
27e62dbedd In the built-in SQL function implementations, improve some comments, fix
an off-by-one error in detecting over-size strings, and add testcase()
macros to verify that boundary values have been tested. (CVS 6434)

FossilOrigin-Name: 868a487f5fd7c795e04a08de36a85ba1e06bc8c6
2009-04-02 10:16:17 +00:00
drh
ef31c6aa97 Enforce the run-time sqlite3_limit() length limit on zeroblob(), not just
the compile-time SQLITE_MAX_LENGTH limit. (CVS 6433)

FossilOrigin-Name: a04f9e7959325da18f66a1aa4ead1c50993807cb
2009-04-02 09:07:12 +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
danielk1977
717811c995 When "PRAGMA case_sensitive_like" is invoked, override all existing "LIKE" functions, including UTF-16 versions. (CVS 6394)
FossilOrigin-Name: 1c6521e53b846eec2e046b1e9c04c60658b8e0e8
2009-03-27 15:26:03 +00:00
danielk1977
a55331620e Optimize queries of the form "SELECT count(*) FROM <tbl>" by adding a sqlite3BtreeCount() interface to the btree layer. (CVS 6316)
FossilOrigin-Name: d4aa6593183224b6868a322511511c0bbf63b598
2009-02-24 10:01:51 +00:00