Skip to content

Commit

Permalink
Return fail if condition build failed. Fixes #22
Browse files Browse the repository at this point in the history
  • Loading branch information
piotras committed Nov 26, 2010
1 parent cce3233 commit ce4b9ba
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/query_builder.c
Expand Up @@ -270,15 +270,16 @@ gboolean midgard_query_builder_add_constraint(
midgard_core_query_constraint_set_class(constraint, MIDGARD_DBOBJECT_CLASS(g_type_class_peek(builder->priv->type)));

if(!midgard_core_query_constraint_add_operator(constraint, op))
return FALSE;
goto return_false;

if(!midgard_core_query_constraint_parse_property(&constraint, MIDGARD_DBOBJECT_CLASS(g_type_class_peek(builder->priv->type)), name))
return FALSE;
goto return_false;

if(!midgard_core_query_constraint_add_value(constraint, value))
return FALSE;
goto return_false;

midgard_core_query_constraint_build_condition(constraint);
if (!midgard_core_query_constraint_build_condition(constraint))
goto return_false;

/* FIXME, table should be stored per every constraint, order, whatever */
midgard_core_qb_add_table(builder, constraint->priv->prop_left->table);
Expand All @@ -295,6 +296,10 @@ gboolean midgard_query_builder_add_constraint(
midgard_core_qb_add_constraint(builder, constraint);

return TRUE;

return_false:
g_object_unref (constraint);
return FALSE;
}

/**
Expand Down Expand Up @@ -342,14 +347,15 @@ gboolean midgard_query_builder_add_constraint_with_property(
midgard_core_query_constraint_set_class(constraint, klass);

if(!midgard_core_query_constraint_parse_property(&constraint, klass, property_a))
return FALSE;
goto return_false;
constraint->priv->current = constraint->priv->prop_right;
if(!midgard_core_query_constraint_parse_property(&constraint, klass, property_b))
return FALSE;
goto return_false;

constraint->priv->condition_operator = g_strdup(op);

midgard_core_query_constraint_build_condition(constraint);
if (!midgard_core_query_constraint_build_condition(constraint))
goto return_false;

midgard_core_qb_add_table(builder, constraint->priv->prop_left->table);
midgard_core_qb_add_table(builder, constraint->priv->prop_right->table);
Expand All @@ -366,6 +372,10 @@ gboolean midgard_query_builder_add_constraint_with_property(
}

return TRUE;

return_false:
g_object_unref (constraint);
return FALSE;
}

/**
Expand Down

0 comments on commit ce4b9ba

Please sign in to comment.