postgresql/src/backend/parser
Tom Lane 11b5847058 Add an OR REPLACE option to CREATE LANGUAGE.
This operates in the same way as other CREATE OR REPLACE commands, ie,
it replaces everything but the ownership and ACL lists of an existing
entry, and requires the caller to have owner privileges for that entry.

While modifying an existing language has some use in development scenarios,
in typical usage all the "replaced" values come from pg_pltemplate so there
will be no actual change in the language definition.  The reason for adding
this is mainly to allow programs to ensure that a language exists without
triggering an error if it already does exist.

This commit just adds and documents the new option.  A followon patch
will use it to clean up some unpleasant cases in pg_dump and pg_regress.
2010-02-23 22:51:43 +00:00
..
.cvsignore Remove all traces that suggest that a non-Bison yacc might be supported, and 2008-08-29 13:02:33 +00:00
Makefile Fix a few places where we needed -I. in CPPFLAGS to work properly in 2010-01-05 03:56:52 +00:00
README Implement parser hooks for processing ColumnRef and ParamRef nodes, as per my 2009-10-31 01:41:31 +00:00
analyze.c Tweak the order of processing of WITH clauses so that they are processed 2010-02-12 22:48:56 +00:00
gram.y Add an OR REPLACE option to CREATE LANGUAGE. 2010-02-23 22:51:43 +00:00
keywords.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
kwlookup.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_agg.c Extend the set of frame options supported for window functions. 2010-02-12 17:33:21 +00:00
parse_clause.c Extend the set of frame options supported for window functions. 2010-02-12 17:33:21 +00:00
parse_coerce.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_cte.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_expr.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_func.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_node.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_oper.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_param.c Make fixed_paramref_hook behave properly when there are 'unused' slots 2010-01-13 01:17:07 +00:00
parse_relation.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_target.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
parse_type.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parse_utilcmd.c Wrap calls to SearchSysCache and related functions using macros. 2010-02-14 18:42:19 +00:00
parser.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
scan.l Fix unportable use of isxdigit() with char (rather than unsigned char) 2010-01-16 17:39:55 +00:00
scansup.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00

README

$PostgreSQL: pgsql/src/backend/parser/README,v 1.11 2009/10/31 01:41:31 tgl Exp $

Parser
======

This directory does more than tokenize and parse SQL queries.  It also
creates Query structures for the various complex queries that are passed
to the optimizer and then executor.

parser.c	things start here
scan.l		break query into tokens
scansup.c	handle escapes in input strings
kwlookup.c	turn keywords into specific tokens
keywords.c	table of standard keywords (passed to kwlookup.c)
gram.y		parse the tokens and produce a "raw" parse tree
analyze.c	top level of parse analysis for optimizable queries
parse_agg.c	handle aggregates, like SUM(col1),  AVG(col2), ...
parse_clause.c	handle clauses like WHERE, ORDER BY, GROUP BY, ...
parse_coerce.c	handle coercing expressions to different data types
parse_cte.c	handle Common Table Expressions (WITH clauses)
parse_expr.c	handle expressions like col, col + 3, x = 3 or x = 4
parse_func.c	handle functions, table.column and column identifiers
parse_node.c	create nodes for various structures
parse_oper.c	handle operators in expressions
parse_param.c	handle Params (for the cases used in the core backend)
parse_relation.c support routines for tables and column handling
parse_target.c	handle the result list of the query
parse_type.c	support routines for data type handling
parse_utilcmd.c	parse analysis for utility commands (done at execution time)