Introduce db_file_id_byfilebase and db_file_id_byfile

File id lookup by basepath + filename and filename only.
This commit is contained in:
Julien BLACHE 2009-11-22 16:30:45 +01:00
parent 66cd10dc52
commit a6cbb2a8ec
2 changed files with 54 additions and 0 deletions

View File

@ -997,6 +997,54 @@ db_file_id_bypath(char *path)
#undef Q_TMPL
}
int
db_file_id_byfilebase(char *filename, char *base)
{
#define Q_TMPL "SELECT id FROM files WHERE path LIKE '%q/%%/%q';"
char *query;
int ret;
query = sqlite3_mprintf(Q_TMPL, base, filename);
if (!query)
{
DPRINTF(E_LOG, L_DB, "Out of memory for query string\n");
return 0;
}
ret = db_file_id_byquery(query);
sqlite3_free(query);
return ret;
#undef Q_TMPL
}
int
db_file_id_byfile(char *filename)
{
#define Q_TMPL "SELECT id FROM files WHERE fname = '%q';"
char *query;
int ret;
query = sqlite3_mprintf(Q_TMPL, filename);
if (!query)
{
DPRINTF(E_LOG, L_DB, "Out of memory for query string\n");
return 0;
}
ret = db_file_id_byquery(query);
sqlite3_free(query);
return ret;
#undef Q_TMPL
}
int
db_file_id_byurl(char *url)
{

View File

@ -241,6 +241,12 @@ db_file_ping(char *path);
int
db_file_id_bypath(char *path);
int
db_file_id_byfilebase(char *filename, char *base);
int
db_file_id_byfile(char *filename);
int
db_file_id_byurl(char *url);