Re: Best way to construct Datum out of a string?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: weissig(at)rbg(dot)informatik(dot)tu-darmstadt(dot)de
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Best way to construct Datum out of a string?
Date: 2011-04-28 03:52:35
Message-ID: 17394.1303962755@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

=?ISO-8859-15?Q?Yves_Wei=DFig?= <weissig(at)rbg(dot)informatik(dot)tu-darmstadt(dot)de> writes:
> Am 27.04.2011 16:11, schrieb Heikki Linnakangas:
>> What kind of a Datum do you want it to be? What data type? See
>> CStringGetDatum, or perhaps CStringGetTextDatum(). Or perhaps you want
>> to call the input function of some other datatype, with InputFunctionCall.

> Ok, but how do I do that?

> Currently I am using:

> _ebi_mtab_insert(rel, CStringGetTextDatum(BVEC_NULL), bin_enc);

> This function does not mere than hashing the 2nd passed argument (with
> the internal hash functions of hash.c) but each time a different hash
> value is returned, so I am thinking I might pass a pointer and not the
> real Datum. I am highly irritated now... as for now I thought I
> understood Datum...

Well, it's hard to say for sure when you haven't shown us either what
BVEC_NULL means or what _ebi_mtab_insert is doing with the value it gets
... but in fact a text Datum *is* a pointer, as is the Datum value for
any other pass-by-reference type. Datum isn't magic, it's only a
pointer-sized integer type. For anything bigger than that, the Datum
value is a pointer to some data somewhere else.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2011-04-28 04:03:16 Re: make world fails
Previous Message Noah Misch 2011-04-28 03:41:30 Re: XML with invalid chars