pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Justin Pryzby <pryzby@telsasoft.com>
To: Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: pgsql-hackers@postgresql.org
Subject: Re: PoC/WIP: Extended statistics on expressions
Date: Thu, 2 Sep 2021 22:56:01 -0500
Message-ID: <20210903035601.GT26465@telsasoft.com> (raw)
In-Reply-To: <6bc0ab0c-a807-2b7f-7df8-ac90c7839013@enterprisedb.com>
References: <20201123022604.GD24052@telsasoft.com>
	<e5beb5d5-28b4-7aad-3a16-9a6abf57f897@enterprisedb.com>
	<6455e0ad-2a2e-bdb0-e1f8-fd4983d1c8aa@enterprisedb.com>
	<087086de-1384-8374-4efc-2e7915071d5c@enterprisedb.com>
	<CAEZATCU9uPo7JYdx4k0-ufXXZH8t7itodibUwCva+s+AvAKcnw@mail.gmail.com>
	<b2995773-c9a1-5d3b-fc90-4f3ab189be11@enterprisedb.com>
	<20210816013255.GS10479@telsasoft.com>
	<a2be7e05-e6b7-1467-d15a-49011e45a4b8@enterprisedb.com>
	<20210824131320.GO10479@telsasoft.com>
	<6bc0ab0c-a807-2b7f-7df8-ac90c7839013@enterprisedb.com>

On Wed, Sep 01, 2021 at 06:45:29PM +0200, Tomas Vondra wrote:
> However while polishing the second patch, I realized we're allowing
> statistics on expressions referencing system attributes. So this fails;
> 
> CREATE STATISTICS s ON ctid, x FROM t;
> 
> but this passes:
> 
> CREATE STATISTICS s ON (ctid::text), x FROM t;
> 
> IMO we should reject such expressions, just like we reject direct references
> to system attributes - patch attached.

Right, same as indexes.  +1

> Furthermore, I wonder if we should reject expressions without any Vars? This
> works now:
> 
> CREATE STATISTICS s ON (11:text) FROM t;
> 
> but it seems rather silly / useless, so maybe we should reject it.

To my surprise, this is also allowed for indexes...

But (maybe this is what I was remembering) it's prohibited to have a constant
expression as a partition key.

Expressions without a var seem like a case where the user did something
deliberately silly, and dis-similar from the case of making a stats expression
on a simple column - that seemed like it could be a legitimate
mistake/confusion (it's not unreasonable to write an extra parenthesis, but
it's strange if that causes it to behave differently).

I think it's not worth too much effort to prohibit this: if they're determined,
they can still write an expresion with a var which is constant.  I'm not going
to say it's worth zero effort, though.

-- 
Justin





view thread (107+ messages)  latest in thread

Message-ID: <20210903035601.GT26465@telsasoft.com>
Permalink:  ../20210903035601.GT26465@telsasoft.com/
Also on:    postgresql.org/message-id/20210903035601.GT26465@telsasoft.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: pryzby@telsasoft.com, tomas.vondra@enterprisedb.com, dean.a.rasheed@gmail.com
  Subject: Re: PoC/WIP: Extended statistics on expressions
  In-Reply-To: <20210903035601.GT26465@telsasoft.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox