Applied.
[Charset iso-8859-1 unsupported, filtering to ASCII...]
>
> OK I found it,
> I search in the planner for the '\xFF' appending.
> Finally I found in MakeIndexable() in gram.y
>
> Attach a patch which removes the "<=" test in USE_LOCALE,
> might make some queries a bit slower for us "locale-heads",
> BUT correct result is more important.
>
> regards,
> --
> -----------------
> G_ran Thyni
> This is Penguin Country. On a quiet night you can hear Windows NT
> reboot!
> diff -c pgsql/src/backend/parser/gram.y.orig pgsql/src/backend/parser/gram.y
> *** pgsql/src/backend/parser/gram.y.orig Tue Jan 26 07:02:32 1999
> --- pgsql/src/backend/parser/gram.y Mon Feb 1 21:16:56 1999
> ***************
> *** 5249,5259 ****
> --- 5249,5265 ----
> least->val.val.str = match_least;
> most->val.type = T_String;
> most->val.val.str = match_most;
> + #ifdef USE_LOCALE
> + result = makeA_Expr(AND, NULL,
> + makeA_Expr(OP, "~", lexpr, rexpr),
> + makeA_Expr(OP, ">=", lexpr, (Node *)least));
> + #else
> result = makeA_Expr(AND, NULL,
> makeA_Expr(OP, "~", lexpr, rexpr),
> makeA_Expr(AND, NULL,
> makeA_Expr(OP, ">=", lexpr, (Node *)least),
> makeA_Expr(OP, "<=", lexpr, (Node *)most)));
> + #endif
> }
> }
> }
> ***************
> *** 5296,5306 ****
> --- 5302,5318 ----
> least->val.val.str = match_least;
> most->val.type = T_String;
> most->val.val.str = match_most;
> + #ifdef USE_LOCALE
> + result = makeA_Expr(AND, NULL,
> + makeA_Expr(OP, "~~", lexpr, rexpr),
> + makeA_Expr(OP, ">=", lexpr, (Node *)least));
> + #else
> result = makeA_Expr(AND, NULL,
> makeA_Expr(OP, "~~", lexpr, rexpr),
> makeA_Expr(AND, NULL,
> makeA_Expr(OP, ">=", lexpr, (Node *)least),
> makeA_Expr(OP, "<=", lexpr, (Node *)most)));
> + #endif
> }
> }
> }
>
>
>
>
>
>
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026