Thread: type unknown?

type unknown?

From
Carol Walter
Date:
Greetings one and all,

I am porting all my databases from a 32 bit Postgres engine to 64 bit
Postgres.  To do this, I did a pg_dumpall and I'm restoring.  I got
an error on the restoration as follows:

psql:/dbsdisk/data_load/dbdev_all_080915.sql:3920581: WARNING:
column "collection" has type "unknown"
DETAIL:  Proceeding with relation creation anyway.

The view that was being processes when the error occurred is:

     View "public.v_cos_master_year_count"
    Column    |       Type        | Modifiers
-------------+-------------------+-----------
  collection  | text              |
  year        | character varying |
  entry_count | bigint            |
View definition:
  SELECT 'cos'::text AS collection, cos_master.year_published AS
"year", count(cos_master.id) AS entry_count
    FROM cos_master
   GROUP BY cos_master.year_published, cos_master.collection
   ORDER BY cos_master.year_published;

There are a number of views in this particular database where
"collection" is used in this way and they all get this warning.  Text
is a valid type, albeit nonstandard.  What is triggering this warning?

Thanks,
Carol


Re: type unknown?

From
Tom Lane
Date:
Carol Walter <walterc@indiana.edu> writes:
> Postgres.  To do this, I did a pg_dumpall and I'm restoring.  I got
> an error on the restoration as follows:

> psql:/dbsdisk/data_load/dbdev_all_080915.sql:3920581: WARNING:
> column "collection" has type "unknown"
> DETAIL:  Proceeding with relation creation anyway.

AFAIK the only way to get that warning is with an undecorated literal
constant:

regression=# create view foo as select 'bar' as collection;
WARNING:  column "collection" has type "unknown"
DETAIL:  Proceeding with relation creation anyway.
CREATE VIEW
regression=# \d foo
        View "public.foo"
   Column   |  Type   | Modifiers
------------+---------+-----------
 collection | unknown |
View definition:
 SELECT 'bar' AS collection;

... which is not what you're showing here:

> The view that was being processes when the error occurred is:

>      View "public.v_cos_master_year_count"
>     Column    |       Type        | Modifiers
> -------------+-------------------+-----------
>   collection  | text              |
>   year        | character varying |
>   entry_count | bigint            |
> View definition:
>   SELECT 'cos'::text AS collection, cos_master.year_published AS
> "year", count(cos_master.id) AS entry_count
>     FROM cos_master
>    GROUP BY cos_master.year_published, cos_master.collection
>    ORDER BY cos_master.year_published;

Are you sure you correctly identified which view is drawing the warning?

            regards, tom lane

Re: type unknown?

From
Carol Walter
Date:
Well, it''s a guess.  A "CREATE VIEW" follows the line that specifies
the warning.  (An "ALTER TABLE" immediately precedes it.)  This made
me think that is was on a view; then I went through the views till I
found one with a column called "collection".  Is there another way I
can isolate what's happening?

Carol

On Sep 18, 2008, at 5:01 PM, Tom Lane wrote:

> Carol Walter <walterc@indiana.edu> writes:
>> Postgres.  To do this, I did a pg_dumpall and I'm restoring.  I got
>> an error on the restoration as follows:
>
>> psql:/dbsdisk/data_load/dbdev_all_080915.sql:3920581: WARNING:
>> column "collection" has type "unknown"
>> DETAIL:  Proceeding with relation creation anyway.
>
> AFAIK the only way to get that warning is with an undecorated literal
> constant:
>
> regression=# create view foo as select 'bar' as collection;
> WARNING:  column "collection" has type "unknown"
> DETAIL:  Proceeding with relation creation anyway.
> CREATE VIEW
> regression=# \d foo
>         View "public.foo"
>    Column   |  Type   | Modifiers
> ------------+---------+-----------
>  collection | unknown |
> View definition:
>  SELECT 'bar' AS collection;
>
> ... which is not what you're showing here:
>
>> The view that was being processes when the error occurred is:
>
>>      View "public.v_cos_master_year_count"
>>     Column    |       Type        | Modifiers
>> -------------+-------------------+-----------
>>   collection  | text              |
>>   year        | character varying |
>>   entry_count | bigint            |
>> View definition:
>>   SELECT 'cos'::text AS collection, cos_master.year_published AS
>> "year", count(cos_master.id) AS entry_count
>>     FROM cos_master
>>    GROUP BY cos_master.year_published, cos_master.collection
>>    ORDER BY cos_master.year_published;
>
> Are you sure you correctly identified which view is drawing the
> warning?
>
>             regards, tom lane


Re: type unknown?

From
Tom Lane
Date:
Carol Walter <walterc@indiana.edu> writes:
> Well, it''s a guess.  A "CREATE VIEW" follows the line that specifies
> the warning.  (An "ALTER TABLE" immediately precedes it.)  This made
> me think that is was on a view; then I went through the views till I
> found one with a column called "collection".  Is there another way I
> can isolate what's happening?

Try doing the restore with log_min_error_statement set to WARNING;
that would at least confirm whether you're looking at the right view
definition.

BTW, what PG version is this?

            regards, tom lane