[ 
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)

Reply via email to