示例#1
0
文件: column.c 项目: gokul-uf/chidb
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);
    }
}
示例#2
0
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");
   }
}