Skip to content

[TPC-H] query 14 produces different results after conversion to/from Substrait #955

Description

@bestbeforetoday

Using Isthmus to convert reference TPC-H SQL to Substrait and then back to SQL, the generated SQL produces different query results to the reference SQL (at least in PostgreSQL).

PostgreSqlIntegrationTest > testTpcH(int) > [14] 14 FAILED
    org.opentest4j.AssertionFailedError: Reference and generated SQL produce 2 different results.

    Reference SQL:
    select
      100.00 * sum(case
        when "P"."P_TYPE" like 'PROMO%'
          then "L"."L_EXTENDEDPRICE" * (1 - "L"."L_DISCOUNT")
        else 0
      end) / sum("L"."L_EXTENDEDPRICE" * (1 - "L"."L_DISCOUNT")) as "PROMO_REVENUE"
    from
      "LINEITEM" "L",
      "PART" "P"
    where
      "L"."L_PARTKEY" = "P"."P_PARTKEY"
      and "L"."L_SHIPDATE" >= date '1994-08-01'
      and "L"."L_SHIPDATE" < date '1994-08-01' + interval '1 month'

    Generated SQL:
    SELECT 100.00 * SUM(CAST(CASE WHEN "PART"."P_TYPE" LIKE 'PROMO%' THEN "LINEITEM"."L_EXTENDEDPRICE" * (1 - "LINEITEM"."L_DISCOUNT") ELSE 0 END AS DECIMAL(19, 0))) / SUM("LINEITEM"."L_EXTENDEDPRICE" * (1 - "LINEITEM"."L_DISCOUNT")) AS "PROMO_REVENUE"
    FROM "LINEITEM",
    "PART"
    WHERE "LINEITEM"."L_PARTKEY" = "PART"."P_PARTKEY" AND "LINEITEM"."L_SHIPDATE" >= DATE '1994-08-01' AND "LINEITEM"."L_SHIPDATE" < (DATE '1994-08-01' + INTERVAL '0-1' YEAR TO MONTH)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions