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

185 Commits

Author SHA1 Message Date
drh
fc6ee9df22 Fix the formatting of %c in the printf() SQL function.
FossilOrigin-Name: 3375571a5e267744c19a7c310840256cec57a242
2013-12-17 15:58:42 +00:00
drh
a5c1416d64 Add the printf() SQL function.
FossilOrigin-Name: 6db7052eeefafdbf26b3153bc38600fecfb53ae6
2013-12-17 15:03:06 +00:00
drh
40f22bed06 Avoid unnecessary calls to sqlite3_free() from within sqlite3VXPrintf().
FossilOrigin-Name: e2a8b280e84c1f8fd6106d9427e1ad6cbcfccd10
2013-12-13 16:42:18 +00:00
drh
a9ab481fca Fix harmless compiler warnings.
FossilOrigin-Name: a7e5fcd66659750eb2f4675082df324e7cf35427
2013-12-11 11:00:44 +00:00
mistachkin
53cd964648 Fix harmless compiler warning.
FossilOrigin-Name: 2525296d919245ebb01077aad541e4ae6eab7940
2013-12-11 02:21:19 +00:00
drh
a6353a3f64 Performance optimizations for sqlite3VXPrintf().
FossilOrigin-Name: 9227ad48e1612b32a3a3e9551c49890f93abc0a7
2013-12-09 19:03:26 +00:00
drh
b49bc86a1a Simplification to the StrAccum object and the sqlite3StrAccumAppend()
method that also results in slightly better performance.

FossilOrigin-Name: 700dbbea8647e0fdaee6d0aba3d3dd8ebfbac04a
2013-08-21 21:12:10 +00:00
drh
e8c13bf262 Make sure an adequate number of digits are shown for binary-to-text rendering
of very small floating point values.

FossilOrigin-Name: 776e65f98ce80a8ed56cb73ef56c751702698612
2013-07-08 22:33:20 +00:00
drh
f7b5496e8e Many small harmless comment changes. Removal of obsolete comments and
fixing misspelled words.  No changes to code.

FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
drh
4ef9413028 Round-trip conversions of real->text->real are now lossless on x64 with GCC.
Untested on other platforms so far.  Still a corner-case problem with round().

FossilOrigin-Name: fd7bd4a59361be41b10522abc212cf56fb5e35b4
2012-06-19 03:35:05 +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
7e02e5e6b5 Begin adding the data-structure explaining subsystem. All is contained within
FossilOrigin-Name: 79ae51c5b1b20ed0a425a87e65a32a096a80b7e1
2011-12-06 19:44:51 +00:00
drh
b07028f71c Add assert() statements and eliminate needless variable assignments in order
to get the clang scan-build utility to report zero problems against the
SQLite core.  Clang's static analysis did find one real problem - but it was
in the command-line shell, not in the SQLite core.

FossilOrigin-Name: 60fee9574b0125705787e33c16f116cf188c8323
2011-10-14 21:49:18 +00:00
drh
ed1fddf462 Clean up obsolete comments in printf.c.
FossilOrigin-Name: 97ef4f5013731fa3a0f72451b7e8c9aec5523104
2011-10-12 18:52:59 +00:00
drh
59eedf7925 Remove all precision and width limits from formatting fields in the
sqlite3_mprintf() family of functions. Malloc for space as necessary.
The prevents a stack overflow on very large numbers using %f.

FossilOrigin-Name: 1f843fb383583ee7ef51c13b8a820744e450101a
2011-10-11 17:54:54 +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
dan
a9ef7097c7 Change sqlite3StrAccumAppend() to use realloc instead of malloc.
FossilOrigin-Name: 380f61df0754ceec6b3f6a758d04e951cce8c3d9
2011-01-21 18:25:29 +00:00
drh
db26d4c9e1 Add the sqlite3_vsnprintf() interface.
FossilOrigin-Name: fc67adea414320e0c0b24054f76070cfaeebb401
2011-01-05 12:20:09 +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
dan
60d4a30453 Fix for [9abd6aa831]. Do not overread a buffer used for an %q or %w conversion with a precision specifier.
FossilOrigin-Name: 5e472896e02eed05c6c0886a48acd0bdc7a38731
2010-03-04 17:58:45 +00:00
drh
69ef70362a Fix an uninitialized variable in printf when compiling with
SQLITE_OMIT_FLOATING_POINT.

FossilOrigin-Name: 14ad62b9a54dba5c5a2d4a994bcd4be6ab6e711f
2010-03-04 17:11:31 +00:00
drh
a64fa9123e Increase the maximum length of an sqlite3_log() result string. Provide more
details on the statement abort log message.

FossilOrigin-Name: 5322d1df5ba981001d248b7fb2ee02281e4f9723
2010-03-04 00:53:32 +00:00
drh
7c0c460fff Modify the sqlite3_log() interface and implementation so that it never
uses dynamic memory allocation - to avoid deadlocking when called while
holding the memory allocator mutex.

FossilOrigin-Name: 28d1bc98d60319b10af427072037a0121bc76259
2010-03-03 22:25:18 +00:00
drh
bee8065e37 Test coverage enhancements. Additional documentation detail on the new
sqlite3_log() interface.

FossilOrigin-Name: d986e9289388fd72257b26cb2f9c972177255cd4
2010-02-25 21:27:58 +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
90038f8b07 When SQLITE_OMIT_FLOATING_POINT is defined, the floating-point formats in
the sqlite3_*printf() functions should pull an int64 off of the parameter
list and ignore it.

FossilOrigin-Name: 3fd6f9ad06b786116ca18c1e812363d30cd3060e
2010-01-13 16:43:27 +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
drh
8965b50edf Enhance the %q, %Q, and %w printf conversions so that the precisions
specifies the length of the input.

FossilOrigin-Name: 3ba773132d3baeb87acaee538b8fb0b0f4293673
2009-11-25 16:53:37 +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
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
eeb23a4c24 Make sure va_arg() does not occur on the same line as any "if" statement
or "?" operator. (CVS 6602)

FossilOrigin-Name: 3543be6e34ebff48b1b0c1710ae6fec557b09b52
2009-05-04 20:20:16 +00:00
drh
874ba04c73 Reconfigure the default case for the printf switch in order to improve
branch coverage. (CVS 6472)

FossilOrigin-Name: 3cc79162dbdbce9d08bb28942128780277101e0d
2009-04-08 16:10:04 +00:00
drh
bc6160b0d6 Remove a pair unnecessary conditions from printf.c. The "db" parameter is
now required for sqlite3MPrintf(). (CVS 6471)

FossilOrigin-Name: 6fe8b5d70247d9c6b70dd482db3990986be97e69
2009-04-08 15:45:31 +00:00
drh
7e3ff5d84e Add a comment to printf.c - no changes to code. (CVS 6468)
FossilOrigin-Name: ee5a4a0e595a7b916db7d55d30ddfda0a8d40d90
2009-04-08 11:49:42 +00:00
drh
ea6788322e Never use strlen(). Use our own internal sqlite3Strlen30() which is
guaranteed to never overflow an integer.  Additional explicit casts to
avoid nuisance warning messages. (CVS 6007)

FossilOrigin-Name: c872d554930ecf221ac2be5f886d5d67bb35288c
2008-12-10 19:26:22 +00:00
drh
b27b7f5d3b More explicit type casting to silence VC++. (CVS 6006)
FossilOrigin-Name: 14e6d19c3157ccdce170e769d678c7f472dd3db2
2008-12-10 18:03:45 +00:00
drh
17d46fc7f1 Make sure the error message handler is able to deal with NULL expression
spans. Ticket #3508. (CVS 5949)

FossilOrigin-Name: ce36b6474a62f0a5b8d82968ca9a171f7143ae31
2008-11-22 18:28:50 +00:00
drh
d164fd3483 When a memory allocation fails on the %Q conversion in sqlite3_mprintf(),
make sure the error is reported back up the call stack. (CVS 5933)

FossilOrigin-Name: eebacbc9d7d0625dfbe6367046fa4a0ca9c04e74
2008-11-20 18:20:28 +00:00
danielk1977
00e136135e Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914)
FossilOrigin-Name: 8009220c36635dd9b6efea7dc13281ca9625c40a
2008-11-17 19:18:54 +00:00
drh
9bc467267b Remove unused variable from printf.c. Ticket #3331. (CVS 5595)
FossilOrigin-Name: 7fd11f4ad8774e68f0a053eb2e1dd962a024da48
2008-08-22 14:08:35 +00:00
drh
633e6d57d9 Implement the "lookaside" memory allocation cache. Use of this cache makes
the speed1.test script run about 15% faster.  Added new interfaces to
control the cache. (CVS 5488)

FossilOrigin-Name: e48f9697e9fea339e150ddc32940760027dd07d9
2008-07-28 19:34:53 +00:00
drh
85e9e22b33 Increased test coverage. (CVS 5414)
FossilOrigin-Name: 7cf91e08c08ce515c24c738c7d079f5b81eebee6
2008-07-15 00:27:34 +00:00
drh
ff1590ee00 Write sqlite3_initialize() calls in sqlite3_malloc() within
SQLITE_OMIT_AUTOINIT.  Ticket #3217. (CVS 5408)

FossilOrigin-Name: 4961b0bbe8b9cf5fb27de7f2514e8ab399a00134
2008-07-14 12:52:53 +00:00
drh
93a960a0a8 Remove unused code. Test coverage enhancements. Modify the algorithm used
to select column names for VIEWs of joins so that the constructed column
names omits the underlying table names. (CVS 5386)

FossilOrigin-Name: 636cd723296a8b1709011fdd99b236ffddf3f1b0
2008-07-10 00:32:42 +00:00
drh
af005fbc13 Test coverage improvements on printf. (CVS 5385)
FossilOrigin-Name: 2d8f7bebf0f13f3a95f1e2163e35d43229cabfea
2008-07-09 16:51:51 +00:00
drh
f089aa459e Completely rework the sqlite3SetString() primitive so that it honors the
SQLITE_LIMIT_LENGTH and avoids the use of strlen(). (CVS 5374)

FossilOrigin-Name: 8ed04b1e26a55306e4baf3e93fb084514134d603
2008-07-08 19:34:06 +00:00
drh
9be071664d Clean up obfuscated code in sqlite3_table_column_meta_data().
Be sure to invoke sqlite3_initialize() within sqlite3_mprintf(). (CVS 5224)

FossilOrigin-Name: bb4edb53964559fc1cd69700beb72ecc29b58f37
2008-06-16 20:51:15 +00:00
drh
e5ae5735c0 Continuing work on the new memory allocation subsystem.
Added routines for temporary memory allocation.  Right the btree
balance mechanism to only do one temporary allocation at a time. (CVS 5220)

FossilOrigin-Name: 65fe7b62cfe7d11cd667681a64c96fe7b2fe5685
2008-06-15 02:51:47 +00:00