X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 1B4EA534B2 for ; Mon, 11 Apr 2005 22:29:46 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 43752-06 for ; Tue, 12 Apr 2005 01:29:36 +0000 (GMT) Received: from fed1rmmtao09.cox.net (fed1rmmtao09.cox.net [68.230.241.30]) by svr1.postgresql.org (Postfix) with ESMTP id 28004529E2 for ; Mon, 11 Apr 2005 22:29:35 -0300 (ADT) Received: from KARENSLAPTOP ([70.176.123.3]) by fed1rmmtao09.cox.net (InterMail vM.6.01.04.00 201-2131-118-20041027) with SMTP id <20050412012940.JEQQ19936.fed1rmmtao09.cox.net@KARENSLAPTOP>; Mon, 11 Apr 2005 21:29:40 -0400 From: "Bill Lawrence" To: "PFC" , Subject: Re: Getting the output of a function used in a where clause Date: Mon, 11 Apr 2005 18:25:10 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 In-Reply-To: X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.001 tagged_above=0 required=5 tests=AWL X-Spam-Level: X-Archive-Number: 200504/158 X-Sequence-Number: 21051 Boy I sure thought that would work... I received the following from = postgres: ERROR: Attribute "distance" not found. Started looking into gist.... Looks complex. Any other ideas? -----Original Message----- From: PFC [mailto:lists@boutiquenumerique.com] Sent: Monday, April 11, 2005 1:51 AM To: Bill Lawrence; pgsql-sql@postgresql.org Subject: Re: [SQL] Getting the output of a function used in a where = clause try: SELECT zipcode, zipdist($lat1d,$lon1d,lat,long) as distance from = zipcodes=20 where distance <=3D $dist;"; OR you could use a gist index with a geometric datatype to get it a lot=20 faster. On Sat, 09 Apr 2005 03:43:39 +0200, Bill Lawrence = =20 wrote: > HI, > > I'm a newbie so please bear with me. I have a function defined (got it = > from > one of your threads... thanks Joe Conway) which calculates the = distance > between 2 zip code centeroids (in lat,long). This thing works great. > However, I want to sort my results by distance without incurring the > additional burden of executing the function twice. A simplified = version=20 > of > my current SQL (written in a perl cgi) that returns a set of zip = codes > within a given radius is: > > > What I want to write is something like: > > $sql =3D "SELECT zipcode, distance from zipcodes where distance <=3D = $dist=20 > order > by distance;"; > > But I don't the magic SQL phrase to populate the distance variable = using=20 > my > nifty function. Do I need to create an output type for distance? > > Thanks in advance! > > Bill > > >