mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-13 01:47:05 +08:00
The reverts the following and makes some associated cleanups:
commit f79b803dc: Common SQL/JSON clauses
commit f4fb45d15: SQL/JSON constructors
commit 5f0adec25: Make STRING an unreserved_keyword.
commit 33a377608: IS JSON predicate
commit 1a36bc9db: SQL/JSON query functions
commit 606948b05: SQL JSON functions
commit 49082c2cc: RETURNING clause for JSON() and JSON_SCALAR()
commit 4e34747c8: JSON_TABLE
commit fadb48b00: PLAN clauses for JSON_TABLE
commit 2ef6f11b0: Reduce running time of jsonb_sqljson test
commit 14d3f24fa: Further improve jsonb_sqljson parallel test
commit a6baa4bad: Documentation for SQL/JSON features
commit b46bcf7a4: Improve readability of SQL/JSON documentation.
commit 112fdb352: Fix finalization for json_objectagg and friends
commit fcdb35c32: Fix transformJsonBehavior
commit 4cd8717af: Improve a couple of sql/json error messages
commit f7a605f63: Small cleanups in SQL/JSON code
commit 9c3d25e17: Fix JSON_OBJECTAGG uniquefying bug
commit a79153b7a: Claim SQL standard compliance for SQL/JSON features
commit a1e7616d6: Rework SQL/JSON documentation
commit 8d9f9634e: Fix errors in copyfuncs/equalfuncs support for JSON node types.
commit 3c633f32b: Only allow returning string types or bytea from json_serialize
commit 67b26703b: expression eval: Fix EEOP_JSON_CONSTRUCTOR and EEOP_JSONEXPR size.
The release notes are also adjusted.
Backpatch to release 15.
Discussion: https://postgr.es/m/40d2c882-bcac-19a9-754d-4299e1d87ac7@postgresql.org
55 lines
2.1 KiB
C
55 lines
2.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* parse_clause.h
|
|
* handle clauses in parser
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/parser/parse_clause.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PARSE_CLAUSE_H
|
|
#define PARSE_CLAUSE_H
|
|
|
|
#include "parser/parse_node.h"
|
|
|
|
extern void transformFromClause(ParseState *pstate, List *frmList);
|
|
extern int setTargetTable(ParseState *pstate, RangeVar *relation,
|
|
bool inh, bool alsoSource, AclMode requiredPerms);
|
|
|
|
extern Node *transformWhereClause(ParseState *pstate, Node *clause,
|
|
ParseExprKind exprKind, const char *constructName);
|
|
extern Node *transformLimitClause(ParseState *pstate, Node *clause,
|
|
ParseExprKind exprKind, const char *constructName,
|
|
LimitOption limitOption);
|
|
extern List *transformGroupClause(ParseState *pstate, List *grouplist,
|
|
List **groupingSets,
|
|
List **targetlist, List *sortClause,
|
|
ParseExprKind exprKind, bool useSQL99);
|
|
extern List *transformSortClause(ParseState *pstate, List *orderlist,
|
|
List **targetlist, ParseExprKind exprKind,
|
|
bool useSQL99);
|
|
|
|
extern List *transformWindowDefinitions(ParseState *pstate,
|
|
List *windowdefs,
|
|
List **targetlist);
|
|
|
|
extern List *transformDistinctClause(ParseState *pstate,
|
|
List **targetlist, List *sortClause, bool is_agg);
|
|
extern List *transformDistinctOnClause(ParseState *pstate, List *distinctlist,
|
|
List **targetlist, List *sortClause);
|
|
extern void transformOnConflictArbiter(ParseState *pstate,
|
|
OnConflictClause *onConflictClause,
|
|
List **arbiterExpr, Node **arbiterWhere,
|
|
Oid *constraint);
|
|
|
|
extern List *addTargetToSortList(ParseState *pstate, TargetEntry *tle,
|
|
List *sortlist, List *targetlist, SortBy *sortby);
|
|
extern Index assignSortGroupRef(TargetEntry *tle, List *tlist);
|
|
extern bool targetIsInSortList(TargetEntry *tle, Oid sortop, List *sortList);
|
|
|
|
#endif /* PARSE_CLAUSE_H */
|