|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/htup_details.h"#include "catalog/pg_aggregate.h"#include "catalog/pg_type.h"#include "miscadmin.h"#include "nodes/makefuncs.h"#include "nodes/nodeFuncs.h"#include "optimizer/optimizer.h"#include "parser/analyze.h"#include "parser/parse_agg.h"#include "parser/parse_clause.h"#include "parser/parse_coerce.h"#include "parser/parse_collate.h"#include "parser/parse_expr.h"#include "parser/parse_func.h"#include "parser/parse_oper.h"#include "parser/parse_relation.h"#include "parser/parse_target.h"#include "parser/parse_type.h"#include "utils/builtins.h"#include "utils/date.h"#include "utils/fmgroids.h"#include "utils/lsyscache.h"#include "utils/timestamp.h"#include "utils/typcache.h"#include "utils/xml.h"
Go to the source code of this file.
Variables | |
| bool | Transform_null_equals = false |
|
static |
Definition at line 3473 of file parse_expr.c.
References enc, ereport, errcode(), errhint(), errmsg(), ERROR, fb(), format, get_type_category_preferred(), JS_ENC_DEFAULT, JS_ENC_UTF8, JS_FORMAT_DEFAULT, JS_FORMAT_JSON, and parser_errposition().
Referenced by transformJsonOutput().
|
static |
Definition at line 3613 of file parse_expr.c.
References COERCE_EXPLICIT_CALL, COERCE_IMPLICIT_CAST, coerce_to_specific_type(), coerce_to_target_type(), COERCION_ASSIGNMENT, enc, ereport, errcode(), errmsg(), ERROR, exprLocation(), exprType(), fb(), JsonReturning::format, JsonFormat::format_type, format_type_be(), getJsonEncodingConst(), InvalidOid, JS_FORMAT_JSON, list_make2, JsonFormat::location, makeFuncExpr(), OidIsValid, parser_coercion_errposition(), JsonReturning::typid, and JsonReturning::typmod.
Referenced by makeJsonConstructorExpr().
Definition at line 910 of file parse_expr.c.
References arg, IsA, and A_Const::isnull.
Referenced by transformAExprDistinct(), and transformAExprOp().
|
static |
Definition at line 4905 of file parse_expr.c.
References Assert, BoolGetDatum(), CStringGetDatum(), DirectFunctionCall1, elog, ERROR, fb(), InvalidOid, JSON_BEHAVIOR_DEFAULT, JSON_BEHAVIOR_EMPTY, JSON_BEHAVIOR_EMPTY_ARRAY, JSON_BEHAVIOR_EMPTY_OBJECT, JSON_BEHAVIOR_ERROR, JSON_BEHAVIOR_FALSE, JSON_BEHAVIOR_NULL, JSON_BEHAVIOR_TRUE, JSON_BEHAVIOR_UNKNOWN, jsonb_in(), len, makeConst(), and val.
Referenced by transformJsonBehavior().
|
static |
Definition at line 3250 of file parse_expr.c.
References elog, enc, encoding, ERROR, fb(), format, InvalidOid, JS_ENC_DEFAULT, JS_ENC_UTF16, JS_ENC_UTF32, JS_ENC_UTF8, JS_FORMAT_DEFAULT, makeConst(), NAMEDATALEN, NameGetDatum(), namestrcpy(), and palloc_object.
Referenced by coerceJsonFuncExpr(), and makeJsonByteaToTextConversion().
|
static |
Definition at line 3085 of file parse_expr.c.
References ereport, errcode(), errmsg(), ERROR, fb(), make_op(), NodeSetTag, ParseState::p_last_srf, and parser_errposition().
Referenced by make_row_distinct_op(), and transformAExprDistinct().
|
static |
Definition at line 3120 of file parse_expr.c.
References AEXPR_NOT_DISTINCT, arg, fb(), IS_NOT_NULL, IS_NULL, makeNode, and transformExprRecurse().
Referenced by transformAExprDistinct().
|
static |
Definition at line 2839 of file parse_expr.c.
References AND_EXPR, bms_add_member(), bms_int_members(), bms_next_member(), castNode, cmp(), COMPARE_EQ, COMPARE_NE, ereport, errcode(), errdetail(), errhint(), errmsg(), ERROR, expression_returns_set(), fb(), forboth, format_type_be(), get_op_index_interpretation(), i, InvalidOid, j, lappend(), lappend_oid(), lfirst, linitial, list_length(), llast, lsecond, make_op(), makeBoolExpr(), makeNode, NIL, OidIsValid, OR_EXPR, ParseState::p_last_srf, palloc_array, parser_errposition(), and strVal.
Referenced by transformAExprIn(), transformAExprOp(), and transformSubLink().
|
static |
Definition at line 3041 of file parse_expr.c.
References cmp(), ereport, errcode(), errmsg(), ERROR, fb(), forboth, lfirst, list_length(), list_make2, make_distinct_op(), makeBoolConst(), makeBoolExpr(), OR_EXPR, and parser_errposition().
Referenced by transformAExprDistinct().
|
static |
Definition at line 3289 of file parse_expr.c.
References COERCE_EXPLICIT_CALL, encoding, fb(), format, getJsonEncodingConst(), InvalidOid, list_make2, and makeFuncExpr().
Referenced by transformJsonParseArg(), and transformJsonValueExpr().
|
static |
Definition at line 3677 of file parse_expr.c.
References coerceJsonFuncExpr(), exprCollation(), exprType(), exprTypmod(), fb(), JsonReturning::format, JsonFormat::format_type, InvalidOid, JS_FORMAT_JSONB, makeNode, type, and CaseTestExpr::typeId.
Referenced by transformJsonAggConstructor(), transformJsonArrayConstructor(), transformJsonObjectConstructor(), transformJsonParseExpr(), transformJsonScalarExpr(), and transformJsonSerializeExpr().
| const char * ParseExprKindName | ( | ParseExprKind | exprKind | ) |
Definition at line 3144 of file parse_expr.c.
References EXPR_KIND_ALTER_COL_TRANSFORM, EXPR_KIND_CALL_ARGUMENT, EXPR_KIND_CHECK_CONSTRAINT, EXPR_KIND_COLUMN_DEFAULT, EXPR_KIND_COPY_WHERE, EXPR_KIND_CYCLE_MARK, EXPR_KIND_DISTINCT_ON, EXPR_KIND_DOMAIN_CHECK, EXPR_KIND_EXECUTE_PARAMETER, EXPR_KIND_FILTER, EXPR_KIND_FROM_FUNCTION, EXPR_KIND_FROM_SUBSELECT, EXPR_KIND_FUNCTION_DEFAULT, EXPR_KIND_GENERATED_COLUMN, 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_MERGE_RETURNING, EXPR_KIND_MERGE_WHEN, EXPR_KIND_NONE, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_OTHER, EXPR_KIND_PARTITION_BOUND, EXPR_KIND_PARTITION_EXPRESSION, EXPR_KIND_POLICY, EXPR_KIND_RETURNING, EXPR_KIND_SELECT_TARGET, EXPR_KIND_STATS_EXPRESSION, EXPR_KIND_TRIGGER_WHEN, EXPR_KIND_UPDATE_SOURCE, EXPR_KIND_UPDATE_TARGET, EXPR_KIND_VALUES, EXPR_KIND_VALUES_SINGLE, EXPR_KIND_WHERE, EXPR_KIND_WINDOW_FRAME_GROUPS, EXPR_KIND_WINDOW_FRAME_RANGE, EXPR_KIND_WINDOW_FRAME_ROWS, EXPR_KIND_WINDOW_ORDER, EXPR_KIND_WINDOW_PARTITION, and fb().
Referenced by check_agglevels_and_constraints(), check_srf_call_placement(), checkTargetlistEntrySQL92(), findTargetlistEntrySQL92(), and transformWindowFuncCall().
|
static |
Definition at line 1295 of file parse_expr.c.
References a, AEXPR_BETWEEN, AEXPR_BETWEEN_SYM, AEXPR_NOT_BETWEEN, AEXPR_NOT_BETWEEN_SYM, AEXPR_OP, AND_EXPR, Assert, castNode, copyObject, elog, ERROR, fb(), linitial, list_length(), list_make2, lsecond, makeBoolExpr(), makeSimpleA_Expr(), OR_EXPR, and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1032 of file parse_expr.c.
References a, AEXPR_NOT_DISTINCT, exprIsNullConstant(), IsA, list_make1, make_distinct_op(), make_nulltest_from_distinct(), make_row_distinct_op(), makeBoolExpr(), NOT_EXPR, and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1126 of file parse_expr.c.
References a, AND_EXPR, cmp(), coerce_to_boolean(), coerce_to_common_type(), contain_vars_of_level(), copyObject, fb(), get_array_type(), InvalidOid, IsA, lappend(), lfirst, linitial, list_concat(), list_length(), list_make1, list_make2, make_op(), make_row_comparison_op(), make_scalar_array_op(), makeBoolExpr(), makeNode, NIL, OidIsValid, OR_EXPR, ParseState::p_last_srf, select_common_type(), strVal, transformExprRecurse(), and verify_common_type().
Referenced by transformExprRecurse().
|
static |
Definition at line 1083 of file parse_expr.c.
References a, OpExpr::args, ereport, errcode(), errmsg(), ERROR, exprType(), fb(), linitial, make_op(), NodeSetTag, ParseState::p_last_srf, parser_errposition(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 923 of file parse_expr.c.
References a, NullTest::arg, castNode, EXPR_SUBLINK, exprIsNullConstant(), fb(), IS_NULL, IsA, linitial, list_length(), SubLink::location, NullTest::location, make_op(), make_row_comparison_op(), makeNode, NullTest::nulltesttype, ParseState::p_last_srf, ROWCOMPARE_SUBLINK, strVal, SubLink::subLinkType, SubLink::testexpr, Transform_null_equals, and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1018 of file parse_expr.c.
References a, make_scalar_array_op(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1004 of file parse_expr.c.
References a, make_scalar_array_op(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 2026 of file parse_expr.c.
References a, Assert, COERCE_EXPLICIT_CAST, coerce_to_common_type(), coerce_to_target_type(), coerce_type(), COERCION_EXPLICIT, element(), ereport, errcode(), errhint(), errmsg(), ERROR, exprLocation(), exprType(), fb(), format_type_be(), get_array_type(), get_element_type(), InvalidOid, IsA, lappend(), lfirst, makeNode, NIL, OidIsValid, parser_errposition(), select_common_type(), transformArrayExpr(), transformExprRecurse(), and type_is_array.
Referenced by transformArrayExpr(), transformExprRecurse(), and transformTypeCast().
|
static |
Definition at line 2541 of file parse_expr.c.
References b, coerce_to_boolean(), elog, ERROR, fb(), IS_FALSE, IS_NOT_FALSE, IS_NOT_TRUE, IS_NOT_UNKNOWN, IS_TRUE, IS_UNKNOWN, and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1414 of file parse_expr.c.
References a, AND_EXPR, arg, coerce_to_boolean(), elog, ERROR, fb(), lappend(), lfirst, makeBoolExpr(), NIL, NOT_EXPR, OR_EXPR, and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1643 of file parse_expr.c.
References AEXPR_OP, arg, Assert, assign_expr_collations(), coerce_to_boolean(), coerce_to_common_type(), ereport, errcode(), errhint(), errmsg(), ERROR, CaseWhen::expr, exprCollation(), exprLocation(), exprType(), exprTypmod(), fb(), A_Const::isnull, lappend(), lcons(), lfirst, lfirst_node, A_Const::location, CaseWhen::location, makeNode, makeSimpleA_Expr(), NIL, OidIsValid, ParseState::p_last_srf, parser_errposition(), CaseWhen::result, select_common_type(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 2227 of file parse_expr.c.
References coerce_to_common_type(), ereport, errcode(), errhint(), errmsg(), ERROR, exprLocation(), fb(), lappend(), lfirst, makeNode, NIL, ParseState::p_last_srf, parser_errposition(), select_common_type(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 2799 of file parse_expr.c.
References ereport, errcode(), errmsg(), ERROR, exprType(), fb(), format_type_be(), LookupCollation(), makeNode, parser_errposition(), transformExprRecurse(), and type_is_collatable().
Referenced by transformExprRecurse().
|
static |
Definition at line 510 of file parse_expr.c.
References _, Assert, colNameToVar(), ereport, err(), errcode(), errmsg(), errmsg_internal(), ERROR, errorMissingColumn(), errorMissingRTE(), EXPR_KIND_ALTER_COL_TRANSFORM, EXPR_KIND_CALL_ARGUMENT, EXPR_KIND_CHECK_CONSTRAINT, EXPR_KIND_COLUMN_DEFAULT, EXPR_KIND_COPY_WHERE, EXPR_KIND_CYCLE_MARK, EXPR_KIND_DISTINCT_ON, EXPR_KIND_DOMAIN_CHECK, EXPR_KIND_EXECUTE_PARAMETER, EXPR_KIND_FILTER, EXPR_KIND_FROM_FUNCTION, EXPR_KIND_FROM_SUBSELECT, EXPR_KIND_FUNCTION_DEFAULT, EXPR_KIND_GENERATED_COLUMN, 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_MERGE_RETURNING, EXPR_KIND_MERGE_WHEN, EXPR_KIND_NONE, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_OTHER, EXPR_KIND_PARTITION_BOUND, EXPR_KIND_PARTITION_EXPRESSION, EXPR_KIND_POLICY, EXPR_KIND_RETURNING, EXPR_KIND_SELECT_TARGET, EXPR_KIND_STATS_EXPRESSION, EXPR_KIND_TRIGGER_WHEN, EXPR_KIND_UPDATE_SOURCE, EXPR_KIND_UPDATE_TARGET, EXPR_KIND_VALUES, EXPR_KIND_VALUES_SINGLE, EXPR_KIND_WHERE, EXPR_KIND_WINDOW_FRAME_GROUPS, EXPR_KIND_WINDOW_FRAME_RANGE, EXPR_KIND_WINDOW_FRAME_ROWS, EXPR_KIND_WINDOW_ORDER, EXPR_KIND_WINDOW_PARTITION, fb(), get_database_name(), IsA, lfourth, linitial, list_length(), list_make1, lsecond, lthird, makeRangeVar(), makeString(), MyDatabaseId, NameListToString(), ParseState::p_expr_kind, ParseState::p_last_srf, ParseState::p_post_columnref_hook, ParseState::p_pre_columnref_hook, ParseFuncOrColumn(), parser_errposition(), refnameNamespaceItem(), relname, scanNSItemForColumn(), strVal, and transformWholeRowRef().
Referenced by transformExprRecurse().
|
static |
Definition at line 2581 of file parse_expr.c.
References Assert, CurrentOfExpr::cursor_name, CurrentOfExpr::cursor_param, CurrentOfExpr::cvarno, fb(), IsA, list_make1, makeNode, makeString(), ParseState::p_post_columnref_hook, ParseState::p_pre_columnref_hook, ParseNamespaceItem::p_rtindex, ParseState::p_target_nsitem, PARAM_EXTERN, Param::paramid, Param::paramkind, and Param::paramtype.
Referenced by transformExprRecurse().
| Node * transformExpr | ( | ParseState * | pstate, |
| Node * | expr, | ||
| ParseExprKind | exprKind | ||
| ) |
Definition at line 120 of file parse_expr.c.
References Assert, EXPR_KIND_NONE, fb(), ParseState::p_expr_kind, and transformExprRecurse().
Referenced by analyzeCTE(), array_subscript_transform(), cookConstraint(), cookDefault(), DoCopy(), domainAddCheckConstraint(), EvaluateParams(), ExpandIndirectionStar(), findTargetlistEntrySQL99(), hstore_subscript_transform(), interpret_function_parameter_list(), jsonb_subscript_transform(), resolve_unique_index_expr(), transformAlterTableStmt(), transformCallStmt(), transformExpressionList(), transformFrameOffset(), transformFuncCall(), transformGroupingFunc(), transformIndexStmt(), transformJoinUsingClause(), transformJsonTable(), transformJsonTableColumns(), transformLimitClause(), transformMergeStmt(), transformOnConflictArbiter(), transformPartitionBoundValue(), transformPartitionSpec(), transformPLAssignStmt(), transformRangeFunction(), transformRangeTableFunc(), transformRangeTableSample(), transformReturnStmt(), transformStatsStmt(), transformTargetEntry(), and transformWhereClause().
|
static |
Definition at line 138 of file parse_expr.c.
References a, AEXPR_BETWEEN, AEXPR_BETWEEN_SYM, AEXPR_DISTINCT, AEXPR_ILIKE, AEXPR_IN, AEXPR_LIKE, AEXPR_NOT_BETWEEN, AEXPR_NOT_BETWEEN_SYM, AEXPR_NOT_DISTINCT, AEXPR_NULLIF, AEXPR_OP, AEXPR_OP_ALL, AEXPR_OP_ANY, AEXPR_SIMILAR, NullTest::arg, check_stack_depth(), elog, ereport, errcode(), errmsg(), ERROR, exprType(), fb(), InvalidOid, make_const(), nodeTag, parser_errposition(), transformAExprBetween(), transformAExprDistinct(), transformAExprIn(), transformAExprNullIf(), transformAExprOp(), transformAExprOpAll(), transformAExprOpAny(), transformArrayExpr(), transformBooleanTest(), transformBoolExpr(), transformCaseExpr(), transformCoalesceExpr(), transformCollateClause(), transformColumnRef(), transformCurrentOfExpr(), transformExprRecurse(), transformFuncCall(), transformGroupingFunc(), transformIndirection(), transformJsonArrayAgg(), transformJsonArrayConstructor(), transformJsonArrayQueryConstructor(), transformJsonFuncExpr(), transformJsonIsPredicate(), transformJsonObjectAgg(), transformJsonObjectConstructor(), transformJsonParseExpr(), transformJsonScalarExpr(), transformJsonSerializeExpr(), transformMergeSupportFunc(), transformMinMaxExpr(), transformMultiAssignRef(), transformParamRef(), transformRowExpr(), transformSQLValueFunction(), transformSubLink(), transformTypeCast(), transformXmlExpr(), transformXmlSerialize(), and type_is_rowtype().
Referenced by make_nulltest_from_distinct(), transformAExprBetween(), transformAExprDistinct(), transformAExprIn(), transformAExprNullIf(), transformAExprOp(), transformAExprOpAll(), transformAExprOpAny(), transformArrayExpr(), transformBooleanTest(), transformBoolExpr(), transformCaseExpr(), transformCoalesceExpr(), transformCollateClause(), transformExpr(), transformExprRecurse(), transformFuncCall(), transformIndirection(), transformJsonArrayQueryConstructor(), transformJsonBehavior(), transformJsonFuncExpr(), transformJsonObjectAgg(), transformJsonObjectConstructor(), transformJsonParseArg(), transformJsonScalarExpr(), transformJsonValueExpr(), transformMinMaxExpr(), transformMultiAssignRef(), transformSubLink(), transformTypeCast(), transformXmlExpr(), and transformXmlSerialize().
|
static |
Definition at line 1450 of file parse_expr.c.
References arg, Assert, EXPR_KIND_ORDER_BY, fb(), fn(), lappend(), lfirst, NIL, ParseState::p_last_srf, ParseFuncOrColumn(), transformExpr(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 438 of file parse_expr.c.
References Assert, ereport, errcode(), errmsg(), ERROR, exprLocation(), exprType(), exprTypmod(), fb(), i, IsA, lappend(), lfirst, list_make1, NIL, ParseState::p_last_srf, ParseFuncOrColumn(), parser_errposition(), strVal, transformContainerSubscripts(), transformExprRecurse(), and unknown_attribute().
Referenced by transformExprRecurse().
|
static |
Definition at line 3845 of file parse_expr.c.
References Aggref::aggfilter, WindowFunc::aggfilter, Aggref::aggfnoid, AGGSPLIT_SIMPLE, WindowFunc::args, ereport, errcode(), errmsg(), ERROR, EXPR_KIND_FILTER, fb(), Aggref::location, WindowFunc::location, makeJsonConstructorExpr(), makeNode, NIL, parser_errposition(), transformAggregateCall(), transformWhereClause(), transformWindowFuncCall(), and WindowFunc::winfnoid.
Referenced by transformJsonArrayAgg(), and transformJsonObjectAgg().
|
static |
Definition at line 3995 of file parse_expr.c.
References arg, fb(), JsonReturning::format, JsonFormat::format_type, InvalidOid, JS_FORMAT_DEFAULT, JS_FORMAT_JSONB, JSCTOR_JSON_ARRAYAGG, list_make1, transformJsonAggConstructor(), transformJsonConstructorOutput(), and transformJsonValueExpr().
Referenced by transformExprRecurse().
|
static |
Definition at line 4033 of file parse_expr.c.
References castNode, fb(), InvalidOid, JS_FORMAT_DEFAULT, JSCTOR_JSON_ARRAY, lappend(), lfirst, makeJsonConstructorExpr(), NIL, transformJsonConstructorOutput(), transformJsonValueExpr(), and val.
Referenced by transformExprRecurse().
|
static |
Definition at line 3774 of file parse_expr.c.
References Alias::aliasname, Alias::colnames, copyObject, count_nonjunk_tlist_entries(), ereport, errcode(), errmsg(), ERROR, EXPR_SUBLINK, fb(), free_parsestate(), ResTarget::indirection, list_make1, list_make2, ResTarget::location, make_parsestate(), makeJsonValueExpr(), makeNode, makeString(), ResTarget::name, NIL, parser_errposition(), pstrdup(), range(), select, Query::targetList, transformExprRecurse(), transformStmt(), and ResTarget::val.
Referenced by transformExprRecurse().
|
static |
Definition at line 4743 of file parse_expr.c.
References JsonBehavior::btype, JsonBehavior::coerce, COERCE_EXPLICIT_CAST, coerce_to_target_type(), COERCION_ASSIGNMENT, COERCION_EXPLICIT, JsonExpr::collation, contain_var_clause(), CStringGetDatum(), DirectFunctionCall1, ereport, errcode(), errdetail(), errhint(), errmsg(), ERROR, JsonBehavior::expr, exprCollation(), expression_returns_set(), exprLocation(), exprType(), fb(), format_type_be(), get_collation_name(), get_typcollation(), getBaseType(), GetJsonBehaviorConst(), InvalidOid, IsA, JSON_BEHAVIOR_DEFAULT, JSON_BEHAVIOR_ERROR, JSON_BEHAVIOR_TRUE, jsonb_in(), JsonBehavior::location, makeConst(), makeJsonBehavior(), OidIsValid, parser_errposition(), transformExprRecurse(), TypeCategory(), JsonReturning::typid, JsonReturning::typmod, val, and ValidJsonBehaviorDefaultExpr().
Referenced by transformJsonFuncExpr().
|
static |
Definition at line 3570 of file parse_expr.c.
References exprType(), fb(), JsonReturning::format, JsonFormat::format_type, JS_FORMAT_JSON, JS_FORMAT_JSONB, lfirst, OidIsValid, output, transformJsonOutput(), JsonReturning::typid, and JsonReturning::typmod.
Referenced by transformJsonArrayAgg(), transformJsonArrayConstructor(), transformJsonObjectAgg(), and transformJsonObjectConstructor().
|
static |
Definition at line 4294 of file parse_expr.c.
References JsonBehavior::btype, COERCE_IMPLICIT_CAST, coerce_to_target_type(), COERCION_EXPLICIT, JsonExpr::collation, JsonFuncExpr::column_name, JsonExpr::column_name, JsonFuncExpr::context_item, DomainHasConstraints(), elog, JsonFormat::encoding, ereport, errcode(), errdetail(), errmsg(), ERROR, exprLocation(), exprType(), fb(), format, JsonReturning::format, JsonValueExpr::format, JsonExpr::format, JsonFormat::format_type, format_type_be(), JsonExpr::formatted_expr, get_typcollation(), get_typtype(), InvalidOid, JS_ENC_DEFAULT, JS_FORMAT_DEFAULT, JS_FORMAT_JSONB, JS_QUOTES_OMIT, JSON_BEHAVIOR_DEFAULT, JSON_BEHAVIOR_EMPTY, JSON_BEHAVIOR_EMPTY_ARRAY, JSON_BEHAVIOR_EMPTY_OBJECT, JSON_BEHAVIOR_ERROR, JSON_BEHAVIOR_FALSE, JSON_BEHAVIOR_NULL, JSON_BEHAVIOR_TRUE, JSON_BEHAVIOR_UNKNOWN, JSON_EXISTS_OP, JSON_QUERY_OP, JSON_TABLE_OP, JSON_VALUE_OP, JSW_CONDITIONAL, JSW_UNCONDITIONAL, JsonFuncExpr::location, JsonBehavior::location, JsonExpr::location, makeNode, OidIsValid, JsonExpr::omit_quotes, JsonFuncExpr::on_empty, JsonExpr::on_empty, JsonFuncExpr::on_error, JsonExpr::on_error, JsonFuncExpr::op, JsonExpr::op, JsonFuncExpr::output, parser_errposition(), JsonFuncExpr::passing, JsonExpr::passing_names, JsonExpr::passing_values, JsonExpr::path_spec, JsonFuncExpr::pathspec, JsonFuncExpr::quotes, JsonOutput::returning, JsonExpr::returning, transformExprRecurse(), transformJsonBehavior(), transformJsonOutput(), transformJsonPassingArgs(), transformJsonValueExpr(), JsonReturning::typid, JsonReturning::typmod, JsonExpr::use_io_coercion, JsonExpr::use_json_coercion, JsonFuncExpr::wrapper, and JsonExpr::wrapper.
Referenced by transformExprRecurse().
|
static |
Definition at line 4113 of file parse_expr.c.
References ereport, errcode(), errmsg(), ERROR, JsonIsPredicate::expr, fb(), JsonIsPredicate::format, format_type_be(), JsonIsPredicate::item_type, JsonIsPredicate::location, makeJsonIsPredicate(), transformJsonParseArg(), and JsonIsPredicate::unique_keys.
Referenced by transformExprRecurse().
|
static |
Definition at line 3931 of file parse_expr.c.
References fb(), JsonReturning::format, JsonFormat::format_type, InvalidOid, JS_FORMAT_DEFAULT, JS_FORMAT_JSONB, JSCTOR_JSON_OBJECTAGG, list_make2, transformExprRecurse(), transformJsonAggConstructor(), transformJsonConstructorOutput(), transformJsonValueExpr(), and val.
Referenced by transformExprRecurse().
|
static |
Definition at line 3737 of file parse_expr.c.
References castNode, fb(), InvalidOid, JS_FORMAT_DEFAULT, JSCTOR_JSON_OBJECT, lappend(), lfirst, makeJsonConstructorExpr(), NIL, transformExprRecurse(), transformJsonConstructorOutput(), transformJsonValueExpr(), and val.
Referenced by transformExprRecurse().
|
static |
Definition at line 3523 of file parse_expr.c.
References checkJsonOutputFormat(), copyObject, ereport, errcode(), errmsg(), ERROR, fb(), JsonReturning::format, JsonFormat::format_type, get_typtype(), InvalidOid, JS_ENC_DEFAULT, JS_FORMAT_DEFAULT, JS_FORMAT_JSON, JS_FORMAT_JSONB, makeJsonFormat(), makeNode, output, typenameTypeIdAndMod(), JsonReturning::typid, and JsonReturning::typmod.
Referenced by transformJsonConstructorOutput(), transformJsonFuncExpr(), transformJsonReturning(), and transformJsonSerializeExpr().
|
static |
Definition at line 4063 of file parse_expr.c.
References COERCE_IMPLICIT_CAST, coerce_to_target_type(), COERCION_IMPLICIT, ereport, errcode(), errmsg(), ERROR, exprLocation(), exprType(), fb(), format, get_type_category_preferred(), JS_ENC_DEFAULT, makeJsonByteaToTextConversion(), makeJsonValueExpr(), parser_errposition(), and transformExprRecurse().
Referenced by transformJsonIsPredicate(), and transformJsonParseExpr().
|
static |
Definition at line 4176 of file parse_expr.c.
References arg, ereport, errcode(), errmsg(), ERROR, JsonParseExpr::expr, fb(), JS_FORMAT_JSON, JSCTOR_JSON_PARSE, list_make1, JsonParseExpr::location, makeJsonConstructorExpr(), JsonParseExpr::output, output, parser_errposition(), transformJsonParseArg(), transformJsonReturning(), transformJsonValueExpr(), JsonReturning::typid, and JsonParseExpr::unique_keys.
Referenced by transformExprRecurse().
|
static |
Definition at line 4684 of file parse_expr.c.
References arg, castNode, fb(), format, InvalidOid, lappend(), lfirst, makeString(), NIL, and transformJsonValueExpr().
Referenced by transformJsonFuncExpr().
|
static |
Definition at line 4136 of file parse_expr.c.
References Assert, ereport, errcode(), errhint(), errmsg(), ERROR, fb(), format, JsonReturning::format, format_type_be(), JS_ENC_DEFAULT, JS_FORMAT_JSON, makeJsonFormat(), makeNode, OidIsValid, output, parser_errposition(), transformJsonOutput(), JsonReturning::typid, and JsonReturning::typmod.
Referenced by transformJsonParseExpr(), and transformJsonScalarExpr().
|
static |
Definition at line 4225 of file parse_expr.c.
References arg, coerce_to_specific_type(), JsonScalarExpr::expr, exprType(), fb(), JSCTOR_JSON_SCALAR, list_make1, JsonScalarExpr::location, makeJsonConstructorExpr(), JsonScalarExpr::output, output, transformExprRecurse(), and transformJsonReturning().
Referenced by transformExprRecurse().
|
static |
Definition at line 4248 of file parse_expr.c.
References arg, ereport, errcode(), errhint(), errmsg(), ERROR, JsonSerializeExpr::expr, fb(), JsonReturning::format, format_type_be(), get_type_category_preferred(), InvalidOid, JS_ENC_DEFAULT, JS_FORMAT_JSON, JSCTOR_JSON_SERIALIZE, list_make1, JsonSerializeExpr::location, makeJsonConstructorExpr(), makeJsonFormat(), makeNode, JsonSerializeExpr::output, transformJsonOutput(), transformJsonValueExpr(), JsonReturning::typid, and JsonReturning::typmod.
Referenced by transformExprRecurse().
|
static |
Definition at line 3311 of file parse_expr.c.
References Assert, COERCE_EXPLICIT_CALL, COERCE_EXPLICIT_CAST, coerce_to_specific_type(), coerce_to_target_type(), COERCION_EXPLICIT, copyObject, ereport, errcode(), errmsg(), ERROR, exprLocation(), exprType(), fb(), format, format_type_be(), get_type_category_preferred(), InvalidOid, IsA, JS_ENC_DEFAULT, JS_FORMAT_DEFAULT, JS_FORMAT_JSON, JS_FORMAT_JSONB, list_make1, makeFuncExpr(), makeJsonByteaToTextConversion(), OidIsValid, parser_errposition(), and transformExprRecurse().
Referenced by transformJsonArrayAgg(), transformJsonArrayConstructor(), transformJsonFuncExpr(), transformJsonObjectAgg(), transformJsonObjectConstructor(), transformJsonParseExpr(), transformJsonPassingArgs(), and transformJsonSerializeExpr().
|
static |
Definition at line 1389 of file parse_expr.c.
References ereport, errcode(), errmsg(), ERROR, EXPR_KIND_MERGE_RETURNING, fb(), MergeSupportFunc::location, ParseState::p_expr_kind, ParseState::parentParseState, and parser_errposition().
Referenced by transformExprRecurse().
|
static |
Definition at line 2276 of file parse_expr.c.
References MinMaxExpr::args, coerce_to_common_type(), fb(), funcname, IS_GREATEST, lappend(), lfirst, MinMaxExpr::location, makeNode, NIL, MinMaxExpr::op, select_common_type(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 1495 of file parse_expr.c.
References RowExpr::args, Assert, castNode, count_nonjunk_tlist_entries(), elog, ereport, errcode(), errmsg(), ERROR, EXPR_KIND_UPDATE_SOURCE, EXPR_SUBLINK, exprCollation(), exprLocation(), exprType(), exprTypmod(), fb(), IsA, lappend(), list_delete_last(), list_length(), list_nth(), llast, Param::location, RowExpr::location, makeNode, makeTargetEntry(), MULTIEXPR_SUBLINK, NIL, ParseState::p_expr_kind, ParseState::p_multiassign_exprs, PARAM_MULTIEXPR, Param::paramcollid, Param::paramid, Param::paramkind, Param::paramtype, Param::paramtypmod, parser_errposition(), transformExprRecurse(), and transformRowExpr().
Referenced by transformExprRecurse().
|
static |
Definition at line 886 of file parse_expr.c.
References ereport, errcode(), errmsg(), ERROR, fb(), ParseState::p_paramref_hook, and parser_errposition().
Referenced by transformExprRecurse().
|
static |
Definition at line 2189 of file parse_expr.c.
References RowExpr::args, COERCE_IMPLICIT_CAST, ereport, errcode(), errmsg(), ERROR, fb(), lappend(), list_length(), RowExpr::location, makeNode, makeString(), MaxTupleAttributeNumber, NIL, ParseState::p_expr_kind, parser_errposition(), pstrdup(), snprintf, and transformExpressionList().
Referenced by transformExprRecurse(), and transformMultiAssignRef().
|
static |
Definition at line 2315 of file parse_expr.c.
References anytime_typmod_check(), anytimestamp_typmod_check(), fb(), SQLValueFunction::op, SVFOP_CURRENT_CATALOG, SVFOP_CURRENT_DATE, SVFOP_CURRENT_ROLE, SVFOP_CURRENT_SCHEMA, SVFOP_CURRENT_TIME, SVFOP_CURRENT_TIME_N, SVFOP_CURRENT_TIMESTAMP, SVFOP_CURRENT_TIMESTAMP_N, SVFOP_CURRENT_USER, SVFOP_LOCALTIME, SVFOP_LOCALTIME_N, SVFOP_LOCALTIMESTAMP, SVFOP_LOCALTIMESTAMP_N, SVFOP_SESSION_USER, SVFOP_USER, and SQLValueFunction::typmod.
Referenced by transformExprRecurse().
|
static |
Definition at line 1783 of file parse_expr.c.
References _, ARRAY_SUBLINK, Assert, CMD_SELECT, count_nonjunk_tlist_entries(), elog, ereport, err(), errcode(), errmsg(), errmsg_internal(), ERROR, EXISTS_SUBLINK, EXPR_KIND_ALTER_COL_TRANSFORM, EXPR_KIND_CALL_ARGUMENT, EXPR_KIND_CHECK_CONSTRAINT, EXPR_KIND_COLUMN_DEFAULT, EXPR_KIND_COPY_WHERE, EXPR_KIND_CYCLE_MARK, EXPR_KIND_DISTINCT_ON, EXPR_KIND_DOMAIN_CHECK, EXPR_KIND_EXECUTE_PARAMETER, EXPR_KIND_FILTER, EXPR_KIND_FROM_FUNCTION, EXPR_KIND_FROM_SUBSELECT, EXPR_KIND_FUNCTION_DEFAULT, EXPR_KIND_GENERATED_COLUMN, 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_MERGE_RETURNING, EXPR_KIND_MERGE_WHEN, EXPR_KIND_NONE, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_OTHER, EXPR_KIND_PARTITION_BOUND, EXPR_KIND_PARTITION_EXPRESSION, EXPR_KIND_POLICY, EXPR_KIND_RETURNING, EXPR_KIND_SELECT_TARGET, EXPR_KIND_STATS_EXPRESSION, EXPR_KIND_TRIGGER_WHEN, EXPR_KIND_UPDATE_SOURCE, EXPR_KIND_UPDATE_TARGET, EXPR_KIND_VALUES, EXPR_KIND_VALUES_SINGLE, EXPR_KIND_WHERE, EXPR_KIND_WINDOW_FRAME_GROUPS, EXPR_KIND_WINDOW_FRAME_RANGE, EXPR_KIND_WINDOW_FRAME_ROWS, EXPR_KIND_WINDOW_ORDER, EXPR_KIND_WINDOW_PARTITION, EXPR_SUBLINK, exprCollation(), exprType(), exprTypmod(), fb(), IsA, lappend(), lfirst, list_length(), list_make1, Param::location, make_row_comparison_op(), makeNode, makeString(), MULTIEXPR_SUBLINK, NIL, ParseState::p_expr_kind, ParseState::p_hasSubLinks, PARAM_SUBLINK, Param::paramcollid, Param::paramid, Param::paramkind, Param::paramtype, Param::paramtypmod, parse_sub_analyze(), parser_errposition(), and transformExprRecurse().
Referenced by transformExprRecurse().
|
static |
Definition at line 2715 of file parse_expr.c.
References arg, COERCE_EXPLICIT_CAST, coerce_to_target_type(), COERCION_EXPLICIT, ereport, errcode(), errmsg(), ERROR, exprType(), fb(), format_type_be(), get_element_type(), getBaseTypeAndTypmod(), InvalidOid, IsA, OidIsValid, parser_coercion_errposition(), transformArrayExpr(), transformExprRecurse(), and typenameTypeIdAndMod().
Referenced by transformExprRecurse().
|
static |
Definition at line 2633 of file parse_expr.c.
References RowExpr::args, COERCE_IMPLICIT_CAST, copyObject, expandRTE(), fb(), list_length(), list_truncate(), Var::location, RowExpr::location, makeNode, makeWholeRowVar(), markNullableIfNeeded(), markVarForSelectPriv(), VAR_RETURNING_DEFAULT, and Var::varreturningtype.
Referenced by transformColumnRef().
|
static |
Definition at line 2368 of file parse_expr.c.
References Assert, coerce_to_boolean(), coerce_to_specific_type(), ereport, errcode(), errmsg(), ERROR, fb(), FigureColname(), i, IS_DOCUMENT, IS_XMLCONCAT, IS_XMLELEMENT, IS_XMLFOREST, IS_XMLPARSE, IS_XMLPI, IS_XMLROOT, IS_XMLSERIALIZE, IsA, lappend(), lfirst, lfirst_node, ResTarget::location, makeNode, makeString(), map_sql_identifier_to_xml_name(), ResTarget::name, NIL, parser_errposition(), strVal, transformExprRecurse(), ResTarget::val, and x.
Referenced by transformExprRecurse().
|
static |
Definition at line 2497 of file parse_expr.c.
References XmlExpr::args, COERCE_IMPLICIT_CAST, coerce_to_specific_type(), coerce_to_target_type(), COERCION_IMPLICIT, ereport, errcode(), errmsg(), ERROR, fb(), format_type_be(), XmlExpr::indent, IS_XMLSERIALIZE, list_make1, XmlExpr::location, makeNode, XmlExpr::op, parser_errposition(), transformExprRecurse(), and typenameTypeIdAndMod().
Referenced by transformExprRecurse().
|
static |
Definition at line 392 of file parse_expr.c.
References attname, ereport, errcode(), errmsg(), ERROR, exprType(), fb(), format_type_be(), GetRTEByRangeTablePosn(), InvalidAttrNumber, IsA, ISCOMPLEX, and parser_errposition().
Referenced by transformIndirection().
Definition at line 4710 of file parse_expr.c.
References expression_tree_walker, fb(), nodeTag, and ValidJsonBehaviorDefaultExpr().
Referenced by transformJsonBehavior(), and ValidJsonBehaviorDefaultExpr().
Definition at line 45 of file parse_expr.c.
Referenced by transformAExprOp().