mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-06 10:37:35 +08:00
such as bpchar(char_expression, N), and pull out the attrtypmod that the function is coercing to. This allows correct deduction of the column type in examples such as CREATE VIEW v AS SELECT f1::char(8) FROM tbl; Formerly we labeled v's column as char-of-unknown-length not char(8). Also, this change causes the parser not to insert a redundant length coercion function if the user has explicitly casted an INSERT or UPDATE expression to the right length.
29 lines
780 B
C
29 lines
780 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* parse_expr.h
|
|
*
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $Id: parse_expr.h,v 1.17 2000/02/26 21:11:09 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PARSE_EXPR_H
|
|
#define PARSE_EXPR_H
|
|
|
|
#include "parser/parse_node.h"
|
|
#include "parser/parse_type.h"
|
|
|
|
#define EXPR_COLUMN_FIRST 1
|
|
#define EXPR_RELATION_FIRST 2
|
|
|
|
extern Node *transformExpr(ParseState *pstate, Node *expr, int precedence);
|
|
extern Oid exprType(Node *expr);
|
|
extern int32 exprTypmod(Node *expr);
|
|
extern bool exprIsLengthCoercion(Node *expr, int32 *coercedTypmod);
|
|
|
|
#endif /* PARSE_EXPR_H */
|