• Teodor Sigaev's avatar
    Refactoring by Heikki Linnakangas <heikki@enterprisedb.com> with · e5be8998
    Teodor Sigaev authored
    small editorization by me
    
    - Brake the QueryItem struct into QueryOperator and QueryOperand.
      Type was really the only common field between them. QueryItem still
      exists, and is used in the TSQuery struct as before, but it's now a
      union of the two. Many other changes fell from that, like separation
      of pushval_asis function into pushValue, pushOperator and pushStop.
    
    - Moved some structs that were for internal use only from header files
      to the right .c-files.
    
    - Moved tsvector parser to a new tsvector_parser.c file. Parser code was
      about half of the size of tsvector.c, it's also used from tsquery.c, and
      it has some data structures of its own, so it seems better to separate
      it. Cleaned up the API so that TSVectorParserState is not accessed from
      outside tsvector_parser.c.
    
    - Separated enumerations (#defines, really) used for QueryItem.type
      field and as return codes from gettoken_query. It was just accidental
      code sharing.
    
    - Removed ParseQueryNode struct used internally by makepol and friends.
      push*-functions now construct QueryItems directly.
    
    - Changed int4 variables to just ints for variables like "i" or "array
      size", where the storage-size was not significant.
    e5be8998
ts_parse.c 13.2 KB