mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Turn of the reporting of datatypes in the 4th callback argument unless the
SHOW_DATATYPES pragma is ON. Eliminate the NULL pointer that used to separate the beginning of datatypes from the end of column names so that the callback can test to see whether or not datatypes are provided. This is an incompatible changes, but since the prior behavior was never documented, we will let it in. (CVS 670) FossilOrigin-Name: b98727246d5fcc1b097b577be498a77e954c5dc4
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
*************************************************************************
|
||||
** A TCL Interface to SQLite
|
||||
**
|
||||
** $Id: tclsqlite.c,v 1.37 2002/07/10 21:26:01 drh Exp $
|
||||
** $Id: tclsqlite.c,v 1.38 2002/07/11 12:18:17 drh Exp $
|
||||
*/
|
||||
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */
|
||||
|
||||
@@ -93,18 +93,20 @@ static int DbEvalCallback(
|
||||
return 1;
|
||||
}
|
||||
if( cbData->zArray[0] ){
|
||||
Tcl_DString dType;
|
||||
Tcl_DStringInit(&dType);
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray, "*",
|
||||
Tcl_DStringValue(&dCol), TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
Tcl_DStringAppend(&dType, "typeof:", -1);
|
||||
Tcl_DStringAppend(&dType, Tcl_DStringValue(&dCol), -1);
|
||||
Tcl_DStringFree(&dCol);
|
||||
Tcl_ExternalToUtfDString(NULL, azN[i+argc+1], -1, &dCol);
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray,
|
||||
Tcl_DStringValue(&dType), Tcl_DStringValue(&dCol),
|
||||
TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
Tcl_DStringFree(&dType);
|
||||
if( azN[nCol]!=0 } {
|
||||
Tcl_DString dType;
|
||||
Tcl_DStringInit(&dType);
|
||||
Tcl_DStringAppend(&dType, "typeof:", -1);
|
||||
Tcl_DStringAppend(&dType, Tcl_DStringValue(&dCol), -1);
|
||||
Tcl_DStringFree(&dCol);
|
||||
Tcl_ExternalToUtfDString(NULL, azN[i+nCol], -1, &dCol);
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray,
|
||||
Tcl_DStringValue(&dType), Tcl_DStringValue(&dCol),
|
||||
TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
Tcl_DStringFree(&dType);
|
||||
}
|
||||
}
|
||||
|
||||
Tcl_DStringFree(&dCol);
|
||||
@@ -163,13 +165,14 @@ static int DbEvalCallback(
|
||||
if( azCol==0 || (cbData->once && cbData->zArray[0]) ){
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray, "*", "", 0);
|
||||
for(i=0; i<nCol; i++){
|
||||
char *z;
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray, "*", azN[i],
|
||||
TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
z = sqlite_mprintf("typeof:%s", azN[i]);
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray, z, azN[i+nCol+1],
|
||||
TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
sqlite_freemem(z);
|
||||
if( azN[nCol] ){
|
||||
char *z = sqlite_mprintf("typeof:%s", azN[i]);
|
||||
Tcl_SetVar2(cbData->interp, cbData->zArray, z, azN[i+nCol],
|
||||
TCL_LIST_ELEMENT|TCL_APPEND_VALUE);
|
||||
sqlite_freemem(z);
|
||||
}
|
||||
}
|
||||
cbData->once = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user