diff --git a/contrib/tsearch2/dict.c b/contrib/tsearch2/dict.c index 9ceb78ffb83..c55e3a28731 100644 --- a/contrib/tsearch2/dict.c +++ b/contrib/tsearch2/dict.c @@ -88,7 +88,9 @@ reset_dict(void) static int comparedict(const void *a, const void *b) { - return ((DictInfo *) a)->dict_id - ((DictInfo *) b)->dict_id; + if ( ((DictInfo *) a)->dict_id == ((DictInfo *) b)->dict_id ) + return 0; + return ( ((DictInfo *) a)->dict_id < ((DictInfo *) b)->dict_id ) ? -1 : 1; } DictInfo * diff --git a/contrib/tsearch2/rank.c b/contrib/tsearch2/rank.c index 78f05f45676..c6cbd1c9591 100644 --- a/contrib/tsearch2/rank.c +++ b/contrib/tsearch2/rank.c @@ -386,7 +386,7 @@ static int compareDocR(const void *a, const void *b) { if (((DocRepresentation *) a)->pos == ((DocRepresentation *) b)->pos) - return 1; + return 0; return (((DocRepresentation *) a)->pos > ((DocRepresentation *) b)->pos) ? 1 : -1; } @@ -652,7 +652,7 @@ static int compareDocWord(const void *a, const void *b) { if (((DocWord *) a)->pos == ((DocWord *) b)->pos) - return 1; + return 0; return (((DocWord *) a)->pos > ((DocWord *) b)->pos) ? 1 : -1; } diff --git a/contrib/tsearch2/ts_cfg.c b/contrib/tsearch2/ts_cfg.c index 0898b919240..c1f5178ec05 100644 --- a/contrib/tsearch2/ts_cfg.c +++ b/contrib/tsearch2/ts_cfg.c @@ -181,7 +181,9 @@ reset_cfg(void) static int comparecfg(const void *a, const void *b) { - return ((TSCfgInfo *) a)->id - ((TSCfgInfo *) b)->id; + if ( ((TSCfgInfo *) a)->id == ((TSCfgInfo *) b)->id ) + return 0; + return ( ((TSCfgInfo *) a)->id < ((TSCfgInfo *) b)->id ) ? -1 : 1; } TSCfgInfo * diff --git a/contrib/tsearch2/tsvector.c b/contrib/tsearch2/tsvector.c index 5670c0cf5fc..f3afc9f2cd1 100644 --- a/contrib/tsearch2/tsvector.c +++ b/contrib/tsearch2/tsvector.c @@ -51,7 +51,7 @@ static int comparePos(const void *a, const void *b) { if (((WordEntryPos *) a)->pos == ((WordEntryPos *) b)->pos) - return 1; + return 0; return (((WordEntryPos *) a)->pos > ((WordEntryPos *) b)->pos) ? 1 : -1; } diff --git a/contrib/tsearch2/wparser.c b/contrib/tsearch2/wparser.c index b7e45e51885..7945357531e 100644 --- a/contrib/tsearch2/wparser.c +++ b/contrib/tsearch2/wparser.c @@ -87,7 +87,9 @@ reset_prs(void) static int compareprs(const void *a, const void *b) { - return ((WParserInfo *) a)->prs_id - ((WParserInfo *) b)->prs_id; + if ( ((WParserInfo *) a)->prs_id == ((WParserInfo *) b)->prs_id ) + return 0; + return ( ((WParserInfo *) a)->prs_id < ((WParserInfo *) b)->prs_id ) ? -1 : 1; } WParserInfo *