Scroll

When to Use Cartesian Processing

Exago uses special Cartesian processing to avoid Cartesian Products when data models contain multiple one-to-many relationships. 

NOTE. Exago's Special Cartesian Processing will only apply to reports if one-to-many joins are defined as One-To-Many within the Administration Console. If a join is one-to-many but is defined as One-To-One within the Administration Console, then Exago will not know to apply the Special Cartesian Processing to prevent Cartesian Products. 

I have provided a basic example of this special processing below:

 

Sample Data:

 Category A: Person

Category B: Order

Category C: Store

 

The relationship between Category A and Category B, and the relationship between Category A and Category C, are both one-to-many.

  

If our Cartesian Processing feature is disabled, a report containing fields from all three Categories would form a Cartesian Product (in other words, display repeated values):

 

Output:

 

Advanced Joins window:

 

(Note the MUST join option is not available.)

 

If our Cartesian Processing feature is enabled, the report would display as the following:

 

Output:

 

As you can see, our special processing removes the repeated values from the report.

 

Advanced Joins window:


When the Special Processing is enabled and the report contains a data object with multiple one-to-many relationships, this additional option appears. This option allows you to specify Inner/Outer relationships between two objects that are not related (in this example, “Order” and “Store”).

 

If I were to check “Order”, any store that does not have an associated order will be removed from the report (in this example, Bob’s order of “30”). If I were to check “Store”, any order that does not have an associated store will be removed from the report (in this example, the rows with stores “Starbucks” and “Panera”).

 

The “Enable Special Cartesian Processing” option is originally set to “Default” for all reports. The default value is set within the Administration Console in the “Database Settings”.

 

 

Administrators also have the ability to hide the “Advanced Joins” options from users by setting “Show Advanced Joins” to “False” within the “Feature/UI” settings of the Administration Console.


Hidden Article Information

Article Author
Natalie
created 2015-11-10 19:02:53 UTC
updated 2017-06-19 20:36:22 UTC

Labels
one-to-many, cartesian, advanced joins, advanced,
Have more questions? Submit a request