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 } } }