aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/stmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/misc/stmt.c')
-rw-r--r--ext/misc/stmt.c48
1 files changed, 13 insertions, 35 deletions
diff --git a/ext/misc/stmt.c b/ext/misc/stmt.c
index b06191e93..dbaa0bd64 100644
--- a/ext/misc/stmt.c
+++ b/ext/misc/stmt.c
@@ -30,23 +30,6 @@ SQLITE_EXTENSION_INIT1
#ifndef SQLITE_OMIT_VIRTUALTABLE
-/*
-** The following macros are used to cast pointers to integers.
-** The way you do this varies from one compiler
-** to the next, so we have developed the following set of #if statements
-** to generate appropriate macros for a wide range of compilers.
-*/
-#if defined(__PTRDIFF_TYPE__) /* This case should work for GCC */
-# define SQLITE_PTR_TO_INT64(X) ((sqlite3_int64)(__PTRDIFF_TYPE__)(X))
-#elif !defined(__GNUC__) /* Works for compilers other than LLVM */
-# define SQLITE_PTR_TO_INT64(X) ((sqlite3_int64)(((char*)X)-(char*)0))
-#elif defined(HAVE_STDINT_H) /* Use this case if we have ANSI headers */
-# define SQLITE_PTR_TO_INT64(X) ((sqlite3_int64)(intptr_t)(X))
-#else /* Generates a warning - but it always works */
-# define SQLITE_PTR_TO_INT64(X) ((sqlite3_int64)(X))
-#endif
-
-
/* stmt_vtab is a subclass of sqlite3_vtab which will
** serve as the underlying representation of a stmt virtual table
*/
@@ -92,22 +75,21 @@ static int stmtConnect(
int rc;
/* Column numbers */
-#define STMT_COLUMN_PTR 0 /* Numeric value of the statement pointer */
-#define STMT_COLUMN_SQL 1 /* SQL for the statement */
-#define STMT_COLUMN_NCOL 2 /* Number of result columns */
-#define STMT_COLUMN_RO 3 /* True if read-only */
-#define STMT_COLUMN_BUSY 4 /* True if currently busy */
-#define STMT_COLUMN_NSCAN 5 /* SQLITE_STMTSTATUS_FULLSCAN_STEP */
-#define STMT_COLUMN_NSORT 6 /* SQLITE_STMTSTATUS_SORT */
-#define STMT_COLUMN_NAIDX 7 /* SQLITE_STMTSTATUS_AUTOINDEX */
-#define STMT_COLUMN_NSTEP 8 /* SQLITE_STMTSTATUS_VM_STEP */
-#define STMT_COLUMN_REPREP 9 /* SQLITE_STMTSTATUS_REPREPARE */
-#define STMT_COLUMN_RUN 10 /* SQLITE_STMTSTATUS_RUN */
-#define STMT_COLUMN_MEM 11 /* SQLITE_STMTSTATUS_MEMUSED */
+#define STMT_COLUMN_SQL 0 /* SQL for the statement */
+#define STMT_COLUMN_NCOL 1 /* Number of result columns */
+#define STMT_COLUMN_RO 2 /* True if read-only */
+#define STMT_COLUMN_BUSY 3 /* True if currently busy */
+#define STMT_COLUMN_NSCAN 4 /* SQLITE_STMTSTATUS_FULLSCAN_STEP */
+#define STMT_COLUMN_NSORT 5 /* SQLITE_STMTSTATUS_SORT */
+#define STMT_COLUMN_NAIDX 6 /* SQLITE_STMTSTATUS_AUTOINDEX */
+#define STMT_COLUMN_NSTEP 7 /* SQLITE_STMTSTATUS_VM_STEP */
+#define STMT_COLUMN_REPREP 8 /* SQLITE_STMTSTATUS_REPREPARE */
+#define STMT_COLUMN_RUN 9 /* SQLITE_STMTSTATUS_RUN */
+#define STMT_COLUMN_MEM 10 /* SQLITE_STMTSTATUS_MEMUSED */
rc = sqlite3_declare_vtab(db,
- "CREATE TABLE x(ptr,sql,ncol,ro,busy,nscan,nsort,naidx,nstep,"
+ "CREATE TABLE x(sql,ncol,ro,busy,nscan,nsort,naidx,nstep,"
"reprep,run,mem)");
if( rc==SQLITE_OK ){
pNew = sqlite3_malloc( sizeof(*pNew) );
@@ -170,10 +152,6 @@ static int stmtColumn(
){
stmt_cursor *pCur = (stmt_cursor*)cur;
switch( i ){
- case STMT_COLUMN_PTR: {
- sqlite3_result_int64(ctx, SQLITE_PTR_TO_INT64(pCur->pStmt));
- break;
- }
case STMT_COLUMN_SQL: {
sqlite3_result_text(ctx, sqlite3_sql(pCur->pStmt), -1, SQLITE_TRANSIENT);
break;
@@ -295,7 +273,7 @@ static sqlite3_module stmtModule = {
int sqlite3StmtVtabInit(sqlite3 *db){
int rc = SQLITE_OK;
#ifndef SQLITE_OMIT_VIRTUALTABLE
- rc = sqlite3_create_module(db, "stmt", &stmtModule, 0);
+ rc = sqlite3_create_module(db, "sqlite_stmt", &stmtModule, 0);
#endif
return rc;
}