Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

parser

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Bruce Momjian authored
    >go about this.  That will risk breaking existing applications that use
    >those names as column names.
    >
    >It should actually almost work to write sq.nextval as things stand,
    >because Postgres has for a long time considered table.function and
    >function(table) to be interchangeable notations for certain kinds of
    >functions.  nextval doesn't seem to be one of that kind of function,
    >at the moment.  I'd suggest leaving the grammar as it was, and taking a
    >look at ParseFuncOrColumn in parse_func.c to see if you can't persuade
    >it to accept the sequence functions in that style.
    
    OK, good point. I tried to implement it somewhere else and ended up
    extending transformAttr. Attached you'll find the patch.
    
    Jeroen van Vianen
    cf374feb
    History
    This directory does more than tokenize and parse SQL queries.  It also
    creates Query structures for the various complex queries that is passed
    to the optimizer and then executor.
    
    parser.c	things start here
    scan.l		break query into tokens
    scansup.c	handle escapes in input
    keywords.c	turn keywords into specific tokens
    gram.y		parse the tokens and fill query-type-specific structures
    analyze.c	handle post-parse processing for each query type
    parse_clause.c	handle clauses like WHERE, ORDER BY, GROUP BY, ...
    parse_coerce.c	used for coercing expressions of different types
    parse_expr.c	handle expressions like col, col + 3, x = 3 or x = 4
    parse_oper.c	handle operations in expressions
    parse_agg.c	handle aggregates, like SUM(col1),  AVG(col2), ...
    parse_func.c	handle functions, table.column and column identifiers
    parse_node.c	create nodes for various structures
    parse_target.c	handle the result list of the query
    parse_relation.c support routines for tables and column handling
    parse_type.c	support routines for type handling