16#include "catalog/pg_collation_d.h"
20#include "utils/fmgrprotos.h"
52 while (*in && isspace((
unsigned char) *in))
62 lastchar =
start = in;
65 while (*in && !isspace((
unsigned char) *in))
71 if (in - lastchar == 1 &&
t_iseq(lastchar,
'*') && flags)
89 return strcmp(((
const Syn *)
a)->in, ((
const Syn *)
b)->in);
100 bool case_sensitive =
false;
109 foreach(l, dictoptions)
113 if (strcmp(defel->
defname,
"synonyms") == 0)
115 else if (strcmp(defel->
defname,
"casesensitive") == 0)
119 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
120 errmsg(
"unrecognized synonym parameter: \"%s\"",
126 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
127 errmsg(
"missing Synonyms parameter")));
133 (
errcode(ERRCODE_CONFIG_FILE_ERROR),
134 errmsg(
"could not open synonym file \"%s\": %m",
141 starti =
findwrd(line, &end, NULL);
154 starto =
findwrd(end + 1, &end, &flags);
222 if (len <= 0 || d->
len <= 0)
char * defGetString(DefElem *def)
bool defGetBoolean(DefElem *def)
static int compareSyn(const void *a, const void *b)
static char * findwrd(char *in, char **end, uint16 *flags)
Datum dsynonym_lexize(PG_FUNCTION_ARGS)
Datum dsynonym_init(PG_FUNCTION_ARGS)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define PG_GETARG_POINTER(n)
#define PG_GETARG_INT32(n)
#define PG_RETURN_POINTER(x)
int pg_mblen(const char *mbstr)
char * pstrdup(const char *in)
void * repalloc(void *pointer, Size size)
void pfree(void *pointer)
void * palloc0(Size size)
char * pnstrdup(const char *in, Size len)
#define qsort(a, b, c, d)
bool tsearch_readline_begin(tsearch_readline_state *stp, const char *filename)
char * tsearch_readline(tsearch_readline_state *stp)
void tsearch_readline_end(tsearch_readline_state *stp)
char * get_tsearch_config_filename(const char *basename, const char *extension)