Thread: BUG #9046: vacuum analyze fails on a table that has domain that is a date rage

BUG #9046: vacuum analyze fails on a table that has domain that is a date rage

From
lr@pcorp.us
Date:
The following bug has been logged on the website:

Bug reference:      9046
Logged by:          Regina Obe
Email address:      lr@pcorp.us
PostgreSQL version: 9.3.2
Operating system:   Windows 2003 x 64  PostgreSQL x 64
Description:

Here are steps to recreate:

CREATE DOMAIN domain_period
  AS daterange
  DEFAULT daterange('-infinity'::date, 'infinity'::date, '[)'::text)
  NOT NULL
  CONSTRAINT domain_period_check_1 CHECK (lower(VALUE) < upper(VALUE))
  CONSTRAINT domain_period_check_2 CHECK (NOT isempty(VALUE))
  CONSTRAINT domain_period_check_3 CHECK (lower_inc(VALUE))
  CONSTRAINT domain_period_check_4 CHECK (NOT upper_inc(VALUE));

CREATE TABLE test_domain_period(id serial, period domain_period);

vacuum analyze test_domain_period;


Get error:
ERROR:  type 920283 is not a range type
lr@pcorp.us writes:
> Here are steps to recreate:

> CREATE DOMAIN domain_period
>   AS daterange
>   DEFAULT daterange('-infinity'::date, 'infinity'::date, '[)'::text)
>   NOT NULL
>   CONSTRAINT domain_period_check_1 CHECK (lower(VALUE) < upper(VALUE))
>   CONSTRAINT domain_period_check_2 CHECK (NOT isempty(VALUE))
>   CONSTRAINT domain_period_check_3 CHECK (lower_inc(VALUE))
>   CONSTRAINT domain_period_check_4 CHECK (NOT upper_inc(VALUE));

> CREATE TABLE test_domain_period(id serial, period domain_period);

> vacuum analyze test_domain_period;

Works for me in git head.  I think this is the same problem reported
in bug #8684, and fixed at commit 663f8419b.

            regards, tom lane
On Fri, Jan 31, 2014 at 12:31:59AM +0000, lr@pcorp.us wrote:
> The following bug has been logged on the website:
>
> Bug reference:      9046
> Logged by:          Regina Obe
> Email address:      lr@pcorp.us
> PostgreSQL version: 9.3.2
> Operating system:   Windows 2003 x 64  PostgreSQL x 64
> Description:
>
> Here are steps to recreate:
>
> CREATE DOMAIN domain_period
>   AS daterange
>   DEFAULT daterange('-infinity'::date, 'infinity'::date, '[)'::text)
>   NOT NULL
>   CONSTRAINT domain_period_check_1 CHECK (lower(VALUE) < upper(VALUE))
>   CONSTRAINT domain_period_check_2 CHECK (NOT isempty(VALUE))
>   CONSTRAINT domain_period_check_3 CHECK (lower_inc(VALUE))
>   CONSTRAINT domain_period_check_4 CHECK (NOT upper_inc(VALUE));
>
> CREATE TABLE test_domain_period(id serial, period domain_period);
>
> vacuum analyze test_domain_period;
>
>
> Get error:
> ERROR:  type 920283 is not a range type

I am not able to reproduce this failure in 9.3.4. I suggest you upgrade.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +