Getting a primitive numeric value from "DatumGetNumeric"?

From: Demitri Muna <postgresql(at)demitri(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Getting a primitive numeric value from "DatumGetNumeric"?
Date: 2018-02-21 00:11:49
Message-ID: A3E2B8BE-7EE5-4555-90D8-09C832F7B558@demitri.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I’m writing a C extension for PostgreSQL. One possible input datatype for my function is a numeric array, e.g. ARRAY[[1.5,2.5],[3.5,4.5]]. I can use “DatumGetNumeric” to extract a “Numeric” data type from the data, but at some point I need to convert this to a number (e.g. double) so that I can do mathy things with it. How does one convert a “Numeric” to, say, a double?

I have a workaround in that I can pass this to my function:

ARRAY[[1.5,2.5],[3.5,4.5]]::float8[]

but I’d rather have the code do that instead of bothering the user to remember that.

Thanks,
Demitri

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2018-02-21 03:54:41 Re: Getting a primitive numeric value from "DatumGetNumeric"?
Previous Message yeli 2018-02-20 22:18:05 Re: Crear Una FUNTION usando ROW_NUMBER