\set ECHO none add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|sx|p 10|100 (*)|1.0000 20|200 (*)|1.0000 30||1.0000 (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.7500 (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.5000 20|0.0000 (2 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|sx|p 10|7 (*)|1.0000 20|8 (*)|1.0000 (2 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|sx|p 10|7 (*)|1.0000 20|8 (*)|1.0000 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) add_provenance (1 row) add_provenance (1 row) ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: its body truncates its rows with LIMIT or OFFSET, which the decorrelation cannot read per world DETAIL: provsql-reason: body-limit; scope: gap add_provenance (1 row) remove_provenance (1 row) a|p 10|1.0000 20|0.7500 (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|c 10|1 (*) 20|2 (*) 30|0 (*) (3 rows) remove_provenance (1 row) a|m 10|100 (*) 20|201 (*) 30| (3 rows) remove_provenance (1 row) a|p 20|0.2500 (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.5000 20|0.7500 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.2500 30|1.0000 (3 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.7500 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.2500 30|1.0000 (3 rows) remove_provenance (1 row) a|p 20|0.7500 (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 100|0.5000 200|0.0000 300|0.0000 (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|sorted|p 10|{100,NULL}|1.0000 20|{200,201}|1.0000 30||1.0000 (3 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.2500 20|0.2500 30|0.0000 (3 rows) remove_provenance (1 row) a|c 10|1 (*) 20|1 (*) 30|0 (*) (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|c|p 10|3 (*)|1.0000 20|3 (*)|1.0000 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) remove_provenance (1 row) a|v 10|100 (*) 20|100 (*) (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.8750 20|0.8750 (2 rows) remove_provenance (1 row) a|p 10|0.7500 20|0.7500 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) remove_provenance (1 row) a|p (0 rows) remove_provenance (1 row) a|p 10|0.7500 20|0.7500 (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.1250 10|0.1250 20|0.1250 (3 rows) remove_provenance (1 row) a|p 10|0.2500 10|0.2500 20|0.2500 (3 rows) remove_provenance (1 row) a|p 20|0.1250 (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) remove_provenance (1 row) a|p 10|0.1250 20|0.1250 (2 rows) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) remove_provenance (1 row) a|p 10|0.3750 20|0.3750 (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.2500 20|0.2500 (2 rows) add_provenance (1 row) remove_provenance (1 row) a|p 10|0.5000 20|0.5000 (2 rows) remove_provenance (1 row) a|v|p 10|1|0.5000 20|2|0.5000 30||0.5000 (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) k|p 1|0.5000 2|0.2500 3|1.0000 (3 rows) remove_provenance (1 row) k|p 1|0.1250 2|0.2500 3|1.0000 (3 rows) remove_provenance (1 row) k|p 1|0.5000 2|0.5000 (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) name|latest|p Alice|100 (*)|1.0000 Bob|300 (*)|1.0000 (2 rows) remove_provenance (1 row) name|earliest Alice|200 (*) Bob|300 (*) (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|v|p 10|100 (*)|1.0000 20|200 (*)|1.0000 30|300 (*)|0.7500 (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|v1|p 10|101 (*)|1.0000 20|201 (*)|1.0000 30|301 (*)|1.0000 (3 rows) a|v1_gate|reaches_input 10|arith|t 20|arith|t 30|arith|t (3 rows) remove_provenance (1 row) a|v1|v1_gate 10|25.0000000000000000 (*)|arith 20|50.0000000000000000 (*)|arith 30|75.0000000000000000 (*)|arith (3 rows) WARNING: ProvSQL: scalar subquery nested in an expression: provenance not tracked DETAIL: provsql-reason: sublink-nested-in-expression-frozen; scope: gap HINT: Mark it plain() to say so. remove_provenance (1 row) a|p 20|1.0000 30|1.0000 (2 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|v1|v2|p 1|100 (*)|1000 (*)|1.0000 2|200 (*)|2000 (*)|0.7500 3|300 (*)|3000 (*)|1.0000 4|||1.0000 (4 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) t|a|p gt50|1|0.5000 gt50|2|0.5000 gt50|3|0.5000 (3 rows) remove_provenance (1 row) t|a|p gt500|1|0.0000 gt500|2|0.0000 gt500|3|0.0000 (3 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|asc_arr 1|{1,2,3} (*) 2|{40,50} (*) 3|{} (*) (3 rows) remove_provenance (1 row) a|desc_arr 1|{3,2,1} (*) 2|{50,40} (*) 3|{} (*) (3 rows) add_provenance (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 1|1.0000 2|0.7500 3|1.0000 (3 rows) remove_provenance (1 row) a|p 2|0.2500 (1 row) remove_provenance (1 row) a|p 1|1.0000 2|0.7500 3|1.0000 (3 rows) remove_provenance (1 row) a|p 1|1.0000 2|0.7500 3|1.0000 (3 rows) remove_provenance (1 row) a|p 1|1.0000 2|1.0000 3|1.0000 (3 rows) remove_provenance (1 row) a|p 1|1.0000 2|0.7500 2|1.0000 3|1.0000 7|1.0000 (5 rows) remove_provenance (1 row) a|p 1|1.0000 2|0.7500 2|1.0000 3|1.0000 7|1.0000 (5 rows) ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: the position it is in, or the correlation it carries, is not one the decorrelation covers (a correlation that is not an equality of columns, a body reading no tracked relation of its own) DETAIL: provsql-reason: position-or-correlation; scope: gap ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: it compares a row with the rows of the body by an ordering operator (< ANY, >= ANY): the semijoin on that lexicographic comparison is a provenance it could have, and the lowering does not build it yet DETAIL: provsql-reason: row-ordering-existential; scope: gap ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: it compares a row with every row of the body by an ordering operator (>= ALL, < ALL): such a universal ordering condition is not one the supported fragment reads, and no rewriting will build it DETAIL: provsql-reason: row-ordering-universal; scope: deliberate add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) a|p 1|0.7500 2|0.5000 3|0.5000 (3 rows) remove_provenance (1 row) a|p 1|0.7500 2|0.5000 3|0.7500 (3 rows) remove_provenance (1 row) a|p 1|0.0000 2|0.2500 3|0.0000 (3 rows) remove_provenance (1 row) a|p 1|0.7500 2|0.2500 3|0.0000 (3 rows) remove_provenance (1 row) a|p 1|0.2500 (1 row) remove_provenance (1 row) a|p 1|0.5000 (1 row) remove_provenance (1 row) a|p 1|0.7500 2|0.5000 3|0.5000 (3 rows) add_provenance (1 row) remove_provenance (1 row) pid|sid|p 1|10|0.2400 1||0.1260 2|20|0.2500 (3 rows) remove_provenance (1 row) pid|sid|p 1|10|0.2400 1||0.1260 2|20|0.2500 (3 rows) remove_provenance (1 row) pid|sid|p 1|10|0.4800 1||0.6000 2|20|0.5000 (3 rows) remove_provenance (1 row) pid|sid|p 1|10|0.3200 (1 row) remove_provenance (1 row) pid|sid|m 1|10|3 (*) 1|| 2|20| (3 rows) remove_provenance (1 row) pid|sid|sorted|p 1|10|{3}|0.8000 1|||0.6000 2|20||0.5000 (3 rows) ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: its body has an outer join DETAIL: provsql-reason: body-outer-join; scope: gap add_provenance (1 row) remove_provenance (1 row) p|k|n 1|1|2 1|3|2 (2 rows) add_provenance (1 row) remove_provenance (1 row) c|n|g 2 (*)|1 (*)|0 2 (*)|2 (*)|1 (2 rows) add_provenance (1 row) create_provenance_mapping (1 row) remove_provenance (1 row) a|f 3 (*)|choose(3*3) (1 row) remove_provenance (1 row) a|f x|3 (1 row) WARNING: ProvSQL: subquery over a tracked relation in an untracked position: provenance not tracked DETAIL: provsql-reason: sublink-in-untracked-position-frozen; scope: gap HINT: Mark it plain() to say so. a 1 2 3 (3 rows) WARNING: ProvSQL: subquery over a tracked relation in an untracked position: provenance not tracked, although the statement tracks ssp DETAIL: provsql-reason: sublink-in-untracked-position-frozen; scope: gap HINT: Mark it plain() to say so. remove_provenance (1 row) a 1 1 2 2 3 3 (6 rows) WARNING: ProvSQL: subquery over a tracked relation in a query over no tracked relation: provenance not tracked DETAIL: provsql-reason: sublink-in-untracked-block-frozen; scope: gap HINT: Mark it plain() to say so. a f (1 row) add_provenance (1 row) remove_provenance (1 row) n|total 0 (*)|3 (*) (1 row) add_provenance (1 row) create_provenance_mapping (1 row) remove_provenance (1 row) q|id|f IN|1|1 ⊗ 2 IN|2|2 ⊗ 2 IN|3|3 ⊗ 3 IN DISTINCT|1|1 ⊗ 2 IN DISTINCT|2|2 ⊗ 2 IN DISTINCT|3|3 ⊗ 3 NOT EXISTS|1|1 ⊗ (𝟙 ⊖ 2) NOT EXISTS|2|2 NOT EXISTS|3|3 NOT EXISTS DISTINCT|1|1 ⊗ (𝟙 ⊖ 2) NOT EXISTS DISTINCT|2|2 NOT EXISTS DISTINCT|3|3 (12 rows) ERROR: ProvSQL: subquery over a provenance-tracked relation not supported here: the position it is in, or the correlation it carries, is not one the decorrelation covers (a correlation that is not an equality of columns, a body reading no tracked relation of its own) DETAIL: provsql-reason: position-or-correlation; scope: gap add_provenance (1 row) add_provenance (1 row) create_provenance_mapping (1 row) WARNING: ProvSQL: aggregate result read as a plain value: provenance not tracked, although the statement tracks ssx DETAIL: provsql-reason: aggregate-read-as-plain-value; scope: gap; reader: cast HINT: Mark it plain() to say so. remove_provenance (1 row) q|u|v|c DISTINCT EXISTS|1||1 DISTINCT EXISTS|2||2 GROUP BY NOT IN|1|0|1 GROUP BY NOT IN|2|-1|1 count IN||2|1 (5 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) q|id EXISTS AND EXISTS|1 IN AND NOT IN|1 (2 rows) add_provenance (1 row) add_provenance (1 row) create_provenance_mapping (1 row) remove_provenance (1 row) q|id IN (IN (IN))|1 IN (IN (IN))|3 IN (IN)|1 IN (IN)|2 NOT IN (IN)|3 NOT IN (IN)|4 (6 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate id|s1|c1|children|m 1|1|1|2|11 2|1|2|1|11 3||0|0| 4||0|0| (4 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate rn|id|children 1|1|2 2|2|1 3|3|0 4|4|0 (4 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate u|n|c 1|2|1 2|2|2 (2 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate id|s|m 1|10|10 2|14|10 3|| 4|| (4 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate id|s 1|10 2|4 3| 4| (4 rows) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) k|e 1|1.0000 1|1.0000 2|0.5000 (3 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate k|v 1| 1| 2|7 (3 rows) remove_provenance (1 row) k|p 1|0.7500 1|0.7500 2|0.5000 (3 rows) remove_provenance (1 row) WARNING: ProvSQL: converting agg_token to text: provenance information is lost DETAIL: provsql-reason: stored-agg-token-conversion; scope: deliberate k|c 1|2 2|1 (2 rows) remove_provenance (1 row) remove_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) id|p 1|0.375000 2|0.125000 4|0.000000 (3 rows) remove_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) k|p 1|0.375000 2|0.281250 3|0.375000 (3 rows) remove_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) k|p 1|0.531250 2|0.500000 3|0.531250 (3 rows) remove_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) id|p 1|0.250000 2|0.250000 3|0.250000 4|0.250000 (4 rows) remove_provenance (1 row) add_provenance (1 row) add_provenance (1 row) remove_provenance (1 row) e 0.583333 (1 row) remove_provenance (1 row) k|e 1|0.777778 2|0.583333 (2 rows) remove_provenance (1 row) k|e 2|2.000000 (1 row) remove_provenance (1 row) p|e|e10 0.875000|1.000000|10.000000 (1 row) remove_provenance (1 row) remove_provenance (1 row)