Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb77c6c7

Browse files
committed
Whoops, missed updating dsynonym_init for new dictionary parameter method.
1 parentb2a52b3 commitb77c6c7

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

‎src/backend/tsearch/dict_synonym.c

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $PostgreSQL: pgsql/src/backend/tsearch/dict_synonym.c,v 1.1 2007/08/21 01:11:18 tgl Exp $
10+
* $PostgreSQL: pgsql/src/backend/tsearch/dict_synonym.c,v 1.2 2007/08/22 04:13:15 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
1414
#include"postgres.h"
1515

16+
#include"commands/defrem.h"
1617
#include"storage/fd.h"
1718
#include"tsearch/ts_locale.h"
1819
#include"tsearch/ts_public.h"
@@ -21,6 +22,7 @@
2122

2223

2324
#defineSYNBUFLEN4096
25+
2426
typedefstruct
2527
{
2628
char*in;
@@ -63,27 +65,37 @@ compareSyn(const void *a, const void *b)
6365
Datum
6466
dsynonym_init(PG_FUNCTION_ARGS)
6567
{
66-
text*in;
68+
List*dictoptions= (List*)PG_GETARG_POINTER(0);
6769
DictSyn*d;
68-
intcur=0;
70+
ListCell*l;
71+
char*filename=NULL;
6972
FILE*fin;
70-
char*filename;
7173
charbuf[SYNBUFLEN];
7274
char*starti,
7375
*starto,
7476
*end=NULL;
77+
intcur=0;
7578
intslen;
7679

77-
/* init functions must defend against NULLs for themselves */
78-
if (PG_ARGISNULL(0)||PG_GETARG_POINTER(0)==NULL)
80+
foreach(l,dictoptions)
81+
{
82+
DefElem*defel= (DefElem*)lfirst(l);
83+
84+
if (pg_strcasecmp("Synonyms",defel->defname)==0)
85+
filename=defGetString(defel);
86+
else
87+
ereport(ERROR,
88+
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
89+
errmsg("unrecognized synonym parameter: \"%s\"",
90+
defel->defname)));
91+
}
92+
93+
if (!filename)
7994
ereport(ERROR,
8095
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
81-
errmsg("NULL config not allowed for Synonym")));
82-
in=PG_GETARG_TEXT_P(0);
83-
84-
filename=get_tsearch_config_filename(TextPGetCString(in),"syn");
96+
errmsg("missing Synonyms parameter")));
8597

86-
PG_FREE_IF_COPY(in,0);
98+
filename=get_tsearch_config_filename(filename,"syn");
8799

88100
if ((fin=AllocateFile(filename,"r"))==NULL)
89101
ereport(ERROR,
@@ -142,7 +154,6 @@ dsynonym_init(PG_FUNCTION_ARGS)
142154
if (cur>1)
143155
qsort(d->syn,d->len,sizeof(Syn),compareSyn);
144156

145-
pfree(filename);
146157
PG_RETURN_POINTER(d);
147158
}
148159

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp