mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-19 04:46:59 +08:00
JOIN, which I removed in a recent fit of over-optimism that we wouldn't have any future use for it. Now it's needed to support disambiguating WITH CHECK OPTION from WITH TIME ZONE. As proof of concept, add stub grammar productions for WITH CHECK OPTION.
60 lines
1.7 KiB
C
60 lines
1.7 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* gramparse.h
|
|
* Declarations for routines exported from lexer and parser files.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.37 2006/05/27 17:38:46 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef GRAMPARSE_H
|
|
#define GRAMPARSE_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
|
|
/*
|
|
* We track token locations in terms of byte offsets from the start of the
|
|
* source string, not the column number/line number representation that
|
|
* bison uses by default. Also, to minimize overhead we track only one
|
|
* location (usually the first token location) for each construct, not
|
|
* the beginning and ending locations as bison does by default. It's
|
|
* therefore sufficient to make YYLTYPE an int.
|
|
*/
|
|
#define YYLTYPE int
|
|
|
|
typedef enum
|
|
{
|
|
BACKSLASH_QUOTE_OFF,
|
|
BACKSLASH_QUOTE_ON,
|
|
BACKSLASH_QUOTE_SAFE_ENCODING
|
|
} BackslashQuoteType;
|
|
|
|
/* GUC variables in scan.l (every one of these is a bad idea :-() */
|
|
extern BackslashQuoteType backslash_quote;
|
|
extern bool escape_string_warning;
|
|
extern bool standard_conforming_strings;
|
|
|
|
|
|
/* from parser.c */
|
|
extern int filtered_base_yylex(void);
|
|
|
|
/* from scan.l */
|
|
extern void scanner_init(const char *str);
|
|
extern void scanner_finish(void);
|
|
extern int base_yylex(void);
|
|
extern void base_yyerror(const char *message);
|
|
|
|
/* from gram.y */
|
|
extern void parser_init(void);
|
|
extern int base_yyparse(void);
|
|
extern List *SystemFuncName(char *name);
|
|
extern TypeName *SystemTypeName(char *name);
|
|
extern bool exprIsNullConstant(Node *arg);
|
|
|
|
#endif /* GRAMPARSE_H */
|