static void deleteConstraint_ts(Constraint_t *constraint) { if (constraint) { Constraint_t *next = constraint->next; switch (constraint->t) { case CONS_DEFAULT: Literal_free(constraint->constraint.default_val); break; case CONS_CHECK: Condition_free(constraint->constraint.check); break; default: break; } deleteConstraint_ts(next); } }
static void Term_free(ExprTerm term) { switch (term.t) { case TERM_ID: free(term.id); break; case TERM_LITERAL: Literal_free(term.val); break; case TERM_NULL: break; case TERM_COLREF: if (term.ref->tableName) free(term.ref->tableName); free(term.ref->columnName); break; case TERM_FUNC: switch (term.f.t) { case FUNC_AVG: Expression_free(term.f.expr); break; case FUNC_COUNT: Expression_free(term.f.expr); break; case FUNC_MAX: Expression_free(term.f.expr); break; case FUNC_MIN: Expression_free(term.f.expr); break; case FUNC_SUM: Expression_free(term.f.expr); break; default: printf("Can't delete unknown function\n"); } default: printf("Can't delete, unknown term type"); } }