mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
pgindent run for 9.6
This commit is contained in:
@ -25,23 +25,23 @@
|
||||
*
|
||||
* A compiled dictionary is stored in the IspellDict structure. Compilation of
|
||||
* a dictionary is divided into the several steps:
|
||||
* - NIImportDictionary() - stores each word of a .dict file in the
|
||||
* temporary Spell field.
|
||||
* - NIImportAffixes() - stores affix rules of an .affix file in the
|
||||
* Affix field (not temporary) if an .affix file has the Ispell format.
|
||||
* -> NIImportOOAffixes() - stores affix rules if an .affix file has the
|
||||
* Hunspell format. The AffixData field is initialized if AF parameter
|
||||
* is defined.
|
||||
* - NISortDictionary() - builds a prefix tree (Trie) from the words list
|
||||
* and stores it in the Dictionary field. The words list is got from the
|
||||
* Spell field. The AffixData field is initialized if AF parameter is not
|
||||
* defined.
|
||||
* - NISortAffixes():
|
||||
* - builds a list of compond affixes from the affix list and stores it
|
||||
* in the CompoundAffix.
|
||||
* - builds prefix trees (Trie) from the affix list for prefixes and suffixes
|
||||
* and stores them in Suffix and Prefix fields.
|
||||
* The affix list is got from the Affix field.
|
||||
* - NIImportDictionary() - stores each word of a .dict file in the
|
||||
* temporary Spell field.
|
||||
* - NIImportAffixes() - stores affix rules of an .affix file in the
|
||||
* Affix field (not temporary) if an .affix file has the Ispell format.
|
||||
* -> NIImportOOAffixes() - stores affix rules if an .affix file has the
|
||||
* Hunspell format. The AffixData field is initialized if AF parameter
|
||||
* is defined.
|
||||
* - NISortDictionary() - builds a prefix tree (Trie) from the words list
|
||||
* and stores it in the Dictionary field. The words list is got from the
|
||||
* Spell field. The AffixData field is initialized if AF parameter is not
|
||||
* defined.
|
||||
* - NISortAffixes():
|
||||
* - builds a list of compond affixes from the affix list and stores it
|
||||
* in the CompoundAffix.
|
||||
* - builds prefix trees (Trie) from the affix list for prefixes and suffixes
|
||||
* and stores them in Suffix and Prefix fields.
|
||||
* The affix list is got from the Affix field.
|
||||
*
|
||||
* Memory management
|
||||
* -----------------
|
||||
@ -204,14 +204,14 @@ static int
|
||||
cmpspellaffix(const void *s1, const void *s2)
|
||||
{
|
||||
return (strcmp((*(SPELL *const *) s1)->p.flag,
|
||||
(*(SPELL *const *) s2)->p.flag));
|
||||
(*(SPELL *const *) s2)->p.flag));
|
||||
}
|
||||
|
||||
static int
|
||||
cmpcmdflag(const void *f1, const void *f2)
|
||||
{
|
||||
CompoundAffixFlag *fv1 = (CompoundAffixFlag *) f1,
|
||||
*fv2 = (CompoundAffixFlag *) f2;
|
||||
CompoundAffixFlag *fv1 = (CompoundAffixFlag *) f1,
|
||||
*fv2 = (CompoundAffixFlag *) f2;
|
||||
|
||||
Assert(fv1->flagMode == fv2->flagMode);
|
||||
|
||||
@ -335,15 +335,15 @@ cmpaffix(const void *s1, const void *s2)
|
||||
*
|
||||
* Depending on the flagMode an affix string can have the following format:
|
||||
* - FM_CHAR: ABCD
|
||||
* Here we have 4 flags: A, B, C and D
|
||||
* Here we have 4 flags: A, B, C and D
|
||||
* - FM_LONG: ABCDE*
|
||||
* Here we have 3 flags: AB, CD and E*
|
||||
* Here we have 3 flags: AB, CD and E*
|
||||
* - FM_NUM: 200,205,50
|
||||
* Here we have 3 flags: 200, 205 and 50
|
||||
* Here we have 3 flags: 200, 205 and 50
|
||||
*
|
||||
* Conf: current dictionary.
|
||||
* sflagset: the set of affix flags. Returns a reference to the start of a next
|
||||
* affix flag.
|
||||
* affix flag.
|
||||
* sflag: returns an affix flag from sflagset.
|
||||
*/
|
||||
static void
|
||||
@ -358,7 +358,7 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag)
|
||||
|
||||
maxstep = (Conf->flagMode == FM_LONG) ? 2 : 1;
|
||||
|
||||
while(**sflagset)
|
||||
while (**sflagset)
|
||||
{
|
||||
switch (Conf->flagMode)
|
||||
{
|
||||
@ -413,8 +413,8 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag)
|
||||
{
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("invalid character in affix flag \"%s\"",
|
||||
*sflagset)));
|
||||
errmsg("invalid character in affix flag \"%s\"",
|
||||
*sflagset)));
|
||||
}
|
||||
|
||||
*sflagset += pg_mblen(*sflagset);
|
||||
@ -432,8 +432,8 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag)
|
||||
|
||||
if (Conf->flagMode == FM_LONG && maxstep > 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("invalid affix flag \"%s\" with long flag value", sbuf)));
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("invalid affix flag \"%s\" with long flag value", sbuf)));
|
||||
|
||||
*sflag = '\0';
|
||||
}
|
||||
@ -527,6 +527,7 @@ NIImportDictionary(IspellDict *Conf, const char *filename)
|
||||
{
|
||||
char *s,
|
||||
*pstr;
|
||||
|
||||
/* Set of affix flags */
|
||||
const char *flag;
|
||||
|
||||
@ -581,11 +582,11 @@ NIImportDictionary(IspellDict *Conf, const char *filename)
|
||||
* meter/GMD
|
||||
*
|
||||
* The affix rule with the flag S:
|
||||
* SFX S y ies [^aeiou]y
|
||||
* SFX S y ies [^aeiou]y
|
||||
* is not presented here.
|
||||
*
|
||||
* The affix rule with the flag M:
|
||||
* SFX M 0 's .
|
||||
* SFX M 0 's .
|
||||
* is presented here.
|
||||
*
|
||||
* Conf: current dictionary.
|
||||
@ -620,9 +621,9 @@ FindWord(IspellDict *Conf, const char *word, char *affixflag, int flag)
|
||||
if (flag == 0)
|
||||
{
|
||||
/*
|
||||
* The word can be formed only with another word.
|
||||
* And in the flag parameter there is not a sign
|
||||
* that we search compound words.
|
||||
* The word can be formed only with another word. And
|
||||
* in the flag parameter there is not a sign that we
|
||||
* search compound words.
|
||||
*/
|
||||
if (StopMiddle->compoundflag & FF_COMPOUNDONLY)
|
||||
return 0;
|
||||
@ -658,21 +659,21 @@ FindWord(IspellDict *Conf, const char *word, char *affixflag, int flag)
|
||||
* Conf: current dictionary.
|
||||
* flag: affix flag ('\' in the below example).
|
||||
* flagflags: set of flags from the flagval field for this affix rule. This set
|
||||
* is listed after '/' character in the added string (repl).
|
||||
* is listed after '/' character in the added string (repl).
|
||||
*
|
||||
* For example L flag in the hunspell_sample.affix:
|
||||
* SFX \ 0 Y/L [^Y]
|
||||
* For example L flag in the hunspell_sample.affix:
|
||||
* SFX \ 0 Y/L [^Y]
|
||||
*
|
||||
* mask: condition for search ('[^Y]' in the above example).
|
||||
* find: stripping characters from beginning (at prefix) or end (at suffix)
|
||||
* of the word ('0' in the above example, 0 means that there is not
|
||||
* stripping character).
|
||||
* of the word ('0' in the above example, 0 means that there is not
|
||||
* stripping character).
|
||||
* repl: adding string after stripping ('Y' in the above example).
|
||||
* type: FF_SUFFIX or FF_PREFIX.
|
||||
*/
|
||||
static void
|
||||
NIAddAffix(IspellDict *Conf, const char* flag, char flagflags, const char *mask,
|
||||
const char *find, const char *repl, int type)
|
||||
NIAddAffix(IspellDict *Conf, const char *flag, char flagflags, const char *mask,
|
||||
const char *find, const char *repl, int type)
|
||||
{
|
||||
AFFIX *Affix;
|
||||
|
||||
@ -1024,8 +1025,8 @@ setCompoundAffixFlagValue(IspellDict *Conf, CompoundAffixFlag *entry,
|
||||
{
|
||||
if (Conf->flagMode == FM_NUM)
|
||||
{
|
||||
char *next;
|
||||
int i;
|
||||
char *next;
|
||||
int i;
|
||||
|
||||
i = strtol(s, &next, 10);
|
||||
if (s == next || errno == ERANGE)
|
||||
@ -1056,10 +1057,10 @@ setCompoundAffixFlagValue(IspellDict *Conf, CompoundAffixFlag *entry,
|
||||
static void
|
||||
addCompoundAffixFlagValue(IspellDict *Conf, char *s, uint32 val)
|
||||
{
|
||||
CompoundAffixFlag *newValue;
|
||||
char sbuf[BUFSIZ];
|
||||
char *sflag;
|
||||
int clen;
|
||||
CompoundAffixFlag *newValue;
|
||||
char sbuf[BUFSIZ];
|
||||
char *sflag;
|
||||
int clen;
|
||||
|
||||
while (*s && t_isspace(s))
|
||||
s += pg_mblen(s);
|
||||
@ -1088,7 +1089,7 @@ addCompoundAffixFlagValue(IspellDict *Conf, char *s, uint32 val)
|
||||
Conf->mCompoundAffixFlag *= 2;
|
||||
Conf->CompoundAffixFlags = (CompoundAffixFlag *)
|
||||
repalloc((void *) Conf->CompoundAffixFlags,
|
||||
Conf->mCompoundAffixFlag * sizeof(CompoundAffixFlag));
|
||||
Conf->mCompoundAffixFlag * sizeof(CompoundAffixFlag));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1113,11 +1114,11 @@ addCompoundAffixFlagValue(IspellDict *Conf, char *s, uint32 val)
|
||||
static int
|
||||
getCompoundAffixFlagValue(IspellDict *Conf, char *s)
|
||||
{
|
||||
uint32 flag = 0;
|
||||
uint32 flag = 0;
|
||||
CompoundAffixFlag *found,
|
||||
key;
|
||||
char sflag[BUFSIZ];
|
||||
char *flagcur;
|
||||
key;
|
||||
char sflag[BUFSIZ];
|
||||
char *flagcur;
|
||||
|
||||
if (Conf->nCompoundAffixFlag == 0)
|
||||
return 0;
|
||||
@ -1151,8 +1152,8 @@ getAffixFlagSet(IspellDict *Conf, char *s)
|
||||
{
|
||||
if (Conf->useFlagAliases && *s != '\0')
|
||||
{
|
||||
int curaffix;
|
||||
char *end;
|
||||
int curaffix;
|
||||
char *end;
|
||||
|
||||
curaffix = strtol(s, &end, 10);
|
||||
if (s == end || errno == ERANGE)
|
||||
@ -1161,9 +1162,10 @@ getAffixFlagSet(IspellDict *Conf, char *s)
|
||||
errmsg("invalid affix alias \"%s\"", s)));
|
||||
|
||||
if (curaffix > 0 && curaffix <= Conf->nAffixData)
|
||||
|
||||
/*
|
||||
* Do not subtract 1 from curaffix
|
||||
* because empty string was added in NIImportOOAffixes
|
||||
* Do not subtract 1 from curaffix because empty string was added
|
||||
* in NIImportOOAffixes
|
||||
*/
|
||||
return Conf->AffixData[curaffix];
|
||||
else
|
||||
@ -1260,9 +1262,9 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename)
|
||||
Conf->flagMode = FM_NUM;
|
||||
else if (STRNCMP(s, "default") != 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("Ispell dictionary supports only default, "
|
||||
"long and num flag value")));
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("Ispell dictionary supports only default, "
|
||||
"long and num flag value")));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1303,8 +1305,8 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename)
|
||||
naffix = atoi(sflag);
|
||||
if (naffix == 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("invalid number of flag vector aliases")));
|
||||
(errcode(ERRCODE_CONFIG_FILE_ERROR),
|
||||
errmsg("invalid number of flag vector aliases")));
|
||||
|
||||
/* Also reserve place for empty flag set */
|
||||
naffix++;
|
||||
@ -1596,7 +1598,8 @@ MergeAffix(IspellDict *Conf, int a1, int a2)
|
||||
static uint32
|
||||
makeCompoundFlags(IspellDict *Conf, int affix)
|
||||
{
|
||||
char *str = Conf->AffixData[affix];
|
||||
char *str = Conf->AffixData[affix];
|
||||
|
||||
return (getCompoundAffixFlagValue(Conf, str) & FF_COMPOUNDFLAGMASK);
|
||||
}
|
||||
|
||||
@ -1700,14 +1703,14 @@ NISortDictionary(IspellDict *Conf)
|
||||
/* compress affixes */
|
||||
|
||||
/*
|
||||
* If we use flag aliases then we need to use Conf->AffixData filled
|
||||
* in the NIImportOOAffixes().
|
||||
* If we use flag aliases then we need to use Conf->AffixData filled in
|
||||
* the NIImportOOAffixes().
|
||||
*/
|
||||
if (Conf->useFlagAliases)
|
||||
{
|
||||
for (i = 0; i < Conf->nspell; i++)
|
||||
{
|
||||
char *end;
|
||||
char *end;
|
||||
|
||||
if (*Conf->Spell[i]->p.flag != '\0')
|
||||
{
|
||||
@ -1762,7 +1765,7 @@ NISortDictionary(IspellDict *Conf)
|
||||
curaffix++;
|
||||
Assert(curaffix < naffix);
|
||||
Conf->AffixData[curaffix] = cpstrdup(Conf,
|
||||
Conf->Spell[i]->p.flag);
|
||||
Conf->Spell[i]->p.flag);
|
||||
}
|
||||
|
||||
Conf->Spell[i]->p.d.affix = curaffix;
|
||||
@ -2219,8 +2222,8 @@ NormalizeSubWord(IspellDict *Conf, char *word, int flag)
|
||||
if (CheckAffix(newword, swrdlen, prefix->aff[j], flag, pnewword, &baselen))
|
||||
{
|
||||
/* prefix success */
|
||||
char *ff = (prefix->aff[j]->flagflags & suffix->aff[i]->flagflags & FF_CROSSPRODUCT) ?
|
||||
VoidString : prefix->aff[j]->flag;
|
||||
char *ff = (prefix->aff[j]->flagflags & suffix->aff[i]->flagflags & FF_CROSSPRODUCT) ?
|
||||
VoidString : prefix->aff[j]->flag;
|
||||
|
||||
if (FindWord(Conf, pnewword, ff, flag))
|
||||
cur += addToResult(forms, cur, pnewword);
|
||||
|
@ -20,8 +20,8 @@
|
||||
|
||||
typedef struct MorphOpaque
|
||||
{
|
||||
Oid cfg_id;
|
||||
int qoperator; /* query operator */
|
||||
Oid cfg_id;
|
||||
int qoperator; /* query operator */
|
||||
} MorphOpaque;
|
||||
|
||||
|
||||
@ -274,14 +274,14 @@ to_tsvector(PG_FUNCTION_ARGS)
|
||||
static void
|
||||
pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval, int16 weight, bool prefix)
|
||||
{
|
||||
int32 count = 0;
|
||||
ParsedText prs;
|
||||
uint32 variant,
|
||||
pos = 0,
|
||||
cntvar = 0,
|
||||
cntpos = 0,
|
||||
cnt = 0;
|
||||
MorphOpaque *data = (MorphOpaque *) DatumGetPointer(opaque);
|
||||
int32 count = 0;
|
||||
ParsedText prs;
|
||||
uint32 variant,
|
||||
pos = 0,
|
||||
cntvar = 0,
|
||||
cntpos = 0,
|
||||
cnt = 0;
|
||||
MorphOpaque *data = (MorphOpaque *) DatumGetPointer(opaque);
|
||||
|
||||
prs.lenwords = 4;
|
||||
prs.curwords = 0;
|
||||
@ -295,8 +295,8 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval,
|
||||
while (count < prs.curwords)
|
||||
{
|
||||
/*
|
||||
* Were any stop words removed? If so, fill empty positions
|
||||
* with placeholders linked by an appropriate operator.
|
||||
* Were any stop words removed? If so, fill empty positions with
|
||||
* placeholders linked by an appropriate operator.
|
||||
*/
|
||||
if (pos > 0 && pos + 1 < prs.words[count].pos.pos)
|
||||
{
|
||||
@ -330,7 +330,7 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval,
|
||||
prs.words[count].word,
|
||||
prs.words[count].len,
|
||||
weight,
|
||||
((prs.words[count].flags & TSL_PREFIX) || prefix));
|
||||
((prs.words[count].flags & TSL_PREFIX) || prefix));
|
||||
pfree(prs.words[count].word);
|
||||
if (cnt)
|
||||
pushOperator(state, OP_AND, 0);
|
||||
@ -362,9 +362,9 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval,
|
||||
Datum
|
||||
to_tsquery_byid(PG_FUNCTION_ARGS)
|
||||
{
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
|
||||
data.cfg_id = PG_GETARG_OID(0);
|
||||
data.qoperator = OP_AND;
|
||||
@ -392,9 +392,9 @@ to_tsquery(PG_FUNCTION_ARGS)
|
||||
Datum
|
||||
plainto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||
{
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
|
||||
data.cfg_id = PG_GETARG_OID(0);
|
||||
data.qoperator = OP_AND;
|
||||
@ -423,9 +423,9 @@ plainto_tsquery(PG_FUNCTION_ARGS)
|
||||
Datum
|
||||
phraseto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||
{
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
text *in = PG_GETARG_TEXT_P(1);
|
||||
TSQuery query;
|
||||
MorphOpaque data;
|
||||
|
||||
data.cfg_id = PG_GETARG_OID(0);
|
||||
data.qoperator = OP_PHRASE;
|
||||
|
@ -2033,7 +2033,7 @@ static bool
|
||||
checkcondition_HL(void *opaque, QueryOperand *val, ExecPhraseData *data)
|
||||
{
|
||||
int i;
|
||||
hlCheck *checkval = (hlCheck *) opaque;
|
||||
hlCheck *checkval = (hlCheck *) opaque;
|
||||
|
||||
for (i = 0; i < checkval->len; i++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user