aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-02-02 19:20:54 +0000
committerBruce Momjian <bruce@momjian.us>1999-02-02 19:20:54 +0000
commiteb3415538ec46f64ef66fb96203e7b2542b2111e (patch)
tree3b82863732496f2defb041a9576efece95bf0d0e /src
parent2163d9e33eaa66f493f93b2aa291c20675aa1e2d (diff)
downloadpostgresql-eb3415538ec46f64ef66fb96203e7b2542b2111e.tar.gz
postgresql-eb3415538ec46f64ef66fb96203e7b2542b2111e.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 374206304a7..75ebaf86286 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.50 1999/02/02 03:44:42 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.51 1999/02/02 19:20:54 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -5257,11 +5257,17 @@ static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr)
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
}
}
}
@@ -5304,11 +5310,17 @@ static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr)
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
}
}
}