mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Change the names of external symbols from sqlite_XXX to sqlite3_XXX. (CVS 1337)
FossilOrigin-Name: ba2ba24263a9e4d1b65b441295504a5da6380f33
This commit is contained in:
32
manifest
32
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Add\ssome\sfunctions\sto\sserialize\sand\sdeserialize\svdbe\svalues\s(used\nby\smanifest\styping).\s(CVS\s1336)
|
C Change\sthe\snames\sof\sexternal\ssymbols\sfrom\ssqlite_XXX\sto\ssqlite3_XXX.\s(CVS\s1337)
|
||||||
D 2004-05-10T10:05:54
|
D 2004-05-10T10:34:34
|
||||||
F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
|
F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
|
||||||
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
|
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
|
||||||
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
||||||
@@ -22,21 +22,21 @@ F sqlite.1 83f4a9d37bdf2b7ef079a82d54eaf2e3509ee6ea
|
|||||||
F sqlite.def fc4f5734786fe4743cfe2aa98eb2da4b089edb5f
|
F sqlite.def fc4f5734786fe4743cfe2aa98eb2da4b089edb5f
|
||||||
F sqlite.pc.in 30552343140c53304c2a658c080fbe810cd09ca2
|
F sqlite.pc.in 30552343140c53304c2a658c080fbe810cd09ca2
|
||||||
F src/attach.c fa9a58234406d84eeb900517d0c0adc4b2da051a
|
F src/attach.c fa9a58234406d84eeb900517d0c0adc4b2da051a
|
||||||
F src/auth.c a2a46e3ed7799134cf3d2dd5ae6650115f26b653
|
F src/auth.c 5c2f0bea4729c98c2be3b69d6b466fc51448fe79
|
||||||
F src/btree.c b4c04b7867ccabaa1b04d5691a1bc6d0a27e6c6b
|
F src/btree.c b5950a1fece49f4a57f49a88b80610aae120bf16
|
||||||
F src/btree.h 7c3939a2e5f782c1ebac3bf43c02a16febad6df1
|
F src/btree.h 7c3939a2e5f782c1ebac3bf43c02a16febad6df1
|
||||||
F src/btree_rb.c 47e5b5ec90846af392b5668b34648198ba459561
|
F src/btree_rb.c 9d7973e266ee6f9c61ce592f68742ce9cd5b10e5
|
||||||
F src/build.c 44ee22de8168465ba99d780dbb2091b9c2822e56
|
F src/build.c 8d9965b3ce5dcc1bd4dac60bd0f14524fea269cb
|
||||||
F src/copy.c 3c33157f6b4919d6851602b78008c67d466cdadd
|
F src/copy.c 4d2038602fd0549d80c59bda27d96f13ea9b5e29
|
||||||
F src/date.c ca325e0752a88656ba798bc0666fa41498941732
|
F src/date.c 1564caa119511a1bb23dd0b1530ad38ed8c3349b
|
||||||
F src/delete.c c6f881904504619ef00c495d535aa0c60a1ddbdc
|
F src/delete.c 889a7e9f0365622a2ad5859d9c9df10ece12e363
|
||||||
F src/encode.c a876af473d1d636faa3dca51c7571f2e007eea37
|
F src/encode.c a876af473d1d636faa3dca51c7571f2e007eea37
|
||||||
F src/expr.c efd9daf50407ed27a0a50753e6d6c086320260cd
|
F src/expr.c 7667e214b17a100e013005d42c1b91be73d9ecfe
|
||||||
F src/func.c f87eec5cf103f739ba32866660ce22d000c5723f
|
F src/func.c 6cf6501f092b41c8cd9368b09c287016c0576438
|
||||||
F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f
|
F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f
|
||||||
F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
|
F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
|
||||||
F src/insert.c 954c0ddabc10899526c975b403ca4352d253f2e0
|
F src/insert.c 2d082257784a8613b1b50cd5bbf42b9466646a0e
|
||||||
F src/main.c f60224784f2f3d862ad116777cfe6596dbaaeb16
|
F src/main.c 45f0dc84265d18b0e99500dced4975df8a041481
|
||||||
F src/md5.c 01d2f55b06316d242749759b6a37186439ef7fe3
|
F src/md5.c 01d2f55b06316d242749759b6a37186439ef7fe3
|
||||||
F src/os.c 4092dcc87e66f49ed660fae1519569a0cee34da0
|
F src/os.c 4092dcc87e66f49ed660fae1519569a0cee34da0
|
||||||
F src/os.h fbb2f6595fc34fa351830d88fe1c6b85118f0383
|
F src/os.h fbb2f6595fc34fa351830d88fe1c6b85118f0383
|
||||||
@@ -187,7 +187,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
|
|||||||
F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
|
F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
|
||||||
F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
|
F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
|
||||||
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
|
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
|
||||||
P 9ea8e8ab23d46adb2970ccf62340703ec42345fa
|
P 05434497ba5d9971d23144eb4b9d709c233f6546
|
||||||
R 618584a23469029fa2139630ad76562b
|
R 61565b7b4d0b0c747dc3c710b9222d1e
|
||||||
U danielk1977
|
U danielk1977
|
||||||
Z 0608f60d741fd851f2193190bf722d0f
|
Z cdb3555cc5ea64d3d31c0c0c46963b23
|
||||||
|
@@ -1 +1 @@
|
|||||||
05434497ba5d9971d23144eb4b9d709c233f6546
|
ba2ba24263a9e4d1b65b441295504a5da6380f33
|
@@ -9,12 +9,12 @@
|
|||||||
** May you share freely, never taking more than you give.
|
** May you share freely, never taking more than you give.
|
||||||
**
|
**
|
||||||
*************************************************************************
|
*************************************************************************
|
||||||
** This file contains code used to implement the sqlite_set_authorizer()
|
** This file contains code used to implement the sqlite3_set_authorizer()
|
||||||
** API. This facility is an optional feature of the library. Embedded
|
** API. This facility is an optional feature of the library. Embedded
|
||||||
** systems that do not need this facility may omit it by recompiling
|
** systems that do not need this facility may omit it by recompiling
|
||||||
** the library with -DSQLITE_OMIT_AUTHORIZATION=1
|
** the library with -DSQLITE_OMIT_AUTHORIZATION=1
|
||||||
**
|
**
|
||||||
** $Id: auth.c,v 1.13 2004/05/08 08:23:21 danielk1977 Exp $
|
** $Id: auth.c,v 1.14 2004/05/10 10:34:34 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
** the table and the column that are being accessed. The auth function
|
** the table and the column that are being accessed. The auth function
|
||||||
** should return either SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE. If
|
** should return either SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE. If
|
||||||
** SQLITE_OK is returned, it means that access is allowed. SQLITE_DENY
|
** SQLITE_OK is returned, it means that access is allowed. SQLITE_DENY
|
||||||
** means that the SQL statement will never-run - the sqlite_exec() call
|
** means that the SQL statement will never-run - the sqlite3_exec() call
|
||||||
** will return with an error. SQLITE_IGNORE means that the SQL statement
|
** will return with an error. SQLITE_IGNORE means that the SQL statement
|
||||||
** should run but attempts to read the specified column will return NULL
|
** should run but attempts to read the specified column will return NULL
|
||||||
** and attempts to write the column will be ignored.
|
** and attempts to write the column will be ignored.
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
** Setting the auth function to NULL disables this hook. The default
|
** Setting the auth function to NULL disables this hook. The default
|
||||||
** setting of the auth function is NULL.
|
** setting of the auth function is NULL.
|
||||||
*/
|
*/
|
||||||
int sqlite_set_authorizer(
|
int sqlite3_set_authorizer(
|
||||||
sqlite *db,
|
sqlite *db,
|
||||||
int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
|
int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
|
||||||
void *pArg
|
void *pArg
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
** May you share freely, never taking more than you give.
|
** May you share freely, never taking more than you give.
|
||||||
**
|
**
|
||||||
*************************************************************************
|
*************************************************************************
|
||||||
** $Id: btree.c,v 1.120 2004/05/09 20:40:11 drh Exp $
|
** $Id: btree.c,v 1.121 2004/05/10 10:34:34 danielk1977 Exp $
|
||||||
**
|
**
|
||||||
** This file implements a external (disk-based) database using BTrees.
|
** This file implements a external (disk-based) database using BTrees.
|
||||||
** For a detailed discussion of BTrees, refer to
|
** For a detailed discussion of BTrees, refer to
|
||||||
@@ -643,7 +643,7 @@ static void freeSpace(MemPage *pPage, int start, int size){
|
|||||||
static int resizeCellArray(MemPage *pPage, int nNewSz){
|
static int resizeCellArray(MemPage *pPage, int nNewSz){
|
||||||
if( pPage->nCellAlloc<nNewSz ){
|
if( pPage->nCellAlloc<nNewSz ){
|
||||||
pPage->aCell = sqliteRealloc(pPage->aCell, nNewSz*sizeof(pPage->aCell[0]) );
|
pPage->aCell = sqliteRealloc(pPage->aCell, nNewSz*sizeof(pPage->aCell[0]) );
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
pPage->nCellAlloc = nNewSz;
|
pPage->nCellAlloc = nNewSz;
|
||||||
}
|
}
|
||||||
return SQLITE_OK;
|
return SQLITE_OK;
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
** May you share freely, never taking more than you give.
|
** May you share freely, never taking more than you give.
|
||||||
**
|
**
|
||||||
*************************************************************************
|
*************************************************************************
|
||||||
** $Id: btree_rb.c,v 1.25 2004/05/08 08:23:23 danielk1977 Exp $
|
** $Id: btree_rb.c,v 1.26 2004/05/10 10:34:35 danielk1977 Exp $
|
||||||
**
|
**
|
||||||
** This file implements an in-core database using Red-Black balanced
|
** This file implements an in-core database using Red-Black balanced
|
||||||
** binary trees.
|
** binary trees.
|
||||||
@@ -617,12 +617,12 @@ int sqliteRbtreeOpen(
|
|||||||
){
|
){
|
||||||
Rbtree **ppRbtree = (Rbtree**)ppBtree;
|
Rbtree **ppRbtree = (Rbtree**)ppBtree;
|
||||||
*ppRbtree = (Rbtree *)sqliteMalloc(sizeof(Rbtree));
|
*ppRbtree = (Rbtree *)sqliteMalloc(sizeof(Rbtree));
|
||||||
if( sqlite_malloc_failed ) goto open_no_mem;
|
if( sqlite3_malloc_failed ) goto open_no_mem;
|
||||||
sqlite3HashInit(&(*ppRbtree)->tblHash, SQLITE_HASH_INT, 0);
|
sqlite3HashInit(&(*ppRbtree)->tblHash, SQLITE_HASH_INT, 0);
|
||||||
|
|
||||||
/* Create a binary tree for the SQLITE_MASTER table at location 2 */
|
/* Create a binary tree for the SQLITE_MASTER table at location 2 */
|
||||||
btreeCreateTable(*ppRbtree, 2);
|
btreeCreateTable(*ppRbtree, 2);
|
||||||
if( sqlite_malloc_failed ) goto open_no_mem;
|
if( sqlite3_malloc_failed ) goto open_no_mem;
|
||||||
(*ppRbtree)->next_idx = 3;
|
(*ppRbtree)->next_idx = 3;
|
||||||
(*ppRbtree)->pOps = &sqliteRbtreeOps;
|
(*ppRbtree)->pOps = &sqliteRbtreeOps;
|
||||||
/* Set file type to 4; this is so that "attach ':memory:' as ...." does not
|
/* Set file type to 4; this is so that "attach ':memory:' as ...." does not
|
||||||
@@ -647,7 +647,7 @@ static int memRbtreeCreateTable(Rbtree* tree, int* n)
|
|||||||
|
|
||||||
*n = tree->next_idx++;
|
*n = tree->next_idx++;
|
||||||
btreeCreateTable(tree, *n);
|
btreeCreateTable(tree, *n);
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
|
|
||||||
/* Set up the rollback structure (if we are not doing this as part of a
|
/* Set up the rollback structure (if we are not doing this as part of a
|
||||||
* rollback) */
|
* rollback) */
|
||||||
@@ -720,7 +720,7 @@ static int memRbtreeCursor(
|
|||||||
RbtCursor *pCur;
|
RbtCursor *pCur;
|
||||||
assert(tree);
|
assert(tree);
|
||||||
pCur = *ppCur = sqliteMalloc(sizeof(RbtCursor));
|
pCur = *ppCur = sqliteMalloc(sizeof(RbtCursor));
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
pCur->pTree = sqlite3HashFind(&tree->tblHash, 0, iTable);
|
pCur->pTree = sqlite3HashFind(&tree->tblHash, 0, iTable);
|
||||||
assert( pCur->pTree );
|
assert( pCur->pTree );
|
||||||
pCur->pRbtree = tree;
|
pCur->pRbtree = tree;
|
||||||
@@ -764,7 +764,7 @@ static int memRbtreeInsert(
|
|||||||
/* Take a copy of the input data now, in case we need it for the
|
/* Take a copy of the input data now, in case we need it for the
|
||||||
* replace case */
|
* replace case */
|
||||||
pData = sqliteMallocRaw(nData);
|
pData = sqliteMallocRaw(nData);
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
memcpy(pData, pDataInput, nData);
|
memcpy(pData, pDataInput, nData);
|
||||||
|
|
||||||
/* Move the cursor to a node near the key to be inserted. If the key already
|
/* Move the cursor to a node near the key to be inserted. If the key already
|
||||||
@@ -784,7 +784,7 @@ static int memRbtreeInsert(
|
|||||||
if( pNode==0 ) return SQLITE_NOMEM;
|
if( pNode==0 ) return SQLITE_NOMEM;
|
||||||
pNode->nKey = nKey;
|
pNode->nKey = nKey;
|
||||||
pNode->pKey = sqliteMallocRaw(nKey);
|
pNode->pKey = sqliteMallocRaw(nKey);
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
memcpy(pNode->pKey, pKey, nKey);
|
memcpy(pNode->pKey, pKey, nKey);
|
||||||
pNode->nData = nData;
|
pNode->nData = nData;
|
||||||
pNode->pData = pData;
|
pNode->pData = pData;
|
||||||
@@ -821,7 +821,7 @@ static int memRbtreeInsert(
|
|||||||
pOp->iTab = pCur->iTree;
|
pOp->iTab = pCur->iTree;
|
||||||
pOp->nKey = pNode->nKey;
|
pOp->nKey = pNode->nKey;
|
||||||
pOp->pKey = sqliteMallocRaw( pOp->nKey );
|
pOp->pKey = sqliteMallocRaw( pOp->nKey );
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
memcpy( pOp->pKey, pNode->pKey, pOp->nKey );
|
memcpy( pOp->pKey, pNode->pKey, pOp->nKey );
|
||||||
btreeLogRollbackOp(pCur->pRbtree, pOp);
|
btreeLogRollbackOp(pCur->pRbtree, pOp);
|
||||||
}
|
}
|
||||||
@@ -837,7 +837,7 @@ static int memRbtreeInsert(
|
|||||||
pOp->iTab = pCur->iTree;
|
pOp->iTab = pCur->iTree;
|
||||||
pOp->nKey = pCur->pNode->nKey;
|
pOp->nKey = pCur->pNode->nKey;
|
||||||
pOp->pKey = sqliteMallocRaw( pOp->nKey );
|
pOp->pKey = sqliteMallocRaw( pOp->nKey );
|
||||||
if( sqlite_malloc_failed ) return SQLITE_NOMEM;
|
if( sqlite3_malloc_failed ) return SQLITE_NOMEM;
|
||||||
memcpy( pOp->pKey, pCur->pNode->pKey, pOp->nKey );
|
memcpy( pOp->pKey, pCur->pNode->pKey, pOp->nKey );
|
||||||
pOp->nData = pCur->pNode->nData;
|
pOp->nData = pCur->pNode->nData;
|
||||||
pOp->pData = pCur->pNode->pData;
|
pOp->pData = pCur->pNode->pData;
|
||||||
|
20
src/build.c
20
src/build.c
@@ -23,7 +23,7 @@
|
|||||||
** ROLLBACK
|
** ROLLBACK
|
||||||
** PRAGMA
|
** PRAGMA
|
||||||
**
|
**
|
||||||
** $Id: build.c,v 1.178 2004/05/10 01:17:37 danielk1977 Exp $
|
** $Id: build.c,v 1.179 2004/05/10 10:34:35 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -71,7 +71,7 @@ void sqlite3Exec(Parse *pParse){
|
|||||||
if( v==0 && (v = sqlite3GetVdbe(pParse))!=0 ){
|
if( v==0 && (v = sqlite3GetVdbe(pParse))!=0 ){
|
||||||
sqlite3VdbeAddOp(v, OP_Halt, 0, 0);
|
sqlite3VdbeAddOp(v, OP_Halt, 0, 0);
|
||||||
}
|
}
|
||||||
if( sqlite_malloc_failed ) return;
|
if( sqlite3_malloc_failed ) return;
|
||||||
if( v && pParse->nErr==0 ){
|
if( v && pParse->nErr==0 ){
|
||||||
FILE *trace = (db->flags & SQLITE_VdbeTrace)!=0 ? stdout : 0;
|
FILE *trace = (db->flags & SQLITE_VdbeTrace)!=0 ? stdout : 0;
|
||||||
sqlite3VdbeTrace(v, trace);
|
sqlite3VdbeTrace(v, trace);
|
||||||
@@ -884,7 +884,7 @@ void sqlite3EndTable(Parse *pParse, Token *pEnd, Select *pSelect){
|
|||||||
Table *p;
|
Table *p;
|
||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
|
|
||||||
if( (pEnd==0 && pSelect==0) || pParse->nErr || sqlite_malloc_failed ) return;
|
if( (pEnd==0 && pSelect==0) || pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
p = pParse->pNewTable;
|
p = pParse->pNewTable;
|
||||||
if( p==0 ) return;
|
if( p==0 ) return;
|
||||||
|
|
||||||
@@ -1018,7 +1018,7 @@ void sqlite3CreateView(
|
|||||||
/* Make a copy of the entire SELECT statement that defines the view.
|
/* Make a copy of the entire SELECT statement that defines the view.
|
||||||
** This will force all the Expr.token.z values to be dynamically
|
** This will force all the Expr.token.z values to be dynamically
|
||||||
** allocated rather than point to the input string - which means that
|
** allocated rather than point to the input string - which means that
|
||||||
** they will persist after the current sqlite_exec() call returns.
|
** they will persist after the current sqlite3_exec() call returns.
|
||||||
*/
|
*/
|
||||||
p->pSelect = sqlite3SelectDup(pSelect);
|
p->pSelect = sqlite3SelectDup(pSelect);
|
||||||
sqlite3SelectDelete(pSelect);
|
sqlite3SelectDelete(pSelect);
|
||||||
@@ -1179,7 +1179,7 @@ void sqlite3DropTable(Parse *pParse, Token *pName, int isView){
|
|||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
int iDb;
|
int iDb;
|
||||||
|
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) return;
|
if( pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
pTable = sqlite3TableFromToken(pParse, pName);
|
pTable = sqlite3TableFromToken(pParse, pName);
|
||||||
if( pTable==0 ) return;
|
if( pTable==0 ) return;
|
||||||
iDb = pTable->iDb;
|
iDb = pTable->iDb;
|
||||||
@@ -1487,7 +1487,7 @@ void sqlite3CreateIndex(
|
|||||||
int isTemp; /* True for a temporary index */
|
int isTemp; /* True for a temporary index */
|
||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
|
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) goto exit_create_index;
|
if( pParse->nErr || sqlite3_malloc_failed ) goto exit_create_index;
|
||||||
if( db->init.busy
|
if( db->init.busy
|
||||||
&& sqlite3FixInit(&sFix, pParse, db->init.iDb, "index", pName)
|
&& sqlite3FixInit(&sFix, pParse, db->init.iDb, "index", pName)
|
||||||
&& sqlite3FixSrcList(&sFix, pTable)
|
&& sqlite3FixSrcList(&sFix, pTable)
|
||||||
@@ -1759,7 +1759,7 @@ void sqlite3DropIndex(Parse *pParse, SrcList *pName){
|
|||||||
Vdbe *v;
|
Vdbe *v;
|
||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
|
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) return;
|
if( pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
assert( pName->nSrc==1 );
|
assert( pName->nSrc==1 );
|
||||||
pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase);
|
pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase);
|
||||||
if( pIndex==0 ){
|
if( pIndex==0 ){
|
||||||
@@ -2020,7 +2020,7 @@ void sqlite3BeginTransaction(Parse *pParse, int onError){
|
|||||||
sqlite *db;
|
sqlite *db;
|
||||||
|
|
||||||
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) return;
|
if( pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ) return;
|
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ) return;
|
||||||
if( db->flags & SQLITE_InTrans ){
|
if( db->flags & SQLITE_InTrans ){
|
||||||
sqlite3ErrorMsg(pParse, "cannot start a transaction within a transaction");
|
sqlite3ErrorMsg(pParse, "cannot start a transaction within a transaction");
|
||||||
@@ -2040,7 +2040,7 @@ void sqlite3CommitTransaction(Parse *pParse){
|
|||||||
sqlite *db;
|
sqlite *db;
|
||||||
|
|
||||||
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) return;
|
if( pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "COMMIT", 0, 0) ) return;
|
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "COMMIT", 0, 0) ) return;
|
||||||
if( (db->flags & SQLITE_InTrans)==0 ){
|
if( (db->flags & SQLITE_InTrans)==0 ){
|
||||||
sqlite3ErrorMsg(pParse, "cannot commit - no transaction is active");
|
sqlite3ErrorMsg(pParse, "cannot commit - no transaction is active");
|
||||||
@@ -2063,7 +2063,7 @@ void sqlite3RollbackTransaction(Parse *pParse){
|
|||||||
Vdbe *v;
|
Vdbe *v;
|
||||||
|
|
||||||
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
if( pParse==0 || (db=pParse->db)==0 || db->aDb[0].pBt==0 ) return;
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) return;
|
if( pParse->nErr || sqlite3_malloc_failed ) return;
|
||||||
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "ROLLBACK", 0, 0) ) return;
|
if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "ROLLBACK", 0, 0) ) return;
|
||||||
if( (db->flags & SQLITE_InTrans)==0 ){
|
if( (db->flags & SQLITE_InTrans)==0 ){
|
||||||
sqlite3ErrorMsg(pParse, "cannot rollback - no transaction is active");
|
sqlite3ErrorMsg(pParse, "cannot rollback - no transaction is active");
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
*************************************************************************
|
*************************************************************************
|
||||||
** This file contains code used to implement the COPY command.
|
** This file contains code used to implement the COPY command.
|
||||||
**
|
**
|
||||||
** $Id: copy.c,v 1.10 2004/05/08 08:23:24 danielk1977 Exp $
|
** $Id: copy.c,v 1.11 2004/05/10 10:34:35 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ void sqlite3Copy(
|
|||||||
sqlite *db = pParse->db;
|
sqlite *db = pParse->db;
|
||||||
|
|
||||||
|
|
||||||
if( sqlite_malloc_failed ) goto copy_cleanup;
|
if( sqlite3_malloc_failed ) goto copy_cleanup;
|
||||||
assert( pTableName->nSrc==1 );
|
assert( pTableName->nSrc==1 );
|
||||||
pTab = sqlite3SrcListLookup(pParse, pTableName);
|
pTab = sqlite3SrcListLookup(pParse, pTableName);
|
||||||
if( pTab==0 || sqlite3IsReadOnly(pParse, pTab, 0) ) goto copy_cleanup;
|
if( pTab==0 || sqlite3IsReadOnly(pParse, pTab, 0) ) goto copy_cleanup;
|
||||||
|
16
src/date.c
16
src/date.c
@@ -16,7 +16,7 @@
|
|||||||
** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
|
** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
|
||||||
** All other code has file scope.
|
** All other code has file scope.
|
||||||
**
|
**
|
||||||
** $Id: date.c,v 1.17 2004/05/08 08:23:24 danielk1977 Exp $
|
** $Id: date.c,v 1.18 2004/05/10 10:34:35 danielk1977 Exp $
|
||||||
**
|
**
|
||||||
** NOTES:
|
** NOTES:
|
||||||
**
|
**
|
||||||
@@ -666,7 +666,7 @@ static void juliandayFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
DateTime x;
|
DateTime x;
|
||||||
if( isDate(argc, argv, &x)==0 ){
|
if( isDate(argc, argv, &x)==0 ){
|
||||||
computeJD(&x);
|
computeJD(&x);
|
||||||
sqlite_set_result_double(context, x.rJD);
|
sqlite3_set_result_double(context, x.rJD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -682,7 +682,7 @@ static void datetimeFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
computeYMD_HMS(&x);
|
computeYMD_HMS(&x);
|
||||||
sprintf(zBuf, "%04d-%02d-%02d %02d:%02d:%02d",x.Y, x.M, x.D, x.h, x.m,
|
sprintf(zBuf, "%04d-%02d-%02d %02d:%02d:%02d",x.Y, x.M, x.D, x.h, x.m,
|
||||||
(int)(x.s));
|
(int)(x.s));
|
||||||
sqlite_set_result_string(context, zBuf, -1);
|
sqlite3_set_result_string(context, zBuf, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -697,7 +697,7 @@ static void timeFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
char zBuf[100];
|
char zBuf[100];
|
||||||
computeHMS(&x);
|
computeHMS(&x);
|
||||||
sprintf(zBuf, "%02d:%02d:%02d", x.h, x.m, (int)x.s);
|
sprintf(zBuf, "%02d:%02d:%02d", x.h, x.m, (int)x.s);
|
||||||
sqlite_set_result_string(context, zBuf, -1);
|
sqlite3_set_result_string(context, zBuf, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -712,7 +712,7 @@ static void dateFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
char zBuf[100];
|
char zBuf[100];
|
||||||
computeYMD(&x);
|
computeYMD(&x);
|
||||||
sprintf(zBuf, "%04d-%02d-%02d", x.Y, x.M, x.D);
|
sprintf(zBuf, "%04d-%02d-%02d", x.Y, x.M, x.D);
|
||||||
sqlite_set_result_string(context, zBuf, -1);
|
sqlite3_set_result_string(context, zBuf, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -832,7 +832,7 @@ static void strftimeFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
z[j] = 0;
|
z[j] = 0;
|
||||||
sqlite_set_result_string(context, z, -1);
|
sqlite3_set_result_string(context, z, -1);
|
||||||
if( z!=zBuf ){
|
if( z!=zBuf ){
|
||||||
sqliteFree(z);
|
sqliteFree(z);
|
||||||
}
|
}
|
||||||
@@ -864,10 +864,10 @@ void sqlite3RegisterDateTimeFunctions(sqlite *db){
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for(i=0; i<sizeof(aFuncs)/sizeof(aFuncs[0]); i++){
|
for(i=0; i<sizeof(aFuncs)/sizeof(aFuncs[0]); i++){
|
||||||
sqlite_create_function(db, aFuncs[i].zName,
|
sqlite3_create_function(db, aFuncs[i].zName,
|
||||||
aFuncs[i].nArg, aFuncs[i].xFunc, 0);
|
aFuncs[i].nArg, aFuncs[i].xFunc, 0);
|
||||||
if( aFuncs[i].xFunc ){
|
if( aFuncs[i].xFunc ){
|
||||||
sqlite_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);
|
sqlite3_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
** This file contains C code routines that are called by the parser
|
** This file contains C code routines that are called by the parser
|
||||||
** to handle DELETE FROM statements.
|
** to handle DELETE FROM statements.
|
||||||
**
|
**
|
||||||
** $Id: delete.c,v 1.62 2004/05/08 08:23:24 danielk1977 Exp $
|
** $Id: delete.c,v 1.63 2004/05/10 10:34:35 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ void sqlite3DeleteFrom(
|
|||||||
int oldIdx = -1; /* Cursor for the OLD table of AFTER triggers */
|
int oldIdx = -1; /* Cursor for the OLD table of AFTER triggers */
|
||||||
|
|
||||||
sContext.pParse = 0;
|
sContext.pParse = 0;
|
||||||
if( pParse->nErr || sqlite_malloc_failed ){
|
if( pParse->nErr || sqlite3_malloc_failed ){
|
||||||
pTabList = 0;
|
pTabList = 0;
|
||||||
goto delete_from_cleanup;
|
goto delete_from_cleanup;
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
** This file contains routines used for analyzing expressions and
|
** This file contains routines used for analyzing expressions and
|
||||||
** for generating VDBE code that evaluates expressions in SQLite.
|
** for generating VDBE code that evaluates expressions in SQLite.
|
||||||
**
|
**
|
||||||
** $Id: expr.c,v 1.115 2004/05/08 08:23:24 danielk1977 Exp $
|
** $Id: expr.c,v 1.116 2004/05/10 10:34:37 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -166,7 +166,7 @@ ExprList *sqlite3ExprListDup(ExprList *p){
|
|||||||
sqlite3TokenCopy(&pNewExpr->span, &pOldExpr->span);
|
sqlite3TokenCopy(&pNewExpr->span, &pOldExpr->span);
|
||||||
}
|
}
|
||||||
assert( pNewExpr==0 || pNewExpr->span.z!=0
|
assert( pNewExpr==0 || pNewExpr->span.z!=0
|
||||||
|| pOldExpr->span.z==0 || sqlite_malloc_failed );
|
|| pOldExpr->span.z==0 || sqlite3_malloc_failed );
|
||||||
pItem->zName = sqliteStrDup(p->a[i].zName);
|
pItem->zName = sqliteStrDup(p->a[i].zName);
|
||||||
pItem->sortOrder = p->a[i].sortOrder;
|
pItem->sortOrder = p->a[i].sortOrder;
|
||||||
pItem->isAgg = p->a[i].isAgg;
|
pItem->isAgg = p->a[i].isAgg;
|
||||||
@@ -436,7 +436,7 @@ static int lookupName(
|
|||||||
}
|
}
|
||||||
zCol = sqliteStrNDup(pColumnToken->z, pColumnToken->n);
|
zCol = sqliteStrNDup(pColumnToken->z, pColumnToken->n);
|
||||||
sqlite3Dequote(zCol);
|
sqlite3Dequote(zCol);
|
||||||
if( sqlite_malloc_failed ){
|
if( sqlite3_malloc_failed ){
|
||||||
return 1; /* Leak memory (zDb and zTab) if malloc fails */
|
return 1; /* Leak memory (zDb and zTab) if malloc fails */
|
||||||
}
|
}
|
||||||
assert( zTab==0 || pEList==0 );
|
assert( zTab==0 || pEList==0 );
|
||||||
|
104
src/func.c
104
src/func.c
@@ -16,7 +16,7 @@
|
|||||||
** sqliteRegisterBuildinFunctions() found at the bottom of the file.
|
** sqliteRegisterBuildinFunctions() found at the bottom of the file.
|
||||||
** All other code has file scope.
|
** All other code has file scope.
|
||||||
**
|
**
|
||||||
** $Id: func.c,v 1.44 2004/05/08 08:23:25 danielk1977 Exp $
|
** $Id: func.c,v 1.45 2004/05/10 10:34:38 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
@@ -35,7 +35,7 @@ static void minmaxFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
int mask; /* 0 for min() or 0xffffffff for max() */
|
int mask; /* 0 for min() or 0xffffffff for max() */
|
||||||
|
|
||||||
if( argc==0 ) return;
|
if( argc==0 ) return;
|
||||||
mask = (int)sqlite_user_data(context);
|
mask = (int)sqlite3_user_data(context);
|
||||||
zBest = argv[0];
|
zBest = argv[0];
|
||||||
if( zBest==0 ) return;
|
if( zBest==0 ) return;
|
||||||
if( argv[1][0]=='n' ){
|
if( argv[1][0]=='n' ){
|
||||||
@@ -49,7 +49,7 @@ static void minmaxFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
zBest = argv[i];
|
zBest = argv[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sqlite_set_result_string(context, zBest, -1);
|
sqlite3_set_result_string(context, zBest, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -57,7 +57,7 @@ static void minmaxFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
*/
|
*/
|
||||||
static void typeofFunc(sqlite_func *context, int argc, const char **argv){
|
static void typeofFunc(sqlite_func *context, int argc, const char **argv){
|
||||||
assert( argc==2 );
|
assert( argc==2 );
|
||||||
sqlite_set_result_string(context, argv[1], -1);
|
sqlite3_set_result_string(context, argv[1], -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -75,7 +75,7 @@ static void lengthFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
#else
|
#else
|
||||||
len = strlen(z);
|
len = strlen(z);
|
||||||
#endif
|
#endif
|
||||||
sqlite_set_result_int(context, len);
|
sqlite3_set_result_int(context, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -87,7 +87,7 @@ static void absFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
z = argv[0];
|
z = argv[0];
|
||||||
if( z==0 ) return;
|
if( z==0 ) return;
|
||||||
if( z[0]=='-' && isdigit(z[1]) ) z++;
|
if( z[0]=='-' && isdigit(z[1]) ) z++;
|
||||||
sqlite_set_result_string(context, z, -1);
|
sqlite3_set_result_string(context, z, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -133,7 +133,7 @@ static void substrFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
while( z[i] && (z[i]&0xc0)==0x80 ){ i++; p2++; }
|
while( z[i] && (z[i]&0xc0)==0x80 ){ i++; p2++; }
|
||||||
#endif
|
#endif
|
||||||
if( p2<0 ) p2 = 0;
|
if( p2<0 ) p2 = 0;
|
||||||
sqlite_set_result_string(context, &z[p1], p2);
|
sqlite3_set_result_string(context, &z[p1], p2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -150,7 +150,7 @@ static void roundFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
if( n<0 ) n = 0;
|
if( n<0 ) n = 0;
|
||||||
r = sqlite3AtoF(argv[0], 0);
|
r = sqlite3AtoF(argv[0], 0);
|
||||||
sprintf(zBuf,"%.*f",n,r);
|
sprintf(zBuf,"%.*f",n,r);
|
||||||
sqlite_set_result_string(context, zBuf, -1);
|
sqlite3_set_result_string(context, zBuf, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -160,7 +160,7 @@ static void upperFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
char *z;
|
char *z;
|
||||||
int i;
|
int i;
|
||||||
if( argc<1 || argv[0]==0 ) return;
|
if( argc<1 || argv[0]==0 ) return;
|
||||||
z = sqlite_set_result_string(context, argv[0], -1);
|
z = sqlite3_set_result_string(context, argv[0], -1);
|
||||||
if( z==0 ) return;
|
if( z==0 ) return;
|
||||||
for(i=0; z[i]; i++){
|
for(i=0; z[i]; i++){
|
||||||
if( islower(z[i]) ) z[i] = toupper(z[i]);
|
if( islower(z[i]) ) z[i] = toupper(z[i]);
|
||||||
@@ -170,7 +170,7 @@ static void lowerFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
char *z;
|
char *z;
|
||||||
int i;
|
int i;
|
||||||
if( argc<1 || argv[0]==0 ) return;
|
if( argc<1 || argv[0]==0 ) return;
|
||||||
z = sqlite_set_result_string(context, argv[0], -1);
|
z = sqlite3_set_result_string(context, argv[0], -1);
|
||||||
if( z==0 ) return;
|
if( z==0 ) return;
|
||||||
for(i=0; z[i]; i++){
|
for(i=0; z[i]; i++){
|
||||||
if( isupper(z[i]) ) z[i] = tolower(z[i]);
|
if( isupper(z[i]) ) z[i] = tolower(z[i]);
|
||||||
@@ -186,7 +186,7 @@ static void ifnullFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
int i;
|
int i;
|
||||||
for(i=0; i<argc; i++){
|
for(i=0; i<argc; i++){
|
||||||
if( argv[i] ){
|
if( argv[i] ){
|
||||||
sqlite_set_result_string(context, argv[i], -1);
|
sqlite3_set_result_string(context, argv[i], -1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,35 +198,35 @@ static void ifnullFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
static void randomFunc(sqlite_func *context, int argc, const char **argv){
|
static void randomFunc(sqlite_func *context, int argc, const char **argv){
|
||||||
int r;
|
int r;
|
||||||
sqlite3Randomness(sizeof(r), &r);
|
sqlite3Randomness(sizeof(r), &r);
|
||||||
sqlite_set_result_int(context, r);
|
sqlite3_set_result_int(context, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Implementation of the last_insert_rowid() SQL function. The return
|
** Implementation of the last_insert_rowid() SQL function. The return
|
||||||
** value is the same as the sqlite_last_insert_rowid() API function.
|
** value is the same as the sqlite3_last_insert_rowid() API function.
|
||||||
*/
|
*/
|
||||||
static void last_insert_rowid(sqlite_func *context, int arg, const char **argv){
|
static void last_insert_rowid(sqlite_func *context, int arg, const char **argv){
|
||||||
sqlite *db = sqlite_user_data(context);
|
sqlite *db = sqlite3_user_data(context);
|
||||||
sqlite_set_result_int(context, sqlite_last_insert_rowid(db));
|
sqlite3_set_result_int(context, sqlite3_last_insert_rowid(db));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Implementation of the change_count() SQL function. The return
|
** Implementation of the change_count() SQL function. The return
|
||||||
** value is the same as the sqlite_changes() API function.
|
** value is the same as the sqlite3_changes() API function.
|
||||||
*/
|
*/
|
||||||
static void change_count(sqlite_func *context, int arg, const char **argv){
|
static void change_count(sqlite_func *context, int arg, const char **argv){
|
||||||
sqlite *db = sqlite_user_data(context);
|
sqlite *db = sqlite3_user_data(context);
|
||||||
sqlite_set_result_int(context, sqlite_changes(db));
|
sqlite3_set_result_int(context, sqlite3_changes(db));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Implementation of the last_statement_change_count() SQL function. The
|
** Implementation of the last_statement_change_count() SQL function. The
|
||||||
** return value is the same as the sqlite_last_statement_changes() API function.
|
** return value is the same as the sqlite3_last_statement_changes() API function.
|
||||||
*/
|
*/
|
||||||
static void last_statement_change_count(sqlite_func *context, int arg,
|
static void last_statement_change_count(sqlite_func *context, int arg,
|
||||||
const char **argv){
|
const char **argv){
|
||||||
sqlite *db = sqlite_user_data(context);
|
sqlite *db = sqlite3_user_data(context);
|
||||||
sqlite_set_result_int(context, sqlite_last_statement_changes(db));
|
sqlite3_set_result_int(context, sqlite3_last_statement_changes(db));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -240,7 +240,7 @@ static void last_statement_change_count(sqlite_func *context, int arg,
|
|||||||
*/
|
*/
|
||||||
static void likeFunc(sqlite_func *context, int arg, const char **argv){
|
static void likeFunc(sqlite_func *context, int arg, const char **argv){
|
||||||
if( argv[0]==0 || argv[1]==0 ) return;
|
if( argv[0]==0 || argv[1]==0 ) return;
|
||||||
sqlite_set_result_int(context,
|
sqlite3_set_result_int(context,
|
||||||
sqlite3LikeCompare((const unsigned char*)argv[0],
|
sqlite3LikeCompare((const unsigned char*)argv[0],
|
||||||
(const unsigned char*)argv[1]));
|
(const unsigned char*)argv[1]));
|
||||||
}
|
}
|
||||||
@@ -256,7 +256,7 @@ static void likeFunc(sqlite_func *context, int arg, const char **argv){
|
|||||||
*/
|
*/
|
||||||
static void globFunc(sqlite_func *context, int arg, const char **argv){
|
static void globFunc(sqlite_func *context, int arg, const char **argv){
|
||||||
if( argv[0]==0 || argv[1]==0 ) return;
|
if( argv[0]==0 || argv[1]==0 ) return;
|
||||||
sqlite_set_result_int(context,
|
sqlite3_set_result_int(context,
|
||||||
sqlite3GlobCompare((const unsigned char*)argv[0],
|
sqlite3GlobCompare((const unsigned char*)argv[0],
|
||||||
(const unsigned char*)argv[1]));
|
(const unsigned char*)argv[1]));
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ static void globFunc(sqlite_func *context, int arg, const char **argv){
|
|||||||
*/
|
*/
|
||||||
static void nullifFunc(sqlite_func *context, int argc, const char **argv){
|
static void nullifFunc(sqlite_func *context, int argc, const char **argv){
|
||||||
if( argv[0]!=0 && sqlite3Compare(argv[0],argv[1])!=0 ){
|
if( argv[0]!=0 && sqlite3Compare(argv[0],argv[1])!=0 ){
|
||||||
sqlite_set_result_string(context, argv[0], -1);
|
sqlite3_set_result_string(context, argv[0], -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,7 +277,7 @@ static void nullifFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
** of the SQLite library that is running.
|
** of the SQLite library that is running.
|
||||||
*/
|
*/
|
||||||
static void versionFunc(sqlite_func *context, int argc, const char **argv){
|
static void versionFunc(sqlite_func *context, int argc, const char **argv){
|
||||||
sqlite_set_result_string(context, sqlite_version, -1);
|
sqlite3_set_result_string(context, sqlite3_version, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -294,9 +294,9 @@ static void versionFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
static void quoteFunc(sqlite_func *context, int argc, const char **argv){
|
static void quoteFunc(sqlite_func *context, int argc, const char **argv){
|
||||||
if( argc<1 ) return;
|
if( argc<1 ) return;
|
||||||
if( argv[0]==0 ){
|
if( argv[0]==0 ){
|
||||||
sqlite_set_result_string(context, "NULL", 4);
|
sqlite3_set_result_string(context, "NULL", 4);
|
||||||
}else if( sqlite3IsNumber(argv[0]) ){
|
}else if( sqlite3IsNumber(argv[0]) ){
|
||||||
sqlite_set_result_string(context, argv[0], -1);
|
sqlite3_set_result_string(context, argv[0], -1);
|
||||||
}else{
|
}else{
|
||||||
int i,j,n;
|
int i,j,n;
|
||||||
char *z;
|
char *z;
|
||||||
@@ -312,7 +312,7 @@ static void quoteFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
}
|
}
|
||||||
z[j++] = '\'';
|
z[j++] = '\'';
|
||||||
z[j] = 0;
|
z[j] = 0;
|
||||||
sqlite_set_result_string(context, z, j);
|
sqlite3_set_result_string(context, z, j);
|
||||||
sqliteFree(z);
|
sqliteFree(z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -350,9 +350,9 @@ static void soundexFunc(sqlite_func *context, int argc, const char **argv){
|
|||||||
zResult[j++] = '0';
|
zResult[j++] = '0';
|
||||||
}
|
}
|
||||||
zResult[j] = 0;
|
zResult[j] = 0;
|
||||||
sqlite_set_result_string(context, zResult, 4);
|
sqlite3_set_result_string(context, zResult, 4);
|
||||||
}else{
|
}else{
|
||||||
sqlite_set_result_string(context, "?000", 4);
|
sqlite3_set_result_string(context, "?000", 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -396,7 +396,7 @@ static void randStr(sqlite_func *context, int argc, const char **argv){
|
|||||||
zBuf[i] = zSrc[zBuf[i]%(sizeof(zSrc)-1)];
|
zBuf[i] = zSrc[zBuf[i]%(sizeof(zSrc)-1)];
|
||||||
}
|
}
|
||||||
zBuf[n] = 0;
|
zBuf[n] = 0;
|
||||||
sqlite_set_result_string(context, zBuf, n);
|
sqlite3_set_result_string(context, zBuf, n);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ struct SumCtx {
|
|||||||
static void sumStep(sqlite_func *context, int argc, const char **argv){
|
static void sumStep(sqlite_func *context, int argc, const char **argv){
|
||||||
SumCtx *p;
|
SumCtx *p;
|
||||||
if( argc<1 ) return;
|
if( argc<1 ) return;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p && argv[0] ){
|
if( p && argv[0] ){
|
||||||
p->sum += sqlite3AtoF(argv[0], 0);
|
p->sum += sqlite3AtoF(argv[0], 0);
|
||||||
p->cnt++;
|
p->cnt++;
|
||||||
@@ -424,14 +424,14 @@ static void sumStep(sqlite_func *context, int argc, const char **argv){
|
|||||||
}
|
}
|
||||||
static void sumFinalize(sqlite_func *context){
|
static void sumFinalize(sqlite_func *context){
|
||||||
SumCtx *p;
|
SumCtx *p;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
sqlite_set_result_double(context, p ? p->sum : 0.0);
|
sqlite3_set_result_double(context, p ? p->sum : 0.0);
|
||||||
}
|
}
|
||||||
static void avgFinalize(sqlite_func *context){
|
static void avgFinalize(sqlite_func *context){
|
||||||
SumCtx *p;
|
SumCtx *p;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p && p->cnt>0 ){
|
if( p && p->cnt>0 ){
|
||||||
sqlite_set_result_double(context, p->sum/(double)p->cnt);
|
sqlite3_set_result_double(context, p->sum/(double)p->cnt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,7 +454,7 @@ static void stdDevStep(sqlite_func *context, int argc, const char **argv){
|
|||||||
StdDevCtx *p;
|
StdDevCtx *p;
|
||||||
double x;
|
double x;
|
||||||
if( argc<1 ) return;
|
if( argc<1 ) return;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p && argv[0] ){
|
if( p && argv[0] ){
|
||||||
x = sqlite3AtoF(argv[0], 0);
|
x = sqlite3AtoF(argv[0], 0);
|
||||||
p->sum += x;
|
p->sum += x;
|
||||||
@@ -463,11 +463,11 @@ static void stdDevStep(sqlite_func *context, int argc, const char **argv){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void stdDevFinalize(sqlite_func *context){
|
static void stdDevFinalize(sqlite_func *context){
|
||||||
double rN = sqlite_aggregate_count(context);
|
double rN = sqlite3_aggregate_count(context);
|
||||||
StdDevCtx *p = sqlite_aggregate_context(context, sizeof(*p));
|
StdDevCtx *p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p && p->cnt>1 ){
|
if( p && p->cnt>1 ){
|
||||||
double rCnt = cnt;
|
double rCnt = cnt;
|
||||||
sqlite_set_result_double(context,
|
sqlite3_set_result_double(context,
|
||||||
sqrt((p->sum2 - p->sum*p->sum/rCnt)/(rCnt-1.0)));
|
sqrt((p->sum2 - p->sum*p->sum/rCnt)/(rCnt-1.0)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -487,15 +487,15 @@ struct CountCtx {
|
|||||||
*/
|
*/
|
||||||
static void countStep(sqlite_func *context, int argc, const char **argv){
|
static void countStep(sqlite_func *context, int argc, const char **argv){
|
||||||
CountCtx *p;
|
CountCtx *p;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( (argc==0 || argv[0]) && p ){
|
if( (argc==0 || argv[0]) && p ){
|
||||||
p->n++;
|
p->n++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void countFinalize(sqlite_func *context){
|
static void countFinalize(sqlite_func *context){
|
||||||
CountCtx *p;
|
CountCtx *p;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
sqlite_set_result_int(context, p ? p->n : 0);
|
sqlite3_set_result_int(context, p ? p->n : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -522,8 +522,8 @@ static void minmaxStep(sqlite_func *context, int argc, const char **argv){
|
|||||||
}else{
|
}else{
|
||||||
xCompare = strcmp;
|
xCompare = strcmp;
|
||||||
}
|
}
|
||||||
mask = (int)sqlite_user_data(context);
|
mask = (int)sqlite3_user_data(context);
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p==0 || argc<1 || argv[0]==0 ) return;
|
if( p==0 || argc<1 || argv[0]==0 ) return;
|
||||||
if( p->z==0 || (xCompare(argv[0],p->z)^mask)<0 ){
|
if( p->z==0 || (xCompare(argv[0],p->z)^mask)<0 ){
|
||||||
int len;
|
int len;
|
||||||
@@ -544,9 +544,9 @@ static void minmaxStep(sqlite_func *context, int argc, const char **argv){
|
|||||||
}
|
}
|
||||||
static void minMaxFinalize(sqlite_func *context){
|
static void minMaxFinalize(sqlite_func *context){
|
||||||
MinMaxCtx *p;
|
MinMaxCtx *p;
|
||||||
p = sqlite_aggregate_context(context, sizeof(*p));
|
p = sqlite3_aggregate_context(context, sizeof(*p));
|
||||||
if( p && p->z ){
|
if( p && p->z ){
|
||||||
sqlite_set_result_string(context, p->z, strlen(p->z));
|
sqlite3_set_result_string(context, p->z, strlen(p->z));
|
||||||
}
|
}
|
||||||
if( p && !p->zBuf[0] ){
|
if( p && !p->zBuf[0] ){
|
||||||
sqliteFree(p->z);
|
sqliteFree(p->z);
|
||||||
@@ -586,7 +586,7 @@ void sqlite3RegisterBuiltinFunctions(sqlite *db){
|
|||||||
{ "like", 2, SQLITE_NUMERIC, 0, likeFunc },
|
{ "like", 2, SQLITE_NUMERIC, 0, likeFunc },
|
||||||
{ "glob", 2, SQLITE_NUMERIC, 0, globFunc },
|
{ "glob", 2, SQLITE_NUMERIC, 0, globFunc },
|
||||||
{ "nullif", 2, SQLITE_ARGS, 0, nullifFunc },
|
{ "nullif", 2, SQLITE_ARGS, 0, nullifFunc },
|
||||||
{ "sqlite_version",0,SQLITE_TEXT, 0, versionFunc},
|
{ "sqlite3_version",0,SQLITE_TEXT, 0, versionFunc},
|
||||||
{ "quote", 1, SQLITE_ARGS, 0, quoteFunc },
|
{ "quote", 1, SQLITE_ARGS, 0, quoteFunc },
|
||||||
{ "last_insert_rowid", 0, SQLITE_NUMERIC, 1, last_insert_rowid },
|
{ "last_insert_rowid", 0, SQLITE_NUMERIC, 1, last_insert_rowid },
|
||||||
{ "change_count", 0, SQLITE_NUMERIC, 1, change_count },
|
{ "change_count", 0, SQLITE_NUMERIC, 1, change_count },
|
||||||
@@ -622,17 +622,17 @@ void sqlite3RegisterBuiltinFunctions(sqlite *db){
|
|||||||
|
|
||||||
for(i=0; i<sizeof(aFuncs)/sizeof(aFuncs[0]); i++){
|
for(i=0; i<sizeof(aFuncs)/sizeof(aFuncs[0]); i++){
|
||||||
void *pArg = aFuncs[i].argType==2 ? (void*)(-1) : db;
|
void *pArg = aFuncs[i].argType==2 ? (void*)(-1) : db;
|
||||||
sqlite_create_function(db, aFuncs[i].zName,
|
sqlite3_create_function(db, aFuncs[i].zName,
|
||||||
aFuncs[i].nArg, aFuncs[i].xFunc, pArg);
|
aFuncs[i].nArg, aFuncs[i].xFunc, pArg);
|
||||||
if( aFuncs[i].xFunc ){
|
if( aFuncs[i].xFunc ){
|
||||||
sqlite_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);
|
sqlite3_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i=0; i<sizeof(aAggs)/sizeof(aAggs[0]); i++){
|
for(i=0; i<sizeof(aAggs)/sizeof(aAggs[0]); i++){
|
||||||
void *pArg = aAggs[i].argType==2 ? (void*)(-1) : db;
|
void *pArg = aAggs[i].argType==2 ? (void*)(-1) : db;
|
||||||
sqlite_create_aggregate(db, aAggs[i].zName,
|
sqlite3_create_aggregate(db, aAggs[i].zName,
|
||||||
aAggs[i].nArg, aAggs[i].xStep, aAggs[i].xFinalize, pArg);
|
aAggs[i].nArg, aAggs[i].xStep, aAggs[i].xFinalize, pArg);
|
||||||
sqlite_function_type(db, aAggs[i].zName, aAggs[i].dataType);
|
sqlite3_function_type(db, aAggs[i].zName, aAggs[i].dataType);
|
||||||
}
|
}
|
||||||
for(i=0; i<sizeof(azTypeFuncs)/sizeof(azTypeFuncs[0]); i++){
|
for(i=0; i<sizeof(azTypeFuncs)/sizeof(azTypeFuncs[0]); i++){
|
||||||
int n = strlen(azTypeFuncs[i]);
|
int n = strlen(azTypeFuncs[i]);
|
||||||
|
10
src/insert.c
10
src/insert.c
@@ -12,7 +12,7 @@
|
|||||||
** This file contains C code routines that are called by the parser
|
** This file contains C code routines that are called by the parser
|
||||||
** to handle INSERT statements in SQLite.
|
** to handle INSERT statements in SQLite.
|
||||||
**
|
**
|
||||||
** $Id: insert.c,v 1.95 2004/05/08 08:23:25 danielk1977 Exp $
|
** $Id: insert.c,v 1.96 2004/05/10 10:34:40 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ void sqlite3Insert(
|
|||||||
int after_triggers; /* True if there are AFTER triggers */
|
int after_triggers; /* True if there are AFTER triggers */
|
||||||
int newIdx = -1; /* Cursor for the NEW table */
|
int newIdx = -1; /* Cursor for the NEW table */
|
||||||
|
|
||||||
if( pParse->nErr || sqlite_malloc_failed ) goto insert_cleanup;
|
if( pParse->nErr || sqlite3_malloc_failed ) goto insert_cleanup;
|
||||||
db = pParse->db;
|
db = pParse->db;
|
||||||
|
|
||||||
/* Locate the table into which we will be inserting new information.
|
/* Locate the table into which we will be inserting new information.
|
||||||
@@ -182,7 +182,7 @@ void sqlite3Insert(
|
|||||||
iSelectLoop = sqlite3VdbeCurrentAddr(v);
|
iSelectLoop = sqlite3VdbeCurrentAddr(v);
|
||||||
iInsertBlock = sqlite3VdbeMakeLabel(v);
|
iInsertBlock = sqlite3VdbeMakeLabel(v);
|
||||||
rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock, 0,0,0);
|
rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock, 0,0,0);
|
||||||
if( rc || pParse->nErr || sqlite_malloc_failed ) goto insert_cleanup;
|
if( rc || pParse->nErr || sqlite3_malloc_failed ) goto insert_cleanup;
|
||||||
iCleanup = sqlite3VdbeMakeLabel(v);
|
iCleanup = sqlite3VdbeMakeLabel(v);
|
||||||
sqlite3VdbeAddOp(v, OP_Goto, 0, iCleanup);
|
sqlite3VdbeAddOp(v, OP_Goto, 0, iCleanup);
|
||||||
assert( pSelect->pEList );
|
assert( pSelect->pEList );
|
||||||
@@ -574,12 +574,12 @@ insert_cleanup:
|
|||||||
** Constraint type Action What Happens
|
** Constraint type Action What Happens
|
||||||
** --------------- ---------- ----------------------------------------
|
** --------------- ---------- ----------------------------------------
|
||||||
** any ROLLBACK The current transaction is rolled back and
|
** any ROLLBACK The current transaction is rolled back and
|
||||||
** sqlite_exec() returns immediately with a
|
** sqlite3_exec() returns immediately with a
|
||||||
** return code of SQLITE_CONSTRAINT.
|
** return code of SQLITE_CONSTRAINT.
|
||||||
**
|
**
|
||||||
** any ABORT Back out changes from the current command
|
** any ABORT Back out changes from the current command
|
||||||
** only (do not do a complete rollback) then
|
** only (do not do a complete rollback) then
|
||||||
** cause sqlite_exec() to return immediately
|
** cause sqlite3_exec() to return immediately
|
||||||
** with SQLITE_CONSTRAINT.
|
** with SQLITE_CONSTRAINT.
|
||||||
**
|
**
|
||||||
** any FAIL Sqlite_exec() returns immediately with a
|
** any FAIL Sqlite_exec() returns immediately with a
|
||||||
|
146
src/main.c
146
src/main.c
@@ -14,7 +14,7 @@
|
|||||||
** other files are for internal use by SQLite and should not be
|
** other files are for internal use by SQLite and should not be
|
||||||
** accessed by users of the library.
|
** accessed by users of the library.
|
||||||
**
|
**
|
||||||
** $Id: main.c,v 1.167 2004/05/10 01:17:37 danielk1977 Exp $
|
** $Id: main.c,v 1.168 2004/05/10 10:34:43 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
@@ -83,9 +83,9 @@ int sqlite3InitCallback(void *pInit, int argc, char **argv, char **azColName){
|
|||||||
db->init.iDb = atoi(argv[4]);
|
db->init.iDb = atoi(argv[4]);
|
||||||
assert( db->init.iDb>=0 && db->init.iDb<db->nDb );
|
assert( db->init.iDb>=0 && db->init.iDb<db->nDb );
|
||||||
db->init.newTnum = atoi(argv[2]);
|
db->init.newTnum = atoi(argv[2]);
|
||||||
if( sqlite_exec(db, argv[3], 0, 0, &zErr) ){
|
if( sqlite3_exec(db, argv[3], 0, 0, &zErr) ){
|
||||||
corruptSchema(pData, zErr);
|
corruptSchema(pData, zErr);
|
||||||
sqlite_freemem(zErr);
|
sqlite3_freemem(zErr);
|
||||||
}
|
}
|
||||||
db->init.iDb = 0;
|
db->init.iDb = 0;
|
||||||
}else{
|
}else{
|
||||||
@@ -150,14 +150,14 @@ int upgrade_3_callback(void *pInit, int argc, char **argv, char **NotUsed){
|
|||||||
pTrig = pTab->pTrigger;
|
pTrig = pTab->pTrigger;
|
||||||
pTab->pTrigger = 0; /* Disable all triggers before rebuilding the table */
|
pTab->pTrigger = 0; /* Disable all triggers before rebuilding the table */
|
||||||
}
|
}
|
||||||
rc = sqlite_exec_printf(pData->db,
|
rc = sqlite3_exec_printf(pData->db,
|
||||||
"CREATE TEMP TABLE sqlite_x AS SELECT * FROM '%q'; "
|
"CREATE TEMP TABLE sqlite_x AS SELECT * FROM '%q'; "
|
||||||
"DELETE FROM '%q'; "
|
"DELETE FROM '%q'; "
|
||||||
"INSERT INTO '%q' SELECT * FROM sqlite_x; "
|
"INSERT INTO '%q' SELECT * FROM sqlite_x; "
|
||||||
"DROP TABLE sqlite_x;",
|
"DROP TABLE sqlite_x;",
|
||||||
0, 0, &zErr, argv[0], argv[0], argv[0]);
|
0, 0, &zErr, argv[0], argv[0], argv[0]);
|
||||||
if( zErr ){
|
if( zErr ){
|
||||||
if( *pData->pzErrMsg ) sqlite_freemem(*pData->pzErrMsg);
|
if( *pData->pzErrMsg ) sqlite3_freemem(*pData->pzErrMsg);
|
||||||
*pData->pzErrMsg = zErr;
|
*pData->pzErrMsg = zErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,7 +282,7 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
|
|||||||
if( db->aDb[iDb].pBt==0 ) return SQLITE_OK;
|
if( db->aDb[iDb].pBt==0 ) return SQLITE_OK;
|
||||||
rc = sqlite3BtreeCursor(db->aDb[iDb].pBt, MASTER_ROOT, 0, 0, 0, &curMain);
|
rc = sqlite3BtreeCursor(db->aDb[iDb].pBt, MASTER_ROOT, 0, 0, 0, &curMain);
|
||||||
if( rc ){
|
if( rc ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite_error_string(rc), (char*)0);
|
sqlite3SetString(pzErrMsg, sqlite3_error_string(rc), (char*)0);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,7 +295,7 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( rc ){
|
if( rc ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite_error_string(rc), (char*)0);
|
sqlite3SetString(pzErrMsg, sqlite3_error_string(rc), (char*)0);
|
||||||
sqlite3BtreeCloseCursor(curMain);
|
sqlite3BtreeCloseCursor(curMain);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
|
|||||||
assert( db->init.busy );
|
assert( db->init.busy );
|
||||||
sqlite3SafetyOff(db);
|
sqlite3SafetyOff(db);
|
||||||
if( iDb==0 ){
|
if( iDb==0 ){
|
||||||
rc = sqlite_exec(db,
|
rc = sqlite3_exec(db,
|
||||||
db->file_format>=2 ? init_script : older_init_script,
|
db->file_format>=2 ? init_script : older_init_script,
|
||||||
sqlite3InitCallback, &initData, 0);
|
sqlite3InitCallback, &initData, 0);
|
||||||
}else{
|
}else{
|
||||||
@@ -356,12 +356,12 @@ static int sqlite3InitOne(sqlite *db, int iDb, char **pzErrMsg){
|
|||||||
sqlite3SetString(&zSql,
|
sqlite3SetString(&zSql,
|
||||||
"SELECT type, name, rootpage, sql, ", zDbNum, " FROM \"",
|
"SELECT type, name, rootpage, sql, ", zDbNum, " FROM \"",
|
||||||
db->aDb[iDb].zName, "\".sqlite_master", (char*)0);
|
db->aDb[iDb].zName, "\".sqlite_master", (char*)0);
|
||||||
rc = sqlite_exec(db, zSql, sqlite3InitCallback, &initData, 0);
|
rc = sqlite3_exec(db, zSql, sqlite3InitCallback, &initData, 0);
|
||||||
sqliteFree(zSql);
|
sqliteFree(zSql);
|
||||||
}
|
}
|
||||||
sqlite3SafetyOn(db);
|
sqlite3SafetyOn(db);
|
||||||
sqlite3BtreeCloseCursor(curMain);
|
sqlite3BtreeCloseCursor(curMain);
|
||||||
if( sqlite_malloc_failed ){
|
if( sqlite3_malloc_failed ){
|
||||||
sqlite3SetString(pzErrMsg, "out of memory", (char*)0);
|
sqlite3SetString(pzErrMsg, "out of memory", (char*)0);
|
||||||
rc = SQLITE_NOMEM;
|
rc = SQLITE_NOMEM;
|
||||||
sqlite3ResetInternalSchema(db, 0);
|
sqlite3ResetInternalSchema(db, 0);
|
||||||
@@ -425,7 +425,7 @@ int sqlite3Init(sqlite *db, char **pzErrMsg){
|
|||||||
initData.db = db;
|
initData.db = db;
|
||||||
initData.pzErrMsg = &zErr;
|
initData.pzErrMsg = &zErr;
|
||||||
db->file_format = 3;
|
db->file_format = 3;
|
||||||
rc = sqlite_exec(db,
|
rc = sqlite3_exec(db,
|
||||||
"BEGIN; SELECT name FROM sqlite_master WHERE type='table';",
|
"BEGIN; SELECT name FROM sqlite_master WHERE type='table';",
|
||||||
upgrade_3_callback,
|
upgrade_3_callback,
|
||||||
&initData,
|
&initData,
|
||||||
@@ -439,14 +439,14 @@ int sqlite3Init(sqlite *db, char **pzErrMsg){
|
|||||||
for(ii=0; rc==SQLITE_OK && ii<SQLITE_N_BTREE_META; ii++){
|
for(ii=0; rc==SQLITE_OK && ii<SQLITE_N_BTREE_META; ii++){
|
||||||
rc = sqlite3BtreeUpdateMeta(db->aDb[0].pBt, ii+1, meta[ii]);
|
rc = sqlite3BtreeUpdateMeta(db->aDb[0].pBt, ii+1, meta[ii]);
|
||||||
}
|
}
|
||||||
sqlite_exec(db, "COMMIT", 0, 0, 0);
|
sqlite3_exec(db, "COMMIT", 0, 0, 0);
|
||||||
}
|
}
|
||||||
if( rc!=SQLITE_OK ){
|
if( rc!=SQLITE_OK ){
|
||||||
sqlite3SetString(pzErrMsg,
|
sqlite3SetString(pzErrMsg,
|
||||||
"unable to upgrade database to the version 2.6 format",
|
"unable to upgrade database to the version 2.6 format",
|
||||||
zErr ? ": " : 0, zErr, (char*)0);
|
zErr ? ": " : 0, zErr, (char*)0);
|
||||||
}
|
}
|
||||||
sqlite_freemem(zErr);
|
sqlite3_freemem(zErr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( rc!=SQLITE_OK ){
|
if( rc!=SQLITE_OK ){
|
||||||
@@ -459,16 +459,16 @@ int sqlite3Init(sqlite *db, char **pzErrMsg){
|
|||||||
** The version of the library
|
** The version of the library
|
||||||
*/
|
*/
|
||||||
const char rcsid[] = "@(#) \044Id: SQLite version " SQLITE_VERSION " $";
|
const char rcsid[] = "@(#) \044Id: SQLite version " SQLITE_VERSION " $";
|
||||||
const char sqlite_version[] = SQLITE_VERSION;
|
const char sqlite3_version[] = SQLITE_VERSION;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Does the library expect data to be encoded as UTF-8 or iso8859? The
|
** Does the library expect data to be encoded as UTF-8 or iso8859? The
|
||||||
** following global constant always lets us know.
|
** following global constant always lets us know.
|
||||||
*/
|
*/
|
||||||
#ifdef SQLITE_UTF8
|
#ifdef SQLITE_UTF8
|
||||||
const char sqlite_encoding[] = "UTF-8";
|
const char sqlite3_encoding[] = "UTF-8";
|
||||||
#else
|
#else
|
||||||
const char sqlite_encoding[] = "iso8859";
|
const char sqlite3_encoding[] = "iso8859";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -478,9 +478,9 @@ const char sqlite_encoding[] = "iso8859";
|
|||||||
** An attempt is made to initialize the in-memory data structures that
|
** An attempt is made to initialize the in-memory data structures that
|
||||||
** hold the database schema. But if this fails (because the schema file
|
** hold the database schema. But if this fails (because the schema file
|
||||||
** is locked) then that step is deferred until the first call to
|
** is locked) then that step is deferred until the first call to
|
||||||
** sqlite_exec().
|
** sqlite3_exec().
|
||||||
*/
|
*/
|
||||||
sqlite *sqlite_open(const char *zFilename, int mode, char **pzErrMsg){
|
sqlite *sqlite3_open(const char *zFilename, int mode, char **pzErrMsg){
|
||||||
sqlite *db;
|
sqlite *db;
|
||||||
int rc, i;
|
int rc, i;
|
||||||
|
|
||||||
@@ -525,11 +525,11 @@ sqlite *sqlite_open(const char *zFilename, int mode, char **pzErrMsg){
|
|||||||
sqlite3RegisterBuiltinFunctions(db);
|
sqlite3RegisterBuiltinFunctions(db);
|
||||||
rc = sqlite3Init(db, pzErrMsg);
|
rc = sqlite3Init(db, pzErrMsg);
|
||||||
db->magic = SQLITE_MAGIC_OPEN;
|
db->magic = SQLITE_MAGIC_OPEN;
|
||||||
if( sqlite_malloc_failed ){
|
if( sqlite3_malloc_failed ){
|
||||||
sqlite_close(db);
|
sqlite3_close(db);
|
||||||
goto no_mem_on_open;
|
goto no_mem_on_open;
|
||||||
}else if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
|
}else if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
|
||||||
sqlite_close(db);
|
sqlite3_close(db);
|
||||||
sqlite3StrRealloc(pzErrMsg);
|
sqlite3StrRealloc(pzErrMsg);
|
||||||
return 0;
|
return 0;
|
||||||
}else if( pzErrMsg ){
|
}else if( pzErrMsg ){
|
||||||
@@ -549,14 +549,14 @@ no_mem_on_open:
|
|||||||
/*
|
/*
|
||||||
** Return the ROWID of the most recent insert
|
** Return the ROWID of the most recent insert
|
||||||
*/
|
*/
|
||||||
int sqlite_last_insert_rowid(sqlite *db){
|
int sqlite3_last_insert_rowid(sqlite *db){
|
||||||
return db->lastRowid;
|
return db->lastRowid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Return the number of changes in the most recent call to sqlite_exec().
|
** Return the number of changes in the most recent call to sqlite3_exec().
|
||||||
*/
|
*/
|
||||||
int sqlite_changes(sqlite *db){
|
int sqlite3_changes(sqlite *db){
|
||||||
return db->nChange;
|
return db->nChange;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -566,14 +566,14 @@ int sqlite_changes(sqlite *db){
|
|||||||
** changes due to SQL statements executed in trigger programs that were
|
** changes due to SQL statements executed in trigger programs that were
|
||||||
** triggered by that statement
|
** triggered by that statement
|
||||||
*/
|
*/
|
||||||
int sqlite_last_statement_changes(sqlite *db){
|
int sqlite3_last_statement_changes(sqlite *db){
|
||||||
return db->lsChange;
|
return db->lsChange;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Close an existing SQLite database
|
** Close an existing SQLite database
|
||||||
*/
|
*/
|
||||||
void sqlite_close(sqlite *db){
|
void sqlite3_close(sqlite *db){
|
||||||
HashElem *i;
|
HashElem *i;
|
||||||
int j;
|
int j;
|
||||||
db->want_to_close = 1;
|
db->want_to_close = 1;
|
||||||
@@ -628,7 +628,7 @@ void sqlite3RollbackAll(sqlite *db){
|
|||||||
** argument to xCallback(). If xCallback=NULL then no callback
|
** argument to xCallback(). If xCallback=NULL then no callback
|
||||||
** is invoked, even for queries.
|
** is invoked, even for queries.
|
||||||
*/
|
*/
|
||||||
int sqlite_exec(
|
int sqlite3_exec(
|
||||||
sqlite *db, /* The database on which the SQL executes */
|
sqlite *db, /* The database on which the SQL executes */
|
||||||
const char *zSql, /* The SQL to be executed */
|
const char *zSql, /* The SQL to be executed */
|
||||||
sqlite_callback xCallback, /* Invoke this callback routine */
|
sqlite_callback xCallback, /* Invoke this callback routine */
|
||||||
@@ -645,9 +645,9 @@ int sqlite_exec(
|
|||||||
if( zSql==0 ) return SQLITE_OK;
|
if( zSql==0 ) return SQLITE_OK;
|
||||||
while( rc==SQLITE_OK && zSql[0] ){
|
while( rc==SQLITE_OK && zSql[0] ){
|
||||||
pVm = 0;
|
pVm = 0;
|
||||||
rc = sqlite_compile(db, zSql, &zLeftover, &pVm, pzErrMsg);
|
rc = sqlite3_compile(db, zSql, &zLeftover, &pVm, pzErrMsg);
|
||||||
if( rc!=SQLITE_OK ){
|
if( rc!=SQLITE_OK ){
|
||||||
assert( pVm==0 || sqlite_malloc_failed );
|
assert( pVm==0 || sqlite3_malloc_failed );
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
if( pVm==0 ){
|
if( pVm==0 ){
|
||||||
@@ -659,10 +659,10 @@ int sqlite_exec(
|
|||||||
while(1){
|
while(1){
|
||||||
int nArg;
|
int nArg;
|
||||||
char **azArg, **azCol;
|
char **azArg, **azCol;
|
||||||
rc = sqlite_step(pVm, &nArg, (const char***)&azArg,(const char***)&azCol);
|
rc = sqlite3_step(pVm, &nArg, (const char***)&azArg,(const char***)&azCol);
|
||||||
if( rc==SQLITE_ROW ){
|
if( rc==SQLITE_ROW ){
|
||||||
if( xCallback!=0 && xCallback(pArg, nArg, azArg, azCol) ){
|
if( xCallback!=0 && xCallback(pArg, nArg, azArg, azCol) ){
|
||||||
sqlite_finalize(pVm, 0);
|
sqlite3_finalize(pVm, 0);
|
||||||
return SQLITE_ABORT;
|
return SQLITE_ABORT;
|
||||||
}
|
}
|
||||||
nCallback++;
|
nCallback++;
|
||||||
@@ -671,7 +671,7 @@ int sqlite_exec(
|
|||||||
&& (db->flags & SQLITE_NullCallback)!=0 && xCallback!=0 ){
|
&& (db->flags & SQLITE_NullCallback)!=0 && xCallback!=0 ){
|
||||||
xCallback(pArg, nArg, azArg, azCol);
|
xCallback(pArg, nArg, azArg, azCol);
|
||||||
}
|
}
|
||||||
rc = sqlite_finalize(pVm, pzErrMsg);
|
rc = sqlite3_finalize(pVm, pzErrMsg);
|
||||||
if( rc==SQLITE_SCHEMA && nRetry<2 ){
|
if( rc==SQLITE_SCHEMA && nRetry<2 ){
|
||||||
nRetry++;
|
nRetry++;
|
||||||
rc = SQLITE_OK;
|
rc = SQLITE_OK;
|
||||||
@@ -696,7 +696,7 @@ int sqlite_exec(
|
|||||||
** of the SQLITE_ success/failure codes. Also write an error message into
|
** of the SQLITE_ success/failure codes. Also write an error message into
|
||||||
** memory obtained from malloc() and make *pzErrMsg point to that message.
|
** memory obtained from malloc() and make *pzErrMsg point to that message.
|
||||||
*/
|
*/
|
||||||
int sqlite_compile(
|
int sqlite3_compile(
|
||||||
sqlite *db, /* The database on which the SQL executes */
|
sqlite *db, /* The database on which the SQL executes */
|
||||||
const char *zSql, /* The SQL to be executed */
|
const char *zSql, /* The SQL to be executed */
|
||||||
const char **pzTail, /* OUT: Next statement after the first */
|
const char **pzTail, /* OUT: Next statement after the first */
|
||||||
@@ -749,7 +749,7 @@ int sqlite_compile(
|
|||||||
}else{
|
}else{
|
||||||
/* If a memory error occurred during the copy,
|
/* If a memory error occurred during the copy,
|
||||||
** trace entire SQL string and fall through to the
|
** trace entire SQL string and fall through to the
|
||||||
** sqlite_malloc_failed test to report the error.
|
** sqlite3_malloc_failed test to report the error.
|
||||||
*/
|
*/
|
||||||
db->xTrace(db->pTraceArg, zSql);
|
db->xTrace(db->pTraceArg, zSql);
|
||||||
}
|
}
|
||||||
@@ -757,7 +757,7 @@ int sqlite_compile(
|
|||||||
db->xTrace(db->pTraceArg, zSql);
|
db->xTrace(db->pTraceArg, zSql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( sqlite_malloc_failed ){
|
if( sqlite3_malloc_failed ){
|
||||||
sqlite3SetString(pzErrMsg, "out of memory", (char*)0);
|
sqlite3SetString(pzErrMsg, "out of memory", (char*)0);
|
||||||
sParse.rc = SQLITE_NOMEM;
|
sParse.rc = SQLITE_NOMEM;
|
||||||
sqlite3RollbackAll(db);
|
sqlite3RollbackAll(db);
|
||||||
@@ -766,7 +766,7 @@ int sqlite_compile(
|
|||||||
}
|
}
|
||||||
if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK;
|
if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK;
|
||||||
if( sParse.rc!=SQLITE_OK && pzErrMsg && *pzErrMsg==0 ){
|
if( sParse.rc!=SQLITE_OK && pzErrMsg && *pzErrMsg==0 ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite_error_string(sParse.rc), (char*)0);
|
sqlite3SetString(pzErrMsg, sqlite3_error_string(sParse.rc), (char*)0);
|
||||||
}
|
}
|
||||||
sqlite3StrRealloc(pzErrMsg);
|
sqlite3StrRealloc(pzErrMsg);
|
||||||
if( sParse.rc==SQLITE_SCHEMA ){
|
if( sParse.rc==SQLITE_SCHEMA ){
|
||||||
@@ -781,7 +781,7 @@ int sqlite_compile(
|
|||||||
exec_misuse:
|
exec_misuse:
|
||||||
if( pzErrMsg ){
|
if( pzErrMsg ){
|
||||||
*pzErrMsg = 0;
|
*pzErrMsg = 0;
|
||||||
sqlite3SetString(pzErrMsg, sqlite_error_string(SQLITE_MISUSE), (char*)0);
|
sqlite3SetString(pzErrMsg, sqlite3_error_string(SQLITE_MISUSE), (char*)0);
|
||||||
sqlite3StrRealloc(pzErrMsg);
|
sqlite3StrRealloc(pzErrMsg);
|
||||||
}
|
}
|
||||||
return SQLITE_MISUSE;
|
return SQLITE_MISUSE;
|
||||||
@@ -790,16 +790,16 @@ exec_misuse:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
** The following routine destroys a virtual machine that is created by
|
** The following routine destroys a virtual machine that is created by
|
||||||
** the sqlite_compile() routine.
|
** the sqlite3_compile() routine.
|
||||||
**
|
**
|
||||||
** The integer returned is an SQLITE_ success/failure code that describes
|
** The integer returned is an SQLITE_ success/failure code that describes
|
||||||
** the result of executing the virtual machine. An error message is
|
** the result of executing the virtual machine. An error message is
|
||||||
** written into memory obtained from malloc and *pzErrMsg is made to
|
** written into memory obtained from malloc and *pzErrMsg is made to
|
||||||
** point to that error if pzErrMsg is not NULL. The calling routine
|
** point to that error if pzErrMsg is not NULL. The calling routine
|
||||||
** should use sqlite_freemem() to delete the message when it has finished
|
** should use sqlite3_freemem() to delete the message when it has finished
|
||||||
** with it.
|
** with it.
|
||||||
*/
|
*/
|
||||||
int sqlite_finalize(
|
int sqlite3_finalize(
|
||||||
sqlite_vm *pVm, /* The virtual machine to be destroyed */
|
sqlite_vm *pVm, /* The virtual machine to be destroyed */
|
||||||
char **pzErrMsg /* OUT: Write error messages here */
|
char **pzErrMsg /* OUT: Write error messages here */
|
||||||
){
|
){
|
||||||
@@ -815,7 +815,7 @@ int sqlite_finalize(
|
|||||||
** is written into *pzErrMsg. A success code from the prior execution
|
** is written into *pzErrMsg. A success code from the prior execution
|
||||||
** is returned.
|
** is returned.
|
||||||
*/
|
*/
|
||||||
int sqlite_reset(
|
int sqlite3_reset(
|
||||||
sqlite_vm *pVm, /* The virtual machine to be destroyed */
|
sqlite_vm *pVm, /* The virtual machine to be destroyed */
|
||||||
char **pzErrMsg /* OUT: Write error messages here */
|
char **pzErrMsg /* OUT: Write error messages here */
|
||||||
){
|
){
|
||||||
@@ -829,7 +829,7 @@ int sqlite_reset(
|
|||||||
** Return a static string that describes the kind of error specified in the
|
** Return a static string that describes the kind of error specified in the
|
||||||
** argument.
|
** argument.
|
||||||
*/
|
*/
|
||||||
const char *sqlite_error_string(int rc){
|
const char *sqlite3_error_string(int rc){
|
||||||
const char *z;
|
const char *z;
|
||||||
switch( rc ){
|
switch( rc ){
|
||||||
case SQLITE_OK: z = "not an error"; break;
|
case SQLITE_OK: z = "not an error"; break;
|
||||||
@@ -911,7 +911,7 @@ static int sqliteDefaultBusyCallback(
|
|||||||
** This routine sets the busy callback for an Sqlite database to the
|
** This routine sets the busy callback for an Sqlite database to the
|
||||||
** given callback function with the given argument.
|
** given callback function with the given argument.
|
||||||
*/
|
*/
|
||||||
void sqlite_busy_handler(
|
void sqlite3_busy_handler(
|
||||||
sqlite *db,
|
sqlite *db,
|
||||||
int (*xBusy)(void*,const char*,int),
|
int (*xBusy)(void*,const char*,int),
|
||||||
void *pArg
|
void *pArg
|
||||||
@@ -926,7 +926,7 @@ void sqlite_busy_handler(
|
|||||||
** given callback function with the given argument. The progress callback will
|
** given callback function with the given argument. The progress callback will
|
||||||
** be invoked every nOps opcodes.
|
** be invoked every nOps opcodes.
|
||||||
*/
|
*/
|
||||||
void sqlite_progress_handler(
|
void sqlite3_progress_handler(
|
||||||
sqlite *db,
|
sqlite *db,
|
||||||
int nOps,
|
int nOps,
|
||||||
int (*xProgress)(void*),
|
int (*xProgress)(void*),
|
||||||
@@ -949,24 +949,24 @@ void sqlite_progress_handler(
|
|||||||
** This routine installs a default busy handler that waits for the
|
** This routine installs a default busy handler that waits for the
|
||||||
** specified number of milliseconds before returning 0.
|
** specified number of milliseconds before returning 0.
|
||||||
*/
|
*/
|
||||||
void sqlite_busy_timeout(sqlite *db, int ms){
|
void sqlite3_busy_timeout(sqlite *db, int ms){
|
||||||
if( ms>0 ){
|
if( ms>0 ){
|
||||||
sqlite_busy_handler(db, sqliteDefaultBusyCallback, (void*)ms);
|
sqlite3_busy_handler(db, sqliteDefaultBusyCallback, (void*)ms);
|
||||||
}else{
|
}else{
|
||||||
sqlite_busy_handler(db, 0, 0);
|
sqlite3_busy_handler(db, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Cause any pending operation to stop at its earliest opportunity.
|
** Cause any pending operation to stop at its earliest opportunity.
|
||||||
*/
|
*/
|
||||||
void sqlite_interrupt(sqlite *db){
|
void sqlite3_interrupt(sqlite *db){
|
||||||
db->flags |= SQLITE_Interrupt;
|
db->flags |= SQLITE_Interrupt;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Windows systems should call this routine to free memory that
|
** Windows systems should call this routine to free memory that
|
||||||
** is returned in the in the errmsg parameter of sqlite_open() when
|
** is returned in the in the errmsg parameter of sqlite3_open() when
|
||||||
** SQLite is a DLL. For some reason, it does not work to call free()
|
** SQLite is a DLL. For some reason, it does not work to call free()
|
||||||
** directly.
|
** directly.
|
||||||
**
|
**
|
||||||
@@ -974,31 +974,31 @@ void sqlite_interrupt(sqlite *db){
|
|||||||
** string that is exported from SQLite should have already passed through
|
** string that is exported from SQLite should have already passed through
|
||||||
** sqlite3StrRealloc().
|
** sqlite3StrRealloc().
|
||||||
*/
|
*/
|
||||||
void sqlite_freemem(void *p){ free(p); }
|
void sqlite3_freemem(void *p){ free(p); }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Windows systems need functions to call to return the sqlite_version
|
** Windows systems need functions to call to return the sqlite3_version
|
||||||
** and sqlite_encoding strings since they are unable to access constants
|
** and sqlite3_encoding strings since they are unable to access constants
|
||||||
** within DLLs.
|
** within DLLs.
|
||||||
*/
|
*/
|
||||||
const char *sqlite_libversion(void){ return sqlite_version; }
|
const char *sqlite3_libversion(void){ return sqlite3_version; }
|
||||||
const char *sqlite_libencoding(void){ return sqlite_encoding; }
|
const char *sqlite3_libencoding(void){ return sqlite3_encoding; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Create new user-defined functions. The sqlite_create_function()
|
** Create new user-defined functions. The sqlite3_create_function()
|
||||||
** routine creates a regular function and sqlite_create_aggregate()
|
** routine creates a regular function and sqlite3_create_aggregate()
|
||||||
** creates an aggregate function.
|
** creates an aggregate function.
|
||||||
**
|
**
|
||||||
** Passing a NULL xFunc argument or NULL xStep and xFinalize arguments
|
** Passing a NULL xFunc argument or NULL xStep and xFinalize arguments
|
||||||
** disables the function. Calling sqlite_create_function() with the
|
** disables the function. Calling sqlite3_create_function() with the
|
||||||
** same name and number of arguments as a prior call to
|
** same name and number of arguments as a prior call to
|
||||||
** sqlite_create_aggregate() disables the prior call to
|
** sqlite3_create_aggregate() disables the prior call to
|
||||||
** sqlite_create_aggregate(), and vice versa.
|
** sqlite3_create_aggregate(), and vice versa.
|
||||||
**
|
**
|
||||||
** If nArg is -1 it means that this function will accept any number
|
** If nArg is -1 it means that this function will accept any number
|
||||||
** of arguments, including 0. The maximum allowed value of nArg is 127.
|
** of arguments, including 0. The maximum allowed value of nArg is 127.
|
||||||
*/
|
*/
|
||||||
int sqlite_create_function(
|
int sqlite3_create_function(
|
||||||
sqlite *db, /* Add the function to this database connection */
|
sqlite *db, /* Add the function to this database connection */
|
||||||
const char *zName, /* Name of the function to add */
|
const char *zName, /* Name of the function to add */
|
||||||
int nArg, /* Number of arguments */
|
int nArg, /* Number of arguments */
|
||||||
@@ -1019,7 +1019,7 @@ int sqlite_create_function(
|
|||||||
p->pUserData = pUserData;
|
p->pUserData = pUserData;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int sqlite_create_aggregate(
|
int sqlite3_create_aggregate(
|
||||||
sqlite *db, /* Add the function to this database connection */
|
sqlite *db, /* Add the function to this database connection */
|
||||||
const char *zName, /* Name of the function to add */
|
const char *zName, /* Name of the function to add */
|
||||||
int nArg, /* Number of arguments */
|
int nArg, /* Number of arguments */
|
||||||
@@ -1047,7 +1047,7 @@ int sqlite_create_aggregate(
|
|||||||
** header comment for the prototype of this function in sqlite.h for
|
** header comment for the prototype of this function in sqlite.h for
|
||||||
** additional information.
|
** additional information.
|
||||||
*/
|
*/
|
||||||
int sqlite_function_type(sqlite *db, const char *zName, int dataType){
|
int sqlite3_function_type(sqlite *db, const char *zName, int dataType){
|
||||||
FuncDef *p = (FuncDef*)sqlite3HashFind(&db->aFunc, zName, strlen(zName));
|
FuncDef *p = (FuncDef*)sqlite3HashFind(&db->aFunc, zName, strlen(zName));
|
||||||
while( p ){
|
while( p ){
|
||||||
p->dataType = dataType;
|
p->dataType = dataType;
|
||||||
@@ -1062,9 +1062,9 @@ int sqlite_function_type(sqlite *db, const char *zName, int dataType){
|
|||||||
**
|
**
|
||||||
** A NULL trace function means that no tracing is executes. A non-NULL
|
** A NULL trace function means that no tracing is executes. A non-NULL
|
||||||
** trace is a pointer to a function that is invoked at the start of each
|
** trace is a pointer to a function that is invoked at the start of each
|
||||||
** sqlite_exec().
|
** sqlite3_exec().
|
||||||
*/
|
*/
|
||||||
void *sqlite_trace(sqlite *db, void (*xTrace)(void*,const char*), void *pArg){
|
void *sqlite3_trace(sqlite *db, void (*xTrace)(void*,const char*), void *pArg){
|
||||||
void *pOld = db->pTraceArg;
|
void *pOld = db->pTraceArg;
|
||||||
db->xTrace = xTrace;
|
db->xTrace = xTrace;
|
||||||
db->pTraceArg = pArg;
|
db->pTraceArg = pArg;
|
||||||
@@ -1077,7 +1077,7 @@ void *sqlite_trace(sqlite *db, void (*xTrace)(void*,const char*), void *pArg){
|
|||||||
** If either function returns non-zero, then the commit becomes a
|
** If either function returns non-zero, then the commit becomes a
|
||||||
** rollback.
|
** rollback.
|
||||||
*/
|
*/
|
||||||
void *sqlite_commit_hook(
|
void *sqlite3_commit_hook(
|
||||||
sqlite *db, /* Attach the hook to this database */
|
sqlite *db, /* Attach the hook to this database */
|
||||||
int (*xCallback)(void*), /* Function to invoke on each commit */
|
int (*xCallback)(void*), /* Function to invoke on each commit */
|
||||||
void *pArg /* Argument to the function */
|
void *pArg /* Argument to the function */
|
||||||
@@ -1141,7 +1141,7 @@ int sqlite3BtreeFactory(
|
|||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
int sqlite3_open(const char *filename, sqlite3 **pDb, const char **options){
|
int sqlite3_open(const char *filename, sqlite3 **pDb, const char **options){
|
||||||
*pDb = sqlite_open(filename, 0, &errmsg);
|
*pDb = sqlite3_open(filename, 0, &errmsg);
|
||||||
return (*pDb?SQLITE_OK:SQLITE_ERROR);
|
return (*pDb?SQLITE_OK:SQLITE_ERROR);
|
||||||
}
|
}
|
||||||
int sqlite3_open16(const void *filename, sqlite3 **pDb, const char **options){
|
int sqlite3_open16(const void *filename, sqlite3 **pDb, const char **options){
|
||||||
@@ -1164,7 +1164,7 @@ int sqlite3_open16(const void *filename, sqlite3 **pDb, const char **options){
|
|||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
int sqlite3_close(sqlite3 *db){
|
int sqlite3_close(sqlite3 *db){
|
||||||
return sqlite_close(db);
|
return sqlite3_close(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1203,7 +1203,7 @@ int sqlite3_prepare(
|
|||||||
const char** pzTail
|
const char** pzTail
|
||||||
){
|
){
|
||||||
int rc;
|
int rc;
|
||||||
rc = sqlite_compile(db, zSql, pzTail, ppStmt, 0);
|
rc = sqlite3_compile(db, zSql, pzTail, ppStmt, 0);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
int sqlite3_prepare16(
|
int sqlite3_prepare16(
|
||||||
@@ -1233,21 +1233,21 @@ int sqlite3_prepare16(
|
|||||||
** sqlite3_finalize
|
** sqlite3_finalize
|
||||||
*/
|
*/
|
||||||
int sqlite3_finalize(sqlite3_stmt *stmt){
|
int sqlite3_finalize(sqlite3_stmt *stmt){
|
||||||
return sqlite_finalize(stmt, 0);
|
return sqlite3_finalize(stmt, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** sqlite3_reset
|
** sqlite3_reset
|
||||||
*/
|
*/
|
||||||
int sqlite3_reset(sqlite3_stmt*){
|
int sqlite3_reset(sqlite3_stmt*){
|
||||||
return sqlite_reset(stmt, 0);
|
return sqlite3_reset(stmt, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** sqlite3_step
|
** sqlite3_step
|
||||||
*/
|
*/
|
||||||
int sqlite3_step(sqlite3_stmt *pStmt){
|
int sqlite3_step(sqlite3_stmt *pStmt){
|
||||||
return sqlite_step(pStmt);
|
return sqlite3_step(pStmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1260,7 +1260,7 @@ int sqlite3_bind_text(
|
|||||||
int n,
|
int n,
|
||||||
int eCopy
|
int eCopy
|
||||||
){
|
){
|
||||||
return sqlite_bind(pStmt, i, zVal, n, eCopy);
|
return sqlite3_bind(pStmt, i, zVal, n, eCopy);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sqlite3_bind_text16(
|
int sqlite3_bind_text16(
|
||||||
@@ -1292,7 +1292,7 @@ int sqlite3_bind_text16(
|
|||||||
** sqlite3_bind_null
|
** sqlite3_bind_null
|
||||||
*/
|
*/
|
||||||
int sqlite3_bind_null(sqlite3_stmt*, int iParm){
|
int sqlite3_bind_null(sqlite3_stmt*, int iParm){
|
||||||
return sqlite_bind(pStmt, i, 0, 0, 0);
|
return sqlite3_bind(pStmt, i, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user