From c06c137edee40c3c5eb958f6d724678b313adb63 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 22 Oct 2011 12:46:27 +0200 Subject: [PATCH] Added and managed decode_join_type on GdaExQueryEditorField. --- src/queryeditor.c | 3 ++- src/queryeditor.h | 7 +++++++ tests/query_editor.c | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/queryeditor.c b/src/queryeditor.c index 7d6f5c8..2fb48ca 100644 --- a/src/queryeditor.c +++ b/src/queryeditor.c @@ -745,7 +745,8 @@ GdaSqlBuilder id_join1, id_join2, 0); gda_sql_builder_select_join_targets (sqlbuilder, id_target1, id_target2, - GDA_SQL_SELECT_JOIN_INNER, join_cond); + field->decode_join_type == GDAEX_QE_JOIN_TYPE_LEFT ? GDA_SQL_SELECT_JOIN_LEFT : GDA_SQL_SELECT_JOIN_INNER, + join_cond); gda_sql_builder_select_add_field (sqlbuilder, field->decode_field_to_show, field->decode_table2, alias != NULL && g_strcmp0 (alias, "") != 0 ? alias : field->decode_field_alias); diff --git a/src/queryeditor.h b/src/queryeditor.h index 2a658c6..6e653f5 100644 --- a/src/queryeditor.h +++ b/src/queryeditor.h @@ -92,6 +92,12 @@ typedef enum GDAEX_QE_WHERE_TYPE_IS_NULL = 4096 } GdaExQueryEditorWhereType; +typedef enum + { + GDAEX_QE_JOIN_TYPE_INNER, + GDAEX_QE_JOIN_TYPE_LEFT + } GdaExQueryEditorJoinType; + #define GDAEX_QE_WHERE_TYPE_STRING GDAEX_QE_WHERE_TYPE_STARTS | GDAEX_QE_WHERE_TYPE_CONTAINS | GDAEX_QE_WHERE_TYPE_ENDS | GDAEX_QE_WHERE_TYPE_ISTARTS | GDAEX_QE_WHERE_TYPE_ICONTAINS | GDAEX_QE_WHERE_TYPE_IENDS #define GDAEX_QE_WHERE_TYPE_NUMBER GDAEX_QE_WHERE_TYPE_EQUAL | GDAEX_QE_WHERE_TYPE_GREAT | GDAEX_QE_WHERE_TYPE_GREAT_EQUAL | GDAEX_QE_WHERE_TYPE_LESS | GDAEX_QE_WHERE_TYPE_LESS_EQUAL | GDAEX_QE_WHERE_TYPE_BETWEEN @@ -116,6 +122,7 @@ typedef struct * to refactor */ gchar *decode_table2; + GdaExQueryEditorJoinType decode_join_type; /* TODO GSList *decode_fields1; GSList *decode_fields2; diff --git a/tests/query_editor.c b/tests/query_editor.c index 2e557b5..728a9a1 100644 --- a/tests/query_editor.c +++ b/tests/query_editor.c @@ -251,6 +251,7 @@ main (int argc, char *argv[]) field->for_show = TRUE; field->for_where = TRUE; field->decode_table2 = g_strdup ("cities"); + field->decode_join_type = GDAEX_QE_JOIN_TYPE_LEFT; /*field->decode_fields1 = g_slist_append (field->decode_fields1, "id_cities"); field->decode_fields2 = g_slist_append (field->decode_fields2, "id");*/ field->decode_field2 = g_strdup ("id"); -- 2.49.0