visitTableConstraint method

  1. @override
void visitTableConstraint(
  1. TableConstraint e,
  2. void arg
)
override

Implementation

@override
void visitTableConstraint(TableConstraint e, void arg) {
  if (e is KeyClause && e.isPrimaryKey) {
    // Primary key clauses may only include simple columns
    for (final column in e.columns) {
      final expr = column.expression;
      if (expr is! Reference || expr.entityName != null) {
        context.reportError(AnalysisError(
          type: AnalysisErrorType.synctactic,
          message: 'Only column names can be used in a PRIMARY KEY clause',
          relevantNode: expr,
        ));
      }
    }
  }

  visitChildren(e, arg);
}