Subject condition is violated due to reverse traversal (unexpected rows in subset)
When using an ExtractionModel with a subject table (customers) and a condition like: T.customer_id = 1 Jailer includes unrelated rows from the orders table where customer_id != 1.
This violates the defined condition and leads to unintended data export, unless all reverse associations are explicitly blocked.
Expected behavior Jailer should export: Only the subject customer (customer_id = 1) Related child records (e.g., orders, reviews) where customer_id = 1 No other customers or their data unless explicitly allowed
Actual behavior More than one customer is exported Orders for customer_id = 2..10 are included This happens due to implicit reverse traversal, which is not documented clearly Bypasses the subject condition unless explicitly restricted
Steps to reproduce Use customers as the subject Set condition: T.customer_id = 1 Do not define any restrictions Observe that Jailer includes: Extra orders Extra customers (even though condition restricts to customer_id = 1)
Environment Jailer version: 16.7.0.1 DB: PostgreSQL
The subject condition is not violated simply because additional rows are included.
Please refer to the first FAQ, ‘Why am I getting so much data back?’ https://wisser.github.io/Jailer/faq.html
Basically, all rows that are directly or indirectly (transitively) associated with a subject row are exported, taking into account the restrictions.
If rows are exported unintentionally, the restrictions must be adjusted. If these are rows from a subject table, the second FAQ, ‘What does $DISTANCE and $IS_SUBJECT mean?’, may also be of interest.