Re: Casting pairs of floating point variables as a point in plpgsql

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: ishapiro(at)cogitations(dot)com (Irv Shapiro)
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Casting pairs of floating point variables as a point in plpgsql
Date: 2002-02-22 00:18:26
Message-ID: 12044.1014337106@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

ishapiro(at)cogitations(dot)com (Irv Shapiro) writes:
> How do I cast the logitude and latitude floatig point numbers, stored
> in my plpgsql variables into a point datatype so I can use it with the
> earthdistance function.

> I tried the following and it returns a syntax error on the "as":

> select cast((m_zip_info1, m_zip_info2) as point) <@>
> cast((m_merchant_zip1, m_merchant_zip2) as point) into m_miles;

You cannot "cast" two floats into a point (a cast always operates on
a single data value). However, a moment's perusal of pg_proc shows
that there is a function point(float8,float8), so this should work:

select point(m_zip_info1, m_zip_info2) <@>
point(m_merchant_zip1, m_merchant_zip2) into m_miles;

regards, tom lane

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2002-02-22 01:01:47 Re: Permanent fatal errors
Previous Message Richard Emberson 2002-02-21 22:34:59 Finding matching columns from two tables