#include "parser/parse_node.h"
Go to the source code of this file.
Functions | |
Node * | transformExpr (ParseState *pstate, Node *expr, ParseExprKind exprKind) |
const char * | ParseExprKindName (ParseExprKind exprKind) |
Variables | |
bool | Transform_null_equals |
const char* ParseExprKindName | ( | ParseExprKind | exprKind | ) |
Definition at line 2562 of file parse_expr.c.
References EXPR_KIND_ALTER_COL_TRANSFORM, EXPR_KIND_CHECK_CONSTRAINT, EXPR_KIND_COLUMN_DEFAULT, EXPR_KIND_DISTINCT_ON, EXPR_KIND_DOMAIN_CHECK, EXPR_KIND_EXECUTE_PARAMETER, EXPR_KIND_FROM_FUNCTION, EXPR_KIND_FROM_SUBSELECT, EXPR_KIND_FUNCTION_DEFAULT, EXPR_KIND_GROUP_BY, EXPR_KIND_HAVING, EXPR_KIND_INDEX_EXPRESSION, EXPR_KIND_INDEX_PREDICATE, EXPR_KIND_INSERT_TARGET, EXPR_KIND_JOIN_ON, EXPR_KIND_JOIN_USING, EXPR_KIND_LIMIT, EXPR_KIND_NONE, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_OTHER, EXPR_KIND_RETURNING, EXPR_KIND_SELECT_TARGET, EXPR_KIND_TRIGGER_WHEN, EXPR_KIND_UPDATE_SOURCE, EXPR_KIND_UPDATE_TARGET, EXPR_KIND_VALUES, EXPR_KIND_WHERE, EXPR_KIND_WINDOW_FRAME_RANGE, EXPR_KIND_WINDOW_FRAME_ROWS, EXPR_KIND_WINDOW_ORDER, and EXPR_KIND_WINDOW_PARTITION.
Referenced by checkTargetlistEntrySQL92(), findTargetlistEntrySQL92(), transformAggregateCall(), and transformWindowFuncCall().
{ switch (exprKind) { case EXPR_KIND_NONE: return "invalid expression context"; case EXPR_KIND_OTHER: return "extension expression"; case EXPR_KIND_JOIN_ON: return "JOIN/ON"; case EXPR_KIND_JOIN_USING: return "JOIN/USING"; case EXPR_KIND_FROM_SUBSELECT: return "sub-SELECT in FROM"; case EXPR_KIND_FROM_FUNCTION: return "function in FROM"; case EXPR_KIND_WHERE: return "WHERE"; case EXPR_KIND_HAVING: return "HAVING"; case EXPR_KIND_WINDOW_PARTITION: return "window PARTITION BY"; case EXPR_KIND_WINDOW_ORDER: return "window ORDER BY"; case EXPR_KIND_WINDOW_FRAME_RANGE: return "window RANGE"; case EXPR_KIND_WINDOW_FRAME_ROWS: return "window ROWS"; case EXPR_KIND_SELECT_TARGET: return "SELECT"; case EXPR_KIND_INSERT_TARGET: return "INSERT"; case EXPR_KIND_UPDATE_SOURCE: case EXPR_KIND_UPDATE_TARGET: return "UPDATE"; case EXPR_KIND_GROUP_BY: return "GROUP BY"; case EXPR_KIND_ORDER_BY: return "ORDER BY"; case EXPR_KIND_DISTINCT_ON: return "DISTINCT ON"; case EXPR_KIND_LIMIT: return "LIMIT"; case EXPR_KIND_OFFSET: return "OFFSET"; case EXPR_KIND_RETURNING: return "RETURNING"; case EXPR_KIND_VALUES: return "VALUES"; case EXPR_KIND_CHECK_CONSTRAINT: case EXPR_KIND_DOMAIN_CHECK: return "CHECK"; case EXPR_KIND_COLUMN_DEFAULT: case EXPR_KIND_FUNCTION_DEFAULT: return "DEFAULT"; case EXPR_KIND_INDEX_EXPRESSION: return "index expression"; case EXPR_KIND_INDEX_PREDICATE: return "index predicate"; case EXPR_KIND_ALTER_COL_TRANSFORM: return "USING"; case EXPR_KIND_EXECUTE_PARAMETER: return "EXECUTE"; case EXPR_KIND_TRIGGER_WHEN: return "WHEN"; /* * There is intentionally no default: case here, so that the * compiler will warn if we add a new ParseExprKind without * extending this switch. If we do see an unrecognized value at * runtime, we'll fall through to the "unrecognized" return. */ } return "unrecognized expression kind"; }
Node* transformExpr | ( | ParseState * | pstate, | |
Node * | expr, | |||
ParseExprKind | exprKind | |||
) |
Definition at line 106 of file parse_expr.c.
References Assert, EXPR_KIND_NONE, ParseState::p_expr_kind, and transformExprRecurse().
Referenced by ATPrepAlterColumnType(), cookConstraint(), cookDefault(), domainAddConstraint(), EvaluateParams(), examine_parameter_list(), ExpandIndirectionStar(), findTargetlistEntrySQL99(), transformArraySubscripts(), transformExpressionList(), transformFrameOffset(), transformIndexStmt(), transformJoinUsingClause(), transformLimitClause(), transformRangeFunction(), transformTargetEntry(), and transformWhereClause().
{ Node *result; ParseExprKind sv_expr_kind; /* Save and restore identity of expression type we're parsing */ Assert(exprKind != EXPR_KIND_NONE); sv_expr_kind = pstate->p_expr_kind; pstate->p_expr_kind = exprKind; result = transformExprRecurse(pstate, expr); pstate->p_expr_kind = sv_expr_kind; return result; }
Definition at line 38 of file parse_expr.c.
Referenced by transformAExprOp().