Remove complaints about COLLATE clauses in partition bound values.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 28 Sep 2020 17:44:01 +0000 (13:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 28 Sep 2020 17:44:01 +0000 (13:44 -0400)
commit2dfa3fea88bc951d0812a18649d801f07964c9b9
treef377dfeeca5ca36d630fdeeb655f274708bcf7be
parent0a87ddff5c83589e90de236bd55e6a19b017fe9a
Remove complaints about COLLATE clauses in partition bound values.

transformPartitionBoundValue went out of its way to do the wrong
thing: there is no reason to complain about a non-matching COLLATE
clause in a partition boundary expression.  We're coercing the
bound expression to the target column type as though by an
implicit assignment, and the rules for implicit assignment say
that collations can be implicitly converted.

What we *do* need to do, and the code is not doing, is apply
assign_expr_collations() to the bound expression.  While this is
merely a definition disagreement, that is a bug that needs to be
back-patched, so I'll commit it separately.

Discussion: https://postgr.es/m/CAJV4CdrZ5mKuaEsRSbLf2URQ3h6iMtKD=hik8MaF5WwdmC9uZw@mail.gmail.com
src/backend/parser/parse_utilcmd.c
src/test/regress/expected/create_table.out
src/test/regress/sql/create_table.sql