r17201 - gnucash/branches/gda-dev2 - 1) Add check for dbi/dbi.h to configure.in
Phil Longstaff
plongstaff at cvs.gnucash.org
Sun Jun 8 08:59:05 EDT 2008
Author: plongstaff
Date: 2008-06-08 08:59:05 -0400 (Sun, 08 Jun 2008)
New Revision: 17201
Trac: http://svn.gnucash.org/trac/changeset/17201
Modified:
gnucash/branches/gda-dev2/configure.in
gnucash/branches/gda-dev2/src/backend/Makefile.am
gnucash/branches/gda-dev2/src/backend/dbi/Makefile.am
gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c
gnucash/branches/gda-dev2/src/backend/sql/gnc-recurrence-sql.c
gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-employee-sql.c
gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-job-sql.c
gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-owner-sql.c
Log:
1) Add check for dbi/dbi.h to configure.in
2) Fix more memory leaks
Modified: gnucash/branches/gda-dev2/configure.in
===================================================================
--- gnucash/branches/gda-dev2/configure.in 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/configure.in 2008-06-08 12:59:05 UTC (rev 17201)
@@ -623,6 +623,28 @@
AC_SUBST(LIBGDA_CFLAGS)
AC_SUBST(LIBGDA_LIBS)
+### ----------------------
+### LIBDBI
+AC_ARG_ENABLE(dbi,
+ [ --disable-dbi build without the libdbi backend],
+ [case "${enableval}" in
+ yes) want_dbi=true ;;
+ no) want_dbi=false ;;
+ *) want_dbi=true ;;
+ esac],[want_dbi=true])
+if test x${want_dbi} = xtrue
+then
+ AC_CHECK_HEADERS(dbi/dbi.h)
+ if test "x$ac_cv_header_dbi_dbi_h" != xno; then
+ LIBDBI_LIBS=-ldbi
+ DBI_DIR=dbi
+ else
+ AC_MSG_ERROR( Unable to find dbi/dbi.h )
+ fi
+fi
+AC_SUBST(LIBDBI_LIBS)
+AC_SUBST(DBI_DIR)
+
### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...
@@ -673,94 +695,6 @@
### --------------------------------------------------------------------------
-### SQL
-# Check to see if the user wants to have Postgres support
-#
-# hack alert ... we should use 'pg_config --includedir' and
-# 'pg_config --libdir' to find paths; unfortunately pg_config itself
-# is hard to find :-(
-
-AC_ARG_ENABLE( sql,
- [ --enable-sql compile with sql support],
- [
- PG_CONFIG=`which pg_config`
-
- if test "x$PG_CONFIG" = "x" ; then
- PG_CONFIG="/usr/lib/postgresql/bin/pg_config"
- fi
-
- if test "x$enableval" != "xno" ; then
-
- PGSQL_CFLAGS=`${PG_CONFIG} --includedir`
- if test "x$PGSQL_CFLAGS" != x; then
- PGSQL_CFLAGS="-I${PGSQL_CFLAGS}"
- fi
-
- AS_SCRUB_INCLUDE(PGSQL_CFLAGS)
-# XXX Fixme: CPPFLAGS are saved but CFLAGS are altered later on and not restored.
- saved_CPPFLAGS="${CPPFLAGS}"
- saved_CFLAGS="${CFLAGS}"
- CPPFLAGS="${CPPFLAGS} ${PGSQL_CFLAGS}"
- AC_CHECK_HEADERS(pgsql/libpq-fe.h postgresql/libpq-fe.h libpq-fe.h)
- if test "x$ac_cv_header_pgsql_libpq_fe_h$ac_cv_header_postgresql_libpq_fe_h$ac_cv_header_libpq_fe_h" = xnonono; then
- AC_MSG_ERROR([Cannot find PostgreSQL headers; won't build sql backend])
- else
- master_dirs="/usr/include /usr/local/include"
- if test "x$ac_cv_header_pgsql_libpq_fe_h" != xno; then
- for dir in $master_dirs; do
- if test -f "$dir/pgsql/libpq-fe.h"; then
- CFLAGS="${CFLAGS} -I$dir/pgsql"
- break
- fi
- done
- elif test "x$ac_cv_header_postgresql_libpq_fe_h" != xno; then
- for dir in $master_dirs; do
- if test -f "$dir/postgresql/libpq-fe.h"; then
- CFLAGS="${CFLAGS} -I$dir/postgresql"
- break
- fi
- done
- fi
-
- AS_SCRUB_INCLUDE(CFLAGS)
-
- PGSQL_LIBS=`${PG_CONFIG} --libdir`
- if test "x$PGSQL_LIBS" != x; then
- PGSQL_LIBS="-L${PGSQL_LIBS}"
- fi
-
- saved_LIBS="$LIBS"
- LIBS="${PGSQL_LIBS} -lpq $LIBS"
- AC_MSG_CHECKING(for libpq)
- AC_TRY_LINK(
- [
- #include <libpq-fe.h>
- ],
- [
- PQconnectdb("asdf");
- ],
- [
- AC_MSG_RESULT(yes)
- SQL_DIR=postgres
- ],
- [
- AC_MSG_ERROR([Cannot find PostgreSQL libraries; will not build sql backend])
- ]
- )
- LIBS="$saved_LIBS"
- fi
- CPPFLAGS="$saved_CPPFLAGS"
- CFLAGS="$saved_CFLAGS"
- fi
- ]
-)
-
-AC_SUBST(PGSQL_CFLAGS)
-AC_SUBST(PGSQL_LIBS)
-AC_SUBST(SQL_DIR)
-
-
-### --------------------------------------------------------------------------
### RPC has been removed in gnucash 1.9.0
### --------------------------------------------------------------------------
@@ -1595,12 +1529,12 @@
output_qof_lib_dir=`eval eval eval echo $QOF_LIB_DIR`
output_qof_xml_dir=`eval eval eval echo $QOF_XML_DIR`
+if test x${DBI_DIR} != x; then
+components="$components dbi"
+fi
if test x${GDA_DIR} != x; then
components="$components gda"
fi
-if test x${SQL_DIR} != x; then
-components="$components sql"
-fi
if test x${OFX_DIR} != x; then
components="$components ofx"
fi
Modified: gnucash/branches/gda-dev2/src/backend/Makefile.am
===================================================================
--- gnucash/branches/gda-dev2/src/backend/Makefile.am 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/backend/Makefile.am 2008-06-08 12:59:05 UTC (rev 17201)
@@ -1,3 +1,3 @@
-SUBDIRS = file ${SQL_DIR} ${GDA_DIR} sql dbi
-DIST_SUBDIRS = file postgres gda sql dbi
+SUBDIRS = file sql ${SQL_DIR} ${GDA_DIR} ${DBI_DIR}
+DIST_SUBDIRS = file sql ${SQL_DIR} ${GDA_DIR} ${DBI_DIR}
Modified: gnucash/branches/gda-dev2/src/backend/dbi/Makefile.am
===================================================================
--- gnucash/branches/gda-dev2/src/backend/dbi/Makefile.am 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/backend/dbi/Makefile.am 2008-06-08 12:59:05 UTC (rev 17201)
@@ -28,7 +28,7 @@
${GLIB_LIBS} ${GCONF_LIBS} \
${top_builddir}/src/backend/sql/libgncmod-backend-sql.la \
${top_builddir}/src/engine/libgncmod-engine.la \
- -ldbi \
+ ${LIBDBI_LIBS} \
${QOF_LIBS}
INCLUDES = -DG_LOG_DOMAIN=\"gnc.backend.dbi\"
Modified: gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -367,7 +367,11 @@
if( dbi_row->gvalue_list != NULL ) {
for( node = dbi_row->gvalue_list; node != NULL; node = node->next ) {
- g_free( node->data );
+ GValue* value = (GValue*)node->data;
+ if( G_VALUE_HOLDS_STRING(value) ) {
+ g_free( (gpointer)g_value_get_string( value ) );
+ }
+ g_free( value );
}
g_list_free( dbi_row->gvalue_list );
}
@@ -394,7 +398,7 @@
break;
case DBI_TYPE_STRING:
g_value_init( value, G_TYPE_STRING );
- g_value_set_string( value, dbi_result_get_string( dbi_row->result, col_name ) );
+ g_value_take_string( value, dbi_result_get_string_copy( dbi_row->result, col_name ) );
break;
default:
PERR( "Unknown DBI_TYPE: %d\n", type );
Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -810,12 +810,13 @@
month = atoi( buf );
day = atoi( &s[6] );
- date = g_date_new_dmy( day, month, year );
- (*setter)( pObject, date );
- g_date_free( date );
-
+ if( year != 0 || month != 0 || day != 0 ) {
+ date = g_date_new_dmy( day, month, year );
+ (*setter)( pObject, date );
+ g_date_free( date );
+ }
} else {
- PWARN( "Unknown timespec type: %s", G_VALUE_TYPE_NAME( val ) );
+ PWARN( "Unknown date type: %s", G_VALUE_TYPE_NAME( val ) );
}
}
}
@@ -1624,7 +1625,7 @@
{
g_return_if_fail( be != NULL );
- be->versions = g_hash_table_new( g_str_hash, g_str_equal );
+ be->versions = g_hash_table_new_full( g_str_hash, g_str_equal, g_free, NULL );
if( gnc_sql_connection_does_table_exist( be->conn, VERSION_TABLE_NAME ) ) {
GncSqlResult* result;
@@ -1642,7 +1643,7 @@
name = gnc_sql_row_get_value_at_col_name( row, TABLE_COL_NAME );
version = gnc_sql_row_get_value_at_col_name( row, VERSION_COL_NAME );
g_hash_table_insert( be->versions,
- (gpointer)g_value_get_string( name ),
+ g_strdup( g_value_get_string( name ) ),
GINT_TO_POINTER(g_value_get_int( version )) );
row = gnc_sql_result_get_next_row( result );
}
@@ -1678,7 +1679,7 @@
PERR( "Error creating versions table: %s\n", error->message );
}
if( be->versions == NULL ) {
- be->versions = g_hash_table_new( g_str_hash, g_str_equal );
+ be->versions = g_hash_table_new_full( g_str_hash, g_str_equal, g_free, NULL );
} else {
g_hash_table_remove_all( be->versions );
}
@@ -1729,7 +1730,7 @@
g_free( sql );
}
- g_hash_table_insert( be->versions, (gpointer)table_name, GINT_TO_POINTER(version) );
+ g_hash_table_insert( be->versions, g_strdup( table_name ), GINT_TO_POINTER(version) );
}
/**
Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-recurrence-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-recurrence-sql.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-recurrence-sql.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -238,7 +238,6 @@
recurrence_info.pRecurrence = r;
gnc_sql_load_object( be, row, TABLE_NAME, &recurrence_info, col_table );
- g_free( row );
}
static GncSqlResult*
@@ -248,7 +247,6 @@
gchar guid_buf[GUID_ENCODING_LENGTH+1];
gchar* field_name;
GncSqlStatement* stmt;
- GValue value;
GError* error = NULL;
GncSqlResult* result;
@@ -256,14 +254,8 @@
g_return_val_if_fail( guid != NULL, NULL );
guid_to_string_buff( guid, guid_buf );
- memset( &value, 0, sizeof( value ) );
- g_value_init( &value, G_TYPE_STRING );
- g_value_set_string( &value, guid_buf );
-
buf = g_strdup_printf( "SELECT * FROM %s WHERE obj_guid='%s'", TABLE_NAME, guid_buf );
stmt = gnc_sql_connection_create_statement_from_sql( be->conn, buf );
- g_free( buf );
-
result = gnc_sql_execute_select_statement( be, stmt );
gnc_sql_statement_dispose( stmt );
return result;
Modified: gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-employee-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-employee-sql.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-employee-sql.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -68,7 +68,7 @@
{ "active", CT_BOOLEAN, 0, COL_NNUL, NULL, QOF_PARAM_ACTIVE },
{ "currency", CT_COMMODITYREF, 0, COL_NNUL, NULL, NULL,
(QofAccessFunc)gncEmployeeGetCurrency, (QofSetterFunc)gncEmployeeSetCurrency },
- { "ccard_guid", CT_ACCOUNTREF, 0, COL_NNUL, NULL, EMPLOYEE_CC },
+ { "ccard_guid", CT_ACCOUNTREF, 0, 0, NULL, EMPLOYEE_CC },
{ "workday", CT_NUMERIC, 0, COL_NNUL, NULL, EMPLOYEE_WORKDAY },
{ "rate", CT_NUMERIC, 0, COL_NNUL, NULL, EMPLOYEE_RATE },
{ "addr", CT_ADDRESS, 0, 0, NULL, EMPLOYEE_ADDR },
Modified: gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-job-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-job-sql.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-job-sql.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -58,8 +58,10 @@
{ "id", CT_STRING, MAX_ID_LEN, COL_NNUL, NULL, JOB_ID },
{ "name", CT_STRING, MAX_NAME_LEN, COL_NNUL, NULL, JOB_NAME },
{ "reference", CT_STRING, MAX_REFERENCE_LEN, COL_NNUL, NULL, JOB_REFERENCE },
- { "active", CT_BOOLEAN, 0, COL_NNUL, NULL, JOB_ACTIVE },
- { "owner", CT_OWNERREF, 0, COL_NNUL, NULL, JOB_OWNER },
+ { "active", CT_BOOLEAN, 0, COL_NNUL, NULL, NULL,
+ (QofAccessFunc)gncJobGetActive, (QofSetterFunc)gncJobSetActive },
+ { "owner", CT_OWNERREF, 0, COL_NNUL, NULL, NULL,
+ (QofAccessFunc)gncJobGetOwner, (QofSetterFunc)gncJobSetOwner },
{ NULL }
};
Modified: gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-owner-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-owner-sql.c 2008-06-08 10:08:22 UTC (rev 17200)
+++ gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-owner-sql.c 2008-06-08 12:59:05 UTC (rev 17201)
@@ -74,7 +74,6 @@
val = gnc_sql_row_get_value_at_col_name( row, buf );
g_free( buf );
- val = gnc_sql_row_get_value_at_col_name( row, table_row->col_name );
if( val != NULL ) {
string_to_guid( g_value_get_string( val ), &guid );
}
More information about the gnucash-changes
mailing list