visitMultiColumnSetComponent method

  1. @override
void visitMultiColumnSetComponent(
  1. MultiColumnSetComponent e,
  2. void arg
)
override

Implementation

@override
void visitMultiColumnSetComponent(MultiColumnSetComponent e, void arg) {
  for (final column in e.columns) {
    _checkForGeneratedColumn(column);
  }

  if (e.rowValue is Tuple &&
      e.columns.length != (e.rowValue as Tuple).expressions.length) {
    context.reportError(
      AnalysisError(
        type: AnalysisErrorType.cteColumnCountMismatch,
        message:
            'Length of column-name-list must match length of row values.',
        relevantNode: e.rowValue,
      ),
    );
  } else if (e.rowValue is SubQuery &&
      e.columns.length !=
          (e.rowValue as SubQuery).select.resolvedColumns?.length) {
    context.reportError(
      AnalysisError(
        type: AnalysisErrorType.cteColumnCountMismatch,
        message:
            'Length of column-name-list must match length of columns returned by SubQuery.',
        relevantNode: e.rowValue,
      ),
    );
  }

  visitChildren(e, arg);
}