Difference does not return all of the expected records

Summary

In some cases, the difference operator does not return all expected rows.

Steps to reproduce

  1. Download R.csv and S.csv
  2. Launch REAL 0.5.1 from the same directory where the above files are located
  3. Add tables R and S with .add R(A):R.csv and .add S(A):S.csv
  4. Take the difference of R and S with R <D> S

Expected result

┌────┐
│ A  │
├────┤
│ a4 │
└────┘

Actual result

┌───┐
│ A │
├┬┬┬┤
└┴┴┴┘

Possible fixes

Check the implementation of exceptAll in https://git.ecdf.ed.ac.uk/pguaglia/real/blob/master/src/main/java/uk/ac/ed/pguaglia/real/db/Table.java#L156

Additional information

OS macOS Catalina, Version 10.15.7 (19H1323)
Java java 12.0.2 2019-07-16 Java(TM) SE Runtime Environment (build 12.0.2+10) Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
real 0.5.1
Edited by Paolo Guagliardo
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information