rendered paste bodydiff -NurdB libgda-1.99.1-orig/libgda/gda-query-parsing.c libgda-1.99.1-patched/libgda/gda-query-parsing.c
--- libgda-1.99.1-orig/libgda/gda-query-parsing.c 2006-10-12 03:10:46.000000000 -0500
+++ libgda-1.99.1-patched/libgda/gda-query-parsing.c 2006-11-17 13:04:39.000000000 -0500
@@ -632,7 +632,6 @@
has_error = TRUE;
else {
if (!GDA_IS_QUERY_FIELD_FIELD (qfield)) {
- gda_query_field_set_visible (GDA_QUERY_FIELD (qfield), FALSE);
if (fields)
g_object_set (G_OBJECT (g_slist_nth_data (fields, pos)), "value_provider",
qfield, NULL);
@@ -675,6 +674,19 @@
pos ++;
}
+ if (!has_error) {
+ GSList *qfields, *qlist;
+
+ qfields = gda_entity_get_fields (GDA_ENTITY (query));
+ for (qlist = qfields; qlist != NULL; qlist = g_slist_next (qlist)) {
+ GdaEntityField *qfield = GDA_ENTITY_FIELD (qlist->data);
+
+ if (!GDA_IS_QUERY_FIELD_FIELD (qfield))
+ gda_query_field_set_visible (GDA_QUERY_FIELD (qfield), FALSE);
+ }
+ g_slist_free (qfields);
+ }
+
if (entity_fields)
g_slist_free (entity_fields);
}
diff -NurdB libgda-1.99.1-orig/libgda/gda-query.c libgda-1.99.1-patched/libgda/gda-query.c
--- libgda-1.99.1-orig/libgda/gda-query.c 2006-10-26 07:16:19.000000000 -0500
+++ libgda-1.99.1-patched/libgda/gda-query.c 2006-11-17 13:01:08.000000000 -0500
@@ -5307,12 +5307,12 @@
vfields = gda_entity_get_fields (GDA_ENTITY (query));
list = vfields;
while (list && !err) {
- GdaEntityField *value_prov;
+ GdaObject *value_prov;
gchar *str;
gboolean add_field = TRUE;
- g_object_get (G_OBJECT (list->data), "value_provider", &value_prov, NULL);
- g_assert (value_prov);
+ g_object_get (GDA_ENTITY_FIELD (list->data), "value_provider", &value_prov, NULL);
+ g_assert (value_prov != NULL);
str = gda_renderer_render_as_sql (GDA_RENDERER (value_prov), context,
options | GDA_RENDERER_ERROR_IF_DEFAULT, &my_error);
if (!str) {