Commit Graph

330 Commits

Author SHA1 Message Date
mistachkin f156c9b684 Enable use of the __builtin_bswap32() only with GCC 4.3 and higher.
FossilOrigin-Name: 030f60a7ba171650ce8c0ac32dc166eab80aca32
2015-07-03 17:54:49 +00:00
mistachkin 647ca46fc5 Make use of the _byteswap_ushort() and _byteswap_ulong() compiler intrinsics for MSVC, when available.
FossilOrigin-Name: fe144dd73f7097a17c24c7812c2a1cc40466e6da
2015-06-30 17:28:40 +00:00
drh 329428e208 Remove the use of htonl() in the previous check-in due to linkage issues.
Add the get2byteAligned() macro and use it for access to the cell offsets
on btree pages for about a 1% performance gain.

FossilOrigin-Name: 79ff36b7170c9e7e7a9935c8b9d1665867771087
2015-06-30 13:28:18 +00:00
drh 5372e4d4f9 Make use of htonl() and <nowiki>__builtin_bswap32()</nowiki> for faster
implementations of sqlite3Get4byte() and sqlite3Put4byte().

FossilOrigin-Name: bc27ebd7f73e9fc8e00da6ec82632e439fcce812
2015-06-30 12:47:09 +00:00
drh 1116bf1359 Implement sqlite3Strlen30() using strlen() from the C library.
FossilOrigin-Name: 8001aa52bd12f900092387fe3571463e89efd977
2015-06-30 03:18:33 +00:00
drh 935f2e7074 Disregard leading zeros when converting strings to 32-bit integers.
FossilOrigin-Name: 691cc201e135a01c4cc4057be7e5d99285ab392d
2015-04-18 04:45:00 +00:00
drh 0ede9ebec7 Improvements to compile-time-option hygiene. Use "#if OPTION" instead of
"#ifdef OPTION" in cases where that makes sense, so that -DOPTION=0 will work.
Add the "Have-Not" configuration in releasetest.tcl which disables all of
the "HAVE_component" compile-time options.

FossilOrigin-Name: 9e92a5ed5aaba20461ed4ce8359d6e34e7773d68
2015-01-10 16:49:23 +00:00
drh 9ca95730e3 Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in
progress and is not yet completely functional.

FossilOrigin-Name: c297a84bc678f81ffc0aa9139ab73f0ca87c1971
2014-10-24 00:35:58 +00:00
peter.d.reid 60ec914c74 Fix typos in comments. No code changes.
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh 2f2b2b8580 Performance enhancement in sqlite3PutVarint().
FossilOrigin-Name: a929be551924144c9bc7aab608404d59e479abb5
2014-08-22 18:48:25 +00:00
drh 13f40da31d Split the sqlite3Error() routine into sqlite3Error() and
sqlite3ErrorWithMsg(), for a slight size reduction and performance increase.

FossilOrigin-Name: cf561d1f0bb60b3d638632d20bd686dda4fa4a04
2014-08-22 18:00:11 +00:00
drh 9296c18a50 Change the hex literal processing so that only the SQL parser understands
hex literals.  Casting and coercing string literals into numeric values does
not understand hexadecimal integers.  This preserves backwards compatibility.
Also:  Throw an error on any hex literal that is too big to fit into 64 bits.

FossilOrigin-Name: 6c6f0de59bf96b79c8ace8c9bfe48c7a6a306a50
2014-07-23 13:40:49 +00:00
drh fce4da1b73 Test cases for hex literals.
FossilOrigin-Name: 19054339c47448bcdfd1f7be35daa3826c409077
2014-07-23 01:56:32 +00:00
drh 28e048c618 Add support for parsing C-style hexadecimal literals.
FossilOrigin-Name: 34a1f38b7a23c64f5c6e5b34c19a20480be53961
2014-07-23 01:26:51 +00:00
drh c007f61bb0 Repurpose the SQLITE_TESTCTRL_FAULT_INSTALL test-control to register a
callback to be invoked by sqlite3FaultSim().  That test-control has been
unused since 2008-06-20 and was never used in any official release.

FossilOrigin-Name: 0d43a7ad9abe821e33e0bf83a997aa4461b1e3f2
2014-05-16 14:17:01 +00:00
drh 224155dd1c Fix long-standing typos in comments.
FossilOrigin-Name: b9f91317c34d07769a95dc2f905a6ccabceb64a3
2014-04-30 13:19:09 +00:00
drh 53a6eb3f3c Faster implementation for sqlite3MulInt64().
FossilOrigin-Name: 010c48f671e909cb406f3716102a0032bc72a592
2014-02-10 12:59:15 +00:00
drh 693e671936 Fixes for various clang warnings.
FossilOrigin-Name: 87bf60637e5863c54c5e2d05aaaca0835b7aace8
2014-01-24 22:58:00 +00:00
drh a3cc007df4 Simplication and optimization of error message handling.
FossilOrigin-Name: 9d347f547e7ba9590b0c68edf50a14ad94a2bb92
2013-12-13 16:23:55 +00:00
drh 47676fedf6 Fix two potential (and apparently harmless) shift overflows discovered by
the -fcatch-undefined-behavior option of clang.

FossilOrigin-Name: e19eead8c9977ed4f00eac54c5bc7e90db78caa8
2013-12-05 16:41:55 +00:00
drh a256c1a4b3 Fix typos in the header comment on the sqlite3Atoi64() routine.
FossilOrigin-Name: c85e0c546ea6c6be46deea5c7a716b5fb553c7b4
2013-12-01 01:18:29 +00:00
drh de1a8b8c69 Change the REAL-to-INTEGER casting behavior so that if the REAL value
is greater than 9223372036854775807.0 then it is cast to the latest
possible integer, 9223372036854775807.  This is sensible and the way
most platforms work in hardware.  The former behavior was that oversize
REALs would be cast to the smallest possible integer, -9223372036854775808,
which is the way Intel hardware works.

FossilOrigin-Name: 6f53fc7106658d44edf63068f9a8522fa5a7688b
2013-11-26 15:45:02 +00:00
drh bf539c4d5c Begin an experimental refactoring to estimate the average number of bytes
in table and index rows and to use that information in query planner.
Begin by renaming WhereCost to LogEst and making that type and its
conversion routines available outside of where.c.

FossilOrigin-Name: 66c4a251d61582b47d5cbe50cbca160a9209bd06
2013-10-05 18:16:02 +00:00
drh 9ccd8659ff Change the PRAGMA parser to use a binary search for the pragma name.
Also:  Minor performance enhancement to sqlite3DbFree() and to the
token dequoter.

FossilOrigin-Name: 870c030b4e1854e6e0d39907fadbd82774c16f56
2013-09-13 16:36:46 +00:00
drh 12886632c6 Adjustment to an extreme corner case in the sqlite3Atoi64() routine.
FossilOrigin-Name: 39534b4baa53b9360696a9d5ee8cc2108af34592
2013-03-28 11:40:14 +00:00
drh 0e5fba790a Fix text-to-numeric type casting so that it works correctly on UTF16
strings that contain characters where the LSB is numeric but the MSB
is non-zero.  Ticket [689137afb6da41]

FossilOrigin-Name: 5b22053f918d16f593227a432a5d5b4c195bb0b5
2013-03-20 12:04:29 +00:00
drh 89f15088f0 Improved rounding accuracy on test-to-float conversions.
FossilOrigin-Name: 699b792c6a0e989994549959b11ec1bfad8bbd92
2012-06-19 00:45:16 +00:00
drh 0299b40f0f Add additional test cases to e_insert.test. Update evidence marks.
no changes to core code.

FossilOrigin-Name: 036395c0a8e08883b11df025e3da9e2461e4b1eb
2012-03-19 17:42:46 +00:00
drh 3fa9730273 Change the SQLITE_FCNTL_PRAGMA file-control so that it can return a string
value.

FossilOrigin-Name: fd8d7440277b17f57a6dc0a210f42adf1fa2dcd2
2012-02-22 16:58:36 +00:00
drh c02a43afae Only require double-zero terminators on database filenames, not any every
files supplied to the xOpen method.  This backs out [2544f233f1].  Also
refactor the fillInUnixFile() routine in os_unix.c to reduce the number
of parameters.

FossilOrigin-Name: cb774b26e13745cfad0d76a71e47466d703e0007
2012-01-10 23:18:38 +00:00
drh e025d9a096 Fix an incorrect assert() on the sqlite3FileSuffix3() function.
FossilOrigin-Name: 24db54bd49ed91c74a9797faca02df2d39553240
2012-01-05 18:33:40 +00:00
drh 52bcde0e2d Make sure filenames passed into sqlite3OsOpen() always have the extra
zero-terminators needed by sqlite3_uri_parameter().

FossilOrigin-Name: d73e93cfdc9441ade77b796dcdcf6eeb753cb398
2012-01-03 14:50:45 +00:00
drh 7d39e17eef Fix the build so that it works when SQLITE_ENABLE_8_3_NAMES=1.
FossilOrigin-Name: d9761f15a175724c6c28a52335c979304737b188
2012-01-02 12:41:53 +00:00
drh 9291372094 Add interfaces sqlite3_uri_boolean() and sqlite3_uri_int64() which are
wrappers around sqlite3_uri_parameter() combined with internal routines for
converting strings to booleans and 64-bit integers.

FossilOrigin-Name: 83d26b9a9115eadac9e59a33d608bca0ab2519e3
2011-12-23 00:07:33 +00:00
drh f580860f51 Make sure the antipenultimate character of master-journal filenames is a "9"
in order to avoid collisions with other files in 8+3 filename mode.  Also,
limit the number of attempts at finding a unique master-journal filename.

FossilOrigin-Name: 34a0483605d36e6cf03065ed0df33fb1f7c8a272
2011-12-16 00:33:04 +00:00
dan d28286181d Change a memcpy() in sqlite3FileSuffix() to memmove() on the grounds that the source and destination may overlap.
FossilOrigin-Name: 5e1d247e5b3b5dcf6763f01002e996786db48152
2011-11-04 12:05:52 +00:00
drh 57db4a7509 Avoid 32-bit integer overflow when evaluating the exponent of a floating point
value during ascii to binary conversion.

FossilOrigin-Name: 4becc47eb4d48686faca4f61e93e5f379b227fcc
2011-10-17 20:41:46 +00:00
drh 2458a2e742 Performance improvement for ascii to floating-point conversions with very
large exponents.

FossilOrigin-Name: 59bb999c8ba5e4ee7a4e388fc724b8606136d60c
2011-10-17 12:14:26 +00:00
drh b51bf43966 Compile with the SQLITE_ENABLE_8_3_NAME macro set to 2 to force 8+3 filenames
to be on all the time.

FossilOrigin-Name: ae83dac70173fecf203bf7e9f7bcb189d3e48f08
2011-07-21 21:29:35 +00:00
drh c83f2d477c Remove unreachable branches from the 8.3 filename logic.
FossilOrigin-Name: 4f7e7b44f2d17681318a1fd22466d3cc03103fc4
2011-05-18 02:41:10 +00:00
drh 81cc516352 Add the ability to limit filenames to 8+3 using the
SQLITE_ENABLE_8_3_NAMES compile-time option together with a URI
parameter of "8_3_names=1".

FossilOrigin-Name: 96d609856025919571f781207dfa6a24b1732e8d
2011-05-17 20:36:21 +00:00
dan cd74b611f4 Add the start of the "uri-filenames" feature.
FossilOrigin-Name: b8a8132e7148a7c90ca1352f20ab71d97b0bc4b0
2011-04-22 19:37:32 +00:00
drh 68bf06716d Fix a signed integer overflow problem in the testcase() macro.
FossilOrigin-Name: f18f5f5893a0d37ecedcfcfdddbe06cdbe0b4243
2011-04-11 15:35:24 +00:00
drh 87e79aefef Fix two compiler warnings. No functional code changes.
FossilOrigin-Name: c829868aa2254c5e2268cdb803462cc6ec5cb71e
2011-03-08 13:06:41 +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 d7255a207e Simplifications to the overflow-free multiplier. Also remove some commented-out
code that was left in that subroutine by mistake on the previous check-in.

FossilOrigin-Name: 55fc25fdab61e6094289e068c343e012fec10439
2011-03-05 21:41:34 +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 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
drh 025586a259 Do correct affinity transformations on floating point values which have
a decimal point at the beginning or end of the mantissa.
Ticket [3998683a16a7076e08f5].

FossilOrigin-Name: ca154f97a590745539b2cbfd77eb319fd7392a40
2010-09-30 17:33:11 +00:00