![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <glib.h>
#include <sqlite3.h>
Go to the source code of this file.
Macros | |
#define | dt_database_start_transaction(db) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_SQL, dt_database_start_transaction_debug, (db)) |
#define | dt_database_release_transaction(db) DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_SQL, dt_database_release_transaction_debug, (db)) |
#define dt_database_release_transaction | ( | db | ) | DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_SQL, dt_database_release_transaction_debug, (db)) |
#define dt_database_start_transaction | ( | db | ) | DT_DEBUG_TRACE_WRAPPER(DT_DEBUG_SQL, dt_database_start_transaction_debug, (db)) |
void dt_database_cleanup_busy_statements | ( | const struct dt_database_t * | db | ) |
cleanup busy statements on closing dt, just before performing maintenance
References DT_DEBUG_SQL, dt_print(), and dt_database_t::handle.
Referenced by dt_cleanup().
void dt_database_destroy | ( | const struct dt_database_t * | ) |
closes down database and frees memory
sqlite3 * dt_database_get | ( | const struct dt_database_t * | ) |
get handle
gboolean dt_database_get_lock_acquired | ( | const struct dt_database_t * | db | ) |
test if database was already locked by another instance
gchar * dt_database_get_most_recent_snap | ( | const char * | db_filename | ) |
get possibly the freshest snapshot to restore
References DT_DEBUG_SQL, dt_print(), and error().
Referenced by dt_database_init().
const gchar * dt_database_get_path | ( | const struct dt_database_t * | db | ) |
Returns database path
References dt_database_t::dbfilename_library.
Referenced by dt_mipmap_cache_get_filename().
struct dt_database_t * dt_database_init | ( | const char * | alternative, |
const gboolean | load_data, | ||
const gboolean | has_gui | ||
) |
allocates and initializes database
References _create_data_schema(), _create_library_schema(), _create_memory_schema(), _database_delete_mipmaps_files(), _database_migrate_to_xdg_structure(), _get_pragma_string_val(), _lock_databases(), _migrate_schema(), _sanitize_db(), _trxid, _upgrade_data_schema(), _upgrade_library_schema(), ask_for_upgrade(), CURRENT_DATABASE_VERSION_DATA, CURRENT_DATABASE_VERSION_LIBRARY, dt_database_t::dbfilename_data, dt_database_t::dbfilename_library, dt_atomic_set_int(), dt_conf_get_string(), dt_database_backup(), dt_database_destroy(), dt_database_get_most_recent_snap(), DT_DEBUG_SQL, dt_legacy_presets_create(), dt_loc_get_datadir(), dt_loc_get_user_config_dir(), dt_print(), error(), FALSE, dt_database_t::handle, dt_database_t::lock_acquired, dt_database_t::lockfile_data, dt_database_t::lockfile_library, PATH_MAX, sqlite3IcuInit(), and TRUE.
Referenced by dt_init().
gboolean dt_database_maybe_maintenance | ( | const struct dt_database_t * | db, |
const gboolean | has_gui, | ||
const gboolean | closing_time | ||
) |
conditionally perfrom db maintenance
References _ask_for_maintenance(), _get_pragma_int_val(), _is_mem_db(), dt_conf_get_int(), dt_conf_get_string_const(), DT_DEBUG_SQL, dt_print(), FALSE, dt_database_t::handle, and TRUE.
Referenced by dt_cleanup(), and dt_init().
gboolean dt_database_maybe_snapshot | ( | const struct dt_database_t * | db | ) |
check if creating database snapshot is recommended
References _is_mem_db(), dt_database_t::dbfilename_library, dt_conf_get_string_const(), DT_DEBUG_SQL, dt_print(), error(), FALSE, and TRUE.
Referenced by dt_cleanup().
void dt_database_optimize | ( | const struct dt_database_t * | db | ) |
perform pre-db-close optimizations (always call when quiting darktable)
References _is_mem_db(), DT_DEBUG_SQLITE3_EXEC, and dt_database_t::handle.
Referenced by dt_cleanup().
void dt_database_perform_maintenance | ( | const struct dt_database_t * | db | ) |
References _get_pragma_int_val(), DT_DEBUG_SQL, DT_DEBUG_SQLITE3_EXEC, dt_print(), ERRCHECK, and dt_database_t::handle.
Referenced by dt_cleanup(), dt_init(), and optimize_database_callback().
void dt_database_release_transaction_debug | ( | const struct dt_database_t * | db | ) |
References _trxid, dt_atomic_sub_int(), dt_database_get(), DT_DEBUG_SQLITE3_EXEC, and TRUE.
void dt_database_rollback_transaction | ( | const struct dt_database_t * | db | ) |
References _trxid, dt_atomic_sub_int(), dt_database_get(), DT_DEBUG_SQLITE3_EXEC, and TRUE.
Referenced by _history_snapshot_undo_restore(), dt_exif_xmp_read(), and dt_history_snapshot_undo_create().
void dt_database_show_error | ( | const struct dt_database_t * | db | ) |
show an error popup. this has to be postponed until after we tried using dbus to reach another instance
char ** dt_database_snaps_to_remove | ( | const struct dt_database_t * | db | ) |
get list of snapshot files to remove after successful snapshot
References _db_snap_sort(), _is_mem_db(), dt_database_t::dbfilename_data, dt_database_t::dbfilename_library, dt_conf_get_int(), DT_DEBUG_SQL, dt_print(), error(), and FALSE.
Referenced by dt_cleanup().
gboolean dt_database_snapshot | ( | const struct dt_database_t * | db | ) |
simply create db snapshot of both library and data
References _backup_db(), _is_mem_db(), _print_backup_progress(), dt_database_t::dbfilename_data, dt_database_t::dbfilename_library, FALSE, dt_database_t::handle, and TRUE.
Referenced by backup_database_callback(), and dt_cleanup().
void dt_database_start_transaction_debug | ( | const struct dt_database_t * | db | ) |
References _trxid, dt_atomic_add_int(), dt_database_get(), DT_DEBUG_SQLITE3_EXEC, MAX_NESTED_TRANSACTIONS, and TRUE.