37 "SELECT id FROM main.film_rolls WHERE folder LIKE ?1",
39 "SELECT id FROM main.film_rolls WHERE folder = ?1",
55 " FROM main.film_rolls"
72 "INSERT INTO main.film_rolls (id, access_timestamp, folder)"
73 " VALUES (NULL, strftime('%s', 'now'), ?1)",
87 "UPDATE main.film_rolls"
88 " SET access_timestamp = strftime('%s', 'now')"
89 " WHERE id = ?1", -1, &
stmt,
104 "UPDATE main.film_rolls SET folder=?1 WHERE id=?2", -1, &
stmt,
NULL);
118 "DELETE FROM main.film_rolls WHERE id = ?1", -1,
131 "SELECT id FROM main.images WHERE film_id = ?1", -1,
144 "SELECT id FROM main.images WHERE film_id = ?1",
162 "SELECT id, folder FROM main.film_rolls",
176 " FROM main.film_rolls AS B"
177 " WHERE (SELECT COUNT(*)"
178 " FROM main.images AS A"
179 " WHERE A.film_id=B.id) = 0",
194 "SELECT id, folder FROM main.film_rolls WHERE folder LIKE ?1", -1, &
stmt,
NULL);
207 "DELETE FROM memory.film_folder",
218 "INSERT INTO memory.film_folder (id, status) "
sqlite3 * dt_database_get_sqlite3_global(void)
char * dt_film_repository_get_folder(const int32_t id)
gboolean dt_film_repository_insert(const char *folder)
void dt_film_repository_foreach_empty(dt_film_repository_row_cb cb, void *user_data)
gboolean dt_film_repository_has_images(const int32_t id)
void dt_film_repository_foreach_under(const char *path, dt_film_repository_row_cb cb, void *user_data)
int32_t dt_film_repository_find_by_folder(const char *folder)
gboolean dt_film_repository_touch_access(const int32_t id)
void dt_film_repository_foreach(dt_film_repository_row_cb cb, void *user_data)
gboolean dt_film_repository_set_folder(const int32_t id, const char *folder)
gboolean dt_film_repository_delete(const int32_t id)
void dt_film_repository_folder_status_set(const int32_t id, const gboolean present)
GList * dt_film_repository_get_image_ids(const int32_t filmid)
void dt_film_repository_folder_status_clear(void)
void(* dt_film_repository_row_cb)(void *user_data, const int32_t id, const char *folder)
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
Checked wrappers around the sqlite3_* calls: trace the statement, assert the return code,...
#define DT_DEBUG_SQLITE3_PREPARE_V2(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_BIND_TEXT(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_BIND_INT(a, b, c)