postgresql/src/backend/parser
Robert Haas 0e4611c023 Add a security_barrier option for views.
When a view is marked as a security barrier, it will not be pulled up
into the containing query, and no quals will be pushed down into it,
so that no function or operator chosen by the user can be applied to
rows not exposed by the view.  Views not configured with this
option cannot provide robust row-level security, but will perform far
better.

Patch by KaiGai Kohei; original problem report by Heikki Linnakangas
(in October 2009!).  Review (in earlier versions) by Noah Misch and
others.  Design advice by Tom Lane and myself.  Further review and
cleanup by me.
2011-12-22 16:16:31 -05:00
..
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
analyze.c Fix unsupported options in CREATE TABLE ... AS EXECUTE. 2011-11-24 23:21:45 -05:00
gram.y Add a security_barrier option for views. 2011-12-22 16:16:31 -05:00
keywords.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
kwlookup.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
Makefile Add makefile rules to check for backtracking in backend and psql lexers. 2011-08-25 14:44:17 -04:00
parse_agg.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
parse_clause.c Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
parse_coerce.c Further code review for range types patch. 2011-11-20 23:50:27 -05:00
parse_collate.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
parse_cte.c Make a code-cleanup pass over the collations patch. 2011-04-22 17:43:18 -04:00
parse_expr.c Ensure that whole-row junk Vars are always of composite type. 2011-11-27 22:27:24 -05:00
parse_func.c Extend the unknowns-are-same-as-known-inputs type resolution heuristic. 2011-11-17 18:28:41 -05:00
parse_node.c Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
parse_oper.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
parse_param.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
parse_relation.c Improve table locking behavior in the face of current DDL. 2011-11-30 10:27:00 -05:00
parse_target.c Improve generated column names for cases involving sub-SELECTs. 2011-10-01 14:01:46 -04:00
parse_type.c Improve table locking behavior in the face of current DDL. 2011-11-30 10:27:00 -05:00
parse_utilcmd.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
parser.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
README Revise collation derivation method and expression-tree representation. 2011-03-19 20:30:08 -04:00
scan.l Add makefile rules to check for backtracking in backend and psql lexers. 2011-08-25 14:44:17 -04:00
scansup.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00

src/backend/parser/README

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_collate.c	assign collation information in completed expressions
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)