@Override
  public void validate(final Analysis analysis) {
    try {
      RULES.forEach(rule -> rule.check(analysis));
    } catch (final KsqlException e) {
      throw new KsqlException(e.getMessage() + PULL_QUERY_SYNTAX_HELP, e);
    }
    QueryValidatorUtil.validateNoUserColumnsWithSameNameAsPseudoColumns(analysis);
  }
@Test
  public void shouldThrowWhenWhereClauseContainsDisallowedColumns() {
    try(MockedStatic<ColumnExtractor> columnExtractor = mockStatic(ColumnExtractor.class)) {
      //Given:
      givenWhereClauseWithDisallowedColumnNames(columnExtractor);

      // When:
      final Exception e = assertThrows(
          KsqlException.class,
          () -> validator.validate(analysis)
      );

      // Then:
      assertThat(e.getMessage(), containsString(
          "Pull queries don't support the following columns in WHERE clauses: `ROWPARTITION`, `ROWOFFSET`"));
    }
  }