File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -846,6 +846,18 @@ bpcharcmp(PG_FUNCTION_ARGS)
846846 len2 ;
847847 int cmp ;
848848
849+ /*
850+ * Trimming trailing spaces off of both strings can cause a string
851+ * with a character less than a space to compare greater than a
852+ * space-extended string, e.g. this returns false:
853+ * SELECT E'ab\n'::CHAR(10) < E'ab '::CHAR(10);
854+ * even though '\n' is less than the space if CHAR(10) was
855+ * space-extended. The correct solution would be to trim only
856+ * the longer string to be the same length of the shorter, if
857+ * possible, then do the comparison. However, changing this
858+ * might break existing indexes, breaking binary upgrades.
859+ * For details, see http://www.postgresql.org/message-id/CAK+WP1xdmyswEehMuetNztM4H199Z1w9KWRHVMKzyyFM+hV=zA@mail.gmail.com
860+ */
849861 len1 = bcTruelen (arg1 );
850862 len2 = bcTruelen (arg2 );
851863
You can’t perform that action at this time.
0 commit comments