Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Oddities with ANYARRAY



David Fetter and I were just looking at something on IRC...

decibel=# select most_common_vals[1] from pg_stats where tablename='pg_depend' and attname='classid';
ERROR:  cannot subscript type anyarray because it is not an array
decibel=# select most_common_freqs[1] from pg_stats where tablename='pg_depend' and attname='classid';
 most_common_freqs 
-------------------
             0.566
(1 row)

ISTM you'd want to be able to reference an individual element of an
ANYARRAY... but this gets even more odd...

decibel=# CREATE OR REPLACE FUNCTION array_to_set(anyarray) RETURNS SETOF anyelement LANGUAGE SQL AS $$
    SELECT $1[i] from generate_series(array_lower($1, 1), array_upper($1, 1)) i
$$;
CREATE FUNCTION
decibel=# select array_to_set(most_common_vals) from pg_stats where tablename='pg_depend' and attname='classid';
ERROR:  argument declared "anyarray" is not an array but type anyarray

I expected that not to work, but the error is somewhat interesting...

I didn't expect the following to work:

decibel=# select array_to_set(most_common_freqs) from pg_stats where tablename='pg_depend' and attname='classid';
 array_to_set 
--------------
        0.566
     0.235667
     0.126333
    0.0343333
         0.02
    0.0163333
  0.000666667
  0.000666667
(8 rows)

decibel=# 

ISTM you should be able to call an anyarray function with an anyarray,
and that you should be able to reference individual elements of an
anyarray...
-- 
Decibel!, aka Jim Nasby                        decibel(at)decibel(dot)org
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)

Attachment: pgpkhxBOeHBTU.pgp
Description: PGP signature



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group