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
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 |