[
https://issues.apache.org/jira/browse/CALCITE-6005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde reassigned CALCITE-6005:
------------------------------------
Assignee: Julian Hyde
> POLYGON string representation has changed on Apple silicon
> ----------------------------------------------------------
>
> Key: CALCITE-6005
> URL: https://issues.apache.org/jira/browse/CALCITE-6005
> Project: Calcite
> Issue Type: Improvement
> Reporter: Julian Hyde
> Assignee: Julian Hyde
> Priority: Major
> Fix For: 1.36.0
>
>
> I am getting a test error when I run RelOptRulesTest on JDK 19 and Apple
> silicon (Apple M1 chip, arm64 architecture).
> {noformat}
> $ diff -u core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
> core/build/diffrepo/test/org/apache/calcite/test/RelOptRulesTest_actual.xml
> ---
> /Users/julianhyde/dev/calcite.1/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
> 2023-09-13 11:52:04
> +++
> /Users/julianhyde/dev/calcite.1/core/build/diffrepo/test/org/apache/calcite/test/RelOptRulesTest_actual.xml
> 2023-09-13 12:08:52
> @@ -14044,7 +14044,7 @@
> <Resource name="planAfter">
> <![CDATA[
> LogicalProject(NAME=[$0], LATITUDE=[$1], LONGITUDE=[$2], CUISINE=[$3],
> HILBERT=[$4])
> - LogicalFilter(condition=[AND(SEARCH($4, Sarg[[33033..33035],
> [33050..33053], [33055..33080], [33092..33100], [33112..33156],
> [33164..33176], [33236..33244], [33252..33254], [36456..36464],
> [36496..36520]]), ST_CONTAINS(POLYGON ((16 20, 15.884711682419383
> 18.829458067903232, 15.54327719506772 17.703899405809462, 14.988817673815271
> 16.666578601882385, 14.242640687119286 15.757359312880716, 13.333421398117615
> 15.011182326184729, 12.29610059419054 14.45672280493228, 11.17054193209677
> 14.115288317580617, 10 14, 8.82945806790323 14.115288317580617,
> 7.703899405809461 14.45672280493228, 6.666578601882389 15.011182326184727,
> 5.757359312880715 15.757359312880714, 5.011182326184728 16.666578601882385,
> 4.45672280493228 17.70389940580946, 4.115288317580617 18.82945806790323, 4
> 20, 4.115288317580617 21.17054193209677, 4.456722804932279
> 22.296100594190538, 5.011182326184727 23.33342139811761, 5.757359312880714
> 24.242640687119284, 6.666578601882387 24.98881767381527, 7.703899405809458
> 25.54327719506772, 8.829458067903229 25.884711682419383, 9.999999999999998
> 26, 11.17054193209677 25.884711682419383, 12.29610059419054
> 25.54327719506772, 13.333421398117611 24.988817673815273, 14.242640687119284
> 24.242640687119284, 14.988817673815271 23.333421398117615, 15.54327719506772
> 22.29610059419054, 15.884711682419383 21.17054193209677, 16 20)):GEOMETRY,
> ST_POINT($2, $1)))])
> + LogicalFilter(condition=[AND(SEARCH($4, Sarg[[33033..33035],
> [33050..33053], [33055..33080], [33092..33100], [33112..33156],
> [33164..33176], [33236..33244], [33252..33254], [36456..36464],
> [36496..36520]]), ST_CONTAINS(POLYGON ((16 20, 15.884711682419383
> 18.829458067903232, 15.54327719506772 17.703899405809462, 14.988817673815271
> 16.666578601882385, 14.242640687119286 15.757359312880716, 13.333421398117615
> 15.011182326184729, 12.29610059419054 14.45672280493228, 11.17054193209677
> 14.115288317580617, 10 14, 8.82945806790323 14.115288317580617,
> 7.703899405809461 14.45672280493228, 6.666578601882389 15.011182326184727,
> 5.757359312880715 15.757359312880714, 5.011182326184728 16.666578601882385,
> 4.45672280493228 17.70389940580946, 4.115288317580617 18.82945806790323, 4
> 20, 4.115288317580617 21.17054193209677, 4.45672280493228 22.296100594190538,
> 5.011182326184727 23.33342139811761, 5.757359312880714 24.242640687119284,
> 6.666578601882387 24.98881767381527, 7.703899405809458 25.54327719506772,
> 8.829458067903229 25.884711682419383, 9.999999999999998 26, 11.17054193209677
> 25.884711682419383, 12.29610059419054 25.54327719506772, 13.333421398117611
> 24.988817673815273, 14.242640687119284 24.242640687119284, 14.988817673815271
> 23.333421398117615, 15.54327719506772 22.29610059419054, 15.884711682419383
> 21.17054193209677, 16 20)):GEOMETRY, ST_POINT($2, $1)))])
> LogicalTableScan(table=[[CATALOG, GEO, RESTAURANTS]])
> ]]>
> </Resource>
> @@ -14173,7 +14173,7 @@
> </Resource>
> <Resource name="planAfter">
> <![CDATA[
> -LogicalProject(B=[CAST(POLYGON ((1 0, 0.9238795325112867
> -0.3826834323650898, 0.7071067811865476 -0.7071067811865475,
> 0.3826834323650898 -0.9238795325112867, 0.0000000000000001 -1,
> -0.3826834323650897 -0.9238795325112867, -0.7071067811865475
> -0.7071067811865476, -0.9238795325112867 -0.3826834323650899, -1
> -0.0000000000000001, -0.9238795325112868 0.3826834323650897,
> -0.7071067811865477 0.7071067811865475, -0.3826834323650903
> 0.9238795325112865, -0.0000000000000002 1, 0.38268343236509
> 0.9238795325112866, 0.7071067811865474 0.7071067811865477, 0.9238795325112865
> 0.3826834323650904, 1 0)):GEOMETRY):GEOMETRY])
> +LogicalProject(B=[CAST(POLYGON ((1 0, 0.9238795325112867
> -0.3826834323650898, 0.7071067811865476 -0.7071067811865475,
> 0.3826834323650898 -0.9238795325112867, 0.0000000000000001 -1,
> -0.3826834323650897 -0.9238795325112867, -0.7071067811865475
> -0.7071067811865476, -0.9238795325112867 -0.3826834323650899, -1
> -0.0000000000000001, -0.9238795325112867 0.3826834323650896,
> -0.7071067811865477 0.7071067811865475, -0.3826834323650903
> 0.9238795325112865, -0.0000000000000002 1, 0.38268343236509
> 0.9238795325112866, 0.7071067811865474 0.7071067811865477, 0.9238795325112865
> 0.3826834323650904, 1 0)):GEOMETRY):GEOMETRY])
> LogicalTableScan(table=[[CATALOG, GEO, RESTAURANTS]])
> ]]>
> </Resource>
> {noformat}
> It's a little hard to see, but the number "4.45672280493228" has changed to
> "4.456722804932279". My hypothesis is that this is because
> [JDK-4511638|https://bugs.openjdk.org/browse/JDK-4511638] has been fixed in
> JDK 19.
> I believe that the new value is more "correct". However, we will still need
> to run the test on old JDKs. So we need to find a way to run the new
> double-to-string algorithm on older JDKs, or mask out the result in tests.
> The bug seems to require both Apple silicon (ARM) and JDK 19. (It doesn't
> happen on Intel JDK 19 or ARM JDK 11.) I am a little confused that it only
> occurs on Apple silicon.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)