Re: AWS forcing PG upgrade from v9.6 a disaster - Mailing list pgsql-performance

From Andrew Dunstan
Subject Re: AWS forcing PG upgrade from v9.6 a disaster
Date
Msg-id e837378b-7820-068b-f71c-5ea7dc1ca80c@dunslane.net
Whole thread Raw
In response to Re: AWS forcing PG upgrade from v9.6 a disaster  ("Dean Gibson (DB Administrator)" <postgresql@mailpen.com>)
Responses Re: AWS forcing PG upgrade from v9.6 a disaster  ("Dean Gibson (DB Administrator)" <postgresql@mailpen.com>)
List pgsql-performance
On 6/6/21 7:49 PM, Dean Gibson (DB Administrator) wrote:
> On 2021-05-29 13:35, Andrew Dunstan wrote:
>> On 5/29/21 3:59 PM, Dean Gibson (DB Administrator) wrote:
>>> Meanwhile, I've been doing some checking.  If I remove "CAST(
>>> license_status AS CHAR ) = 'A'", the problem disappears.  Changing the
>>> JOIN to a RIGHT JOIN, & replacing WHERE with ON, also "solves" the
>>> problem, but there is an extra row where license_status is NULL, due
>>> to the RIGHT JOIN.  Currently trying to figure that out (why did the
>>> CAST ... match 'A', if it is null?)...
>> Why are you using this expression? It's something you almost never want
>> to do in my experience. Why not use the substr() function to get the
>> first character?
>>
>
> Although it doesn't matter in this case, I do it because in general,
> it changes the type of the value from CHAR to bptext or whatever it
> is, & that has causes comparison issues in the past.  It's just a
> matter of habit for me when working with CHAR() types.
>
> But this case, where it doesn't matter, I'd use LEFT().



That raises the issue of why you're using CHAR(n) fields. Just about
every consultant I know advises simply avoiding them. :-)


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-performance by date:

Previous
From: Ayub Khan
Date:
Subject: Re: dexter on AWS RDS auto tune queries
Next
From: "Dean Gibson (DB Administrator)"
Date:
Subject: Re: AWS forcing PG upgrade from v9.6 a disaster