Small bug in GROUP BY

Andriy I Pilipenko <bamby@marka.net.ua>

From: Andriy I Pilipenko <bamby@marka.net.ua>
To: pgsql-bugs@postgresql.org
Date: 2000-06-29T13:42:34Z
Lists: pgsql-bugs
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name               : Andriy I Pilipenko
Your email address      : bamby@marka.net.ua


System Configuration
---------------------
  Architecture (example: Intel Pentium)         : Intel Pentium

  Operating System (example: Linux 2.0.26 ELF)  : FreeBSD-3.x

  PostgreSQL version (example: PostgreSQL-7.0):   PostgreSQL-7.0.2
						  PostgreSQL-7.0beta5

  Compiler used (example:  gcc 2.8.0)           : gcc 2.7.2.3


Please enter a FULL description of your problem:
------------------------------------------------

This problem is new to version 7. In PostgreSQL 6.x this problem not
present. 

There is a bug where backend dumps core while executing such a request:

      SELECT sum(a), b
        FROM t
    GROUP BY b
UNION SELECT sum(a), 1 as b
        FROM t
    GROUP BY b

I know, that last 'GROUP BY' clause is not necessary to use, but it's not
necessary for backend to dump core in such a harmless situation ;-) This
query works pretty well without last 'GROUP BY' clause.

Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

First create the table:

CREATE TABLE t (a int, b int)

Next insert some data into the table. It's necessary part - without data
you cannot catch the bug.

INSERT INTO t VALUES (0, 0)

And finally:

      SELECT sum(a), b
        FROM t
    GROUP BY b
UNION SELECT sum(a), 1 as b
        FROM t
    GROUP BY b

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

Sorry, I don't :-(