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

678 Commits

Author SHA1 Message Date
drh
d24cc427b7 Changes to the "sqlite" structure that allow simultaneous operations on
multiple database files.  Many regession tests pass - but not all of them.
Do not use this version except for debugging SQLite itself. (CVS 883)

FossilOrigin-Name: d2fb2bb50cf1e13feb90995079f291384abd6ba9
2003-03-27 12:51:24 +00:00
drh
001bbcbb8f Modifications to the VDBE to support more than one database file. (CVS 878)
FossilOrigin-Name: 875da9eed981bfa27b98e95025f9fdbed74b4098
2003-03-19 03:14:00 +00:00
drh
bb999ef6fa Make the GROUP BY clause work even if there are no aggregate functions. (CVS 859)
FossilOrigin-Name: b68792315883eed8523f5e11856ec8378dc972c1
2003-02-02 12:41:25 +00:00
drh
88eee38afd Allow double-quoted strings as string constants in the IN operator. As a
side-efffect, allow the GROUP BY clause to refer to columns by their integer
column number.  Ticket #237. (CVS 856)

FossilOrigin-Name: 187d9c405891e543fc706f8ddb41f3966a842214
2003-01-31 17:16:36 +00:00
drh
326dce7451 The callback-free API is now working, though much more testing is need. (CVS 853)
FossilOrigin-Name: 162b259188e6967fe9c3722da26b81aab5655d83
2003-01-29 14:06:07 +00:00
drh
e78e8284ad Update comments. No changes to code. (CVS 841)
FossilOrigin-Name: f6a8706872c43cee3003b48bb427c7b74b1f89e7
2003-01-19 03:59:45 +00:00
drh
fcb78a4900 Fix datatype reporting and collating sequence selection so that it works
correctly on views and with the UNION, EXCEPT, and INTERCEPT operators. (CVS 839)

FossilOrigin-Name: 71cc292dce59cf8224b205d1cdbff59ad12f1043
2003-01-18 20:11:05 +00:00
drh
e5f9c6442f Revise the sqlite_set_authorizer API to provide more detailed information
about the SQL statement being authorized.  Only partially tested so far. (CVS 830)

FossilOrigin-Name: 45de93f913a18026a45de6254963dbcd1b0f1a19
2003-01-13 23:27:31 +00:00
drh
ed6c8671b3 Initial check-in of the code for the new sqlite_set_authorizer() API function.
The code is mostly untested at this point. (CVS 827)

FossilOrigin-Name: 52d5007f64d0af5286b2a0e1f0b9e53c86bece3f
2003-01-12 18:02:16 +00:00
drh
5a38705ecb Document the SHOW_DATATYPES pragma and add tests for it to the test suite.
Make sure datatypes are show even for aliased columns.
Tickets #220 and #221. (CVS 822)

FossilOrigin-Name: e84d3afe7b9153d003fdcca98221f446c004ffa2
2003-01-11 14:19:51 +00:00
drh
836faa4843 Remove the ColumnCount opcode, which had become a no-op. (CVS 821)
FossilOrigin-Name: 86deb12d68026913d181f9498144fa56445899f2
2003-01-11 13:30:57 +00:00
drh
c66c5a266b Allow an aggregate function in the HAVING clause even if no aggregates appear
in the result set.  Ticket #187. (CVS 793)

FossilOrigin-Name: 33c6fd6b3dc271fa1f2d4500b4f76c736accefce
2002-12-03 02:34:49 +00:00
drh
174b619591 Honor ORDER BY clauses in VIEWs. Ticket #193. (CVS 792)
FossilOrigin-Name: dbf7893234a6c5d6bb2d931e52080bb05784c0c9
2002-12-03 02:22:52 +00:00
drh
1f16230b5c Minimal support for oracle8 outer join syntax. (CVS 771)
FossilOrigin-Name: 31df3690d0fe4bd4a293cbe8ca9a26c98c3ed3ce
2002-10-27 19:35:33 +00:00
drh
6977fea801 Correctly handle column names and string constants in parentheses.
Fix for ticket #179. (CVS 770)

FossilOrigin-Name: 3b68aa25c451b7c09ece457ac2b70a9a5d93508a
2002-10-22 23:38:04 +00:00
drh
315555ca50 Work around a bug in the Borland C compiler. Ticket #172. (CVS 765)
FossilOrigin-Name: 3ef2925650bfbeb4ee5dbd0aaf8e606fc4cd2be1
2002-10-20 15:53:03 +00:00
drh
ac82fcf5f0 Fix for ticket #147: Honor the ORDER BY and LIMIT clauses in a SELECT even
if the destination of that SELECT is a subroutine call. (CVS 747)

FossilOrigin-Name: 23fe36c7e88282f6d1b7547ab892ea88f0e65262
2002-09-08 17:23:41 +00:00
drh
142e30df99 Slightly faster INSERTs from a SELECT by avoiding an intermediate table.
But it didn't make nearly as much difference as I had hoped. (CVS 732)

FossilOrigin-Name: 723362e74f79c784314d042e3a8c8a9bf07cbd5e
2002-08-28 03:00:58 +00:00
drh
8c74a8ca5b Fix for ticket #136: Added the OP_RenameCursor VDBE instruction and used it
to make cursor numbers right on nested subqueries.  Also added OP_Gosub and
OP_Return but have not actually used them for anything yet. (CVS 727)

FossilOrigin-Name: c602603e7cd8dc5c8bb9db2748eacab650de5bf0
2002-08-25 19:20:40 +00:00
drh
d94a669894 Fix the memory leak introduced by check-in (725). (CVS 726)
FossilOrigin-Name: b957dafc26383af514795df18bc7b8f367c9bd21
2002-08-25 18:29:11 +00:00
drh
4b59ab5e64 Change the way token memory is allocated in an effort to fix ticket #136.
There is now a memory leak when using views of views. (CVS 725)

FossilOrigin-Name: 22d8726e61eec0e53893f492cb2163824b87a23e
2002-08-24 18:24:51 +00:00
drh
68d2e5918a Fix for ticket #131: When a SELECT contains a GROUP BY clause it cannot
use an index for sorting.  It has to sort as a separate operation after
the GROUP BY is complete. (CVS 702)

FossilOrigin-Name: 18745c67acdf7ebec378f5538174117970e9f5cc
2002-08-04 00:52:38 +00:00
drh
491791a827 Fix for ticket #107: Fix a design defect in indices that was causing queries
to fail when using an index on a column containing an empty string.  This
fix is an incompatible file-format change. (CVS 681)

FossilOrigin-Name: 20d152fcddb4fa53556a9c93c7a869600a7c5183
2002-07-18 00:34:09 +00:00
drh
5080aaa7ab Turn of the reporting of datatypes in the 4th callback argument unless the
SHOW_DATATYPES pragma is ON.  Eliminate the NULL pointer that used to separate
the beginning of datatypes from the end of column names so that the callback
can test to see whether or not datatypes are provided.  This is an
incompatible changes, but since the prior behavior was never documented, we
will let it in. (CVS 670)

FossilOrigin-Name: b98727246d5fcc1b097b577be498a77e954c5dc4
2002-07-11 12:18:16 +00:00
drh
fa173a764a When reporting back the datatype of columns, use the text of the datatype
as it appears in the CREATE TABLE statement, if available.  Also: removed
the ".reindex" command from the shell. (CVS 669)

FossilOrigin-Name: ff8b6f4ee8099a7170cb786b8ead9a3e42ab5869
2002-07-10 21:26:00 +00:00
drh
38640e15af All the code is now in place for SQLite to distinguish between NUMERIC and
TEXT datatypes.  Still need to turn on the new code and test it. (CVS 659)

FossilOrigin-Name: b4737a16c997a6c139d616211fb6bc4b0fae181c
2002-07-05 21:42:36 +00:00
drh
a9f9d1c08b Add a few more tests and fix a few bugs that the tests uncovered. (CVS 652)
FossilOrigin-Name: 91c0db66c86facb21b5b522afadd83d91a488256
2002-06-29 02:20:08 +00:00
drh
3b167c7583 Additional test cases added. The following bug fixed: A segfault was occurring
if a VIEW consisted of a join with a USING clause. (CVS 651)

FossilOrigin-Name: 96515b813eb57e1f48c28d357d1f38639b2fdcfa
2002-06-28 12:18:47 +00:00
drh
b13632063d The datatype of the i-th column in the result set is given by the
azColName(argc+1+i) parameter to the callback. (CVS 647)

FossilOrigin-Name: bdb006b809feb0f29342eb5138c0884d34e95599
2002-06-26 02:45:03 +00:00
drh
1cc093c2b5 Partial fix for a problem with LEFT OUTER JOIN. It used to be that the test
for the right-hand table not matching the left table occurred after all
ON, USING, WHERE clause processing.  The test should occur after ON and
USING clauses are checked but before the WHERE clause is check.  This fix
works as long as the total number of "AND" separated terms in the ON, USING,
and WHERE clause does not exceed 32.  To do: make this work for any number
of terms and add test cases.
that (CVS 639)

FossilOrigin-Name: 8b6574cfa86daaae910f8f3ee3c4723a21fb9e53
2002-06-24 22:01:57 +00:00
drh
bf5cd97ed7 Fix a VDBE stack leak in LEFT OUTER JOIN. Fix a bug in the code generator
for JOIN ... USING(...). (CVS 638)

FossilOrigin-Name: d861489e1f7dffd1105c271fe8597f73e5b1703c
2002-06-24 12:20:23 +00:00
drh
f46f905a1e An optimization: avoid the use of an intermediate table on UNION ALL if there
is no ORDER BY clause. (CVS 637)

FossilOrigin-Name: 8aa73ce61268a50d353d9a5c878461290195525f
2002-06-22 02:33:38 +00:00
drh
d11d382c99 Fix for bugs #77 and #80: Rework the LIMIT mechanism to be reentrant and to
clean up the VDBE stack properly. (CVS 636)

FossilOrigin-Name: 9d5523107937e3700c76666fb058694babdd672c
2002-06-21 23:01:49 +00:00
drh
c926afbc2d Fix for ticket #73: The ORDER BY clause is significant for subqueries.
This passes all regression tests, but more testing is needed to exercise
all paths through the new code. (CVS 631)

FossilOrigin-Name: 43c5aff5d078bce9292683cd40311e0dcc81ac14
2002-06-20 03:38:26 +00:00
drh
e31847449e The query optimizer now attempts to satisfy an ORDER BY clause using
an index.  Sorting is still used if there are no suitable indices. (CVS 628)

FossilOrigin-Name: f09e19b43ef61073713cf32282c90ea666229eba
2002-06-19 14:27:05 +00:00
drh
df199a25bd Make the LIMIT clause work even if the destination of the SELECT is
something other than a callback.  (Ticket #66) (CVS 619)

FossilOrigin-Name: 699cf362083043615eb88635a228bfa46a315c9c
2002-06-14 22:38:41 +00:00
drh
f5db2d3ea2 Bug fix: do not segfault if a SELECT without a FROM clause includes
the * wildcard in the result column list. (CVS 609)

FossilOrigin-Name: d939294994e5f6c7862b66573301e111e56a2681
2002-06-06 23:42:27 +00:00
drh
0bd1f4ea5a Added the %fallback directive to the lemon parser generator and used this
in the parser to make the parse tables much smaller.  This reduced the size
of the library by 15K. (CVS 605)

FossilOrigin-Name: 7ac5bd293cbb2bf252f31f1571f7efac7e77280a
2002-06-06 18:54:39 +00:00
drh
e4de1feb3e Enhance the ORDER BY clause so that an integer term means to sort by the
corresponding column. (CVS 602)

FossilOrigin-Name: 7acbf84b492202d8b5a05276a95b475027eb5f58
2002-06-02 16:09:01 +00:00
drh
f570f011eb Refinements to NULL processing: NULLs are indistinct for DISTINCT and UNION.
Multiplying a NULL by zero yields zero. In a CASE expression, a NULL comparison
is considered false, not NULL.  With these changes, NULLs in SQLite now work
the same as in PostgreSQL and in Oracle. (CVS 600)

FossilOrigin-Name: da61aa1d238539dff9c43fd9f464d311e28d669f
2002-05-31 15:51:25 +00:00
drh
d7489c3987 A SELECT statement inside the body of a TRIGGER uses the SRT_Discard target
to discard the query results.  Such selects are intended to be used to call
user-defined functions for their side-effects.  They do not return results. (CVS 594)

FossilOrigin-Name: f8041f3d4d3350b4086cd6ba3e9006bdde8546a9
2002-05-27 12:24:48 +00:00
drh
c754fa5486 Fix the "alias.*" bug found by Bernie Cosell and reported on the newsgroup. (CVS 593)
FossilOrigin-Name: f562d542304c0c1b18b0cee78b1ecc353327a02e
2002-05-27 03:25:51 +00:00
drh
f5905aa7be NULL values are distinct. A comparison involving a NULL is always false.
Operations on a NULL value yield a NULL result.  This change makes SQLite
operate more like the SQL spec, but it may break existing applications that
assumed the old behavior.  All the old tests pass but we still need to add
new tests to better verify the new behavior.  Fix for ticket #44. (CVS 589)

FossilOrigin-Name: 9051173742f1b0e15a809d12a0c9c98fd2c4614d
2002-05-26 20:54:33 +00:00
drh
195e6967fb Additional testing of LEFT OUTER JOIN. (CVS 588)
FossilOrigin-Name: d8d04c14f18d1feba89ccea0be70530a18248c51
2002-05-25 00:18:20 +00:00
drh
ad2d8307ac Initial implementation of LEFT OUTER JOIN including the expanded SQL92 join
syntax. The basic functionality is there but there is still a lot of testing
to do. (CVS 587)

FossilOrigin-Name: 99bd1f5b9a1a20bfeefe15c00d96a34a5f40923e
2002-05-24 20:31:36 +00:00
drh
01f3f25376 Add support for the full SQL join syntax. This is just a parser enhancement.
We now recognize all kinds of joins, but we don't actually do anything with
them yet. (CVS 586)

FossilOrigin-Name: e238643efdbe1394c7ff85e34e486f7c6082b6cc
2002-05-24 16:14:15 +00:00
drh
ad3cab52fe Split the IdList structure into IdList and SrcList. SrcList is used to
represent a FROM clause and IdList is used for everything else.  This change
allows SrcList to grow to support outer joins without burdening the other
uses of IdList. (CVS 584)

FossilOrigin-Name: a167b71d8c27e870bc3079c6132e483bffc83298
2002-05-24 02:04:32 +00:00
drh
0bb28106be Fix for tickets #32 and #33: Generate the names of the result set early, before
doing the flattening optimization or evaluating subqueries.  Otherwise, the
result set column names are generated incorrectly or after they are needed. (CVS 553)

FossilOrigin-Name: 08f27cb36805d38648274b6fe91dec43a5910057
2002-05-08 11:54:14 +00:00
drh
08192d5f76 Fix for ticket #31: Do not attempt the flattening optimization if the
subselect does not contain a FROM clause.  Handle the special case where
a WHERE clause is constant. (CVS 548)

FossilOrigin-Name: 24e4cf73d22bb41d26bf3c833f1854a9c90923e8
2002-04-30 19:20:28 +00:00
drh
41202ccae2 Fix for ticket #22: In the code generator for compound SELECT statements, take
care not to generate column name headers if the output is an intermediate table.
Otherwise the column headers are not generated correctly if a compound SELECT
statement appears as an expression in part of the WHERE clause. (CVS 543)

FossilOrigin-Name: a06d9acdd5af0dc69b3a4d024de082631254aead
2002-04-23 17:10:18 +00:00