IBM Support

IT18101: AN SQL STATEMENT IN A PARTITIONED DATABASE ENV CONTAINING THE ROW_NUMBER() OVER() OPERATION MIGHT PRODUCE INCONSISTENT RESULTS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An sql statement in a partitioned database environment
    containing the ROW_NUMBER() OVER() operation
    might produce inconsistent results because the ROW_NUMBER()
    operation is processed in parallel on the individual partitions
    on the broadcasted result set.
    
    A example statement :
    
    select T1.BIGINT_ID, count(*) FROM
    ( SELECT
        VARCHAR_KEY,
        ROW_NUMBER() OVER() AS BIGINT_ID
      FROM
        (
          SELECT DISTINCT
            VARCHAR_KEY
          FROM
            MYTABLE
        ) ) T1, MYTABLE T2
    where T1.VARCHAR_KEY = T2.VARCHAR_KEY
    group by T1.BIGINT_ID having count(*) > 1
    
    This will have an execution plan showing  :
    
    
                      11141
                     BTQ
                     (  11)
                       |
                     1856.83
                     MDTQ
                     (  12)
    
    Where the resultset is pushed out to all partitions via the BTQ
    operation and where the row_number() operator is applied.
    A simplified example data set :
    
    TQ11  receives all matching rows and it will be assigning the
    rank to all rows as it receives them.
    say TQ11 on partition 0 receives row a b c d,  it will assign
    these row_number() / rank value :
    
    a rownum 1
    b rownum 2
    c rownum 3
    d rownum 4
    
    but partition 1 might receive the rows in a different order : c
    b a d
    so on partition 1 the assigned rownumbers are different
    
    a rownum 3
    b rownum 2
    c rownum 1
    d rownum 4
    
    hence when the data is then rejoined with the base table, the
    result might be
    a 1
    b 2
    c 1
    d 4
    
    with incorrect duplicate values for the rownumber() column.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ALL                                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 11.1 Mod 2 Fix Pack 2 or higher               *
    ****************************************************************
    

Problem conclusion

  • First fixed in DB2 11.1 Mod 2 Fix Pack 2
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT18101

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-11-23

  • Closed date

    2017-06-23

  • Last modified date

    2017-06-23

  • APAR is sysrouted FROM one or more of the following:

    IT17851

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
14 December 2020