summaryrefslogtreecommitdiff
path: root/mg_db_gd_pg.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg_db_gd_pg.c')
-rw-r--r--mg_db_gd_pg.c34
1 files changed, 5 insertions, 29 deletions
diff --git a/mg_db_gd_pg.c b/mg_db_gd_pg.c
index a8c88d9..d17282d 100644
--- a/mg_db_gd_pg.c
+++ b/mg_db_gd_pg.c
@@ -22,6 +22,7 @@
#include "mg_setup.h"
#include "mg_item_gd.h"
#include "mg_db_gd_pg.h"
+#include <libpq-fe.h>
#include <pg_config.h>
@@ -253,14 +254,6 @@ mgDbGd::Commit()
bool
mgDbGd::Create()
{
- if (!Connect())
- return false;
- return myCreate();
-}
-
-bool
-mgDbGd::myCreate()
-{
// create database and tables
int len = sizeof( db_cmds ) / sizeof( char* );
for( int i=0; i < len; i ++ )
@@ -269,8 +262,8 @@ mgDbGd::myCreate()
if (!q.ErrorMessage().empty())
return false;
}
- m_database_found=true;
FillTables();
+ mgWarning("new database successfully created");
return true;
}
@@ -282,10 +275,8 @@ mgDbGd::ServerConnect ()
bool
-mgDbGd::Connect ()
+mgDbGd::ConnectDatabase ()
{
- if (m_database_found)
- return true;
char conninfo[500];
char port[20];
char host[200];
@@ -312,23 +303,8 @@ mgDbGd::Connect ()
mgWarning("Failed to connect to postgres server using %s:%s",conninfo,PQerrorMessage(m_db));
return false;
}
- m_database_found = true; // otherwise we get into a recursion
- m_database_found = exec_count("SELECT COUNT(*) FROM information_schema.tables WHERE table_name='album'");
- if (m_database_found)
- return true;
- if (time(0)<m_create_time+10)
- return false;
- m_create_time=time(0);
- extern bool create_question();
- if (!create_question())
- {
- mgWarning("Database not created");
- return false;
- }
- m_database_found = myCreate();
- if (!m_database_found)
- mgWarning("Cannot create database:%s",PQerrorMessage(m_db));
- return m_database_found;
+ return atol (get_col0 ("SELECT COUNT(*) FROM information_schema.tables WHERE table_name='album'").c_str ())==1;
+ // do not use exec_count because it calls Connect()
}
bool