SQLite

All files named ”src/vtab.c”
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History for src/vtab.c

2025-02-18
14:56
[0c2567d6ca] part of check-in [b2bf063011] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [b2bf063011] user: drh branch: reuse-schema, size: 44778)
2025-02-07
15:49
[828221bdbe] part of check-in [45e462c006] Further reduction in the amount of memset() needed to initialize the Parse object. (check-in: [45e462c006] user: drh branch: trunk, size: 43520)
2025-02-03
15:17
[b4bdc13ef1] part of check-in [858163f938] Merge the latest trunk changes into the reuse-schema branch. (check-in: [858163f938] user: drh branch: reuse-schema, size: 44734)
2025-01-31
01:34
[bd4ab699ac] part of check-in [393749a2e2] Add the SQLITE_DBCONFIG_ENABLE_COMMENTS setting (default on) to enable or disable the ability to include comments in SQL input text. (check-in: [393749a2e2] user: drh branch: extra-security, size: 43476)
2024-09-30
15:17
[dae9ef7d94] part of check-in [1ba833743d] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [1ba833743d] user: drh branch: reuse-schema, size: 44699)
2024-09-20
12:58
[316cd48e93] part of check-in [b7b64c53f5] New assert()s to help verify union access. No logic changes. Testing and validation code only. (check-in: [b7b64c53f5] user: drh branch: trunk, size: 43441)
2024-05-21
15:20
[f99a7413a9] part of check-in [97e0af8882] Merge the lates trunk enhancements into the reuse-schema branch. (check-in: [97e0af8882] user: drh branch: reuse-schema, size: 44660)
2024-05-16
15:57
[5fb499d204] part of check-in [1ec2961a03] The sqlite3_declare_vtab() interface should return SQLITE_ERROR, not SQLITE_MISUSE when a nonsense SQL input is provided, for legacy compatibility. Forum post 4b875d7b2a. (check-in: [1ec2961a03] user: drh branch: trunk, size: 43402)
2024-03-26
10:48
[62e64e8b0b] part of check-in [e469b02205] Merge all recent trunk enhancements into the reuse-schema branch. (check-in: [e469b02205] user: drh branch: reuse-schema, size: 44592)
2024-03-25
19:31
[4c475fb672] part of check-in [ff7b898a6f] Simplifications to the sqlite3_declare_vtab() implementation. Changes some conditionals into assert() statements, for coverage. (check-in: [ff7b898a6f] user: drh branch: trunk, size: 43334)
18:24
[13481f3532] part of check-in [6a2ff83512] Revert the previous change. Instead, do a pre-check of the CREATE TABLE statement that is the second argument to sqlite3_declare_vtab() and if the first two keywords are not "CREATE" and "TABLE", then raise an SQLITE_MISUSE error. (check-in: [6a2ff83512] user: drh branch: trunk, size: 43325)
17:43
[cd53fee1d4] part of check-in [715fcf033a] Remove an ALWAYS() from a condition that can be true. (check-in: [715fcf033a] user: drh branch: trunk, size: 42794)
2024-03-13
15:59
[f0ff40a7d1] part of check-in [70ef3784f6] Merge the latest trunk enhancements into the reuse-schema branch. Fix the reuse-schema build of the CLI so that it works again. (check-in: [70ef3784f6] user: drh branch: reuse-schema, size: 44060)
2024-02-13
17:11
[38fcf63832] part of check-in [4892440b93] Changes to vtabCallConstructor() to avoid a harmless static analyzer warning and to help prove that the UAF reported by forum post cafbe582e8 is a false-positive. (check-in: [4892440b93] user: drh branch: trunk, size: 42802)
2023-12-28
14:07
[d660d9dd46] part of check-in [3d1b0403d6] Merge the latest trunk changes into the reuse-schema branch. (check-in: [3d1b0403d6] user: drh branch: reuse-schema, size: 43993)
2023-12-15
19:26
[11948e105f] part of check-in [88beb48472] Avoid expiring prepared statements in the middle of an integrity-check. (check-in: [88beb48472] user: dan branch: trunk, size: 42735)
2023-10-23
19:27
[2ffd7d004c] part of check-in [52262ac920] Merge the latest trunk enhancments into the reuse-schema branch. (check-in: [52262ac920] user: drh branch: reuse-schema, size: 44037)
2023-09-05
15:03
[154725ebec] part of check-in [93f74490fa] Fix a few SQLITE_MISUSE returns so that they call sqlite3MisuseError(). (check-in: [93f74490fa] user: drh branch: trunk, size: 42779)
2023-06-22
14:50
[ea48d5fd38] part of check-in [905c6c9ddb] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [905c6c9ddb] user: drh branch: reuse-schema, size: 44032)
2023-06-07
08:40
[1ecf8c3745] part of check-in [26c1bb4bd9] Add a C-source spell-checking facility. make misspell (on Nix) (check-in: [26c1bb4bd9] user: larrybr branch: spell-check, size: 42774)
2023-05-13
15:21
[fed378ba10] part of check-in [515bb26ee6] Merge the latest 3.42.0 changes into the reuse-schema branch. (check-in: [515bb26ee6] user: drh branch: reuse-schema, size: 44072)
2023-05-05
11:47
[4758a96d36] part of check-in [a17106494a] Allow virtual tables to prepare writes to shadow tables in defensive mode from with xRelease() callbacks - even if the xRelease() is invoked from within sqlite3_finalize(). (check-in: [a17106494a] user: dan branch: trunk, size: 42815)
2023-05-02
21:26
[62c0126693] part of check-in [d08fa7d4d2] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [d08fa7d4d2] user: drh branch: reuse-schema, size: 43931)
2023-04-03
15:01
[4a1b231b59] part of check-in [bcd51abee0] Add the SQLITE_VTAB_USES_ALL_SCHEMAS option to sqlite3_vtab_config(). Update the sqlite_dbpage, sqlite_dbdata, and sqlite_dbptr virtual tables to make use of that interface. This was formerly handled by the internal sqlite3VtabUsesAllSchemas() routine that was called directly from sqlite_dbpage. But since sqlite_dbdata and sqlite_dbptr are an extension, an external interface to that functionality had to be provided. dbsqlfuzz 1a29c245175a63393b6a78c5b8cab5199939d6a8 (check-in: [bcd51abee0] user: drh branch: trunk, size: 42674)
2023-03-22
13:47
[e8d4796b1c] part of check-in [995fa4d09d] Merge the 3.41.2 patch into the reuse-schema-3.41 subbranch of reuse-schema (check-in: [995fa4d09d] user: drh branch: reuse-schema-3.41, size: 43828)
2023-03-17
10:43
[4516e9fecf] part of check-in [df4928c92b] Ensure that an error does not delete the Table object out from under the xConstruct method of a virtual table. dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d (check-in: [df4928c92b] user: drh branch: trunk, size: 42571)
2023-02-07
15:29
[3a872864b6] part of check-in [4d21640c58] Merge latest trunk changes into this branch. (check-in: [4d21640c58] user: dan branch: reuse-schema, size: 43777)
2023-01-25
19:05
[a39f6ed161] part of check-in [1ab122289f] Defer calling the destructor for the user data on a module until after the module has disconnected. Forum post b68391eb71fdff73. (check-in: [1ab122289f] user: drh branch: trunk, size: 42520)
2022-11-05
15:31
[d25ed4bd90] part of check-in [224eaf2622] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [224eaf2622] user: drh branch: reuse-schema, size: 43777)
2022-10-20
13:36
[b2f993aa95] part of check-in [56442c9bdd] The generalized indexed expression optimization of [2435112867fbd7b6] makes the prior [a47efb7c8520a011] enhancement from 2017 obsolete. This check-in removes the older optimization. (check-in: [56442c9bdd] user: drh branch: trunk, size: 42520)
2022-08-22
16:30
[3db62ab8ce] part of check-in [9c05a48ee0] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [9c05a48ee0] user: drh branch: reuse-schema, size: 43770)
02:00
[bb53f9e2ea] part of check-in [e5eaa80e81] Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both the db and ptr parameters are guaranteed to be non-NULL. Use this where appropriate to save more than 2 million CPU cycles on the standard performance test. (check-in: [e5eaa80e81] user: drh branch: trunk, size: 42513)
2022-03-26
14:14
[7064064da0] part of check-in [07fc5c6eff] Merge the version 3.38.2 patches into the reuse-schema-3.38 sub-branch. (check-in: [07fc5c6eff] user: drh branch: reuse-schema-3.38, size: 43758)
2022-03-14
20:31
[3d72c780d1] part of check-in [387ab17b8a] Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: [387ab17b8a] user: drh branch: trunk, size: 42501)
2022-01-25
16:28
[fcbd75d2d9] part of check-in [6e4154d414] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [6e4154d414] user: drh branch: reuse-schema, size: 43728)
2022-01-24
15:34
[e0eaf5b8f7] part of check-in [6a45d8fe8b] Make it so that any Parse object is always linked into the database conenction while it is active. Hence, an OOM will cause Parse.nErr to be set. (check-in: [6a45d8fe8b] user: drh branch: trunk, size: 42471)
2022-01-17
20:01
[10736c51d3] part of check-in [769ff85765] Merge the latest trunk changes into the reuse-schema branch. (check-in: [769ff85765] user: drh branch: reuse-schema, size: 43740)
2021-12-31
19:20
[a47cc12eba] part of check-in [6fb2a1bb02] Simplify the sqlite3RunParser() routine by omitting the third parameter. Results in a binary that is about 100 bytes smaller and 1.4M cycles faster. (check-in: [6fb2a1bb02] user: drh branch: trunk, size: 42483)
17:54
[0eddd6bed3] part of check-in [41ee2bac57] Performance optimization and size reduction in sqlite3RunParser(). (check-in: [41ee2bac57] user: drh branch: trunk, size: 42435)
2021-11-09
14:00
[13cce9cae0] part of check-in [748bce4c01] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [748bce4c01] user: drh branch: reuse-schema, size: 43673)
2021-11-06
20:25
[9d5c3f49d3] part of check-in [0dc963f63a] Add ALWAYS() to a branch made unreachable by the previous check-in. (check-in: [0dc963f63a] user: drh branch: trunk, size: 42416)
2021-11-05
23:32
[8d68fcb005] part of check-in [ca09148e13] Merge the latest trunk enhancements into the reuse-schema branch. (check-in: [ca09148e13] user: drh branch: reuse-schema, size: 43657)
2021-11-04
14:04
[721f0dffc4] part of check-in [9147390d98] Show the preferred schema table names in the output of "PRAGMA table_list". (check-in: [9147390d98] user: drh branch: trunk, size: 42400)
11:34
[66d76837d7] part of check-in [685a987c9a] Change a branch made unreachable by the previous check-in into an assert(). (check-in: [685a987c9a] user: drh branch: trunk, size: 42398)
00:51
[a380a5eed7] part of check-in [005a864277] First the shadow table mechanism so that it works even if the shadow table comes before the virtual table in the sqlite_schema table, as can happen after a VACUUM. (check-in: [005a864277] user: drh branch: trunk, size: 42389)
2021-10-21
14:10
[3cf904c78b] part of check-in [cd15fc3c08] Merge recent trunk enhancements into the reuse-schema branch (check-in: [cd15fc3c08] user: drh branch: reuse-schema, size: 43882)
2021-10-07
20:46
[d07cc24dd8] part of check-in [87e2f5eb43] Protect access to the Expr.y union using nearby assert()s and branches. (check-in: [87e2f5eb43] user: drh branch: trunk, size: 42625)
12:11
[3a6640d86d] part of check-in [50e08338ae] Protect every access to the Table.u union using a nearby assert() or branch. (check-in: [50e08338ae] user: drh branch: trunk, size: 42593)
2021-10-04
11:49
[86fc8020a6] part of check-in [64234c5c9a] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [64234c5c9a] user: drh branch: reuse-schema, size: 43649)
2021-09-24
12:59
[c289aa504f] part of check-in [eb94f4a817] Ensure that sqlite_stat1 and sqlite_stat4 are ordinary tables (not views or virtual tables) before trying to load them (dbsqlfuzz bc02a0cde82dee801a8d6f653d2831680f87dca1). This prevents sqlite3_declare_vtab() from running with db->init.busy turned on. Even so, enhance sqlite3_declare_vtab() to be able to deal with db->init.busy being on, in case there are undiscovered paths to that state. Each of these two changes are independently sufficient to prevent the problem fixed by the previous check-in [c7560c1329965ab5] but there is no harm in keeping that third layer of protection in place. (check-in: [eb94f4a817] user: drh branch: trunk, size: 42392)
2021-08-09
18:17
[b2178e665a] part of check-in [c8d1f17fde] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [c8d1f17fde] user: drh branch: reuse-schema, size: 43356)
2021-08-07
23:16
[88404ac151] part of check-in [e5d6512aa1] Refactor sqlite3.magic into sqlite3.eOpenState. (check-in: [e5d6512aa1] user: drh branch: trunk, size: 42099)
2021-08-03
16:11
[334d3ebd97] part of check-in [d71adc3fd8] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [d71adc3fd8] user: drh branch: reuse-schema, size: 43339)
2021-08-02
16:41
[75bdaec808] part of check-in [bbb6759bcf] Refactor the Table object to reduce its memory footprint. (check-in: [bbb6759bcf] user: drh branch: trunk, size: 42082)
2021-07-31
20:30
[516cb50e2a] part of check-in [8646547e54] Refactor the way that DEFAULT expressions are stored on columns, in order to save memory in the common case where the column has no DEFAULT clause. (check-in: [8646547e54] user: drh branch: trunk, size: 42019)
2021-07-09
13:29
[6dfae0d85a] part of check-in [0e968f9de3] Merge latest trunk changes into this branch. (check-in: [0e968f9de3] user: dan branch: reuse-schema, size: 43173)
2021-07-08
18:29
[3a9a6ae1fd] part of check-in [bbbbeb59a6] Preserve and return to the user any error message returned by a failed xConnect() call on an eponymous virtual table that prevents a query from being compiled. (check-in: [bbbbeb59a6] user: dan branch: trunk, size: 41951)
2021-05-07
14:16
[b567ce416e] part of check-in [c5e2de1d24] This was suppose to be a merge from trunk. But something went wrong. (check-in: [c5e2de1d24] user: dan branch: bad-merge, size: 43137)
2021-04-22
18:02
[b928405ccb] part of check-in [c7909e8e0d] Raise an error on an attempt to rename an eponymous virtual table. (check-in: [c7909e8e0d] user: drh branch: trunk, size: 41915)
2021-03-03
19:54
[b194210339] part of check-in [73bf458e1d] Merge recent trunk enhancements into the reuse-schema branch. (check-in: [73bf458e1d] user: drh branch: reuse-schema, size: 43103)
2021-02-18
22:47
[032a0165c1] part of check-in [9ea640073f] Merge changes from trunk into the alter-table-drop-column branch. (check-in: [9ea640073f] user: drh branch: alter-table-drop-column, size: 41881)
15:45
[b7773ffbde] part of check-in [f985a78ecc] Improvement to the INSERT optimization of check-in [16ac213c57196361] so that it works with SQLITE_ENABLE_HIDDEN_COLUMN but is also easier to maintain and a little faster as well. (check-in: [f985a78ecc] user: drh branch: trunk, size: 41878)
2021-02-17
20:08
[88bd6d3f02] part of check-in [10538ec6fc] Fix various issues with the changes on this branch. Add test cases for the same. (check-in: [10538ec6fc] user: dan branch: alter-table-drop-column, size: 41839)
2021-02-10
20:20
[f348e8f448] part of check-in [d29c41bd26] Merge latest trunk changes into this branch. (check-in: [d29c41bd26] user: dan branch: reuse-schema, size: 43058)
2021-02-04
22:59
[81e1a336ba] part of check-in [dbfa38699c] Remove dead code. Fix RETURNING for INSERT into a virtual table. (check-in: [dbfa38699c] user: drh branch: returning-manifested, size: 41836)
2020-08-11
14:55
[54b6ab9f5a] part of check-in [b1a77b7ead] Merge all changes since the 3.32.0 release into the reuse-schema branch. (check-in: [b1a77b7ead] user: drh branch: reuse-schema, size: 43043)
2020-07-29
16:18
[c39da2fe93] part of check-in [a80ae2c98b] Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (check-in: [a80ae2c98b] user: drh branch: typos, size: 41821)
2020-06-19
13:33
[5f5fc79309] part of check-in [9536fa0ae0] Further refactoring of the schema table name. (check-in: [9536fa0ae0] user: drh branch: trunk, size: 41821)
2020-06-15
20:27
[33ecf1d8b0] part of check-in [61782a7ae3] Provide "sqlite_schema" as an alternative name to the table that holds the database schema. (check-in: [61782a7ae3] user: drh branch: trunk, size: 41821)
2020-05-18
19:11
[df7634fbdf] part of check-in [d8ea0cb69d] Bring the reuse-schema branch up to date with the latest trunk changes. (check-in: [d8ea0cb69d] user: drh branch: reuse-schema, size: 43044)
2020-05-17
00:26
[7b452592ed] part of check-in [1313557b51] Use the sqlite3Realloc() interface internally, rather than the public sqlite3_realloc64() equivalent, to avoid unnecessary calls to sqlite3_initialize(). (check-in: [1313557b51] user: drh branch: trunk, size: 41822)
2020-03-11
17:58
[ad810f9b77] part of check-in [97a18a5cd7] Do not factor out constant functions into the initialization section at the end of the prepared statement, be cause if they throw an exception, it will abort the statement even if the function is never called. Better to put constant functions in an OP_Once block. (check-in: [97a18a5cd7] user: drh branch: do-not-factor-functions, size: 41818)
2020-01-15
14:26
[0119233719] part of check-in [f783917800] Merge all recent enhancements and fixes from trunk. (check-in: [f783917800] user: drh branch: reuse-schema, size: 43047)
2020-01-06
15:25
[7b704a9051] part of check-in [411e8ec221] Refactor names of flags for improved legibility. (check-in: [411e8ec221] user: drh branch: new-security-options, size: 41825)
2019-12-21
19:37
[a2fead3e97] part of check-in [4dbb6e1cb0] When creating a new virtual table, ensure that the OP_ParseSchema opcode processes the correct entry in the sqlite_master table even if there is a second entry with the same name and table values due to database corruption and the use of writable_schema=ON. Dbsqlfuzz find. (check-in: [4dbb6e1cb0] user: drh branch: trunk, size: 41541)
2019-12-11
15:07
[2736f853a1] part of check-in [1fa29a5f2a] When trying to drop a virtual table that has no xDestroy method, invoke the xDisconnect method rather than doing nothing, to avoid a memory leak. (check-in: [1fa29a5f2a] user: drh branch: trunk, size: 41542)
14:25
[eff1ab4add] part of check-in [0457e7d196] The xDestroy method of a module might be NULL if the schema is corrupt. (check-in: [0457e7d196] user: drh branch: trunk, size: 41474)
2019-12-10
18:10
[6ea921d0db] part of check-in [aa3b0eb8c3] Use a statement journal on a CREATE VIRTUAL TABLE statement in case the VCreate opcode fails. (check-in: [aa3b0eb8c3] user: drh branch: trunk, size: 41529)
2019-10-17
17:54
[108f79166d] part of check-in [fe7517bf4d] Some (but not all) INSERT and UPDATE statements now work for STORED columns. (check-in: [fe7517bf4d] user: drh branch: generated-columns, size: 41499)
2019-10-05
19:24
[27998d5d73] part of check-in [fc8d45086d] Optimization to sqlite3VtabUnlockList() for the common case when there is no work to do. (check-in: [fc8d45086d] user: drh branch: trunk, size: 41498)
2019-09-16
12:35
[043b188f5f] part of check-in [27eb223690] Merge all recent trunk enhancements into the reuse-schema branch. (check-in: [27eb223690] user: drh branch: reuse-schema, size: 42718)
2019-08-20
02:19
[5a0b7193d5] part of check-in [ec4c63e00c] Fix a typo and a harmless compiler warning. (check-in: [ec4c63e00c] user: mistachkin branch: trunk, size: 41496)
2019-08-19
20:35
[6b36944fdf] part of check-in [e5ba47c2d8] Omit the "_except" term from the name of the new interface. (check-in: [e5ba47c2d8] user: drh branch: sqlite3_drop_modules_except, size: 41508)
2019-08-17
19:45
[8849cbd675] part of check-in [0851db4d33] The experimental sqlite3_drop_modules_except() interface. (check-in: [0851db4d33] user: drh branch: sqlite3_drop_modules_except, size: 41515)
19:31
[994a468619] part of check-in [5d6f4dfeea] Fix the new ability to unregister virtual table modules so that it works for the automatic PRAGMA virtual tables. (check-in: [5d6f4dfeea] user: drh branch: trunk, size: 40834)
2019-08-16
22:58
[4d833811e3] part of check-in [31e34fa339] Add the ability to unregister a virtual table module by invoking sqlite3_create_module() with a NULL sqlite3_module pointer. (check-in: [31e34fa339] user: drh branch: trunk, size: 40786)
2019-08-09
14:54
[9dd05ccba0] part of check-in [e30c7414fe] In shared-schema mode, handle the case where a connection has created a virtual-table object, but is later assigned a different shared-schema object for which the virtual-table schema has not yet been initialized. (check-in: [e30c7414fe] user: dan branch: reuse-schema, size: 41328)
2019-05-14
22:25
[4bb7440736] part of check-in [018f3199b9] Merge all the latest trunk enhancements into the reuse-schema branch. (check-in: [018f3199b9] user: drh branch: reuse-schema, size: 41123)
2019-04-30
15:36
[1fa256c6dd] part of check-in [1dbbb0101e] Fix a problem allowing a Table object to be deleted from within a call to the xDestroy method of the associated virtual table, causing a use-after-free error. (check-in: [1dbbb0101e] user: dan branch: trunk, size: 40106)
2019-04-15
15:35
[9fe701febd] part of check-in [5c6c9e7f6f] Merge recent changes from trunk into reuse-schema (check-in: [5c6c9e7f6f] user: drh branch: reuse-schema, size: 41068)
2019-04-13
04:01
[4c5959e00b] part of check-in [0b6ae032c2] Enforce the SQLITE_LIMIT_COLUMN limit on virtual tables. (check-in: [0b6ae032c2] user: drh branch: trunk, size: 40051)
2019-04-04
20:21
[64ae922570] part of check-in [b40a4edceb] Provide a DBCONFIG to enable or disable virtual tables that match a LIKE pattern. (check-in: [b40a4edceb] user: drh branch: disable-vtab, size: 39809)
2019-03-21
17:13
[b7214e9cc0] part of check-in [b8e536089b] Disable the feature on this branch in non-SQLITE_ENABLE_SHARED_SCHEMA builds. (check-in: [b8e536089b] user: dan branch: reuse-schema, size: 40807)
2019-03-20
20:02
[e6309a1797] part of check-in [c1be211c02] Use the IsReuseSchema() macro more consistently. Also, rename it to IsSharedSchema(). (check-in: [c1be211c02] user: dan branch: reuse-schema, size: 40542)
2019-02-18
18:16
[be7ef1a321] part of check-in [88cbf54eee] Ensure that creating temp schema items does not cause an OPEN_SHARABLE_SCHEMA connection to load all schemas into memory. (check-in: [88cbf54eee] user: dan branch: reuse-schema, size: 40546)
2019-02-09
17:47
[7d0f847060] part of check-in [3ca8856a7b] Fix virtual table support for SQLITE_OPEN_REUSABLE_SCHEMA connections. (check-in: [3ca8856a7b] user: dan branch: reuse-schema, size: 40540)
2019-02-05
19:51
[79b66d04b9] part of check-in [c089cc4fbe] Merge latest trunk into this branch. (check-in: [c089cc4fbe] user: dan branch: reuse-schema, size: 39795)
2019-02-04
16:25
[2462b7d6fd] part of check-in [b0da6e0dd1] Fix problems with SAVEPOINT and related commands within transactions on a corrupt database that include fts5 or some other virtual tables. (check-in: [b0da6e0dd1] user: dan branch: trunk, size: 39790)
2018-11-20
16:02
[9b380532e2] part of check-in [dfab7170ed] Consolidate the two sqlite3SchemaToIndex() routines. (check-in: [dfab7170ed] user: dan branch: reuse-schema1, size: 40075)
2018-11-19
20:41
[bad08f463f] part of check-in [84be9220db] Fix a problem with virtual tables in shared schemas. (check-in: [84be9220db] user: dan branch: reuse-schema1, size: 40056)
2018-10-08
18:58
[df409cbabc] part of check-in [2ac72114a1] Merge latest trunk changes into this branch. (check-in: [2ac72114a1] user: dan branch: reuse-schema, size: 39729)
2018-09-21
23:41
[70188a745d] part of check-in [50f2fa1953] Fix harmless compiler warning when compiled with SQLITE_OMIT_AUTHORIZATION. (check-in: [50f2fa1953] user: mistachkin branch: trunk, size: 39724)
2018-09-20
19:02
[9ada8a26ff] part of check-in [ad130bb86e] Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer. This reduces the size of the Expr object by 8 bytes, reduces the overall amount of code, and shaves over 1 million cycles off of the speed test. (check-in: [ad130bb86e] user: drh branch: trunk, size: 39740)
2018-09-19
20:14
[0d613164d5] part of check-in [24b0f66ac6] Reduce the size of Expr to 64-bytes. This works somewhat, but there are test failures. More importantly, the size reduction from 80- to 64-bytes has not lowered the schema memory usage, but it has made the code a little bigger and a little slower. So the initial evidence is that this Expr refactoring experiment is not working... (check-in: [24b0f66ac6] user: drh branch: expr-simplify, size: 39755)
2018-08-09
20:47
[8665561f24] part of check-in [fa0fc01eb4] Experimental implementation of ALTER TABLE ... RENAME COLUMN. Still buggy. (check-in: [fa0fc01eb4] user: dan branch: alter-table-rename-column, size: 39738)
2018-07-24
22:02
[678992ac8e] part of check-in [2bd593332d] Do not abort running queries due to a CREATE INDEX statement. Allow them to run to completion before being reprepared. Fix for ticket [c694113e50321afdf9]. (check-in: [2bd593332d] user: drh branch: trunk, size: 39702)
2018-05-26
16:00
[10ea07dec1] part of check-in [777189ce88] Store application-defined function names as lower-case to avoid the need for case conversions before calling xFindFunction on virtual tables. Avoid using lookaside to store the destructors for application defined functions, as lookaside should be reserved for transient allocations. (check-in: [777189ce88] user: drh branch: trunk, size: 39699)
2017-10-02
13:20
[0e48854951] part of check-in [d815f255df] Avoid using lookaside memory for persistent virtual table structures. (check-in: [d815f255df] user: drh branch: trunk, size: 39554)
2017-08-10
15:19
[f1d5c23132] part of check-in [ab9ee4c1e6] Experimental changes that allow a WITHOUT ROWID virtual table to be writable as long as it has only a single-column PRIMARY KEY. (check-in: [ab9ee4c1e6] user: drh branch: writable-vtab-without-rowid, size: 39514)
2017-08-09
22:55
[45d2aab337] part of check-in [dcdf091388] Preserve the error code from xConnect or xCreate methods in virtual table implementations when they are encountered during parsing. (check-in: [dcdf091388] user: drh branch: trunk, size: 39245)
20:35
[33ee6b2afd] part of check-in [a625698048] Add experimental sqlite3_open_v2() flag SQLITE_OPEN_REUSE_SCHEMA. For sharing identical in-memory schema objects between connections. (check-in: [a625698048] user: dan branch: reuse-schema, size: 39227)
2017-08-01
20:59
[a305582d3a] part of check-in [436a89b919] Slightly smaller and faster by allocating Parser objects on the stack. (check-in: [436a89b919] user: drh branch: trunk, size: 39222)
2017-04-21
17:03
[35b9bdc2b4] part of check-in [bdc50d8d12] Remove a NEVER macro for a condition that may be true as of [a47efb7c]. Problem reported by OSSFuzz. (check-in: [bdc50d8d12] user: dan branch: trunk, size: 39430)
2017-02-16
15:06
[007513c2ef] part of check-in [6bd82b95a6] Remove two redundant initializations from the virtual table logic. (check-in: [6bd82b95a6] user: drh branch: trunk, size: 39437)
14:48
[f7f26f9db3] part of check-in [6affb1c89d] Always use the IsVirtual() macro to determine if a Table object is a virtual table. Slightly smaller and faster code. (check-in: [6affb1c89d] user: drh branch: trunk, size: 39419)
2016-12-16
02:14
[c4bbe0f870] part of check-in [3f8f461504] Minor bug fixes and enhancements to the pragma eponymous virtual tables. (check-in: [3f8f461504] user: drh branch: pragma-as-vtab, size: 39584)
01:09
[1049076469] part of check-in [994a4401f5] Merge enhancements from trunk, and especially the ability to use temp.sqlite_master as an alias for sqlite_temp_master. (check-in: [994a4401f5] user: drh branch: pragma-as-vtab, size: 39568)
01:00
[fd64fd37aa] part of check-in [8d646905b8] All temp.sqlite_master to be used as an alias for sqlite_temp_master. (check-in: [8d646905b8] user: drh branch: trunk, size: 38917)
2016-12-15
20:59
[24f3412e26] part of check-in [988a61e8b0] Code to automatically create eponymous virtual tables for read-only pragmas. Compiles, but does not yet work. (check-in: [988a61e8b0] user: drh branch: pragma-as-vtab, size: 39574)
2016-12-14
14:07
[2d5db3fd68] part of check-in [9cae4c2e30] Refactor the Table.nRef field as Table.nTabRef for easier grepping. (check-in: [9cae4c2e30] user: drh branch: trunk, size: 38923)
2016-08-27
20:21
[e02cacb5c7] part of check-in [a07269f2a0] Fix typos in comments. No changes to running code. (check-in: [a07269f2a0] user: drh branch: trunk, size: 38920)
2016-08-18
14:33
[5ca4fa8b02] part of check-in [92a22f0134] Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. (check-in: [92a22f0134] user: drh branch: zDbSName, size: 38920)
2016-08-05
15:34
[6b3cfaff7e] part of check-in [0f57effa36] Remove an incorrect ALWAYS() statement and add a test case to show when the condition is sometimes false. (check-in: [0f57effa36] user: drh branch: trunk, size: 38905)
2016-08-02
11:29
[6fece06fdd] part of check-in [e64a4173d2] Fix a problem introduced by [77948b5eceab92a7] causing duplicate calls to be made to the xSavepoint() method of virtual tables under some circumstances. (check-in: [e64a4173d2] user: dan branch: trunk, size: 38905)
2016-06-03
18:21
[948d2d4984] part of check-in [31b83a7d7e] Fix a memory leak when a WITHOUT ROWID eponymous virtual table is used. (check-in: [31b83a7d7e] user: drh branch: without-rowid-vtab, size: 38832)
17:27
[7a143175f5] part of check-in [d31c25972b] Disallow access to the rowid column on WITHOUT ROWID virtual tables. (check-in: [d31c25972b] user: drh branch: without-rowid-vtab, size: 38719)
01:01
[a9e8175477] part of check-in [3134b3266c] Performance optimizations on the CSV virtual table. Disallow WITHOUT ROWID virtual tables that have an xUpdate method, for now. (check-in: [3134b3266c] user: drh branch: without-rowid-vtab, size: 38699)
2016-06-02
16:22
[a80b4e40ed] part of check-in [a393bbb972] Fix corner cases in the WITHOUT ROWID virtual table logic. (check-in: [a393bbb972] user: drh branch: without-rowid-vtab, size: 38585)
2016-05-31
21:18
[694e444986] part of check-in [49638f180e] An experimental branch with code that allows virtual tables to be declared as WITHOUT ROWID tables. This might be useful for virtual tables that model external data sources that do not have a convenient way of computing a unique rowid. The current check-in almost works, but there are still serious issues. (check-in: [49638f180e] user: drh branch: without-rowid-vtab, size: 38407)
2016-05-20
15:15
[ce0f2ebb58] part of check-in [3d55d24dcb] Use sqlite3VdbeAddOp0() to code OP_Expire, to save a few bytes. (check-in: [3d55d24dcb] user: drh branch: trunk, size: 38295)
2016-03-28
14:57
[708a9c5598] part of check-in [d0a3853b37] Open a statement transaction for "CREATE VIRTUAL TABLE" statements in order to ensure that if the xCreate() call fails, changes made to the sqlite_master and possibly other tables are rolled back. (check-in: [d0a3853b37] user: dan branch: vcreate-stmt, size: 38328)
2016-03-22
20:05
[23b6cdfa99] part of check-in [605eba4a75] The sqlite3_column_decltype() routine should return NULL, not an empty string, if the column has no declared type. (check-in: [605eba4a75] user: drh branch: trunk, size: 38301)
2016-02-29
15:53
[fd69fd398e] part of check-in [842b211627] Reduce the amount of heap required to store many schemas by storing each column datatype appended to the column name, rather than as a separate allocation. (check-in: [842b211627] user: drh branch: schema-storage, size: 38486)
2016-02-24
19:57
[943c23b355] part of check-in [56f62e34ae] Change a char* to const char* in order to suppress some harmless compiler warnings. (check-in: [56f62e34ae] user: drh branch: trunk, size: 38460)
2016-02-13
23:43
[c27c0232bb] part of check-in [6a9c4a3ebf] Enhance ability to debug out-of-memory errors. (check-in: [6a9c4a3ebf] user: mistachkin branch: noMemBkpt, size: 38451)
2016-02-05
13:38
[bef51b4f69] part of check-in [0a802e96ab] Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (check-in: [0a802e96ab] user: drh branch: oom-handling, size: 38431)
01:55
[2cc0b7bb25] part of check-in [c3ef03478a] Improvements to the way that OOM errors are processed. (check-in: [c3ef03478a] user: drh branch: oom-handling, size: 38429)
2016-01-14
22:19
[320682cca7] part of check-in [0d1b3d7d3c] Combine the xFunc and xStep pointers of the FuncDef object into a single pointer xSFunc. (check-in: [0d1b3d7d3c] user: drh branch: trunk, size: 38433)
2015-10-08
02:44
[2a8b44aa37] part of check-in [77b707b774] Remove two unused lines of code - discovered by scan-build. (check-in: [77b707b774] user: drh branch: trunk, size: 38429)
2015-09-29
17:51
[b404327efc] part of check-in [3e15dea55c] This condition was not always true after all.....

Change an always-true condition in the virtual table transaction interface into an assert(). (check-in: [3e15dea55c] user: drh branch: mistake, size: 38465)

16:41
[9a6d8818c8] part of check-in [77948b5ece] Ensure that the xSavepoint() virtual table method is correctly invoked if there are already open savepoints (or statement transactions) the first time a virtual table is written within a transaction. (check-in: [77948b5ece] user: dan branch: trunk, size: 38447)
2015-09-03
13:46
[2ecfe020c1] part of check-in [847387ec8e] Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: [847387ec8e] user: drh branch: trunk, size: 38317)
2015-08-20
23:21
[d31174e4c8] part of check-in [774e6a14b1] Fix corner-case memory management issues in table-valued functions. Change virtual table handling so that if xDestroy is missing the table is eponymous only even if xCreate is present. (check-in: [774e6a14b1] user: drh branch: trunk, size: 38334)
21:14
[ab36813224] part of check-in [b73ad305a6] Skip calling the virtual table xDestroy method when it is null. (check-in: [b73ad305a6] user: mistachkin branch: trunk, size: 38217)
2015-08-19
19:01
[05395350f9] part of check-in [a325a08599] Fix eponymous virtual tables so that they do not automatically make the first column the rowid. Enhance the generate_series virtual table to support rowid. (check-in: [a325a08599] user: drh branch: table-valued-functions, size: 38132)
13:54
[1e3405f78e] part of check-in [c58426dbd5] Virtual table modules with a null xCreate method act as eponymous-only modules - they cannot be used in a CREATE VIRTUAL TABLE statement. Add the series.c extension that implements a postgres-like generate_series virtual table to demonstrate this capability. (check-in: [c58426dbd5] user: drh branch: table-valued-functions, size: 38112)
12:52
[fddb32423d] part of check-in [dddd792ded] Merge changes from trunk. (check-in: [dddd792ded] user: drh branch: table-valued-functions, size: 38058)
12:45
[964dffd59c] part of check-in [c573b0a1aa] Simplification to error handling in addModuleArgument() in the virtual table processing. (check-in: [c573b0a1aa] user: drh branch: trunk, size: 35985)
02:32
[be5a43432b] part of check-in [c1f43a7799] Initial implementation of eponymous virtual table instances. (check-in: [c1f43a7799] user: drh branch: table-valued-functions, size: 38240)
2015-05-21
17:24
[efb28e3017] part of check-in [b3bb660af9] Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. Cherrypick of [cbeb9a1aed8c]. (check-in: [b3bb660af9] user: dan branch: branch-3.8.6, size: 35249)
01:04
[a078fb78c0] part of check-in [0f0694e424] Do not allow virtual table constructors to be called recursively. Cherrypick [0a72726da21581ab] (check-in: [0f0694e424] user: drh branch: branch-3.7.11, size: 34149)
2015-05-20
19:50
[d2713ff716] part of check-in [023a29baf0] Do not allow virtual table constructors to be called recursively. Cherrypick of [0a72726da215] (check-in: [023a29baf0] user: dan branch: branch-3.8.6, size: 35132)
2015-05-13
18:12
[082b35a25a] part of check-in [b5f0e8c5b4] Merge latest trunk changes with this branch. (check-in: [b5f0e8c5b4] user: dan branch: fts5, size: 36143)
2015-04-29
16:50
[c535e80259] part of check-in [48f553b05c] Use sqlite3_malloc64() in place of sqlite3_malloc() internally. (check-in: [48f553b05c] user: drh branch: trunk, size: 36115)
2015-04-22
09:40
[fcbf338e0e] part of check-in [9797482ded] Update this branch with latest trunk changes. (check-in: [9797482ded] user: dan branch: fts5, size: 36141)
2015-04-19
23:11
[5f81f8a59c] part of check-in [c83052e48b] Fix an off-by-one assert() in the virtual table argument tokenizer. (check-in: [c83052e48b] user: drh branch: trunk, size: 36113)
18:32
[4feb365e26] part of check-in [4ac81fac6c] Bring comments on the INSERT code generator up-to-date. Fix the INSERT code generator so that it correctly handles inserts from a SELECT into a virtual table with non-terminal hidden columns. (check-in: [4ac81fac6c] user: drh branch: trunk, size: 36112)
2015-04-18
16:25
[be741af2a3] part of check-in [e98d481d84] Ensure that if a "ROLLBACK TO" statement is used to rollback (but not close) theoutermost transaction, the xRollbackTo() method of any virtual tables involved in the transaction is invoked. (check-in: [e98d481d84] user: dan branch: trunk, size: 35938)
2015-04-10
16:05
[9ca557215e] part of check-in [860e4f8a94] In sqlite3_declare_vtab(), avoid accessing the database structure until after the "api-armour" safety-check has completed and the db mutex has been obtained. (check-in: [860e4f8a94] user: dan branch: trunk, size: 35937)
07:55
[ff722a886e] part of check-in [0a72726da2] Do not allow virtual table constructors to be called recursively. (check-in: [0a72726da2] user: dan branch: trunk, size: 35929)
2015-03-24
13:32
[62d49237bd] part of check-in [fba674c083] Prevent a virtual table from being destroyed while it is in use. (check-in: [fba674c083] user: drh branch: nVDestroy, size: 35395)
2015-03-21
15:45
[6206db6ca9] part of check-in [142743918f] Merge trunk changes with this branch. (check-in: [142743918f] user: dan branch: fts5, size: 35306)
2015-03-19
18:56
[1680f58978] part of check-in [9969cff2d0] Fix a problem with creating virtual table with names specified using malformed utf-8 within utf-16 databases. (check-in: [9969cff2d0] user: dan branch: malformed-vtab-name, size: 35278)
2015-02-13
16:36
[699f2b8d50] part of check-in [823ad40ccb] Improvements to SQLITE_ENABLE_API_ARMOR. (check-in: [823ad40ccb] user: drh branch: trunk, size: 35243)
2015-01-01
18:03
[ec672a0b5d] part of check-in [4b3651677e] Merge latest trunk changes with this branch. (check-in: [4b3651677e] user: dan branch: fts5, size: 35243)
2014-12-18
18:25
[b05a86bed6] part of check-in [e358c3de5c] Fix various problems in fts5 revealed by fault-injection tests. (check-in: [e358c3de5c] user: dan branch: fts5, size: 34626)
2014-11-27
11:36
[c08ec66f45] part of check-in [f095cde579] Fix a buffer overread during compilation of CREATE VIRTUAL TABLE statements that featured an explicit database name but no virtual table arguments. For example, "CREATE VIRTUAL TABLE main.ft USING fts4". (check-in: [f095cde579] user: dan branch: trunk, size: 35215)
2014-10-24
00:35
[2a30791bbd] part of check-in [c297a84bc6] Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in progress and is not yet completely functional. (check-in: [c297a84bc6] user: drh branch: api-armor, size: 35069)
2014-10-14
20:25
[cb0c194303] part of check-in [eab8233063] Make sure new sqlite3_vtab objects created by the xCreate() virtual table method are initialized by the system, in accordance with the documentation. (check-in: [eab8233063] user: drh branch: trunk, size: 34551)
2014-08-22
18:00
[019dbfd040] part of check-in [cf561d1f0b] Split the sqlite3Error() routine into sqlite3Error() and sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. (check-in: [cf561d1f0b] user: drh branch: trunk, size: 34493)
2014-08-21
20:26
[180bfc5e69] part of check-in [14b0f561fe] Simplify the interface to the symbol table, saving 600 bytes of code space. (check-in: [14b0f561fe] user: drh branch: trunk, size: 34492)
2014-08-15
22:37
[9616e06b5c] part of check-in [c8ade949d4] Aborted merge. (check-in: [c8ade949d4] user: numist branch: obsolete, size: 34848)
2014-05-19
15:16
[cf7523838a] part of check-in [17349a49d2] Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: [17349a49d2] user: drh branch: safer-malloc, size: 34606)
2013-11-15
01:10
[21b932841e] part of check-in [8dc5c76c76] Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (check-in: [8dc5c76c76] user: drh branch: expr-codegen-enhancement, size: 34598)
2013-09-06
13:10
[5a423b042e] part of check-in [97b10e66e9] Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single new FuncDef.funcFlags field. (check-in: [97b10e66e9] user: drh branch: trunk, size: 34566)
2013-08-21
17:35
[165ce0e797] part of check-in [854ba30490] If a virtual table xSync() returns an error message, copy it into a buffer allocated by sqlite3DbMalloc() before transfering it to Vdbe.zErrMsg. (check-in: [854ba30490] user: dan branch: trunk, size: 34562)
2013-07-17
11:54
[2e8b489db4] part of check-in [64bf8148b8] Clear the error string pointer in sqlite3_vtab object after the error string is transferred to SQLite. Ticket [78588b938a11]. (check-in: [64bf8148b8] user: drh branch: trunk, size: 34702)
2013-06-12
02:53
[7f7bf6e181] part of check-in [399e28283b] Another attempt at disabling virtual tables. This one leaks memory. (check-in: [399e28283b] user: drh branch: disable-vtab, size: 37497)
2013-06-11
22:41
[b3369dad06] part of check-in [6b77d61adb] Add the ability to disable future calls to virtual table methods by invoking sqlite3_create_module() with a NULL sqlite3_module pointer. (check-in: [6b77d61adb] user: drh branch: disable-vtab, size: 36989)
2013-03-07
11:03
[940ea10c12] part of check-in [760072ceea] Avoid an assertion fault and/or freeing memory while it is still in use when an error occurs during virtual table construction. Cherrypick of [a02599ad85d]. (check-in: [760072ceea] user: dan branch: branch-3.7.14, size: 34778)
2012-10-26
13:34
[bf61d2b47f] part of check-in [325364a984] Backport the shared-cache-fix branch. (check-in: [325364a984] user: drh branch: branch-3.7.14, size: 34822)
2012-10-25
19:25
[b05e5f1f49] part of check-in [33f4f9817e] Fix a bug in fts3 causing it to return SQLITE_NOMEM when NEAR, OR and some auxiliary functions were used together. Also a segfault in vtab.c that could follow an OOM condition. (check-in: [33f4f9817e] user: dan branch: trunk, size: 34733)
2012-10-09
14:36
[9c64ae18af] part of check-in [a02599ad85] Avoid an assertion fault and/or freeing memory while it is still in use when an error occurs during virtual table construction. (check-in: [a02599ad85] user: drh branch: trunk, size: 34798)
2012-10-05
18:35
[f36d8f8386] part of check-in [ac81ae493f] Backport fixes to shared-cache mode, from the shared-cache-fix branch, to version 3.7.9 (check-in: [ac81ae493f] user: drh branch: branch-3.7.9, size: 33686)
2012-10-04
19:33
[c7671587d0] part of check-in [2b370dea70] Shared-cache mode fixes for views and virtual tables. (check-in: [2b370dea70] user: dan branch: shared-cache-fix, size: 34842)
2012-09-13
14:22
[d8020c0a0e] part of check-in [4163f5f194] Change boolean fields in the Column object from unsigned characters into bits in a single bit mask variable. (check-in: [4163f5f194] user: drh branch: trunk, size: 34654)
2012-08-27
14:39
[d2c54fd22a] part of check-in [4ccc18e999] Fix an incorrect assert in the virtual table logic - it could fire following an I/O error after sqlite3_close_v2() was added. (check-in: [4ccc18e999] user: drh branch: trunk, size: 34634)
2012-05-16
14:29
[bb8ea3a266] part of check-in [ea2cd55e09] Return SQLITE_MISUSE if an application attempts to register a virtual table module with the same name as an existing module. (check-in: [ea2cd55e09] user: dan branch: shared-schema, size: 34596)
2012-05-15
18:28
[4c1d7e7206] part of check-in [aa0c3493d3] The former sqlite3ResetInternalSchema() routine was really two different routines, selected by parameter, each with a confused mission. So split this routine up into three separate smaller routines, calling each separately as needed. Hopefully this will make further refactoring and schema reset collateral damage containment easier. (check-in: [aa0c3493d3] user: drh branch: shared-schema, size: 34539)
17:15
[1fbe133809] part of check-in [46f4eb5430] When a connection disconnects from a shared-cache database, only delete the in-memory schema if there are no other connections. (check-in: [46f4eb5430] user: dan branch: shared-schema, size: 34425)
2012-04-26
22:47
[ae657b1c22] part of check-in [696a5a40bb] Allow virtual table constructors to be invoked recursively. A test case for this has been added to TH3. (check-in: [696a5a40bb] user: drh branch: trunk, size: 33615)
2012-01-28
19:41
[ab90fb600a] part of check-in [230983e86a] Add support for IF NOT EXISTS on CREATE VIRTUAL TABLE. (check-in: [230983e86a] user: drh branch: trunk, size: 33567)
2011-10-29
11:43
[e9318d88fe] part of check-in [3565fcf898] Avoid attempting to call savepoint related methods on deleted sqlite3_vtab objects. Fix for [48f299634a]. (check-in: [3565fcf898] user: dan branch: trunk, size: 33498)
2011-06-03
20:11
[901791a473] part of check-in [957b2ab67c] Create and use a function especially for adding the ParseSchema opcode. This gives a small reduction in code and a small performance increase. (check-in: [957b2ab67c] user: drh branch: trunk, size: 33491)
2011-05-25
18:46
[9ba8c7fdb7] part of check-in [d807304a69] Fix a case where a malloc() error could lead to mismatched virtual-table xBegin/xCommit/xRollback callbacks. (check-in: [d807304a69] user: dan branch: trunk, size: 33515)
01:16
[6bff354033] part of check-in [92f26a8b8f] Changes to savepoint in virtual tables for simpler and more consistent operation. (check-in: [92f26a8b8f] user: drh branch: trunk, size: 33077)
2011-05-24
15:36
[abc6382827] part of check-in [651ef24249] Do not invoke the xRollbackTo or xRelease methods of a virtual table without having first invoked an appropriate xSavepoint method. Add assert() statements to FTS3/4 to verify that this is happening in all cases. (check-in: [651ef24249] user: drh branch: trunk, size: 33007)
2011-05-06
00:19
[48dcef8bc7] part of check-in [0f4954e979] Increase the iVersion for sqlite3_module needed for the xSavepoint, xRelease, and xRollbackTo methods from 1 to 2. This is so that it will conform to published documentation. (check-in: [0f4954e979] user: drh branch: trunk, size: 32893)
2011-05-05
23:07
[bfd252c7d6] part of check-in [22cbc01a26] Fix an incorrect assert() in sqlite3_value_config(). Updates to the sqlite3_value_config() documentation. (check-in: [22cbc01a26] user: drh branch: trunk, size: 32893)
17:41
[5e17098829] part of check-in [f0617d619d] Fix sqlite3_vtab_on_conflict() to return the correct values for ABORT, FAIL, and IGNORE. (check-in: [f0617d619d] user: drh branch: trunk, size: 32879)
15:39
[1491acb3e0] part of check-in [930be6a1bd] Bump the version number to 3.7.7 on account of the new sqlite3_vtab_config() and sqlite3_vtab_on_conflict() interfaces. Updates to the documentation on those interfaces. (check-in: [930be6a1bd] user: drh branch: trunk, size: 32879)
13:54
[cc56ae9512] part of check-in [8485855afc] Change sqlite3_create_module() so that it avoids resetting the schema as long as preexisting modules are unchanged. (check-in: [8485855afc] user: drh branch: trunk, size: 32444)
2011-04-27
12:08
[59db0620d6] part of check-in [ff69f823f2] Fix problems related to savepoint rollback and fts3. (check-in: [ff69f823f2] user: dan branch: vtab-conflict, size: 32442)
2011-04-26
19:21
[bcfd5a8b0a] part of check-in [fb4a355871] Extra tests for fts3. And fixes for conflict-handling related problems in fts3. (check-in: [fb4a355871] user: dan branch: vtab-conflict, size: 31619)
2011-04-25
18:49
[0e89db3e74] part of check-in [6d2633a6d0] Add support for on conflict clauses to fts3/fts4. (check-in: [6d2633a6d0] user: dan branch: vtab-conflict, size: 30919)
2011-04-04
20:40
[b0abc931f9] part of check-in [82c2316240] Minor comment typo corrections. Simplify an assert. No functional changes. (check-in: [82c2316240] user: drh branch: schema-parse-refactor, size: 29459)
18:22
[672f8dadd6] part of check-in [ae8374af05] Add a description of access rules for the Schema object and lots of asserts to verify that the access rules are followed. (check-in: [ae8374af05] user: drh branch: schema-parse-refactor, size: 29497)
2011-04-02
16:28
[341ae69e94] part of check-in [6a8ad6e31e] Begin a series of changes designed to reduce the scope and frequency of invalidating schemas. Design goals are that the internal schema should never be deleted out from under a prepared statement that is running and that all prepared statements should be expired if the schema is invalidated. At the same time, minimize the number of schema invalidations. This change merely revises the sqlite3ResetInternalSchema() function to use -1 as the wildcard for "all" rather than 0, so that we can reset the main schema independently of all the others. (check-in: [6a8ad6e31e] user: drh branch: schema-parse-refactor, size: 29443)
2011-03-24
01:34
[e1edca38c4] part of check-in [b6e268fce1] The changes to fix [f7b4edece25c9948] mean that the schema is always loaded whenever a prepared statement is running. This means that a couple of branches can be eliminated and one operand of OP_ParseSchema can be removed. (check-in: [b6e268fce1] user: drh branch: trunk, size: 29442)
2010-10-21
15:12
[b297e8fa65] part of check-in [f91471e723] Fix some segfaults that could occur in obscure circumstances where error messages contained characters that could be mistaken for printf format specifiers. (check-in: [f91471e723] user: dan branch: trunk, size: 29442)
2010-09-28
19:16
[6c90e3e65b] part of check-in [655991ec8a] Fix some problems that can occur if a trigger has the same name as another database object. (check-in: [655991ec8a] user: dan branch: trunk, size: 29423)
2010-08-11
11:59
[0e8e0cb30d] part of check-in [7c674aaba5] Use sqlite3DbFree() instead of sqlite3_free() to free any error message reported by the parser layer while attempting to parse a CREATE TABLE statement passed to sqlite3_declare_vtab(). (check-in: [7c674aaba5] user: dan branch: trunk, size: 29406)
2010-07-26
11:07
[82200af388] part of check-in [629e38a8c9] Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). (check-in: [629e38a8c9] user: drh branch: experimental, size: 29401)
2010-07-24
16:34
[838248ec64] part of check-in [ac1f37a647] Make sure all memory from sqlite3DbMalloc() is freed by sqlite3DbFree() and all memory from sqlite3_malloc() is freed by sqlite3_free(). (check-in: [ac1f37a647] user: drh branch: malloc-enhancement, size: 29368)
11:28
[74bc8e035f] part of check-in [9aa30342f4] Experimental code to measure memory consumed by database schemas and prepared statements. (check-in: [9aa30342f4] user: dan branch: experimental, size: 29380)
2010-07-23
15:41
[4b09cb7109] part of check-in [6eddc6e601] Remove the Table.dbMem variable, as it is no longer being used for its original purpose. (check-in: [6eddc6e601] user: dan branch: trunk, size: 29347)
08:31
[477f3dd1cc] part of check-in [430be657be] Remove the unused Schema.db variable. (check-in: [430be657be] user: dan branch: trunk, size: 29342)
2010-04-06
15:57
[a0f8a40274] part of check-in [1b2a04125f] Automatically generate transient indices for tables in joins that would otherwise have to use a full table scan. (check-in: [1b2a04125f] user: drh branch: experimental, size: 29372)
2010-02-23
20:11
[606adf51cd] part of check-in [edea3bb740] Continuing improvements to error reporting and the sqlite3_log() routine. (check-in: [edea3bb740] user: drh branch: trunk, size: 29344)
17:36
[08df673f33] part of check-in [7c4cca6d1a] Remove the obsolete sqlite3SafetyOn() mechanism. Add additional logging output for CORRUPT, and CANTOPEN errors. (check-in: [7c4cca6d1a] user: drh branch: trunk, size: 29339)
2009-12-08
22:16
[7c7713d66c] part of check-in [fdfdc777c5] Change to order of two branches in vtab.c in order to a restore 100% test coverage. (check-in: [fdfdc777c5] user: drh branch: trunk, size: 29800)
19:05
[4e73b26920] part of check-in [f0eac4175a] Add tests to improve coverage of fts3. Associated bugfixes. (check-in: [f0eac4175a] user: dan branch: trunk, size: 29800)
2009-11-10
01:30
[456fc22661] part of check-in [f6c045f649] Remove the obsolete "$Id:$" RCS identifier strings from the source code. (check-in: [f6c045f649] user: drh branch: trunk, size: 29798)
2009-09-01
12:16
[3e54fe3937] part of check-in [38a9327bad] More fixes and comment updates. (check-in: [38a9327bad] user: dan branch: trunk, size: 29853)
2009-08-28
18:53
[10df5c77ce] part of check-in [9b9c192115] Changes to support recursive triggers. (check-in: [9b9c192115] user: dan branch: trunk, size: 29825)
2009-08-08
18:01
[aedd76e867] part of check-in [257e9b5750] Suppress various compiler warnings. (CVS 6963) (check-in: [257e9b5750] user: drh branch: trunk, size: 29775)
2009-07-24
17:58
[b19c4e96dc] part of check-in [5d9e767a05] Allow virtual tables to be used in shared-cache mode. (CVS 6928) (check-in: [5d9e767a05] user: danielk1977 branch: trunk, size: 29813)
2009-07-01
18:04
[00902f2895] part of check-in [bfe336a899] Fix a 1-byte buffer overwrite that can occur when a virtual table overloads an SQL function. (CVS 6833) (check-in: [bfe336a899] user: danielk1977 branch: trunk, size: 25911)
2009-06-15
16:27
[98fbffc5ef] part of check-in [e1e6430752] Fix compiler warnings with MSVC build. (CVS 6761) (check-in: [e1e6430752] user: shane branch: trunk, size: 25902)
2009-06-02
21:31
[e2f4c92df7] part of check-in [04bad9eb6d] Further reductions in the amount of stack space required. (CVS 6707) (check-in: [04bad9eb6d] user: drh branch: trunk, size: 25848)
2009-05-20
20:10
[b0216337ae] part of check-in [02b77a582c] Fix a memory leak that occurs when an out-of-memory error occurs while preparing a statement that has multiple virtual table updates within triggers. Other virtual table changes to support full-coverage testing. (CVS 6661) (check-in: [02b77a582c] user: drh branch: trunk, size: 25702)
16:22
[f998f539ac] part of check-in [55d6ced262] Remove unused, undocumented, and untested error reporting logic from the xFindFunction interface in virtual tables. (CVS 6660) (check-in: [55d6ced262] user: drh branch: trunk, size: 25368)
2009-05-11
23:38
[1e285c90d0] part of check-in [5635666f20] If a virtual table constructor returns SQLITE_NOMEM, set the mallocFailed flag in the corresponding database connection to insure that the error is propagated back to the top layer. (CVS 6627) (check-in: [5635666f20] user: drh branch: trunk, size: 25517)
2009-04-28
13:01
[53355aa238] part of check-in [23d67af392] Do not store the zero string terminator as part of the name when holding symbols in the symbol table. (CVS 6557) (check-in: [23d67af392] user: drh branch: trunk, size: 25470)
2009-04-11
16:27
[6118d71c51] part of check-in [ac5d0c0aa1] Add a comments and an assert() to the virtual table implementation. No functional changes. (CVS 6497) (check-in: [ac5d0c0aa1] user: drh branch: trunk, size: 25474)
2009-03-24
15:08
[f1aba5a6dc] part of check-in [ea74d8dc62] Changes to insure that lookaside memory allocations are never used to hold schema content. Ticket #3743. (CVS 6377) (check-in: [ea74d8dc62] user: drh branch: trunk, size: 25271)
2009-03-19
18:51
[18d671f0a4] part of check-in [cc0d925669] Fix a couple of fairly obscure cases where an assert() could fail following a malloc failure. (CVS 6360) (check-in: [cc0d925669] user: danielk1977 branch: trunk, size: 25227)
2009-03-16
13:19
[bf409d2dc0] part of check-in [b649a6cc5b] Add the sqlite3_unlock_notify() API. (CVS 6348) (check-in: [b649a6cc5b] user: danielk1977 branch: trunk, size: 25211)
2008-12-10
19:26
[e39e011d74] part of check-in [c872d55493] 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) (check-in: [c872d55493] user: drh branch: trunk, size: 25203)
18:03
[09df27d47e] part of check-in [14e6d19c31] More explicit type casting to silence VC++. (CVS 6006) (check-in: [14e6d19c31] user: drh branch: trunk, size: 25107)
17:20
[c4bd078008] part of check-in [e7e9fa4fa1] Remove or rename local variables that shadow other variables or parameters. (CVS 6005) (check-in: [e7e9fa4fa1] user: drh branch: trunk, size: 25059)
2008-11-13
19:12
[02c51eac45] part of check-in [4cf8a8e1bf] Fix a couple of memory leaks that may follow malloc failures. (CVS 5906) (check-in: [4cf8a8e1bf] user: danielk1977 branch: trunk, size: 25059)
18:00
[fea2253619] part of check-in [eabb8b7591] Avoid committing a transaction from within the xSync() method of a virtual table. Fix for #3497. (CVS 5902) (check-in: [eabb8b7591] user: danielk1977 branch: trunk, size: 25015)
2008-08-20
16:35
[527c180e9c] part of check-in [daf730d1de] Refactor the name resolution procedures in the code generator. (CVS 5569) (check-in: [daf730d1de] user: drh branch: trunk, size: 25017)
14:49
[edf8edb55d] part of check-in [cb494e10d7] Add the pcache module from the experimental branch. Also change things so that most of the built-in SQL functions are kept in single static hash-table, rather than creating and populating a separate hash table for each open database connection. (CVS 5566) (check-in: [cb494e10d7] user: danielk1977 branch: trunk, size: 24935)
2008-08-02
03:50
[9c1bbb54d8] part of check-in [f1e44eb323] Additional coverage testing. Fix a segfault following OOM in sqltie3_load_extension(). (CVS 5523) (check-in: [f1e44eb323] user: drh branch: trunk, size: 24893)
2008-08-01
17:37
[914db4c943] part of check-in [007359b770] Test that virtual table methods xBestIndex, xOpen, xFilter, xNext, xColumn, xRowid, xUpdate, xSync and xBegin can all return error messages using the sqlite3_vtab.zErrMsg variable. (CVS 5519) (check-in: [007359b770] user: danielk1977 branch: trunk, size: 25082)
2008-07-28
19:34
[691813795f] part of check-in [e48f9697e9] 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) (check-in: [e48f9697e9] user: drh branch: trunk, size: 25007)
2008-07-23
18:17
[e67eaa3114] part of check-in [e2c6771d44] Read the sqlite3_vtab.zErrMsg after each call to a virtual table method and transfer any error into the database connection. Fix the fts2.test and fts3.test scripts to that they return silently rather than failing the test sequence if the appropriate FTS implementation is unavailable. (CVS 5463) (check-in: [e2c6771d44] user: drh branch: trunk, size: 24921)
2008-06-23
17:44
[2096c03ec5] part of check-in [3ca7dab88e] Fix a failure to report a failed malloc() within sqlite3_create_module(). (CVS 5284) (check-in: [3ca7dab88e] user: danielk1977 branch: trunk, size: 24559)
2008-05-05
13:23
[ce9d19ca90] part of check-in [2275fc6ee0] Fix a couple of minor problems with transactions in virtual tables. (CVS 5081) (check-in: [2275fc6ee0] user: drh branch: trunk, size: 24477)
2008-04-28
18:46
[e058c520c1] part of check-in [133b7ee50e] Make sure that transactions are started on all virtual tables that changes in a single statement, not just the first. Ticket #3083. Need to add test cases. (CVS 5063) (check-in: [133b7ee50e] user: drh branch: trunk, size: 24434)
2008-04-27
18:40
[13cd7f225c] part of check-in [6a94d19747] Remove all references to sqlite3_intptr_t. (CVS 5051) (check-in: [6a94d19747] user: drh branch: trunk, size: 23793)
2008-04-10
18:35
[f5e78bf73d] part of check-in [0acb1b428d] Correctly handle virtual tables that are created and dropped all within a single transaction. Ticket #2994. (CVS 4985) (check-in: [0acb1b428d] user: drh branch: trunk, size: 23844)
2008-03-06
09:58
[00cd16317b] part of check-in [e2a9f5f105] Handle non-autoconf build correctly with new changes (CVS 4832) (check-in: [e2a9f5f105] user: mlcreech branch: trunk, size: 23667)
07:35
[641bafa5d8] part of check-in [54839a84e6] Use intptr_t definition to silence warnings about ptr-int casts (CVS 4824) (check-in: [54839a84e6] user: mlcreech branch: trunk, size: 23643)
2008-01-23
03:03
[dc8947c9c7] part of check-in [5375ad6b4b] Make sqlite3SafetyOn() and sqlite3SafetyOff() macros which disappear when compiling without -DSQLITE_DEBUG=1. (CVS 4744) (check-in: [5375ad6b4b] user: drh branch: trunk, size: 23623)
2008-01-17
16:22
[9924e37cf7] part of check-in [706b41b70b] Registerification of the VDBE is complete. The operand stack has been removed from the code. All instructions operate out of registers only. (CVS 4718) (check-in: [706b41b70b] user: drh branch: trunk, size: 23602)
2008-01-12
12:48
[7f206d148f] part of check-in [a6dddebcc5] Continuing work toward converting the VM into a register machine. (CVS 4707) (check-in: [a6dddebcc5] user: drh branch: trunk, size: 23601)
2008-01-03
00:01
[03014b2bfa] part of check-in [027875e4d4] Refactoring the VM. The P3 parameter is changed to P4. A P5 parameter is added (though not currently used.) Add routines sqlite3VdbeAddOpX() where X is one of 0, 1, 2, 3, or 4. (CVS 4660) (check-in: [027875e4d4] user: drh branch: trunk, size: 23669)
2007-09-20
11:32
[f819d55ef6] part of check-in [c2ac43a4ef] fix typo in comment (CVS 4438) (check-in: [c2ac43a4ef] user: rse branch: trunk, size: 23630)
10:02
[243f41bd94] part of check-in [27fe128833] Fixes for uninitialized variables. Tickets #2658 and #2659. (CVS 4437) (check-in: [27fe128833] user: drh branch: trunk, size: 23630)
2007-09-04
15:38
[6776605198] part of check-in [efd61df1b9] Fix a problem whereby the *ppVtab output buffer passed to sqlite3_module.xConstruct() could be invalidated (freed) if a malloc() failure occured within a call to sqlite3_declare_vtab(). (CVS 4397) (check-in: [efd61df1b9] user: danielk1977 branch: trunk, size: 23634)
2007-08-29
14:06
[ace9b41a08] part of check-in [c790c234c3] Use the DbMalloc() and DbRealloc() functions more consistently. (CVS 4323) (check-in: [c790c234c3] user: danielk1977 branch: trunk, size: 23634)
12:31
[5b8d7ec77b] part of check-in [e38ef81b85] Modifications to the malloc failure tests to test transient and persistent failures. (CVS 4321) (check-in: [e38ef81b85] user: danielk1977 branch: trunk, size: 23678)
2007-08-24
03:51
[72e5347cca] part of check-in [3a68fcddfa] The win32 driver compiles but does not yet work well. Many bugs fixed. (CVS 4282) (check-in: [3a68fcddfa] user: drh branch: trunk, size: 23642)
2007-08-23
02:47
[6a7ce44edf] part of check-in [21f6b31097] Improvements to memory leak detection. The --backtrace=NNN option is now recognized by tester.tcl. Memory leak summaries are automatically written to the file ./memleak.txt and each leak is tagged with the test in which it occurred. The quick.test script runs on Linux with no errors and no leaks. (CVS 4273) (check-in: [21f6b31097] user: drh branch: trunk, size: 23634)
2007-08-22
02:56
[8f80924af4] part of check-in [783e07d561] A complete run of quick.test with mutex debugging enabled. (CVS 4266) (check-in: [783e07d561] user: drh branch: trunk, size: 23664)
2007-08-17
01:14
[ee29237ecc] part of check-in [4c1e9ffebe] Begin adding mutexes. Compiles without SQLITE_OMIT_SHARED_CACHE but we get an assertion fault on the shared cache testing. (CVS 4239) (check-in: [4c1e9ffebe] user: drh branch: trunk, size: 23448)
2007-08-16
10:09
[8d65679ab4] part of check-in [77b1671351] More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233) (check-in: [77b1671351] user: danielk1977 branch: trunk, size: 23470)
04:30
[ea2557202d] part of check-in [deb7ecd65f] Half-way through a major refactoring of the memory allocation. I have not even attempted to compile so I am certain there are countless errors. (CVS 4231) (check-in: [deb7ecd65f] user: drh branch: trunk, size: 23434)
2007-06-26
10:38
[60dc6d881c] part of check-in [7f887a6a00] Allow virtual tables to mark columns as 'hidden'. Hidden columns do not show up in "*" expansion, the implicit column list of an INSERT statement, or the results of a "PRAGMA table_info" statement. (CVS 4127) (check-in: [7f887a6a00] user: danielk1977 branch: trunk, size: 23092)
2007-06-22
15:21
[51d43cda45] part of check-in [68677e420c] Extend fts2 so that user defined tokenizers may be added. Add a tokenizer that uses the ICU library if available. Documentation and tests to come. (CVS 4108) (check-in: [68677e420c] user: danielk1977 branch: trunk, size: 22008)
2007-05-04
13:15
[c5ebebf615] part of check-in [ba4845b32b] Eliminate all uses of sprintf() and strcpy(). These were not being misused. But getting rid of them removes a library dependency. And it avoids warnings from the OpenBSD compiler. Ticket #2336. (CVS 3916) (check-in: [ba4845b32b] user: drh branch: trunk, size: 20919)
2007-04-19
14:48
[89a0d5f39c] part of check-in [5ad645339b] Better fix than (3860) for the same problem. (3860) could leave file-handles open in some circumstances. (CVS 3861) (check-in: [5ad645339b] user: danielk1977 branch: trunk, size: 20895)
14:28
[6aad2b5cb1] part of check-in [d1afdd8c9c] Fix a crash that can occur if an error happens in a virtual table xSync() function. (CVS 3860) (check-in: [d1afdd8c9c] user: danielk1977 branch: trunk, size: 20865)
00:24
[d80f61bb47] part of check-in [b623538c55] Get the build working with SQLITE_OMIT_SHARED_CACHE. Ticket #2307. (CVS 3857) (check-in: [b623538c55] user: drh branch: trunk, size: 20842)
2007-04-18
14:24
[24d7b1507a] part of check-in [175156d1fc] Minor changes (mainly to assert() macros) to handle malloc failure in vtab operations. (CVS 3851) (check-in: [175156d1fc] user: danielk1977 branch: trunk, size: 20810)
2007-04-16
15:49
[ff222fb87e] part of check-in [66e468adfc] Add test cases to make sure virtual tables cannot be used in shared-cache mode. (CVS 3847) (check-in: [66e468adfc] user: danielk1977 branch: trunk, size: 20736)
15:06
[6dd9dd6ef4] part of check-in [8d6c3bfc4d] Ensure sqlite3_finalize() can be called from within the xDisconnect() method of virtual tables. (CVS 3845) (check-in: [8d6c3bfc4d] user: danielk1977 branch: trunk, size: 20588)
2007-01-09
14:01
[7fbda947e2] part of check-in [43fe7fc1c3] When an automatic re-prepare occurs, take care not to reset the internal schema symbol table. Ticket #2156. This change also includes some debugging enhancements. (CVS 3578) (check-in: [43fe7fc1c3] user: drh branch: trunk, size: 20313)
2007-01-05
14:41
[2e367db8c4] part of check-in [2a7f5aaf82] Remove redundant variable. (CVS 3565) (check-in: [2a7f5aaf82] user: drh branch: trunk, size: 20313)
2006-09-18
20:24
[aa30e94005] part of check-in [efa8fb32a5] Convert all names to lower case before sending them to the xFindFunction method of a virtual table. In FTS1, use strcmp instead of strcasecmp. Ticket #1981. (CVS 3428) (check-in: [efa8fb32a5] user: drh branch: trunk, size: 20370)
2006-09-15
07:28
[2582c4e4a9] part of check-in [ba579ddc43] Add support for extended result codes - additional result information carried in the higher bits of the integer return codes. This must be enabled using the sqlite3_extended_result_code() API. Only a few extra result codes are currently defined. (CVS 3422) (check-in: [ba579ddc43] user: drh branch: trunk, size: 20153)
2006-09-13
19:21
[82d915c0a4] part of check-in [f4ab546b2e] Remove unused malloc failure test. (Ticket #1976) Also include fixes for other problems discovered while investigating ticket #1976. (CVS 3415) (check-in: [f4ab546b2e] user: drh branch: trunk, size: 20126)
2006-09-11
00:34
[4d360f2222] part of check-in [227dc3feb5] Add a rudimentary tokenizer and parser to FTS1 for parsing the module arguments during initialization. Recognized arguments include a tokenizer selector and a list of virtual table columns. (CVS 3403) (check-in: [227dc3feb5] user: drh branch: trunk, size: 20042)
2006-09-10
17:31
[430513b5e2] part of check-in [f44b8bae97] Add pzErr parameters to the xConnect and xCreate methods of virtual tables in order to provide better error reporting. This is an interface change for virtual tables. Prior virtual table implementations will need to be modified and recompiled. (CVS 3402) (check-in: [f44b8bae97] user: drh branch: trunk, size: 20001)
17:08
[c68946eda1] part of check-in [36693a5cb7] Add a new zErrMsg field to the sqlite3_vtab structure to support returning error messages from virtual table constructors. This change means that virtual table implementations compiled as loadable extensions for version 3.3.7 will need to be recompile for version 3.3.8 and will not be usable by both versions at one. The virtual table mechanism is still considered experimental so we feel justified in breaking backwards compatibility in this way. Additional interface changes might occurs in the future. (CVS 3401) (check-in: [36693a5cb7] user: drh branch: trunk, size: 20151)
2006-09-02
20:57
[7fc0624c2b] part of check-in [61148f4c36] Do not call the xDisconnect method on a virtual table while xUpdate is pending. Instead, defer the xDisconnect until after xUpdate completes. (CVS 3387) (check-in: [61148f4c36] user: drh branch: trunk, size: 19895)
14:17
[6067f9ec01] part of check-in [098cbafcd6] Convert static variables into constants in the FTS module. (CVS 3385) (check-in: [098cbafcd6] user: drh branch: trunk, size: 19397)
2006-07-26
16:22
[cae036dc7b] part of check-in [e705d23232] Disallow writing to, creating or dropping virtual tables from within xSync() callbacks. (CVS 3339) (check-in: [e705d23232] user: danielk1977 branch: trunk, size: 19392)
2006-07-25
15:14
[1fe25b3e59] part of check-in [d5a608d0a4] Allow database writes from within virtual table module xSync() callbacks. (CVS 3334) (check-in: [d5a608d0a4] user: danielk1977 branch: trunk, size: 18914)
2006-07-08
18:09
[34b20b0111] part of check-in [3c4233e074] Add tests and minor fixes to the xFindFunction method of virtual tables. (CVS 3323) (check-in: [3c4233e074] user: drh branch: trunk, size: 18772)
17:06
[3fe6879f4a] part of check-in [12cc7af4b6] Allow virtual table implementations to overload function that use a column of the virtual table as their first argument. Untested. (CVS 3322) (check-in: [12cc7af4b6] user: drh branch: trunk, size: 18815)
2006-06-26
11:17
[4751954e26] part of check-in [3538beace8] Fix trivial compiler warnings. (CVS 3295) (check-in: [3538beace8] user: danielk1977 branch: trunk, size: 16906)
2006-06-24
09:34
[1eaa23c1a5] part of check-in [0c5f4ee39c] Add tests to improve coverage of vtab.c. (CVS 3291) (check-in: [0c5f4ee39c] user: danielk1977 branch: trunk, size: 16900)
08:51
[1f3d6758ea] part of check-in [4630e11d9a] Ensure whitespace specified as part of a virtual table constructor argument is correctly passed to the constructor function. (CVS 3290) (check-in: [4630e11d9a] user: danielk1977 branch: trunk, size: 16985)
2006-06-23
11:34
[fd7e62d6ef] part of check-in [b56cc035f2] Fix some memory leaks that occur when malloc() fails. (CVS 3286) (check-in: [b56cc035f2] user: danielk1977 branch: trunk, size: 17278)
08:05
[7edad77e20] part of check-in [5d1d907189] Add tests and fixes for handling malloc() failures related to the virtual table feature. (CVS 3285) (check-in: [5d1d907189] user: danielk1977 branch: trunk, size: 17136)
2006-06-21
16:02
[99ca599e9e] part of check-in [2d2805785f] Add the database name to the parameters passed to virtual table module xCreate and xConnect methods. (CVS 3282) (check-in: [2d2805785f] user: danielk1977 branch: trunk, size: 17042)
13:21
[e65a7fd62d] part of check-in [7dc36d1c79] Add the table name to the arguments passed to the virtual table methods xCreate/xConnect. (CVS 3281) (check-in: [7dc36d1c79] user: danielk1977 branch: trunk, size: 17027)
2006-06-17
11:30
[8fbf4a8f71] part of check-in [ea7e4eca10] Add newly created virtual tables to the current transaction. (CVS 3267) (check-in: [ea7e4eca10] user: danielk1977 branch: trunk, size: 16912)
09:39
[d9f19d0d5a] part of check-in [8a5b121f2f] Add tests (and fixes) for the virtual table transaction interface. (CVS 3265) (check-in: [8a5b121f2f] user: danielk1977 branch: trunk, size: 16240)
03:27
[a0bcc2da7e] part of check-in [81c5a5b48b] Fixes for UPDATE statements on virtual tables. (CVS 3263) (check-in: [81c5a5b48b] user: danielk1977 branch: trunk, size: 16238)
2006-06-16
16:08
[5d69a87980] part of check-in [6125140228] Add code to invoke the virtual table transaction interface. Untested at this point. (CVS 3261) (check-in: [6125140228] user: danielk1977 branch: trunk, size: 16237)
08:01
[cb5a2b23a2] part of check-in [9497c66e55] Add some tests (and fixes) for virtual tables and the authorization callback. Still more to come. (CVS 3260) (check-in: [9497c66e55] user: danielk1977 branch: trunk, size: 13381)
2006-06-15
07:29
[745148c6f8] part of check-in [88fa510e4c] Simple tests and fixes for writing to virtual tables. (CVS 3252) (check-in: [88fa510e4c] user: danielk1977 branch: trunk, size: 12944)
04:28
[3b58aa4a54] part of check-in [470a3a0b20] Add void* argument to sqlite3_create_module to replace sqlite3_module.pAux. (CVS 3251) (check-in: [470a3a0b20] user: danielk1977 branch: trunk, size: 13137)
2006-06-14
13:03
[507cbb4e21] part of check-in [418f3ca84a] Add the opcode OP_VUpdate and replace the xInsert/xDelete members of sqlite3_module with xUpdate. (CVS 3242) (check-in: [418f3ca84a] user: danielk1977 branch: trunk, size: 12713)
06:58
[b198496e42] part of check-in [3ffa51b50a] Change the pModule parameter of the xCreate and xConnect methods to a void*. (CVS 3236) (check-in: [3ffa51b50a] user: danielk1977 branch: trunk, size: 12714)
06:31
[6af0aa0ef2] part of check-in [5e592c422b] Add tests for error conditions surrounding the creation/connection of virtual tables. (CVS 3235) (check-in: [5e592c422b] user: danielk1977 branch: trunk, size: 12521)
2006-06-13
23:51
[7de1347022] part of check-in [29199eeea4] The echo module test is now running. Added the tclvar module test but have not yet done anything with it. (CVS 3234) (check-in: [29199eeea4] user: drh branch: trunk, size: 12293)
15:00
[12d83f7de8] part of check-in [7a3e97f76b] Add the tentative sqlite3_allocate_queryplan() API. (CVS 3228) (check-in: [7a3e97f76b] user: danielk1977 branch: trunk, size: 12610)
10:24
[0e39af5822] part of check-in [1f20e1832b] Add implementations for opcodes required for linear scans of virtual tables. (CVS 3223) (check-in: [1f20e1832b] user: danielk1977 branch: trunk, size: 12300)
2006-06-12
16:01
[4ec6ac7e5e] part of check-in [f0c7c8d12c] Add code to invoke the xDestroy method of a virtual table when it is dropped. (CVS 3218) (check-in: [f0c7c8d12c] user: danielk1977 branch: trunk, size: 12353)
12:08
[430228a2c9] part of check-in [b63dbc7947] Add a simple test case (and corresponding bugfix) for the virtual table xConnect and xDisconnect methods. (CVS 3214) (check-in: [b63dbc7947] user: danielk1977 branch: trunk, size: 11665)
11:24
[36778506d9] part of check-in [bbeb93b5bb] Add first cut of sqlite3_declare_vtab(). Not at all well tested yet. (CVS 3213) (check-in: [bbeb93b5bb] user: danielk1977 branch: trunk, size: 11281)
06:09
[6872f6a6ca] part of check-in [8ffbab79d5] Incremental work on parsing/storing and invoking the xCreate callback for virtual tables. (CVS 3212) (check-in: [8ffbab79d5] user: danielk1977 branch: trunk, size: 9196)
2006-06-11
23:41
Added: [4ace1448bd] part of check-in [898ec36b41] Progress toward CREATE VIRTUAL TABLE. Still not even close to working... (CVS 3211) (check-in: [898ec36b41] user: drh branch: trunk, size: 6743)