diff options
| author | Peter Eisentraut | 2020-10-27 16:39:23 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2020-10-27 17:10:42 +0000 |
| commit | f893e68d761adbee7f888109b1adf76151e3e17a (patch) | |
| tree | fd4da3319cf385c87f23786edc24283fa25589cc /src/include/parser | |
| parent | 59ab4ac32460a6a93b665f4e487d7ff64979ba4d (diff) | |
Add select_common_typmod()
This accompanies select_common_type() and select_common_collation().
Typmods were previously combined using hand-coded logic in several
places. The logic in select_common_typmod() isn't very exciting, but
it makes the code more compact and readable in a few locations, and in
the future we can perhaps do more complicated things if desired.
As a small enhancement, the type unification of the direct and
aggregate arguments of hypothetical-set aggregates now unifies the
typmod as well using this new function, instead of just dropping it.
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://www.postgresql.org/message-id/flat/97df3af9-8b5e-fb7f-a029-3eb7e80d7af9@2ndquadrant.com
Diffstat (limited to 'src/include/parser')
| -rw-r--r-- | src/include/parser/parse_coerce.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h index 8686eaacbc..33d7cfc8b6 100644 --- a/src/include/parser/parse_coerce.h +++ b/src/include/parser/parse_coerce.h @@ -71,6 +71,8 @@ extern Node *coerce_to_common_type(ParseState *pstate, Node *node, Oid targetTypeId, const char *context); +extern int32 select_common_typmod(ParseState *pstate, List *exprs, Oid common_type); + extern bool check_generic_type_consistency(const Oid *actual_arg_types, const Oid *declared_arg_types, int nargs); |
