mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 00:04:14 -05:00
of the SELECT part of the statement is just like a plain SELECT. All INSERT-specific processing happens after the SELECT parsing is done. This eliminates many problems, e.g. INSERT ... SELECT ... GROUP BY using the wrong column labels. Ensure that DEFAULT clauses are coerced to the target column type, whether or not stored clause produces the right type. Substantial cleanup of parser's array support.
29 lines
911 B
C
29 lines
911 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* parse_target.h
|
|
*
|
|
*
|
|
*
|
|
* Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $Id: parse_target.h,v 1.15 1999/07/19 00:26:18 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PARSE_TARGET_H
|
|
#define PARSE_TARGET_H
|
|
|
|
#include "parser/parse_node.h"
|
|
|
|
extern List *transformTargetList(ParseState *pstate, List *targetlist);
|
|
extern TargetEntry *transformTargetEntry(ParseState *pstate,
|
|
Node *node, Node *expr,
|
|
char *colname, bool resjunk);
|
|
extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,
|
|
char *colname, List *indirection);
|
|
extern Node *CoerceTargetExpr(ParseState *pstate, Node *expr,
|
|
Oid type_id, Oid attrtype);
|
|
extern List *makeTargetNames(ParseState *pstate, List *cols);
|
|
|
|
#endif /* PARSE_TARGET_H */
|