Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals

pm_sql.h File Reference

#include <sqlite3.h>

Go to the source code of this file.

Data Structures

struct  memory_sqlite3_stmt

Defines

#define _GNU_SOURCE
#define ABORT(format, args...)   ({ ALP_TMTL(format, args); ALP_FAIL_FATAL_IF(1, format "\n", args); })
#define S_DB   db
#define S_STMT   sqlite3_stmt *
#define S_EXEC(cmd)
#define S_EXEC_W(cmd)
#define S_PREPARE(stmt, cmd)
#define S_PREPARE_P(stmt, cmd)
#define S_RESET(stmt)   ({ sqlite3_reset((stmt)); })
#define S_STEP_ROW(stmt)
#define S_FINALIZE(stmt)   sqlite3_finalize((stmt));
#define S_BEGIN_SELECT(stmt)
#define S_BREAK_SELECT(stmt)   ({ _result = SQLITE_DONE; break; })
#define S_END_SELECT(stmt)
#define S_DO(stmt)
#define S_DO_OR_ABORT(stmt)
#define S_DO_W(stmt)
#define S_BIND_INT(stmt, param, value)   sqlite3_bind_int((stmt), (param), (value))
#define S_BIND_INT64(stmt, param, value)   sqlite3_bind_int64((stmt), (param), (value))
#define S_BIND_UINT(stmt, param, value)   sqlite3_bind_int64((stmt), (param), (long long)((unsigned int)(value)))
#define S_BIND_TEXT(stmt, param, value)   sqlite3_bind_text((stmt), (param), (value), -1, SQLITE_TRANSIENT)
#define S_BIND_TEXTLEN(stmt, param, value, len)   sqlite3_bind_text((stmt), (param), (value), (len), SQLITE_TRANSIENT)
#define S_BIND_BLOBLEN(stmt, param, value, len)   sqlite3_bind_blob(stmt, param, value, len, SQLITE_TRANSIENT)
#define S_BIND_NULL(stmt, param)   sqlite3_bind_null(stmt, param)
#define S_BIND_GSTRING(stmt, param, value)   sqlite3_bind_text((stmt), (param), (value)->str, (value)->len, SQLITE_TRANSIENT)
#define S_COL_INT(stmt, param)   sqlite3_column_int((stmt),(param))
#define S_COL_INT64(stmt, param)   sqlite3_column_int64((stmt),(param))
#define S_COL_TEXT(stmt, param)   sqlite3_column_text((stmt),(param))
#define S_COL_BLOB(stmt, param)   sqlite3_column_blob((stmt),(param))
#define S_COL_BYTES(stmt, param)   sqlite3_column_bytes((stmt),(param))
#define S_COL_ISNULL(stmt, param)   (sqlite3_column_type((stmt),(param)) == SQLITE_NULL)
#define SK_STMT   struct sqlite3_stmt *
#define SK_PREPARE(stmt, cmd)
#define SK_RESET(stmt)   ({ sqlite3_reset((stmt)); })
#define SK_STEP_ROW(stmt)
#define SK_FINALIZE(stmt)
#define SK_BEGIN_SELECT(stmt)
#define SK_BREAK_SELECT(stmt)   ({ _result = SQLITE_DONE; break; })
#define SK_END_SELECT(stmt)
#define SK_DO(stmt)
#define SK_DO_OR_ABORT(stmt)
#define SK_DO_W(stmt)
#define SK_BEGIN()   S_EXEC("BEGIN")
#define SK_COMMIT()   S_EXEC("COMMIT")
#define SK_BIND_INT(stmt, param, value)   sqlite3_bind_int((stmt), (param), (value))
#define SK_BIND_TEXT(stmt, param, value)   sqlite3_bind_text((stmt), (param), (value), -1, SQLITE_TRANSIENT)
#define SK_BIND_TEXTLEN(stmt, param, value, len)   sqlite3_bind_text((stmt), (param), (value), (len), SQLITE_TRANSIENT)
#define SK_BIND_BLOBLEN(stmt, param, value, len)   sqlite3_bind_blob(stmt, param, value, len, SQLITE_TRANSIENT)
#define SK_BIND_NULL(stmt, param)   sqlite3_bind_null(stmt, param)
#define SK_BIND_GSTRING(stmt, param, value)   sqlite3_bind_text((stmt), (param), (value)->str, (value)->len, SQLITE_TRANSIENT)
#define SK_COL_INT(stmt, param)   sqlite3_column_int((stmt),(param))
#define SK_COL_TEXT(stmt, param)   sqlite3_column_text((stmt),(param))
#define SK_COL_BLOB(stmt, param)   sqlite3_column_blob((stmt),(param))
#define SK_COL_BYTES(stmt, param)   sqlite3_column_bytes((stmt),(param))
#define SK_COL_ISNULL(stmt, param)   (sqlite3_column_type((stmt),(param)) == SQLITE_NULL)

Variables

memory_sqlite3_stmtgmemory_sqlite3_stmt
memory_sqlite3_stmt gmemoize_sqlite3_begin
memory_sqlite3_stmt gmemoize_sqlite3_commit


Define Documentation

#define _GNU_SOURCE
 

#define ABORT format,
args...   )     ({ ALP_TMTL(format, args); ALP_FAIL_FATAL_IF(1, format "\n", args); })
 

#define S_BEGIN_SELECT stmt   ) 
 

Value:

{ int _result; \
  while ((_result = sqlite3_step((stmt))) == SQLITE_ROW) {

#define S_BIND_BLOBLEN stmt,
param,
value,
len   )     sqlite3_bind_blob(stmt, param, value, len, SQLITE_TRANSIENT)
 

#define S_BIND_GSTRING stmt,
param,
value   )     sqlite3_bind_text((stmt), (param), (value)->str, (value)->len, SQLITE_TRANSIENT)
 

#define S_BIND_INT stmt,
param,
value   )     sqlite3_bind_int((stmt), (param), (value))
 

#define S_BIND_INT64 stmt,
param,
value   )     sqlite3_bind_int64((stmt), (param), (value))
 

#define S_BIND_NULL stmt,
param   )     sqlite3_bind_null(stmt, param)
 

#define S_BIND_TEXT stmt,
param,
value   )     sqlite3_bind_text((stmt), (param), (value), -1, SQLITE_TRANSIENT)
 

#define S_BIND_TEXTLEN stmt,
param,
value,
len   )     sqlite3_bind_text((stmt), (param), (value), (len), SQLITE_TRANSIENT)
 

#define S_BIND_UINT stmt,
param,
value   )     sqlite3_bind_int64((stmt), (param), (long long)((unsigned int)(value)))
 

#define S_BREAK_SELECT stmt   )     ({ _result = SQLITE_DONE; break; })
 

#define S_COL_BLOB stmt,
param   )     sqlite3_column_blob((stmt),(param))
 

#define S_COL_BYTES stmt,
param   )     sqlite3_column_bytes((stmt),(param))
 

#define S_COL_INT stmt,
param   )     sqlite3_column_int((stmt),(param))
 

#define S_COL_INT64 stmt,
param   )     sqlite3_column_int64((stmt),(param))
 

#define S_COL_ISNULL stmt,
param   )     (sqlite3_column_type((stmt),(param)) == SQLITE_NULL)
 

#define S_COL_TEXT stmt,
param   )     sqlite3_column_text((stmt),(param))
 

#define S_DB   db
 

#define S_DO stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
   if (_result != SQLITE_DONE) { \
     _result = sqlite3_reset(stmt); \
     ABORT("Error executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_finalize((stmt)); \
})

#define S_DO_OR_ABORT stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
   if (_result != SQLITE_DONE && _result != SQLITE_ERROR) { \
     _result = sqlite3_reset(stmt); \
     ABORT("Error executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_finalize((stmt)); \
   (_result == SQLITE_DONE) ? 0 : 1; \
})

#define S_DO_W stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
   if (_result != SQLITE_DONE) { \
     _result = sqlite3_reset(stmt); \
     ALP_TMTL("Warning executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_finalize((stmt)); \
})

#define S_END_SELECT stmt   ) 
 

Value:

} \
  if (_result != SQLITE_DONE) { \
     _result = sqlite3_reset(stmt); \
    ABORT("Can't step command: %s\n", sqlite3_errmsg(S_DB)); \
  } else { \
    sqlite3_finalize((stmt)); \
  } \
}

#define S_EXEC cmd   ) 
 

Value:

({ ALP_FAIL_FATAL_IF(!S_DB, "Error: bundle manager not initialized\n"); \
   int _result = sqlite3_exec(S_DB, (cmd), NULL, NULL, NULL); \
   if (_result != SQLITE_OK) { \
     ABORT("Error executing command %s: %s\n", (cmd), sqlite3_errmsg(S_DB)); \
   } \
})

#define S_EXEC_W cmd   ) 
 

Value:

({ ALP_FAIL_FATAL_IF(!S_DB, "Error: bundle manager not initialized\n"); \
   int _result = sqlite3_exec(S_DB, (cmd), NULL, NULL, NULL); \
   if (_result != SQLITE_OK) { \
     ALP_TMTL("Warning executing command %s: %s\n", (cmd), sqlite3_errmsg(S_DB)); \
   } \
})

#define S_FINALIZE stmt   )     sqlite3_finalize((stmt));
 

#define S_PREPARE stmt,
cmd   ) 
 

Value:

({ ALP_FAIL_FATAL_IF(!S_DB, "Error: bundle manager not initialized\n"); \
   int _result = sqlite3_prepare(S_DB, (cmd), -1, &(stmt), NULL); \
   if (_result != SQLITE_OK) { \
     ABORT("Error preparing command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
})

#define S_PREPARE_P stmt,
cmd   ) 
 

Value:

({ ALP_FAIL_FATAL_IF(!S_DB, "Error: bundle manager not initialized\n"); \
   int _result = sqlite3_prepare(S_DB, (cmd), -1, &(stmt), NULL);       \
   _result == SQLITE_OK;                                                \
})

#define S_RESET stmt   )     ({ sqlite3_reset((stmt)); })
 

#define S_STEP_ROW stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
                if (_result != SQLITE_DONE && _result != SQLITE_ROW) {  \
                        _result = sqlite3_reset(stmt); \
                        ALP_TMTL("Cannot step command: %s", sqlite3_errmsg(S_DB)); \
                } \
           (_result == SQLITE_ROW) ? 1 : 0; \
         })

#define S_STMT   sqlite3_stmt *
 

 
#define SK_BEGIN  )     S_EXEC("BEGIN")
 

#define SK_BEGIN_SELECT stmt   ) 
 

Value:

{ int _result; \
  while ((_result = sqlite3_step((stmt))) == SQLITE_ROW) {

#define SK_BIND_BLOBLEN stmt,
param,
value,
len   )     sqlite3_bind_blob(stmt, param, value, len, SQLITE_TRANSIENT)
 

#define SK_BIND_GSTRING stmt,
param,
value   )     sqlite3_bind_text((stmt), (param), (value)->str, (value)->len, SQLITE_TRANSIENT)
 

#define SK_BIND_INT stmt,
param,
value   )     sqlite3_bind_int((stmt), (param), (value))
 

#define SK_BIND_NULL stmt,
param   )     sqlite3_bind_null(stmt, param)
 

#define SK_BIND_TEXT stmt,
param,
value   )     sqlite3_bind_text((stmt), (param), (value), -1, SQLITE_TRANSIENT)
 

#define SK_BIND_TEXTLEN stmt,
param,
value,
len   )     sqlite3_bind_text((stmt), (param), (value), (len), SQLITE_TRANSIENT)
 

#define SK_BREAK_SELECT stmt   )     ({ _result = SQLITE_DONE; break; })
 

#define SK_COL_BLOB stmt,
param   )     sqlite3_column_blob((stmt),(param))
 

#define SK_COL_BYTES stmt,
param   )     sqlite3_column_bytes((stmt),(param))
 

#define SK_COL_INT stmt,
param   )     sqlite3_column_int((stmt),(param))
 

#define SK_COL_ISNULL stmt,
param   )     (sqlite3_column_type((stmt),(param)) == SQLITE_NULL)
 

#define SK_COL_TEXT stmt,
param   )     sqlite3_column_text((stmt),(param))
 

 
#define SK_COMMIT  )     S_EXEC("COMMIT")
 

#define SK_DO stmt   ) 
 

Value:

({ int _result = sqlite3_step((stmt)); \
   if (_result != SQLITE_DONE) { \
     _result = sqlite3_reset((stmt)); \
     ABORT("Error executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_reset((stmt)); \
   sqlite3_clear_bindings((stmt)); \
})

#define SK_DO_OR_ABORT stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
   if (_result != SQLITE_DONE && _result != SQLITE_ERROR) { \
     _result = sqlite3_reset((stmt)); \
     ABORT("Error executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_reset((stmt)); \
   sqlite3_clear_bindings((stmt)); \
   (_result == SQLITE_DONE) ? 0 : 1; \
})

#define SK_DO_W stmt   ) 
 

Value:

({ int _result = sqlite3_step(stmt); \
   if (_result != SQLITE_DONE) { \
     _result = sqlite3_reset((stmt)); \
     ALP_TMTL("Warning executing prepared command: %s\n", sqlite3_errmsg(S_DB)); \
   } \
   sqlite3_reset((stmt)); \
   sqlite3_clear_bindings((stmt)); \
})

#define SK_END_SELECT stmt   ) 
 

Value:

} \
  if (_result != SQLITE_DONE) { \
    _result = sqlite3_reset((stmt)); \
    ABORT("Can't step command: %s\n", sqlite3_errmsg(S_DB)); \
  } else { \
    sqlite3_reset((stmt)); \
    sqlite3_clear_bindings((stmt)); \
  } \
}

#define SK_FINALIZE stmt   ) 
 

Value:

({ sqlite3_reset((stmt));       \
           sqlite3_clear_bindings((stmt)); })

#define SK_PREPARE stmt,
cmd   ) 
 

Value:

({ ALP_FAIL_FATAL_IF(!S_DB, "Error: bundle manager not initialized\n"); \
   if (!__builtin_constant_p(cmd)) {                            \
        ALP_TMTL("Error preparing command: %s (line %d of %s) -- not constant!", (cmd), __LINE__, __FUNCTION__); \
  }                                                             \
   static struct memory_sqlite3_stmt _stmt_memory;              \
   if (_stmt_memory.sqlstmt != NULL && sqlite3_expired(_stmt_memory.sqlstmt)) {         \
        sqlite3_finalize(_stmt_memory.sqlstmt);                                         \
           int _result = sqlite3_prepare(S_DB, (cmd), -1, &(_stmt_memory.sqlstmt), NULL); \
           if (_result != SQLITE_OK) {                                   \
             ABORT("Error re-preparing command: %s\n", sqlite3_errmsg(S_DB)); \
           }                                                            \
   } else if (_stmt_memory.sqlstmt == NULL ) {                          \
           int _result = sqlite3_prepare(S_DB, (cmd), -1, &(_stmt_memory.sqlstmt), NULL); \
           if (_result != SQLITE_OK) {                                   \
             ABORT("Error preparing command: %s\n", sqlite3_errmsg(S_DB)); \
           }                                                            \
           _stmt_memory.cmd_str = (cmd);                                        \
           _stmt_memory.next = gmemory_sqlite3_stmt;                    \
           gmemory_sqlite3_stmt = &_stmt_memory;                        \
  }                                                                     \
  (stmt) = _stmt_memory.sqlstmt;                                                        \
})

#define SK_RESET stmt   )     ({ sqlite3_reset((stmt)); })
 

#define SK_STEP_ROW stmt   ) 
 

Value:

({ int _result = sqlite3_step((stmt)); \
                if (_result != SQLITE_DONE && _result != SQLITE_ROW) {  \
                        _result = sqlite3_reset((stmt)); \
                        ALP_TMTL("Cannot step command: %s", sqlite3_errmsg(S_DB)); \
                } \
           (_result == SQLITE_ROW) ? 1 : 0; \
         })

#define SK_STMT   struct sqlite3_stmt *
 


Variable Documentation

struct memory_sqlite3_stmt gmemoize_sqlite3_begin
 

struct memory_sqlite3_stmt gmemoize_sqlite3_commit
 

struct memory_sqlite3_stmt* gmemory_sqlite3_stmt
 


Generated on Sat Dec 16 20:29:48 2006 for hiker-0.9 by  doxygen 1.4.4