From: drh Date: Fri, 20 May 2005 19:36:01 +0000 (+0000) Subject: Comment changes in vdbeapi.c (CVS 2465) X-Git-Tag: version-3.6.10~3693 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e590fbde7cb07e06f1ddccffe448f3f26654859e;p=thirdparty%2Fsqlite.git Comment changes in vdbeapi.c (CVS 2465) FossilOrigin-Name: ab7805fb2fb29abc1311e23a93ba03883db7b30e --- diff --git a/manifest b/manifest index 2b330ab41d..94ddeb58e9 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\smemory\sleaks\sin\sTcl\suser\sfunction\sinterface.\s(CVS\s2464) -D 2005-05-20T09:40:56 +C Comment\schanges\sin\svdbeapi.c\s(CVS\s2465) +D 2005-05-20T19:36:01 F Makefile.in 5c00d0037104de2a50ac7647a5f12769795957a3 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -78,7 +78,7 @@ F src/vacuum.c 84a3bebac2c79a1463b98ba35fb9fb6aa2374250 F src/vdbe.c d2574042c44baf6b1016c61e8072dec529ac748a F src/vdbe.h 75e466d84d362b0c4498978a9d6b1e6bd32ecf3b F src/vdbeInt.h 4afaae2f4adcab54ad2a40dabb2e689fba7b1561 -F src/vdbeapi.c 87f363c9c6a32a403d22dda6d594d3548775a0d5 +F src/vdbeapi.c c66b88fce58f72eee44ec8c348a2561e031d2417 F src/vdbeaux.c 77dc2e0f8e846269c51342134f3c9720f51707e6 F src/vdbemem.c 4e853ce3151eaf7906150da85a1b3ce1fe5e8da8 F src/where.c f02baff03e2a9ed7bdc36b363b8e4024a94de919 @@ -279,7 +279,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b -P 79a41674be2c0a1990598428d8b1e9d09d3ea389 -R a8f1519668cd9c3de5ed434d7977bd68 -U danielk1977 -Z 26879986c13011337ad31b75ea04a7a9 +P f5d9a8061a6d650f207669b121243abb8dd28be2 +R e99cd950c0217d760e240a513f735555 +U drh +Z a74284c22e055fdde82da0a235079120 diff --git a/manifest.uuid b/manifest.uuid index 5d5854ed08..df04678b60 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f5d9a8061a6d650f207669b121243abb8dd28be2 \ No newline at end of file +ab7805fb2fb29abc1311e23a93ba03883db7b30e \ No newline at end of file diff --git a/src/vdbeapi.c b/src/vdbeapi.c index 247c1e0d0f..574738eae8 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -383,8 +383,18 @@ int sqlite3_column_type(sqlite3_stmt *pStmt, int i){ /* ** Convert the N-th element of pStmt->pColName[] into a string using ** xFunc() then return that string. If N is out of range, return 0. -** If useType is 1, then use the second set of N elements (the datatype -** names) instead of the first set. +** +** There are up to 5 names for each column. useType determines which +** name is returned. Here are the names: +** +** 0 The column name as it should be displayed for output +** 1 The datatype name for the column +** 2 The name of the database that the column derives from +** 3 The name of the table that the column derives from +** 4 The name of the table column that the result column derives from +** +** If the result is not a simple column reference (if it is an expression +** or a constant) then useTypes 2, 3, and 4 return NULL. */ static const void *columnName( sqlite3_stmt *pStmt, @@ -398,9 +408,7 @@ static const void *columnName( if( p==0 || N>=n || N<0 ){ return 0; } - if( useType ){ - N += n; - } + N += useType*n; return xFunc(&p->aColName[N]); } @@ -412,32 +420,71 @@ static const void *columnName( const char *sqlite3_column_name(sqlite3_stmt *pStmt, int N){ return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, 0); } +#ifndef SQLITE_OMIT_UTF16 +const void *sqlite3_column_name16(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 0); +} +#endif /* ** Return the column declaration type (if applicable) of the 'i'th column -** of the result set of SQL statement pStmt, encoded as UTF-8. +** of the result set of SQL statement pStmt. */ const char *sqlite3_column_decltype(sqlite3_stmt *pStmt, int N){ return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, 1); } +#ifndef SQLITE_OMIT_UTF16 +const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 1); +} +#endif /* SQLITE_OMIT_UTF16 */ +#if !defined(SQLITE_OMIT_ORIGIN_NAMES) && 0 +/* +** Return the name of the database from which a result column derives. +** NULL is returned if the result column is an expression or constant or +** anything else which is not an unabiguous reference to a database column. +*/ +const char *sqlite3_column_database_name(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, 2); +} #ifndef SQLITE_OMIT_UTF16 +const void *sqlite3_column_database_name16(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 2); +} +#endif /* SQLITE_OMIT_UTF16 */ + /* -** Return the name of the 'i'th column of the result set of SQL statement -** pStmt, encoded as UTF-16. +** Return the name of the table from which a result column derives. +** NULL is returned if the result column is an expression or constant or +** anything else which is not an unabiguous reference to a database column. */ -const void *sqlite3_column_name16(sqlite3_stmt *pStmt, int N){ - return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 0); +const char *sqlite3_column_table_name(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, 3); +} +#ifndef SQLITE_OMIT_UTF16 +const void *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 3); } +#endif /* SQLITE_OMIT_UTF16 */ /* -** Return the column declaration type (if applicable) of the 'i'th column -** of the result set of SQL statement pStmt, encoded as UTF-16. +** Return the name of the table column from which a result column derives. +** NULL is returned if the result column is an expression or constant or +** anything else which is not an unabiguous reference to a database column. */ -const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){ - return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 1); +const char *sqlite3_column_origin_name(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, 4); +} +#ifndef SQLITE_OMIT_UTF16 +const void *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N){ + return columnName(pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, 4); } #endif /* SQLITE_OMIT_UTF16 */ +#endif /* SQLITE_OMIT_ORIGIN_NAMES */ + + + /******************************* sqlite3_bind_ *************************** **