Add the SQLITE_OMIT_DECLTYPE compile-time option. Remove more code when
SQLITE_ENABLE_COLUMN_METADATA is not defined. (CVS 4906) FossilOrigin-Name: 8ef26646cff9be75c584a9abfcfffcfdb49b3969
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
C Defer\sallocating\smemory\sspace\sto\shold\sthe\sarray\sof\scolumn\svalues\sand\nnames\sin\ssqlite3_exec()\suntil\sthere\sis\sa\sneed\sto\suse\sthe\sarray.\s\sIn\nthe\scommon\scase\swhere\sthere\sis\sno\scallback,\sthis\savoids\sa\smalloc()\scall.\s(CVS\s4905)
|
||||
D 2008-03-21T18:01:14
|
||||
C Add\sthe\sSQLITE_OMIT_DECLTYPE\scompile-time\soption.\s\sRemove\smore\scode\swhen\nSQLITE_ENABLE_COLUMN_METADATA\sis\snot\sdefined.\s(CVS\s4906)
|
||||
D 2008-03-22T01:07:18
|
||||
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
||||
F Makefile.in cf434ce8ca902e69126ae0f94fc9f7dc7428a5fa
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@@ -135,7 +135,7 @@ F src/pragma.c f64eed914518c28d1863356163dea1e6f58e28f2
|
||||
F src/prepare.c 1b71b5d43ba3d88f2d3c2a6d084f28ac209df956
|
||||
F src/printf.c 05d2b44d7b5b80c8a4a09108ddad9c20e254370d
|
||||
F src/random.c 2b2db2de4ab491f5a14d3480466f8f4b5a5db74a
|
||||
F src/select.c 2a0f383a16c780b8ee8108e994c2f6c4f82233a9
|
||||
F src/select.c 35063b078beafe9aa35344a8ce039210920d7fea
|
||||
F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
|
||||
F src/shell.c 22297fffa6f00a6c6d44020fa13b1184a1bb372d
|
||||
F src/sqlite.h.in da2ab729b5c590c7dfa5418477ed181d52ab9c82
|
||||
@@ -144,7 +144,7 @@ F src/sqliteInt.h 07b472437b2d7297c300f8b7cea5205984fa64d1
|
||||
F src/sqliteLimit.h eecbc288b410ae5565e71aaa4a439aae57bb0707
|
||||
F src/table.c 2c48c575dd59b3a6c5c306bc55f51a9402cf429a
|
||||
F src/tclsqlite.c d42912617d4734b8f9195416badf5b27e512ded2
|
||||
F src/test1.c aab521bef2a038dfdf1bcafb4f3372285be7d91b
|
||||
F src/test1.c 342a2628310fa709074d979e695a28a3bb570834
|
||||
F src/test2.c f0808cc643528b9620e4059ca9bda8346f526121
|
||||
F src/test3.c 5c7452038ab27aa698070799b10132f26cdd2a80
|
||||
F src/test4.c c2c0f5dc907f1346f5d4b65eb5799f11eb9e4071
|
||||
@@ -156,7 +156,7 @@ F src/test9.c 4615ef08750245a2d96aaa7cbe2fb4aff2b57acc
|
||||
F src/test_async.c 3147c64c34721f088d5ab20f85dabd5d7732c007
|
||||
F src/test_autoext.c 5e892ab84aece3f0428920bf46923f16ac83962a
|
||||
F src/test_btree.c c1308ba0b88ab577fa56c9e493a09829dfcded9c
|
||||
F src/test_config.c 100a3381cedd5435ce6928f1c21ec6887a16b71e
|
||||
F src/test_config.c 097a49a8804815799dc3d2220e6af693ad54f59d
|
||||
F src/test_devsym.c cee1aecaa90c895030399ca4ae38f84a08038f8a
|
||||
F src/test_func.c 9e9b33ff083b65da91c389cece903bc32de06f01
|
||||
F src/test_hexio.c 1a1cd8324d57585ea86b922f609fa1fbaaf9662d
|
||||
@@ -175,9 +175,9 @@ F src/utf.c 32b00d6e19010025e58f2ecb2f921d5e126771b4
|
||||
F src/util.c dba9e04121eb17ec4643d6ca231ff859452cf0e2
|
||||
F src/vacuum.c 3524411bfb58aac0d87eadd3e5b7cd532772af30
|
||||
F src/vdbe.c 43b261f50be60c758430a9072f960715f2ff0852
|
||||
F src/vdbe.h 58a7d931ffb704e034b2a725981cfa5bd406fad9
|
||||
F src/vdbe.h 93acc03fe8002173cb6affad2bf5d5c5305ba229
|
||||
F src/vdbeInt.h 76c81d057a39813de0fda3cad1498655d53ec69d
|
||||
F src/vdbeapi.c a3bddeee0f011faadb20316926cc97f95efa6415
|
||||
F src/vdbeapi.c b9e9d7a58690c1e1ae66de7232edccf4793ad817
|
||||
F src/vdbeaux.c 82f3c8913e68b4928de28c3fa117464356d59df6
|
||||
F src/vdbeblob.c 63c750acc7b5012479f508c0e9627372a82cb65d
|
||||
F src/vdbefifo.c a30c237b2a3577e1415fb6e288cbb6b8ed1e5736
|
||||
@@ -624,7 +624,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
|
||||
P d2140cae39dcced63e3ad5771e52d522ce587c96
|
||||
R 438a95b31cb1994f639e5613e5c3d839
|
||||
P d8686abcdf9e566571033f2f137142f742df9357
|
||||
R aa65ee25792b35b0b257992140c3f662
|
||||
U drh
|
||||
Z 141fc6916bd71c55ee794d15ce44ae0c
|
||||
Z 466acf301fdb80b8f45999c2ef27b0df
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
d8686abcdf9e566571033f2f137142f742df9357
|
||||
8ef26646cff9be75c584a9abfcfffcfdb49b3969
|
||||
+10
-3
@@ -12,7 +12,7 @@
|
||||
** This file contains C code routines that are called by the parser
|
||||
** to handle SELECT statements in SQLite.
|
||||
**
|
||||
** $Id: select.c,v 1.416 2008/03/20 14:03:29 drh Exp $
|
||||
** $Id: select.c,v 1.417 2008/03/22 01:07:18 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
|
||||
@@ -1005,6 +1005,7 @@ static void generateColumnTypes(
|
||||
SrcList *pTabList, /* List of tables */
|
||||
ExprList *pEList /* Expressions defining the result set */
|
||||
){
|
||||
#ifndef SQLITE_OMIT_DECLTYPE
|
||||
Vdbe *v = pParse->pVdbe;
|
||||
int i;
|
||||
NameContext sNC;
|
||||
@@ -1012,20 +1013,26 @@ static void generateColumnTypes(
|
||||
sNC.pParse = pParse;
|
||||
for(i=0; i<pEList->nExpr; i++){
|
||||
Expr *p = pEList->a[i].pExpr;
|
||||
const char *zType;
|
||||
#ifdef SQLITE_ENABLE_COLUMN_METADATA
|
||||
const char *zOrigDb = 0;
|
||||
const char *zOrigTab = 0;
|
||||
const char *zOrigCol = 0;
|
||||
const char *zType = columnType(&sNC, p, &zOrigDb, &zOrigTab, &zOrigCol);
|
||||
zType = columnType(&sNC, p, &zOrigDb, &zOrigTab, &zOrigCol);
|
||||
|
||||
/* The vdbe must make its own copy of the column-type and other
|
||||
** column specific strings, in case the schema is reset before this
|
||||
** virtual machine is deleted.
|
||||
*/
|
||||
sqlite3VdbeSetColName(v, i, COLNAME_DECLTYPE, zType, P4_TRANSIENT);
|
||||
sqlite3VdbeSetColName(v, i, COLNAME_DATABASE, zOrigDb, P4_TRANSIENT);
|
||||
sqlite3VdbeSetColName(v, i, COLNAME_TABLE, zOrigTab, P4_TRANSIENT);
|
||||
sqlite3VdbeSetColName(v, i, COLNAME_COLUMN, zOrigCol, P4_TRANSIENT);
|
||||
#else
|
||||
zType = columnType(&sNC, p, 0, 0, 0);
|
||||
#endif
|
||||
sqlite3VdbeSetColName(v, i, COLNAME_DECLTYPE, zType, P4_TRANSIENT);
|
||||
}
|
||||
#endif /* SQLITE_OMIT_DECLTYPE */
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+7
-3
@@ -13,7 +13,7 @@
|
||||
** is not included in the SQLite library. It is used for automated
|
||||
** testing of the SQLite library.
|
||||
**
|
||||
** $Id: test1.c,v 1.294 2008/03/20 16:30:18 drh Exp $
|
||||
** $Id: test1.c,v 1.295 2008/03/22 01:07:18 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include "tcl.h"
|
||||
@@ -4526,10 +4526,12 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
|
||||
{ "sqlite3_column_double", test_column_double ,0 },
|
||||
{ "sqlite3_column_int64", test_column_int64 ,0 },
|
||||
{ "sqlite3_column_text", test_stmt_utf8, sqlite3_column_text },
|
||||
{ "sqlite3_column_decltype", test_stmt_utf8, sqlite3_column_decltype },
|
||||
{ "sqlite3_column_name", test_stmt_utf8, sqlite3_column_name },
|
||||
{ "sqlite3_column_int", test_stmt_int, sqlite3_column_int },
|
||||
{ "sqlite3_column_bytes", test_stmt_int, sqlite3_column_bytes },
|
||||
#ifndef SQLITE_OMIT_DECLTYPE
|
||||
{ "sqlite3_column_decltype", test_stmt_utf8, sqlite3_column_decltype },
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_COLUMN_METADATA
|
||||
{ "sqlite3_column_database_name", test_stmt_utf8, sqlite3_column_database_name},
|
||||
{ "sqlite3_column_table_name", test_stmt_utf8, sqlite3_column_table_name},
|
||||
@@ -4539,9 +4541,11 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
|
||||
#ifndef SQLITE_OMIT_UTF16
|
||||
{ "sqlite3_column_bytes16", test_stmt_int, sqlite3_column_bytes16 },
|
||||
{ "sqlite3_column_text16", test_stmt_utf16, sqlite3_column_text16 },
|
||||
{ "sqlite3_column_decltype16", test_stmt_utf16, sqlite3_column_decltype16},
|
||||
{ "sqlite3_column_name16", test_stmt_utf16, sqlite3_column_name16 },
|
||||
{ "add_alignment_test_collations", add_alignment_test_collations, 0 },
|
||||
#ifndef SQLITE_OMIT_DECLTYPE
|
||||
{ "sqlite3_column_decltype16", test_stmt_utf16, sqlite3_column_decltype16},
|
||||
#endif
|
||||
#ifdef SQLITE_ENABLE_COLUMN_METADATA
|
||||
{"sqlite3_column_database_name16",
|
||||
test_stmt_utf16, sqlite3_column_database_name16},
|
||||
|
||||
+7
-1
@@ -16,7 +16,7 @@
|
||||
** The focus of this file is providing the TCL testing layer
|
||||
** access to compile-time constants.
|
||||
**
|
||||
** $Id: test_config.c,v 1.23 2008/03/21 16:45:48 drh Exp $
|
||||
** $Id: test_config.c,v 1.24 2008/03/22 01:07:18 drh Exp $
|
||||
*/
|
||||
|
||||
#include "sqliteLimit.h"
|
||||
@@ -195,6 +195,12 @@ static void set_options(Tcl_Interp *interp){
|
||||
Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
#ifdef SQLITE_OMIT_DECLTYPE
|
||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
Tcl_SetVar2(interp, "sqlite_options", "decltype", "1", TCL_GLOBAL_ONLY);
|
||||
#endif
|
||||
|
||||
#ifdef SQLITE_OMIT_DISKIO
|
||||
Tcl_SetVar2(interp, "sqlite_options", "diskio", "0", TCL_GLOBAL_ONLY);
|
||||
#else
|
||||
|
||||
+10
-2
@@ -15,7 +15,7 @@
|
||||
** or VDBE. The VDBE implements an abstract machine that runs a
|
||||
** simple program to access and modify the underlying database.
|
||||
**
|
||||
** $Id: vdbe.h,v 1.125 2008/01/17 17:27:31 drh Exp $
|
||||
** $Id: vdbe.h,v 1.126 2008/03/22 01:07:18 drh Exp $
|
||||
*/
|
||||
#ifndef _SQLITE_VDBE_H_
|
||||
#define _SQLITE_VDBE_H_
|
||||
@@ -119,7 +119,15 @@ typedef struct VdbeOpList VdbeOpList;
|
||||
#define COLNAME_DATABASE 2
|
||||
#define COLNAME_TABLE 3
|
||||
#define COLNAME_COLUMN 4
|
||||
#define COLNAME_N 5 /* Number of COLNAME_xxx symbols */
|
||||
#ifdef SQLITE_ENABLE_COLUMN_METADATA
|
||||
# define COLNAME_N 5 /* Number of COLNAME_xxx symbols */
|
||||
#else
|
||||
# ifdef SQLITE_OMIT_DECLTYPE
|
||||
# define COLNAME_N 1 /* Store only the name */
|
||||
# else
|
||||
# define COLNAME_N 2 /* Store the name and decltype */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
** The following macro converts a relative address in the p2 field
|
||||
|
||||
@@ -752,6 +752,16 @@ const void *sqlite3_column_name16(sqlite3_stmt *pStmt, int N){
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Constraint: If you have ENABLE_COLUMN_METADATA then you must
|
||||
** not define OMIT_DECLTYPE.
|
||||
*/
|
||||
#if defined(SQLITE_OMIT_DECLTYPE) && defined(SQLITE_ENABLE_COLUMN_METADATA)
|
||||
# error "Must not define both SQLITE_OMIT_DECLTYPE \
|
||||
and SQLITE_ENABLE_COLUMN_METADATA"
|
||||
#endif
|
||||
|
||||
#ifndef SQLITE_OMIT_DECLTYPE
|
||||
/*
|
||||
** Return the column declaration type (if applicable) of the 'i'th column
|
||||
** of the result set of SQL statement pStmt.
|
||||
@@ -766,6 +776,7 @@ const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){
|
||||
pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_DECLTYPE);
|
||||
}
|
||||
#endif /* SQLITE_OMIT_UTF16 */
|
||||
#endif /* SQLITE_OMIT_DECLTYPE */
|
||||
|
||||
#ifdef SQLITE_ENABLE_COLUMN_METADATA
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user