]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Comment changes in vdbeapi.c (CVS 2465)
authordrh <drh@noemail.net>
Fri, 20 May 2005 19:36:01 +0000 (19:36 +0000)
committerdrh <drh@noemail.net>
Fri, 20 May 2005 19:36:01 +0000 (19:36 +0000)
FossilOrigin-Name: ab7805fb2fb29abc1311e23a93ba03883db7b30e

manifest
manifest.uuid
src/vdbeapi.c

index 2b330ab41de2658d24a502871443cdfa0a883e8c..94ddeb58e9457cdd245eb4dbb9caa418ba005650 100644 (file)
--- 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
index 5d5854ed08115cfd92595b4890e6e81e9cbec855..df04678b60bb61826e4346273d8576cfa5a3f28b 100644 (file)
@@ -1 +1 @@
-f5d9a8061a6d650f207669b121243abb8dd28be2
\ No newline at end of file
+ab7805fb2fb29abc1311e23a93ba03883db7b30e
\ No newline at end of file
index 247c1e0d0f5823db06b77b4e46c7980443334f51..574738eae8dcd1a9c1d892b04227cf851ef565c6 100644 (file)
@@ -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_  ***************************
 **