diff -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) {