summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorworo <woro@e10066b5-e1e2-0310-b819-94efdf66514b>2008-02-10 10:29:11 +0000
committerworo <woro@e10066b5-e1e2-0310-b819-94efdf66514b>2008-02-10 10:29:11 +0000
commitab310f72f3b0b2ff8c2f39ee87a9ed6b6fb930d6 (patch)
tree45c7aeda5799b60024e46ff0446a4ad89d691192
parent83c77787298c759e542fe57b506209292e5d18a8 (diff)
downloadvdr-plugin-muggle-ab310f72f3b0b2ff8c2f39ee87a9ed6b6fb930d6.tar.gz
vdr-plugin-muggle-ab310f72f3b0b2ff8c2f39ee87a9ed6b6fb930d6.tar.bz2
mgDb::FieldExists() no more calls Connect() causing recursion for sqlite
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@1012 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--mg_db.c3
-rw-r--r--mg_db_gd_mysql.c2
-rw-r--r--mg_db_gd_pg.c2
-rw-r--r--mg_db_gd_sqlite.c6
4 files changed, 4 insertions, 9 deletions
diff --git a/mg_db.c b/mg_db.c
index 8ef0757..6a53454 100644
--- a/mg_db.c
+++ b/mg_db.c
@@ -1510,7 +1510,10 @@ bool
mgKeyGdFolder::Enabled(mgDb *db)
{
if (m_enabled<0)
+ {
+ if (!db->Connect()) return false;
m_enabled = db->FieldExists("tracks", m_field);
+ }
return (m_enabled==1);
}
diff --git a/mg_db_gd_mysql.c b/mg_db_gd_mysql.c
index 8acda12..5c4dc46 100644
--- a/mg_db_gd_mysql.c
+++ b/mg_db_gd_mysql.c
@@ -632,8 +632,6 @@ mgDbGd::RemoveFromCollection (const string Name, const vector<mgItem*>&items, mg
bool
mgDbGd::FieldExists(string table, string field)
{
- if (!Connect())
- return false;
char *b;
asprintf(&b,"DESCRIBE %s %s",table.c_str(),field.c_str());
mgQuery q(m_db,b);
diff --git a/mg_db_gd_pg.c b/mg_db_gd_pg.c
index d17282d..05953d3 100644
--- a/mg_db_gd_pg.c
+++ b/mg_db_gd_pg.c
@@ -322,8 +322,6 @@ mgDbGd::NeedGenre2()
bool
mgDbGd::FieldExists(string table, string field)
{
- if (!Connect())
- return false;
char *b;
asprintf(&b,"SELECT COUNT(*) FROM information_schema.columns WHERE table_name='album' AND column_name='%s'",field.c_str());
bool result = exec_count(b)==1;
diff --git a/mg_db_gd_sqlite.c b/mg_db_gd_sqlite.c
index c62c737..d5a6be1 100644
--- a/mg_db_gd_sqlite.c
+++ b/mg_db_gd_sqlite.c
@@ -325,9 +325,7 @@ mgDbGd::ConnectDatabase ()
mgWarning("Cannot define decade:%d/%s",rc,sqlite3_errmsg);
return false;
}
- if (!FieldExists("tracks","id"))
- return false;
- return true;
+ return FieldExists("tracks","id");
}
bool
@@ -342,8 +340,6 @@ mgDbGd::NeedGenre2()
bool
mgDbGd::FieldExists(string table, string field)
{
- if (!Connect())
- return false;
char *b;
asprintf(&b,"SELECT %s FROM %s LIMIT 1",field.c_str(),table.c_str());
mgQuery q(m_db,b,mgQuerySilent);