IITDBGroup / gprom

GProM is a middleware that adds support for provenance to database backends.
http://www.cs.iit.edu/%7edbgroup/research/gprom.php
Apache License 2.0
8 stars 5 forks source link

Relational algebra expressions generated for summarization contain inconsistencies that fail model checking #50

Open lordpretzel opened 6 years ago

lordpretzel commented 6 years ago

to reproduce run the following with model checking activated (--aggressive-model-checking)

Q(X) :- R(X,X). ANS : Q.  WHY(Q(1)) FORMAT REDUCED_GP. TOP 3 SUMMARIZED BY LCA WITH SAMPLE(3).

There is a part that is correct during:

INFO(summarize_main.c:1759) candidate patterns for summarization as overview:

but the parent child relationship between the selection on rownumber and join is broken after:

INFO(summarize_main.c:1089) compute fraction for summarization as overview:
    Projection [PROV_A01 A1 HAS_PROV ] [PROJECTION] (PROV_A01 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x105e73a08](0x105e741bd )
                Join [((PROV_A0 = PROV_A01) OR (PROV_A01 IS NULL))] [JOIN] (PROV_A0 A1 HAS_PROV PROV_A01 )(DT_INT DT_BOOL DT_INT DT_INT ) [0x105e73028](0x105e73a08 )
                  Selection [(ROWNUM <= 3)] [SELECT] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x105e7110f](0x105e75154 )
                    OrderOperator('DBMS_RANDOM.RANDOM' ASC NULLS LAST) [ORDER] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x105e70e7e](0x105e7110f )
lordpretzel commented 6 years ago

another problem are attribute references:

INFO(translator_dl.c:97) translated DL model before casting:

Union [SET] (A0 A1 )(DT_STRING DT_STRING ) [0x106fd1cbf]()
  Union [SET] (A0 A1 )(DT_STRING DT_STRING ) [0x106f96dd1](0x106fd1cbf )
    Union [SET] (A0 A1 )(DT_STRING DT_STRING ) [0x106f96c21](0x106f96dd1 )
      DuplicateRemoval [DUPREM] (A0 A1 )(DT_STRING DT_STRING ) [0x106f75577](0x106f96c21 )
        Projection [(((('TUPLE_' || 'Q_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ')') (((('RULE_' || '1_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ')') ] [PROJECTION] (A0 A1 )(DT_STRING DT_STRING ) [0x106f74e0d](0x106f75577 )
          Projection [A0 A1 NumInProv Recall ] [PROJECTION] (C_0_0 C_0_1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7363e](0x106f74e0d )
            Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f73291](0x106f7363e )
              @0
      DuplicateRemoval [DUPREM] (A0 A1 )(DT_STRING DT_STRING ) [0x106f7891e](0x106f96c21 )
        Projection [(((('RULE_' || '1_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ')') (((((('GOAL_' || '1_0_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ',') || CAST (2 AS VARCHAR2(2000))) || ')') ] [PROJECTION] (A0 A1 )(DT_STRING DT_STRING ) [0x106f78061](0x106f7891e )
          Projection [A0 A1 NumInProv Recall ] [PROJECTION] (C_0_0 C_0_1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7681c](0x106f78061 )
            Selection [((A0 = CAST (2 AS VARCHAR2(2000))) AND (A1 = CAST (FALSE AS VARCHAR2(2000))))] [SELECT] (A0 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7646f](0x106f7681c )
              @0
    DuplicateRemoval [DUPREM] (A0 A1 )(DT_STRING DT_STRING ) [0x106f7bbd6](0x106f96dd1 )
      Projection [(((((('GOAL_' || '1_0_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ',') || CAST (2 AS VARCHAR2(2000))) || ')') (((((('TUPLE_' || 'R_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ',') || CAST (2 AS VARCHAR2(2000))) || ')') ] [PROJECTION] (A0 A1 )(DT_STRING DT_STRING ) [0x106f7b1c6](0x106f7bbd6 )
        Projection [A0 A1 NumInProv Recall ] [PROJECTION] (C_0_0 C_0_1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7990b](0x106f7b1c6 )
          Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7955e](0x106f7990b )
            @0
  DuplicateRemoval [DUPREM] (A0 A1 )(DT_STRING DT_STRING ) [0x106fbb01d](0x106fd1cbf )
    Projection [(((('RULE_' || '1_LOST') || '(') || CAST (2 AS VARCHAR2(2000))) || ')') ('NUMPROVRECALL_WON(' || CAST (NumInProv AS VARCHAR2(2000)) || ',' || CAST (Recall AS VARCHAR2(2000)) || ')') ] [PROJECTION] (A0 A1 )(DT_STRING DT_STRING ) [0x106fc65f9](0x106fbb01d )
      Projection [A0 A1 NumInProv Recall ] [PROJECTION] (C_0_0 C_0_1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7681c](0x106f78061 )
        Selection [((A0 = CAST (2 AS VARCHAR2(2000))) AND (A1 = CAST (FALSE AS VARCHAR2(2000))))] [SELECT] (A0 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f7646f](0x106f7681c )
          @0

-----------------------
@0
Projection [(CASE  WHEN (TO_CHAR(PROV_A01) IS NULL) THEN 'C_0_0' ELSE TO_CHAR(PROV_A01) END) (CASE  WHEN (TO_CHAR(A1) IS NULL) THEN 'C_0_1' ELSE TO_CHAR(A1) END) NumInProv Recall ] [PROJECTION] (PROV_A01 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106fba4d0](0x106f73291 0x106f7646f 0x106f7955e )
  Projection [TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure ] [PROJECTION] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb9a0f](0x106fba4d0 )
    Selection [(ROWNUM <= 3)] [SELECT] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb931b](0x106fb9a0f )
      OrderOperator(Fmeasure DESC NULLS LAST) [ORDER] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb8abe](0x106fb931b )
        Projection [TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure ] [PROJECTION] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb84e7](0x106fb8abe )
          Projection [TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness (CAST (3 AS NUMBER) * (((Precision * Recall) * CAST (Informativeness AS NUMBER)) / ((Precision + Recall) + CAST (Informativeness AS NUMBER)))) ] [PROJECTION] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb785f](0x106fb84e7 )
            Projection [TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 ROUND((NumInProv / Covered), 10) ROUND((NumInProv / TotalProv), 10) ROUND((usePROV_A01 / 1), 10) ] [PROJECTION] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT ) [0x106fb660f](0x106fb785f )
              CrossProduct [] [JOIN] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT ) [0x106fb5e22](0x106fb660f )
                Projection [COUNT(1) ] [PROJECTION] (TotalProv )(DT_LONG ) [0x106fb5b63](0x106fb5e22 )
                  Selection [(ROWNUM <= 3)] [SELECT] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb1b1e](0x106fb5b63 )
                    OrderOperator('DBMS_RANDOM.RANDOM' ASC NULLS LAST) [ORDER] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb188d](0x106fb1b1e )
                      Projection [A0 A1 1 ] [PROJECTION] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb14be](0x106fb188d )
                        DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fabbbd](0x106fb14be )
                          Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fac96a](0x106fabbbd )
                            Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faca6b](0x106fac96a )
                              Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106facb72](0x106faca6b )
                                DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106facc6f](0x106facb72 )
                                  Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106facd6c](0x106facc6f )
                                    CrossProduct [] [JOIN] (C_0_0 C_0_1 C_1_0 )(DT_INT DT_INT DT_INT ) [0x106face6d](0x106facd6c )
                                      Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106facf9c](0x106face6d )
                                        Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fad0a3](0x106facf9c )
                                          DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_INT ) [0x106fad1a0](0x106fad0a3 )
                                            Projection [2 2 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad29d](0x106fad1a0 )
                                              Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fad39e](0x106fad29d )
                                                SetDifference [SET] (A0 A1 )(DT_INT DT_INT ) [0x106fad4a5](0x106fad39e )
                                                  Projection [D D1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad59f](0x106fad4a5 )
                                                    ConstRelOperator [(2, 2)] [ConstRel] (D D1 )(DT_INT DT_INT ) [0x106fad6a0](0x106fad59f )
                                                  Projection [A0 A1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad92b](0x106fad4a5 )
                                                    Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fada2c](0x106fad92b )
                                                      @1
                                      Projection [A0 ] [PROJECTION] (C_1_0 )(DT_INT ) [0x106faee78](0x106face6d )
                                        Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faef59](0x106faee78 )
                                          DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf033](0x106faef59 )
                                            Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf10d](0x106faf033 )
                                              Projection [A0 ] [PROJECTION] (C_0_0 )(DT_INT ) [0x106faf1eb](0x106faf10d )
                                                SetDifference [SET] (A0 )(DT_INT ) [0x106faf2cc](0x106faf1eb )
                                                  Projection [D ] [PROJECTION] (A0 )(DT_INT ) [0x106faf3a3](0x106faf2cc )
                                                    ConstRelOperator [(2)] [ConstRel] (D )(DT_INT ) [0x106faf481](0x106faf3a3 )
                                                  Projection [A0 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf68a](0x106faf2cc )
                                                    Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faf768](0x106faf68a )
                                                      DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf842](0x106faf768 )
                                                        Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf91c](0x106faf842 )
                                                          Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faf9fa](0x106faf91c )
                                                            Selection [((A0 = 2) AND (A1 = TRUE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafb01](0x106faf9fa )
                                                              DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafbfe](0x106fafb01 )
                                                                Projection [2 TRUE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafcfb](0x106fafbfe )
                                                                  Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fafdfc](0x106fafcfb )
                                                                    Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106faff03](0x106fafdfc )
                                                                      @1
                Projection [Covered NumInProv PROV_A01 A1 (CASE  WHEN (PROV_A01 IS NULL) THEN 0 ELSE 1 END) ] [PROJECTION] (Covered NumInProv PROV_A01 A1 usePROV_A01 )(DT_LONG DT_LONG DT_INT DT_BOOL DT_INT ) [0x106fb53a3](0x106fb5e22 )
                  Aggregation [(COUNT(1), SUM(HAS_PROV))] GROUP BY [(PROV_A01, A1)] [AGG] (Covered NumInProv PROV_A01 A1 )(DT_LONG DT_LONG DT_INT DT_BOOL ) [0x106fb4bcc](0x106fb53a3 )
                    Projection [PROV_A01 A1 HAS_PROV ] [PROJECTION] (PROV_A01 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb4417](0x106fb4bcc )
                      Join [((PROV_A0 = PROV_A01) OR (PROV_A01 IS NULL))] [JOIN] (PROV_A0 A1 HAS_PROV PROV_A01 )(DT_INT DT_BOOL DT_INT DT_INT ) [0x106fb3a37](0x106fb4417 )
                        Selection [(ROWNUM <= 3)] [SELECT] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb1b1e](0x106fb5b63 )
                          OrderOperator('DBMS_RANDOM.RANDOM' ASC NULLS LAST) [ORDER] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb188d](0x106fb1b1e )
                            Projection [A0 A1 1 ] [PROJECTION] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb14be](0x106fb188d )
                              DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fabbbd](0x106fb14be )
                                Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fac96a](0x106fabbbd )
                                  Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faca6b](0x106fac96a )
                                    Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106facb72](0x106faca6b )
                                      DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106facc6f](0x106facb72 )
                                        Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106facd6c](0x106facc6f )
                                          CrossProduct [] [JOIN] (C_0_0 C_0_1 C_1_0 )(DT_INT DT_INT DT_INT ) [0x106face6d](0x106facd6c )
                                            Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106facf9c](0x106face6d )
                                              Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fad0a3](0x106facf9c )
                                                DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_INT ) [0x106fad1a0](0x106fad0a3 )
                                                  Projection [2 2 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad29d](0x106fad1a0 )
                                                    Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fad39e](0x106fad29d )
                                                      SetDifference [SET] (A0 A1 )(DT_INT DT_INT ) [0x106fad4a5](0x106fad39e )
                                                        Projection [D D1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad59f](0x106fad4a5 )
                                                          ConstRelOperator [(2, 2)] [ConstRel] (D D1 )(DT_INT DT_INT ) [0x106fad6a0](0x106fad59f )
                                                        Projection [A0 A1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad92b](0x106fad4a5 )
                                                          Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fada2c](0x106fad92b )
                                                            @1
                                            Projection [A0 ] [PROJECTION] (C_1_0 )(DT_INT ) [0x106faee78](0x106face6d )
                                              Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faef59](0x106faee78 )
                                                DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf033](0x106faef59 )
                                                  Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf10d](0x106faf033 )
                                                    Projection [A0 ] [PROJECTION] (C_0_0 )(DT_INT ) [0x106faf1eb](0x106faf10d )
                                                      SetDifference [SET] (A0 )(DT_INT ) [0x106faf2cc](0x106faf1eb )
                                                        Projection [D ] [PROJECTION] (A0 )(DT_INT ) [0x106faf3a3](0x106faf2cc )
                                                          ConstRelOperator [(2)] [ConstRel] (D )(DT_INT ) [0x106faf481](0x106faf3a3 )
                                                        Projection [A0 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf68a](0x106faf2cc )
                                                          Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faf768](0x106faf68a )
                                                            DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf842](0x106faf768 )
                                                              Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf91c](0x106faf842 )
                                                                Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faf9fa](0x106faf91c )
                                                                  Selection [((A0 = 2) AND (A1 = TRUE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafb01](0x106faf9fa )
                                                                    DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafbfe](0x106fafb01 )
                                                                      Projection [2 TRUE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafcfb](0x106fafbfe )
                                                                        Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fafdfc](0x106fafcfb )
                                                                          Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106faff03](0x106fafdfc )
                                                                            @1
                        DuplicateRemoval [DUPREM] (PROV_A01 )(DT_INT ) [0x106fb33ff](0x106fb3a37 )
                          Projection [(CASE  WHEN (PROV_A0 = PROV_A01) THEN PROV_A0 ELSE NULL END) ] [PROJECTION] (PROV_A01 )(DT_INT ) [0x106fb30d6](0x106fb33ff )
                            CrossProduct [] [JOIN] (PROV_A0 A1 HAS_PROV PROV_A01 A11 HAS_PROV1 )(DT_INT DT_BOOL DT_INT DT_INT DT_BOOL DT_INT ) [0x106fb20dc](0x106fb30d6 )
                              Selection [(ROWNUM <= 3)] [SELECT] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb1b1e](0x106fb5b63 )
                                OrderOperator('DBMS_RANDOM.RANDOM' ASC NULLS LAST) [ORDER] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb188d](0x106fb1b1e )
                                  Projection [A0 A1 1 ] [PROJECTION] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb14be](0x106fb188d )
                                    DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fabbbd](0x106fb14be )
                                      Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fac96a](0x106fabbbd )
                                        Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faca6b](0x106fac96a )
                                          Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106facb72](0x106faca6b )
                                            DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106facc6f](0x106facb72 )
                                              Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106facd6c](0x106facc6f )
                                                CrossProduct [] [JOIN] (C_0_0 C_0_1 C_1_0 )(DT_INT DT_INT DT_INT ) [0x106face6d](0x106facd6c )
                                                  Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106facf9c](0x106face6d )
                                                    Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fad0a3](0x106facf9c )
                                                      DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_INT ) [0x106fad1a0](0x106fad0a3 )
                                                        Projection [2 2 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad29d](0x106fad1a0 )
                                                          Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fad39e](0x106fad29d )
                                                            SetDifference [SET] (A0 A1 )(DT_INT DT_INT ) [0x106fad4a5](0x106fad39e )
                                                              Projection [D D1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad59f](0x106fad4a5 )
                                                                ConstRelOperator [(2, 2)] [ConstRel] (D D1 )(DT_INT DT_INT ) [0x106fad6a0](0x106fad59f )
                                                              Projection [A0 A1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad92b](0x106fad4a5 )
                                                                Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fada2c](0x106fad92b )
                                                                  @1
                                                  Projection [A0 ] [PROJECTION] (C_1_0 )(DT_INT ) [0x106faee78](0x106face6d )
                                                    Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faef59](0x106faee78 )
                                                      DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf033](0x106faef59 )
                                                        Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf10d](0x106faf033 )
                                                          Projection [A0 ] [PROJECTION] (C_0_0 )(DT_INT ) [0x106faf1eb](0x106faf10d )
                                                            SetDifference [SET] (A0 )(DT_INT ) [0x106faf2cc](0x106faf1eb )
                                                              Projection [D ] [PROJECTION] (A0 )(DT_INT ) [0x106faf3a3](0x106faf2cc )
                                                                ConstRelOperator [(2)] [ConstRel] (D )(DT_INT ) [0x106faf481](0x106faf3a3 )
                                                              Projection [A0 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf68a](0x106faf2cc )
                                                                Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faf768](0x106faf68a )
                                                                  DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf842](0x106faf768 )
                                                                    Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf91c](0x106faf842 )
                                                                      Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faf9fa](0x106faf91c )
                                                                        Selection [((A0 = 2) AND (A1 = TRUE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafb01](0x106faf9fa )
                                                                          DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafbfe](0x106fafb01 )
                                                                            Projection [2 TRUE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafcfb](0x106fafbfe )
                                                                              Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fafdfc](0x106fafcfb )
                                                                                Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106faff03](0x106fafdfc )
                                                                                  @1
                              Selection [(ROWNUM <= 3)] [SELECT] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb1b1e](0x106fb5b63 )
                                OrderOperator('DBMS_RANDOM.RANDOM' ASC NULLS LAST) [ORDER] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb188d](0x106fb1b1e )
                                  Projection [A0 A1 1 ] [PROJECTION] (PROV_A0 A1 HAS_PROV )(DT_INT DT_BOOL DT_INT ) [0x106fb14be](0x106fb188d )
                                    DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fabbbd](0x106fb14be )
                                      Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fac96a](0x106fabbbd )
                                        Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faca6b](0x106fac96a )
                                          Selection [((A0 = 2) AND (A1 = FALSE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106facb72](0x106faca6b )
                                            DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106facc6f](0x106facb72 )
                                              Projection [2 FALSE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106facd6c](0x106facc6f )
                                                CrossProduct [] [JOIN] (C_0_0 C_0_1 C_1_0 )(DT_INT DT_INT DT_INT ) [0x106face6d](0x106facd6c )
                                                  Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106facf9c](0x106face6d )
                                                    Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fad0a3](0x106facf9c )
                                                      DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_INT ) [0x106fad1a0](0x106fad0a3 )
                                                        Projection [2 2 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad29d](0x106fad1a0 )
                                                          Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fad39e](0x106fad29d )
                                                            SetDifference [SET] (A0 A1 )(DT_INT DT_INT ) [0x106fad4a5](0x106fad39e )
                                                              Projection [D D1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad59f](0x106fad4a5 )
                                                                ConstRelOperator [(2, 2)] [ConstRel] (D D1 )(DT_INT DT_INT ) [0x106fad6a0](0x106fad59f )
                                                              Projection [A0 A1 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fad92b](0x106fad4a5 )
                                                                Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106fada2c](0x106fad92b )
                                                                  @1
                                                  Projection [A0 ] [PROJECTION] (C_1_0 )(DT_INT ) [0x106faee78](0x106face6d )
                                                    Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faef59](0x106faee78 )
                                                      DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf033](0x106faef59 )
                                                        Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf10d](0x106faf033 )
                                                          Projection [A0 ] [PROJECTION] (C_0_0 )(DT_INT ) [0x106faf1eb](0x106faf10d )
                                                            SetDifference [SET] (A0 )(DT_INT ) [0x106faf2cc](0x106faf1eb )
                                                              Projection [D ] [PROJECTION] (A0 )(DT_INT ) [0x106faf3a3](0x106faf2cc )
                                                                ConstRelOperator [(2)] [ConstRel] (D )(DT_INT ) [0x106faf481](0x106faf3a3 )
                                                              Projection [A0 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf68a](0x106faf2cc )
                                                                Selection [(A0 = 2)] [SELECT] (A0 )(DT_INT ) [0x106faf768](0x106faf68a )
                                                                  DuplicateRemoval [DUPREM] (A0 )(DT_INT ) [0x106faf842](0x106faf768 )
                                                                    Projection [2 ] [PROJECTION] (A0 )(DT_INT ) [0x106faf91c](0x106faf842 )
                                                                      Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_BOOL ) [0x106faf9fa](0x106faf91c )
                                                                        Selection [((A0 = 2) AND (A1 = TRUE))] [SELECT] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafb01](0x106faf9fa )
                                                                          DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafbfe](0x106fafb01 )
                                                                            Projection [2 TRUE ] [PROJECTION] (A0 A1 )(DT_INT DT_BOOL ) [0x106fafcfb](0x106fafbfe )
                                                                              Projection [A0 A1 ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fafdfc](0x106fafcfb )
                                                                                Selection [((A0 = 2) AND (A1 = 2))] [SELECT] (A0 A1 )(DT_INT DT_INT ) [0x106faff03](0x106fafdfc )
                                                                                  @1

-----------------------
@1
DuplicateRemoval [DUPREM] (A0 A1 )(DT_INT DT_INT ) [0x106fadb29](0x106fada2c 0x106faff03 )
  Projection [2 2 ] [PROJECTION] (A0 A1 )(DT_INT DT_INT ) [0x106fadc26](0x106fadb29 )
    Projection [A B ] [PROJECTION] (C_0_0 C_0_1 )(DT_INT DT_INT ) [0x106fadd27](0x106fadc26 )
      Selection [((A = 2) AND (B = 2))] [SELECT] (A B )(DT_INT DT_INT ) [0x106fade2e](0x106fadd27 )
        TableAccess [R] [REL] (A B )(DT_INT DT_INT ) [0x106fadf29](0x106fade2e )

INFO(mem_mgr.c:640) Create chunk of size 1048576 in context TRANSLATOR_CONTEXT
ERROR (query_operator_model_checker.c:182) attribute ref name and child attrdef names are not the same: <PROV_A01> and <A0>
ERROR (query_operator_model_checker.c:183) parent is

Selection [((A0 = CAST (2 AS VARCHAR2(2000))) AND (A1 = CAST (FALSE AS VARCHAR2(2000))))] [SELECT] (A0 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106f73291](0x106f7363e )
  @0

-----------------------
@0
Projection [(CASE  WHEN (TO_CHAR(PROV_A01) IS NULL) THEN 'C_0_0' ELSE TO_CHAR(PROV_A01) END) (CASE  WHEN (TO_CHAR(A1) IS NULL) THEN 'C_0_1' ELSE TO_CHAR(A1) END) NumInProv Recall ] [PROJECTION] (PROV_A01 A1 NumInProv Recall )(DT_STRING DT_STRING DT_LONG DT_LONG ) [0x106fba4d0](0x106f73291 0x106f7646f 0x106f7955e )
  Projection [TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure ] [PROJECTION] (TotalProv Covered NumInProv PROV_A01 A1 usePROV_A01 Precision Recall Informativeness Fmeasure )(DT_LONG DT_LONG DT_LONG DT_INT DT_BOOL DT_INT DT_LONG DT_LONG DT_INT DT_LONG ) [0x106fb9a0f](0x106fba4d0 )
shek21 commented 5 years ago

Fixed parentings! Not sure about the second one...