1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-03 16:53:36 +03:00

Add initial test cases for the new sqlite_bind() API. Fix bugs that the new

test cases found. (CVS 1096)

FossilOrigin-Name: f6c4908e9b5b6ac9adc4af50dc5110dbb655dae3
This commit is contained in:
drh
2003-09-06 22:45:20 +00:00
parent 7c972dec5c
commit 82a4851a4b
4 changed files with 94 additions and 19 deletions

View File

@@ -576,7 +576,6 @@ void sqliteVdbeMakeReady(
int n;
assert( p!=0 );
assert( p->aStack==0 );
assert( p->magic==VDBE_MAGIC_INIT );
/* Add a HALT instruction to the very end of the program.
@@ -592,17 +591,20 @@ void sqliteVdbeMakeReady(
**
** Allocation all the stack space we will ever need.
*/
p->nVar = nVar>=0 ? nVar : p->nVar;
n = isExplain ? 10 : p->nOp;
p->aStack = sqliteMalloc(
if( p->aStack==0 ){
p->nVar = nVar;
assert( nVar>=0 );
n = isExplain ? 10 : p->nOp;
p->aStack = sqliteMalloc(
n*(sizeof(p->aStack[0]) + 2*sizeof(char*)) /* aStack and zStack */
+ p->nVar*(sizeof(char*)+sizeof(int)+1) /* azVar, anVar, abVar */
);
p->zStack = (char**)&p->aStack[n];
p->azColName = (char**)&p->zStack[n];
p->azVar = (char**)&p->azColName[n];
p->anVar = (int*)&p->azVar[p->nVar];
p->abVar = (u8*)&p->anVar[p->nVar];
+ p->nVar*(sizeof(char*)+sizeof(int)+1) /* azVar, anVar, abVar */
);
p->zStack = (char**)&p->aStack[n];
p->azColName = (char**)&p->zStack[n];
p->azVar = (char**)&p->azColName[n];
p->anVar = (int*)&p->azVar[p->nVar];
p->abVar = (u8*)&p->anVar[p->nVar];
}
sqliteHashInit(&p->agg.hash, SQLITE_HASH_BINARY, 0);
p->agg.pSearch = 0;
@@ -948,7 +950,7 @@ int sqlite_bind(sqlite_vm *pVm, int i, const char *zVal, int len, int copy){
p->azVar[i] = sqliteMalloc( len );
if( p->azVar[i] ) memcpy(p->azVar[i], zVal, len);
}else{
p->azVar[i] = zVal;
p->azVar[i] = (char*)zVal;
}
p->abVar[i] = copy;
p->anVar[i] = len;