On Thu, Dec 26, 2024 at 05:08:36PM -0500, Tom Lane wrote:
> Bruce Momjian <br...@momjian.us> writes:
> > So, if users are referencing attndims and the values are not accurate,
> > how useful are they?  I was suggesting removal so people would stop
> > relying on inaccurate information, or we correct attndims to be
> > accurate.  Allowing people to continue relying on inaccurate information
> > seems like the worst of all options.
> 
> I think removal is not happening.  The documentation for attndims
> already says
> 
>     Number of dimensions, if the column is an array type; otherwise
>     0. (Presently, the number of dimensions of an array is not
>     enforced, so any nonzero value effectively means “it's an array”.)
> 
> and as far as I know that is completely correct.  (Hence, your gripe
> is not that it's not "accurate", rather that it's not "precise".)
> 
> There isn't a comparable disclaimer under typndims, but there probably
> should be.

First, my apologies about the URL;  it should have been:

        https://www.postgresql.org/message-id/zvwi_ozt8z9mc...@momjian.us

Using the queries in that URL, I see:

        CREATE TABLE test (data integer, data_array integer[5][5]);

        CREATE TABLE test2 (LIKE test);

        CREATE TABLE test3 AS SELECT * FROM test;

        SELECT relname, attndims
        FROM pg_class JOIN pg_attribute ON (pg_attribute.attrelid = 
pg_class.oid)
        WHERE attname = 'data_array';

         relname | attndims
        ---------+----------
         test    |        2
-->      test2   |        0
-->      test3   |        0

Interestingly, if I dump and restore with:

        $ createdb test2; pg_dump test | sql test2

and run the query again I get:

        SELECT relname, attndims
        FROM pg_class JOIN pg_attribute ON (pg_attribute.attrelid = 
pg_class.oid)
        WHERE attname = 'data_array';

         relname | attndims
        ---------+----------
         test    |        1
         test2   |        1
         test3   |        1

There is clearly something not ideal about this behavior.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.




Reply via email to