dolthub / doltgresql

DoltgreSQL - Version Controlled PostgreSQL
Apache License 2.0
1.12k stars 25 forks source link

support `EXCEPT` set operation #979

Closed jycor closed 6 days ago

github-actions[bot] commented 6 days ago
Main PR
Total 42090 42090
Successful 14435 14450
Failures 27655 27640
Partial Successes[^1] 4690 4689
Main PR
Successful 34.2956% 34.3312%
Failures 65.7044% 65.6688%

${\color{lightgreen}Progressions}$

copy

QUERY: select * from copytest except select * from copytest2;
QUERY: select * from copytest except select * from copytest2;

largeobject

QUERY: SELECT pageno, data FROM pg_largeobject WHERE loid = (SELECT loid from lotest_stash_values)
EXCEPT
SELECT pageno, data FROM pg_largeobject WHERE loid = 0;

misc

QUERY: SELECT * FROM onek EXCEPT ALL SELECT * FROM onek_copy;
QUERY: SELECT * FROM onek_copy EXCEPT ALL SELECT * FROM onek;

subselect

QUERY: select count(*) from
  onek o cross join lateral (
    select * from onek i1 where i1.unique1 = o.unique1
    except
    select * from onek i2 where i2.unique1 = o.unique2
  ) ss
where o.ten = 1;

union

QUERY: SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q2 FROM int8_tbl EXCEPT ALL SELECT q1 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q2 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q1 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl ORDER BY 1;
QUERY: select unique1 from tenk1 except select unique2 from tenk1 where unique2 != 10;
QUERY: select unique1 from tenk1 except select unique2 from tenk1 where unique2 != 10;
QUERY: SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl ORDER BY 1;
QUERY: SELECT q1,q2 FROM int8_tbl EXCEPT SELECT q2,q1 FROM int8_tbl
ORDER BY q2,q1;

${\color{lightgreen}Total Progressions: 16}$

[^1]: These are tests that we're marking as Successful, however they do not match the expected output in some way. This is due to small differences, such as different wording on the error messages, or the column names being incorrect while the data itself is correct.