Re: PoC/WIP: Extended statistics on expressions

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Dean Rasheed <dean.a.rasheed@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2021-01-22T13:06:51Z
Lists: pgsql-hackers

On 1/22/21 10:00 AM, Dean Rasheed wrote:
> On Fri, 22 Jan 2021 at 04:46, Justin Pryzby <pryzby@telsasoft.com> wrote:
>>
>> I think you'll maybe have to do something better - this seems a bit too weird:
>>
>> | postgres=# CREATE STATISTICS s2 ON (i+1) ,i FROM t;
>> | postgres=# \d t
>> | ...
>> |     "public"."s2" (ndistinct, dependencies, mcv) ON i FROM t
>>
> 
> I guess that's not surprising, given that old psql knows nothing about
> expressions in stats.
> 
> In general, I think connecting old versions of psql to newer servers
> is not supported. You're lucky if \d works at all. So it shouldn't be
> this patch's responsibility to make that output nicer.
> 

Yeah. It's not clear to me what exactly could we do with this, without 
"backpatching" the old psql or making the ruleutils.c consider version 
of the psql. Neither of these seems possible/acceptable.

I'm sure this is not the only place showing "incomplete" information in 
old psql on new server.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

  1. Disallow extended statistics on system columns

  2. Identify simple column references in extended statistics

  3. Don't print extra parens around expressions in extended stats

  4. Change position of field "transformed" in struct CreateStatsStmt.

  5. Add transformed flag to nodes/*funcs.c for CREATE STATISTICS

  6. Stabilize stats_ext test with other collations

  7. Extended statistics on expressions

  8. Reduce duration of stats_ext regression tests

  9. Allow composite types in catalog bootstrap

  10. Convert Typ from array to list in bootstrap

  11. Disallow CREATE STATISTICS on system catalogs