diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/tsearch/dicts/hunspell_sample_long.affix | 25 | ||||
-rw-r--r-- | src/backend/tsearch/dicts/hunspell_sample_long.dict | 3 | ||||
-rw-r--r-- | src/backend/tsearch/dicts/hunspell_sample_num.affix | 8 | ||||
-rw-r--r-- | src/backend/tsearch/dicts/hunspell_sample_num.dict | 3 | ||||
-rw-r--r-- | src/backend/tsearch/spell.c | 9 |
5 files changed, 42 insertions, 6 deletions
diff --git a/src/backend/tsearch/dicts/hunspell_sample_long.affix b/src/backend/tsearch/dicts/hunspell_sample_long.affix index fc0d485a4d9..d5df7a31f34 100644 --- a/src/backend/tsearch/dicts/hunspell_sample_long.affix +++ b/src/backend/tsearch/dicts/hunspell_sample_long.affix @@ -1,15 +1,23 @@ FLAG long -AF 7 +AF 11 AF cZ #1 AF cL #2 AF sGsJpUsS #3 AF sSpB #4 AF cZsS #5 -AF sScZs\ #6 +AF sScZs\sE #6 AF sA #7 +AF CaCp #8 +AF CcCp #9 +AF sD #10 +AF sB #11 COMPOUNDFLAG cZ +COMPOUNDBEGIN Ca +COMPOUNDMIDDLE Cb +COMPOUNDEND Cc +COMPOUNDPERMITFLAG Cp ONLYINCOMPOUND cL PFX pB Y 1 @@ -28,7 +36,18 @@ SFX sS Y 1 SFX sS 0 S [^SXZHY] SFX sA Y 1 -SFX sA Y IES [^AEIOU]Y +SFX sA Y IES [^AEIOU]Y{1} +SFX sB Y 1 +SFX sB 0 ED K{1} + +# Affixes with compound flags SFX s\ N 1 SFX s\ 0 Y/2 [^Y] + +SFX sE N 1 +SFX sE 0 S/2 [^S] + +# Check duplicate affixes +SFX sD N 1 +SFX sD 0 S/2 [^S] diff --git a/src/backend/tsearch/dicts/hunspell_sample_long.dict b/src/backend/tsearch/dicts/hunspell_sample_long.dict index 96ecbf007af..5f60a07ce2a 100644 --- a/src/backend/tsearch/dicts/hunspell_sample_long.dict +++ b/src/backend/tsearch/dicts/hunspell_sample_long.dict @@ -1,4 +1,5 @@ book/3 +book/11 booking/4 footballklubber foot/5 @@ -6,3 +7,5 @@ football/1 ball/6 klubber/1 sky/7 +ex-/8 +machina/9
\ No newline at end of file diff --git a/src/backend/tsearch/dicts/hunspell_sample_num.affix b/src/backend/tsearch/dicts/hunspell_sample_num.affix index 5f2f8e9bca7..0c4766a1918 100644 --- a/src/backend/tsearch/dicts/hunspell_sample_num.affix +++ b/src/backend/tsearch/dicts/hunspell_sample_num.affix @@ -18,6 +18,14 @@ SFX 302 0 ING [^E] SFX 303 Y 1 SFX 303 0 S [^SXZHY] +# Remove ED suffix from lexeme for base words with K ending +SFX 306 Y 1 +SFX 306 0 ED K{1} + +# Just add Y to lexeme for base words with Y ending +SFX 307 Y 1 +SFX 307 Y 0 Y* + SFX 304 Y 1 SFX 304 Y IES [^AEIOU]Y diff --git a/src/backend/tsearch/dicts/hunspell_sample_num.dict b/src/backend/tsearch/dicts/hunspell_sample_num.dict index 9db29dc780a..fbc321d5b10 100644 --- a/src/backend/tsearch/dicts/hunspell_sample_num.dict +++ b/src/backend/tsearch/dicts/hunspell_sample_num.dict @@ -1,8 +1,9 @@ book/302,301,202,303 +book/306 booking/303,201 footballklubber foot/101,303 football/101 ball/303,101,305 klubber/101 -sky/304 +sky/304,307 diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c index 65d99da292a..6f5b6354134 100644 --- a/src/backend/tsearch/spell.c +++ b/src/backend/tsearch/spell.c @@ -1303,7 +1303,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) { Conf->useFlagAliases = true; naffix = atoi(sflag); - if (naffix == 0) + if (naffix <= 0) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid number of flag vector aliases"))); @@ -1318,7 +1318,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) Conf->AffixData[curaffix] = VoidString; curaffix++; } - /* Other lines is aliases */ + /* Other lines are aliases */ else { if (curaffix < naffix) @@ -1326,6 +1326,11 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) Conf->AffixData[curaffix] = cpstrdup(Conf, sflag); curaffix++; } + else + ereport(ERROR, + (errcode(ERRCODE_CONFIG_FILE_ERROR), + errmsg("number of aliases exceeds specified number %d", + naffix - 1))); } goto nextline; } |