On 26.06.22 05:51, Julien Rouhaud wrote:
> Hi,
>
> On Sat, Jun 25, 2022 at 10:19:30AM -0500, Justin Pryzby wrote:
>> commit f2553d43060edb210b36c63187d52a632448e1d2 says >=1500 in a few places,
>> but in pg_upgrade says <=1500, which looks wrong for upgrades from v15.
>> I think it should say <= 1400.
>>
>> On Wed, Feb 02, 2022 at 02:01:23PM +0100, Peter Eisentraut wrote:
>>> diff --git a/src/bin/pg_upgrade/info.c b/src/bin/pg_upgrade/info.c
>>> index 69ef23119f..2a9ca0e389 100644
>>> --- a/src/bin/pg_upgrade/info.c
>>> +++ b/src/bin/pg_upgrade/info.c
>>> @@ -312,11 +312,20 @@ get_db_infos(ClusterInfo *cluster)
>>> i_spclocation;
>>> char query[QUERY_ALLOC];
>>>
>>> snprintf(query, sizeof(query),
>>> - "SELECT d.oid, d.datname, d.encoding, d.datcollate, d.datctype, "
>>> + "SELECT d.oid, d.datname, d.encoding, d.datcollate, d.datctype, ");
>>> + if (GET_MAJOR_VERSION(old_cluster.major_version) <= 1500)
I think the fix here is to change <= to < ?
>>> + snprintf(query + strlen(query), sizeof(query) - strlen(query),
>>> + "'c' AS datcollprovider, NULL AS daticucoll, ");
>>> + else
>>> + snprintf(query + strlen(query), sizeof(query) - strlen(query),
>>> + "datcollprovider, daticucoll, ");
>>> + snprintf(query + strlen(query), sizeof(query) - strlen(query),
>>> "pg_catalog.pg_tablespace_location(t.oid) AS spclocation "
>>> "FROM pg_catalog.pg_database d "
>>> " LEFT OUTER JOIN pg_catalog.pg_tablespace t "
>
> Indeed!
>
>