From e445008077c1921f95481b02b9d50c78063a6d1d Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Wed, 2 Oct 2019 15:42:00 +0200 Subject: [PATCH] Added function GdaExSqlBuilder::where_boolean. --- src/sqlbuilder.c | 30 ++++++++++++++++++++++++++++++ src/sqlbuilder.h | 7 +++++++ tests/sqlbuilder.c | 5 +++++ 3 files changed, 42 insertions(+) diff --git a/src/sqlbuilder.c b/src/sqlbuilder.c index 0af320f..a8416ff 100644 --- a/src/sqlbuilder.c +++ b/src/sqlbuilder.c @@ -560,6 +560,36 @@ gdaex_sql_builder_where (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, ...) return priv->id_where; } +GdaSqlBuilderId +gdaex_sql_builder_where_boolean (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, + const gchar *table_name, + const gchar *field_name, + const gchar *field_alias, + GdaSqlOperatorType where_op, + gboolean op1, + gboolean op2) +{ + GValue *val1; + GValue *val2; + + GdaSqlBuilderId id; + + val1 = g_new0 (GValue, 1); + g_value_init (val1, G_TYPE_BOOLEAN); + g_value_set_boolean (val1, op1); + + val2 = g_new0 (GValue, 1); + g_value_init (val2, G_TYPE_BOOLEAN); + g_value_set_boolean (val2, op2); + + id = gdaex_sql_builder_where (sqlb, op, table_name, field_name, field_alias, where_op, val1, val2, NULL); + + g_value_unset (val1); + g_value_unset (val2); + + return id; +} + GdaSqlBuilderId gdaex_sql_builder_where_int (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, const gchar *table_name, diff --git a/src/sqlbuilder.h b/src/sqlbuilder.h index b210664..f355172 100644 --- a/src/sqlbuilder.h +++ b/src/sqlbuilder.h @@ -70,6 +70,13 @@ void gdaex_sql_builder_fields (GdaExSqlBuilder *sqlb, ...); GdaSqlBuilderId gdaex_sql_builder_where (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, ...); +GdaSqlBuilderId gdaex_sql_builder_where_boolean (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, + const gchar *table_name, + const gchar *field_name, + const gchar *field_alias, + GdaSqlOperatorType where_op, + gboolean op1, + gboolean op2); GdaSqlBuilderId gdaex_sql_builder_where_int (GdaExSqlBuilder *sqlb, GdaSqlOperatorType op, const gchar *table_name, const gchar *field_name, diff --git a/tests/sqlbuilder.c b/tests/sqlbuilder.c index 1e5de7a..571261c 100644 --- a/tests/sqlbuilder.c +++ b/tests/sqlbuilder.c @@ -187,6 +187,11 @@ main (int argc, char **argv) GDA_SQL_OPERATOR_TYPE_BETWEEN, 1, 99); + gdaex_sql_builder_where_boolean (sqlb, 0, + "pippo", "married", "", + GDA_SQL_OPERATOR_TYPE_EQ, + TRUE, FALSE); + g_message ("sql: %s", gdaex_sql_builder_get_sql (sqlb, NULL, NULL)); g_object_unref (sqlb); -- 2.49.0