aboutsummaryrefslogtreecommitdiff
path: root/src/gsql_conn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsql_conn.c')
-rw-r--r--src/gsql_conn.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/gsql_conn.c b/src/gsql_conn.c
index 4d53a03..64cec27 100644
--- a/src/gsql_conn.c
+++ b/src/gsql_conn.c
@@ -28,32 +28,32 @@ static struct sql_iface sql_iftab[MAX_IFACES];
SCM_GLOBAL_SYMBOL (gamma_sql_error, "sql-error");
static long sql_connect_tag = -1;
/* SMOB functions: */
static SCM
-sql_connect_mark (SCM connect_smob)
+sql_connect_mark(SCM connect_smob)
{
struct sql_connect *conn = (struct sql_connect *)SCM_CDR(connect_smob);
- return sql_iftab[conn->iface].mark(conn);
+ if (sql_iftab[conn->iface].mark)
+ return sql_iftab[conn->iface].mark(conn);
}
-static scm_sizet
-sql_connect_free (SCM connect_smob)
+static size_t
+sql_connect_free(SCM connect_smob)
{
- scm_sizet size = sizeof(struct sql_connect);
struct sql_connect *conn = (struct sql_connect *)SCM_CDR(connect_smob);
- size += sql_iftab[conn->iface].free(conn);
+ sql_iftab[conn->iface].free(conn);
if (conn->hostname)
free(conn->hostname);
if (conn->username)
free(conn->username);
if (conn->database)
free(conn->database);
scm_gc_free(conn, sizeof *conn, "SQL connection");
- return size;
+ return 0;
}
static int
sql_connect_print (SCM connect_smob, SCM port, scm_print_state * pstate)
{
struct sql_connect *conn = (struct sql_connect *)SCM_CDR(connect_smob);
@@ -85,31 +85,31 @@ sql_find_iface(const char *name)
if (strcmp(sql_iftab[iface].name, name) == 0)
return iface;
return -1;
}
SCM
-sql_connect_create (char *name)
+sql_connect_create(char *name)
{
struct sql_connect *conn;
int iface = sql_find_iface(name);
if (iface < 0)
scm_misc_error("sql_connect_create",
"Unknown SQL interface ~S",
scm_list_1(scm_from_locale_string(name)));
- conn = scm_gc_malloc (sizeof (*conn), "sql_connect");
+ conn = scm_gc_malloc(sizeof (*conn), "sql_connect");
memset(conn, 0, sizeof *conn);
conn->iface = iface;
- SCM_RETURN_NEWSMOB (sql_connect_tag, conn);
+ SCM_RETURN_NEWSMOB(sql_connect_tag, conn);
}
static int
-scm_is_sql_connect (SCM scm)
+scm_is_sql_connect(SCM scm)
{
- return SCM_NIMP (scm) && SCM_CAR (scm) == (SCM) sql_connect_tag;
+ return SCM_NIMP(scm) && SCM_CAR (scm) == (SCM) sql_connect_tag;
}
/* Interface */
static void
gamma_cvt_iface(SCM inval, void *outval, const char *func_name)
@@ -131,13 +131,13 @@ gamma_cvt_iface(SCM inval, void *outval, const char *func_name)
scm_list_2(scm_from_int(1),
inval));
*(int*)outval = iface;
}
-SCM_DEFINE_PUBLIC (sql_open_connection, "sql-open-connection", 1, 0, 0,
+SCM_DEFINE_PUBLIC(sql_open_connection, "sql-open-connection", 1, 0, 0,
(SCM param),
"Connect to a database. Take connection parameters from @var{param}, "
"which must be a list of conses. In each cons, the @samp{car} contains "
"a @dfn{key} identifying the parameter, and the @samp{cdr} supplies the "
"value for that parameter.\n"
"\n"
@@ -182,26 +182,26 @@ SCM_DEFINE_PUBLIC (sql_open_connection, "sql-open-connection", 1, 0, 0,
smob = sql_iftab[iface].connect(param, FUNC_NAME);
return smob;
}
#undef FUNC_NAME
-SCM_DEFINE_PUBLIC (sql_close_connection, "sql-close-connection", 1, 0, 0,
+SCM_DEFINE_PUBLIC(sql_close_connection, "sql-close-connection", 1, 0, 0,
(SCM conn),
"Close connection to a database.")
#define FUNC_NAME s_sql_close_connection
{
struct sql_connect *cp;
SCM_ASSERT(scm_is_sql_connect(conn), conn, SCM_ARG1, FUNC_NAME);
cp = (struct sql_connect *)SCM_CDR(conn);
sql_iftab[cp->iface].close(cp);
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
-SCM_DEFINE_PUBLIC (sql_query, "sql-query", 2, 0, 0,
+SCM_DEFINE_PUBLIC(sql_query, "sql-query", 2, 0, 0,
(SCM conn, SCM query),
"Send the SQL query @var{query} to the server using connection @var{conn} \
and return the result.\n\
If @var{query} is a @samp{SELECT}, or similar query, returning tuples, the \
return value is a list of rows. Each row is a list of values, one for each \
column. All values are returned as strings. NULL values are returned as \

Return to:

Send suggestions and report system problems to the System administrator.