On Thu, 2008-04-03 at 14:11 +0200, Vivien Malerba wrote:
> On Thu, Apr 3, 2008 at 11:31 AM, Murray Cumming <[EMAIL PROTECTED]> wrote:
> > (This is in libgda-3.0. I haven't looked at this in trunk.)
> 
> This only applies to V3, since for V4 the providers don't use that
> object anymore (but the
> global conception is almost the same).
> 
> Each GdaDataModel implementation which inherits the GdaDataModelRow
> class is repsonsible for managing its GdaRow objects, so the answer to
> your question is no, don't unref() the GdaRow.

Thanks.

But the postgres provider really doesn't seem to be managing the rows
that it creates. I think it's leaking the rows:
http://svn.gnome.org/viewvc/libgda/branches/release-3-0-branch/providers/postgres/gda-postgres-recordset.c?view=markup

This is the relevant code:

static GdaRow *
get_row (GdaDataModel *model, GdaPostgresRecordsetPrivate *priv, gint
rownum, GError **error)
{
        gchar *thevalue;
        GType ftype;
        gboolean isNull;
        GValue *value;
        GdaRow *row;
        gint i;
        gchar *id;
        gint length;
        
        row = gda_row_new (model, priv->ncolumns);
        for (i = 0; i < priv->ncolumns; i++) {
                thevalue = PQgetvalue (priv->pg_res, rownum, i);
                length = PQgetlength (priv->pg_res, rownum, i);
                ftype = priv->column_types [i];
                isNull = *thevalue != '\0' ? FALSE : PQgetisnull (priv->pg_res,
rownum, i);
                value = (GValue *) gda_row_get_value (row, i);
                gda_postgres_set_value (priv->cnc, value, ftype, thevalue, 
isNull,
length);
        }

        gda_row_set_number (row, rownum);
        id = g_strdup_printf ("%d", rownum);
        /* Use oid or figure out primary keys ? could use libsql to add oid
to every query. */
        gda_row_set_id (row, id); /* FIXME: by now, the rowid is just the row
number */
        g_free (id);
        return row;
}

-- 
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list

Reply via email to