manipulating NUMERIC values in C extension

From: Geoff Winkless <pgsqladmin(at)geoff(dot)dj>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: manipulating NUMERIC values in C extension
Date: 2018-06-08 12:27:13
Message-ID: CAEzk6feVfZJVGTdWqsX5WoDGXmZzUKVa9FBrireE9_Cmkz2ifA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi

I'd like to be able to perform some manipulation on NUMERIC values in
a C function; however the exposed functionality in numeric.h is pretty
restrictive.

I can see numeric_normalize will return a pointer to a string
representation, which is workable, and if there were an equivalent
string-to-numeric function that would be enough (although not the most
efficient) but I can't see a way to get a string back in to a numeric
value to return.

numeric_in looks like it might do what I want but to do that I would
have to build a FunctionCallInfo struct to do that, and I'm not 100%
clear how to do that either :(

I _could_ return the result as a varchar and cast it back to numeric
in the SQL, but that's not very clean.

Accessing the numeric structure directly would work too but I'm
assuming that's not recommended since it's not exposed in numeric.h.

Any thoughts would be appreciated,

Geoff

Responses

Browse pgsql-general by date

  From Date Subject
Next Message John McKown 2018-06-08 12:44:25 Re: manipulating NUMERIC values in C extension
Previous Message Jonathan S. Katz 2018-06-08 12:19:26 Re: Code of Conduct plan