Datum difference(PG_FUNCTION_ARGS) { char sndx1[SOUNDEX_LEN + 1], sndx2[SOUNDEX_LEN + 1]; int i, result; _soundex(text_to_cstring(PG_GETARG_TEXT_P(0)), sndx1); _soundex(text_to_cstring(PG_GETARG_TEXT_P(1)), sndx2); result = 0; for (i = 0; i < SOUNDEX_LEN; i++) { if (sndx1[i] == sndx2[i]) result++; } PG_RETURN_INT32(result); }
Datum soundex(PG_FUNCTION_ARGS) { char outstr[SOUNDEX_LEN + 1]; char *arg; arg = text_to_cstring(PG_GETARG_TEXT_P(0)); _soundex(arg, outstr); PG_RETURN_TEXT_P(cstring_to_text(outstr)); }
Datum soundex(PG_FUNCTION_ARGS) { char outstr[SOUNDEX_LEN + 1]; char *arg; arg = _textout(PG_GETARG_TEXT_P(0)); _soundex(arg, outstr); PG_RETURN_TEXT_P(_textin(outstr)); }