Header And Logo

PostgreSQL
| The world's most advanced open source database.

Functions | Variables

parse_expr.h File Reference

#include "parser/parse_node.h"
Include dependency graph for parse_expr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

NodetransformExpr (ParseState *pstate, Node *expr, ParseExprKind exprKind)
const char * ParseExprKindName (ParseExprKind exprKind)

Variables

bool Transform_null_equals

Function Documentation

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 
)

Variable Documentation

Definition at line 38 of file parse_expr.c.

Referenced by transformAExprOp().