Re: more custom C function fun
От | Dan \"Heron\" Myers |
---|---|
Тема | Re: more custom C function fun |
Дата | |
Msg-id | 48207BC6.1040508@xnapid.com обсуждение исходный текст |
Ответ на | Re: more custom C function fun (Martijn van Oosterhout <kleptog@svana.org>) |
Ответы |
Re: more custom C function fun
|
Список | pgsql-general |
Martijn van Oosterhout wrote: > You do realise that VARDATA does not return a null terminated string? I did not realize that... but it led me in the right direction. > Try using something like text_to_cstring or using elog(NOTICE) to > display what's actually being compared. I've outputted some things with elog (which is the other thing I needed to figure this out). Using DatumToCString(mytextvariable), I get single-character-length strings that do not match the data actually in the fields. Using VARDATA(mytextvariable) as the char*, I get things like this (name obscured) (using strlen to get the string's length): string: "Hillary Clinton(6611)", length 21 string: "95555551234nton(6611)", length 21 Of course, then I realized that strlen isn't the right tool for the job; I need: int len = VARSIZE(mytextvariable) - VARHDRSZ; Using that with the VARDATA as my char*, I get this: string: "Hillary Clinton(6611)" - length: 21 string: "95555551234" - length: 11 Which is what I need. Perhaps we could get some documentation about how to use this stuff? I was unable to find any on the Postgres site, if there is any. Thanks for your help guys :) - Dan
В списке pgsql-general по дате отправления: