enso/std-bits
Radosław Waśko 8c661fdb74
Database Joins (#4007)
Implements https://www.pivotaltracker.com/story/show/184032869

# Important Notes
- Currently we get failures in Full joins on Postgres which show a more serious problem - amending equality to ensure that `[NULL = NULL] == True` breaks hash/merge based indexing - so such joins will be extremely inefficient. All our joins currently rely on this notion of equality which will mean all of our DB joins will be extremely inefficient.
- We need to find a solution that will support nulls and still work OK with indices (but after exploring a few approaches: `COALESCE(a = b, a IS NULL AND b is NULL)`, `a IS NOT DISTINCT FROM b`, `(a = b) OR (a IS NULL AND b is NULL)`; all of which did not work (they all result in `ERROR: FULL JOIN is only supported with merge-joinable or hash-joinable join conditions`) I'm less certain that it is possible. Alternatively, we may need to change the NULL semantics to align it with SQL - this seems like likely the simpler solution, allowing us to generate simple, reliable SQL - the NULL=NULL solution will be cornering us into nasty workarounds very dependent on the particular backend.
2023-01-05 10:36:22 +00:00
..
base/src/main/java/org/enso/base Improve performance of Text.compare_to (#4012) 2023-01-02 17:09:03 +00:00
database/src/main/java/org/enso/database Restructuring Database.Connection to allow for database specific types. (#3632) 2022-09-07 17:32:28 +00:00
google-api Google Spreadsheet Reading (#1976) 2021-09-03 21:41:12 +02:00
image/src/main/java/org/enso/image Suppress some obvious warnings (#3768) 2022-10-07 10:07:40 +00:00
table/src/main Database Joins (#4007) 2023-01-05 10:36:22 +00:00