diff options
Diffstat (limited to 'src/pgsql.c')
-rw-r--r-- | src/pgsql.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/pgsql.c b/src/pgsql.c index c5cf51e..1421c40 100644 --- a/src/pgsql.c +++ b/src/pgsql.c @@ -18,30 +18,23 @@ # include <config.h> #endif #include <string.h> #include <guile-sql.h> #include <libpq-fe.h> -static SCM -s_pgsql_mark(struct sql_connect *conn) -{ - return SCM_BOOL_F; -} - -static scm_sizet +static size_t s_pgsql_free(struct sql_connect *conn) { PGconn *pgconn = (PGconn*) conn->data; - if (!pgconn) - return 0; - PQfinish(pgconn); - return sizeof(pgconn); + if (pgconn) + PQfinish(pgconn); + return 0; } static SCM -s_pgsql_connect (SCM parmlist, const char *func_name) +s_pgsql_connect(SCM parmlist, const char *func_name) { char *hostname = NULL; char *port = NULL; char *dbname = NULL; char *user = NULL; char *pass = NULL; @@ -165,21 +158,21 @@ s_pgsql_query(struct sql_connect *conn, const char *query) } static void s_pgsql_close(struct sql_connect *conn) { PGconn *pgconn = (PGconn*) conn->data; - if (!pgconn) - return; - PQfinish(pgconn); - conn->data = NULL; + if (pgconn) { + PQfinish(pgconn); + conn->data = NULL; + } } struct sql_iface pgsql_iface = { "pgsql", - s_pgsql_mark, + NULL, /* mark */ s_pgsql_free, s_pgsql_connect, s_pgsql_close, s_pgsql_query, }; |