Fix locale-dependent ordering in cypher_merge tests - #2558
Open
crdv7 wants to merge 1 commit into
Open
Conversation
The issue_1446 regression queries sort agtype labels using the database's default collation, so their row order varies across database collations. For example, C and en_US.utf8 order the mixed-case labels differently. Move the incidental ordering to the enclosing SQL queries and use the C collation so the expected output is independent of the database locale.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
issue_1446regression test orderslabels(n)inside Cypher. Since theresult is an agtype value, its string components are compared using the
database's default collation. This makes the output order locale-dependent.
For example, the unmodified test returns the mixed-case labels in the
following orders:
The entities and counts are correct in both cases, but
pg_regressreports afailure because the row order differs from the expected output.
Move the incidental ordering out of Cypher and sort the displayed label text
with an explicit
Ccollation. Apply the same deterministic ordering to bothissue_1446verification queries. The test continues to verify the sameMERGE results without depending on the database locale.
This is the same class of regression-test portability issue addressed by
#2439.