Yves Weißig <weissig@rbg.informatik.tu-darmstadt.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