#include <sqlite3.h>
Go to the source code of this file.
|
#define | __DT_DEBUG_SQL_QUERY__(value) |
|
#define | __DT_DEBUG_ASSERT__(xin) |
|
#define | __DT_DEBUG_ASSERT_WITH_QUERY__(xin, query) |
|
#define | DT_DEBUG_SQLITE3_EXEC(a, b, c, d, e) |
|
#define | DT_DEBUG_SQLITE3_PREPARE_V2(a, b, c, d, e) |
|
#define | DT_DEBUG_SQLITE3_BIND_INT(a, b, c) __DT_DEBUG_ASSERT__(sqlite3_bind_int(a, b, c)) |
|
#define | DT_DEBUG_SQLITE3_BIND_INT64(a, b, c) __DT_DEBUG_ASSERT__(sqlite3_bind_int64(a, b, c)) |
|
#define | DT_DEBUG_SQLITE3_BIND_DOUBLE(a, b, c) __DT_DEBUG_ASSERT__(sqlite3_bind_double(a, b, c)) |
|
#define | DT_DEBUG_SQLITE3_BIND_TEXT(a, b, c, d, e) __DT_DEBUG_ASSERT__(sqlite3_bind_text(a, b, c, d, e)) |
|
#define | DT_DEBUG_SQLITE3_BIND_BLOB(a, b, c, d, e) __DT_DEBUG_ASSERT__(sqlite3_bind_blob(a, b, c, d, e)) |
|
#define | DT_DEBUG_SQLITE3_CLEAR_BINDINGS(a) __DT_DEBUG_ASSERT__(sqlite3_clear_bindings(a)) |
|
#define | DT_DEBUG_SQLITE3_RESET(a) __DT_DEBUG_ASSERT__(sqlite3_reset(a)) |
|
#define | DT_DEBUG_TRACE_WRAPPER(thread, function, ...) |
|
◆ __DT_DEBUG_ASSERT__
#define __DT_DEBUG_ASSERT__ |
( |
|
xin | ) |
|
Value: { \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wshadow\"") const int x = xin; \
if(x != SQLITE_OK) \
{ \
fprintf(stderr, "sqlite3 error: %s:%d, function %s(): %s\n", __FILE__, __LINE__, __FUNCTION__, \
} \
_Pragma("GCC diagnostic pop") \
}
sqlite3 * dt_database_get(const dt_database_t *db)
Definition common/database.c:3675
darktable_t darktable
Definition darktable.c:111
const struct dt_database_t * db
Definition darktable.h:545
◆ __DT_DEBUG_ASSERT_WITH_QUERY__
#define __DT_DEBUG_ASSERT_WITH_QUERY__ |
( |
|
xin, |
|
|
|
query |
|
) |
| |
Value: { \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wshadow\"") const int x = xin; \
if(x != SQLITE_OK) \
{ \
fprintf(stderr, "sqlite3 error: %s:%d, function %s(), query \"%s\": %s\n", __FILE__, __LINE__, __FUNCTION__,\
} \
_Pragma("GCC diagnostic pop") \
}
◆ __DT_DEBUG_SQL_QUERY__
#define __DT_DEBUG_SQL_QUERY__ |
( |
|
value | ) |
|
◆ DT_DEBUG_SQLITE3_BIND_BLOB
#define DT_DEBUG_SQLITE3_BIND_BLOB |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
e |
|
) |
| __DT_DEBUG_ASSERT__(sqlite3_bind_blob(a, b, c, d, e)) |
◆ DT_DEBUG_SQLITE3_BIND_DOUBLE
#define DT_DEBUG_SQLITE3_BIND_DOUBLE |
( |
|
a, |
|
|
|
b, |
|
|
|
c |
|
) |
| __DT_DEBUG_ASSERT__(sqlite3_bind_double(a, b, c)) |
◆ DT_DEBUG_SQLITE3_BIND_INT
◆ DT_DEBUG_SQLITE3_BIND_INT64
#define DT_DEBUG_SQLITE3_BIND_INT64 |
( |
|
a, |
|
|
|
b, |
|
|
|
c |
|
) |
| __DT_DEBUG_ASSERT__(sqlite3_bind_int64(a, b, c)) |
◆ DT_DEBUG_SQLITE3_BIND_TEXT
#define DT_DEBUG_SQLITE3_BIND_TEXT |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
e |
|
) |
| __DT_DEBUG_ASSERT__(sqlite3_bind_text(a, b, c, d, e)) |
◆ DT_DEBUG_SQLITE3_CLEAR_BINDINGS
◆ DT_DEBUG_SQLITE3_EXEC
#define DT_DEBUG_SQLITE3_EXEC |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
e |
|
) |
| |
Value: do \
{ \
dt_print(
DT_DEBUG_SQL,
"[sql] %s:%d, function %s(): exec \"%s\"\n", __FILE__, __LINE__, __FUNCTION__, (b)); \
__DT_DEBUG_ASSERT_WITH_QUERY__(sqlite3_exec(a, b, c, d, e), (b)); \
__DT_DEBUG_SQL_QUERY__(b) \
} while(0)
@ DT_DEBUG_SQL
Definition darktable.h:479
◆ DT_DEBUG_SQLITE3_PREPARE_V2
#define DT_DEBUG_SQLITE3_PREPARE_V2 |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
e |
|
) |
| |
Value: do \
{ \
dt_print(
DT_DEBUG_SQL,
"[sql] %s:%d, function %s(): prepare \"%s\"\n", __FILE__, __LINE__, __FUNCTION__, (b));\
__DT_DEBUG_ASSERT_WITH_QUERY__(sqlite3_prepare_v2(a, b, c, d, e), (b)); \
__DT_DEBUG_SQL_QUERY__(b) \
} while(0)
◆ DT_DEBUG_SQLITE3_RESET
◆ DT_DEBUG_TRACE_WRAPPER
#define DT_DEBUG_TRACE_WRAPPER |
( |
|
thread, |
|
|
|
function, |
|
|
|
... |
|
) |
| |
Value: do { \
dt_vprint((thread), "[debug_trace] %s is called from %s at %s:%d\n", \
#function, __FUNCTION__, __FILE__, __LINE__); \
function(__VA_ARGS__); \
} while (0)