anchor.diff:      : SHOW | TABLES | COLUMNS | PARTITIONS | FUNCTIONS
       | OVER | PARTITION | RANGE | ROWS | PRECEDING | FOLLOWING | CURRENT | ROW
       | REFRESH | MATERIALIZED | VIEW | ALIAS
  +    | YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
       ;
   
   SELECT: 'SELECT';
  
positive.code:     | DOUBLE
      | BOOLEAN
      ;
  
  extractFieldOrIdent
      : ident
      | extractField
      ;
  
  extractField
      : YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | TIMEZONE_HOUR | TIMEZONE_MINUTE
      ;
  
  
  caseExpression
      : NULLIF '(' expr ',' expr ')'          -> ^(NULLIF expr expr)
  
negative.code: CURRENT_TIME: 'CURRENT_TIME';
  CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
  EXTRACT: 'EXTRACT';
  COALESCE: 'COALESCE';
  NULLIF: 'NULLIF';
  CASE: 'CASE';
  