Received: from makus.postgresql.org (makus.postgresql.org [98.129.198.125]) by mail.postgresql.org (Postfix) with ESMTP id 0FA6A64660B for ; Sat, 17 Dec 2011 19:38:59 -0400 (AST) Received: from mail-iy0-f174.google.com ([209.85.210.174]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1Rc3qG-0005Xg-7m for pgsql-sql@postgresql.org; Sat, 17 Dec 2011 23:39:00 +0000 Received: by iaeh11 with SMTP id h11so6423699iae.19 for ; Sat, 17 Dec 2011 15:38:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=CgHsUfB5iq2USfmrdI9g6625Lgs5m4rs+NHLsvJLhQo=; b=WwbCCOAxXt+vCZmiWYobVESc6l2BpLOqkxTFY+fyCP7n1/QyMOUNjil8/FfjkurGeE t7iiHzkKhRnN8pPTPk37fVSa83Og56BASGk1XRZhFbNckIhCVv+3z0VE/k890eyof90G TZr71W76/g8B9IA5LHnk+XXNRiuqT5PYtqLGI= Received: by 10.50.87.167 with SMTP id az7mr18238936igb.64.1324165127589; Sat, 17 Dec 2011 15:38:47 -0800 (PST) Received: from tucker.localnet (c-24-17-164-54.hsd1.wa.comcast.net. [24.17.164.54]) by mx.google.com with ESMTPS id a2sm22914705igj.7.2011.12.17.15.38.45 (version=SSLv3 cipher=OTHER); Sat, 17 Dec 2011 15:38:46 -0800 (PST) From: Adrian Klaver To: pgsql-sql@postgresql.org Subject: Re: Column "..." does not exist (view + union) Date: Sat, 17 Dec 2011 15:38:43 -0800 User-Agent: KMail/1.13.5 (Linux/2.6.32-36-generic; KDE/4.4.5; i686; ; ) Cc: Stefan Weiss References: <4EEC0533.9050007@gmail.com> <4EED15EA.6000507@gmail.com> In-Reply-To: <4EED15EA.6000507@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201112171538.43512.adrian.klaver@gmail.com> X-Pg-Spam-Score: -1.9 (-) X-Archive-Number: 201112/75 X-Sequence-Number: 36136 On Saturday, December 17, 2011 2:21:30 pm Stefan Weiss wrote: > > I know, but the problem only occurs when I want to sort by a column > which hasn't been selected, and thus cannot be referred to by its index. > For normal (non-union) queries, this is possible: > > SELECT relname > FROM pg_class > WHERE relhasindex > ORDER BY relpages; > > In this trivial case, PostgreSQL knows where to look for "relpages". > Not so in a union: > > SELECT relname > FROM pg_class > WHERE relhasindex > UNION > SELECT relname > FROM pg_class > WHERE relhasoids > ORDER BY relpages; > > (ERROR: column "relpages" does not exist) > > I understand the error now (I think), and I know how to avoid it. SELECT relname FROM pg_class WHERE relhasindex UNION (SELECT relname FROM pg_class WHERE relhasoids ORDER BY relpages); > > > thanks, > stefan -- Adrian Klaver adrian.klaver@gmail.com