diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-07-06 20:16:36 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-07-06 20:16:36 +0000 |
commit | 1666970275cf6cc44d2944888a6199c31b3e6832 (patch) | |
tree | e79f2615f20b5c65600f0b95787e246a1f580996 /src/backend/parser/parse_expr.c | |
parent | 5af6e0a4ac57f11d071d6200f0264bf6798b64f6 (diff) | |
download | postgresql-1666970275cf6cc44d2944888a6199c31b3e6832.tar.gz postgresql-1666970275cf6cc44d2944888a6199c31b3e6832.zip |
I've fixed up the way domain constraints (not null and type length)
are managed as per request.
Moved from merging with table attributes to applying themselves during
coerce_type() and coerce_type_typmod.
Regression tests altered to test the cast() scenarios.
Rod Taylor
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index ac4a5b6e5f3..d93aeb55b5d 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.120 2002/07/04 15:24:01 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.121 2002/07/06 20:16:36 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -864,7 +864,7 @@ exprType(Node *expr) TargetEntry *tent; if (!qtree || !IsA(qtree, Query)) - elog(ERROR, "Cannot get type for untransformed sublink"); + elog(ERROR, "exprType: Cannot get type for untransformed sublink"); tent = (TargetEntry *) lfirst(qtree->targetList); type = tent->resdom->restype; } @@ -881,6 +881,9 @@ exprType(Node *expr) case T_CaseWhen: type = exprType(((CaseWhen *) expr)->result); break; + case T_Constraint: + type = exprType(((Constraint *) expr)->raw_expr); + break; case T_NullTest: type = BOOLOID; break; @@ -888,7 +891,7 @@ exprType(Node *expr) type = BOOLOID; break; default: - elog(ERROR, "Do not know how to get type for %d node", + elog(ERROR, "exprType: Do not know how to get type for %d node", nodeTag(expr)); break; } |