From 8f137af863d3f5f043682bfc301ce2484e8dcc99 Mon Sep 17 00:00:00 2001 From: Christos Hrousis Date: Sun, 27 Aug 2023 01:52:59 +0000 Subject: [PATCH 1/4] Learned Indexes A theoretical dense hash structure derived ("learned") from actual data. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d03ad99..9ee7913 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ If you're replicating SQL databases, whether MySQL, Postgres, or SQL Server, [ch - Concepts - database cracking: *explanation needed* - - learned indexes: *explanation needed* + - learned indexes: https://www.postgresql.org/message-id/CAFcOn28TpR4oydF1NdMEuKFVVRiRwAwG4dGunu2kVxHZw3ViEA%40mail.gmail.com - XTID exhaustion: *explanation needed* - Worst Case Optimal Join: *explanation needed* - Volcano model: *explanation needed* From 34195d2b151f0ad04f8053cb4ed81dfd0b732db7 Mon Sep 17 00:00:00 2001 From: Christos Hrousis Date: Sun, 27 Aug 2023 01:55:46 +0000 Subject: [PATCH 2/4] NULLs are equal in DISTINCT but inequal in UNIQUE NULL = NULL is treated as not true, but unknown. NULL = NULL is true, with is [not] distinct. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ee7913..36a3989 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ If you're replicating SQL databases, whether MySQL, Postgres, or SQL Server, [ch - Battle Scars - Vectorized doesn't mean SIMD: *explanation needed* - join ordering is NP hard: *explanation needed* - - NULLs are equal in DISTINCT but inequal in UNIQUE: *explanation needed* + - NULLs are equal in DISTINCT but inequal in UNIQUE: https://modern-sql.com/feature/is-distinct-from ## Level 7 From 55566da344da19d0e0e886e68868b84c4189407b Mon Sep 17 00:00:00 2001 From: Christos Hrousis Date: Sun, 27 Aug 2023 01:57:13 +0000 Subject: [PATCH 3/4] fsyncgate OS differences relating to fsync reliability issues. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 36a3989..a35c433 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ If you're replicating SQL databases, whether MySQL, Postgres, or SQL Server, [ch - dee and dum: https://blog.jooq.org/creating-tables-dum-and-dee-in-postgresql/ - the Halloween problem: https://en.wikipedia.org/wiki/Halloween_Problem - allballs: https://www.postgresql.org/message-id/24526.1106597936%40sss.pgh.pa.us -- fsyncgate: *explanation needed* +- fsyncgate: https://wiki.postgresql.org/wiki/Fsync_Errors - Every SQL operator is actually a JOIN: *explanation needed* - SERIAL is non-transactional: *explanation needed* - NULL (?): *explanation needed* From 778f54a0803f228be90d6e414aa924aec169034c Mon Sep 17 00:00:00 2001 From: Christos Hrousis Date: Sun, 27 Aug 2023 01:58:46 +0000 Subject: [PATCH 4/4] SERIAL is non-transactional Value allocated even if a row is never successfully inserted. Creates "gaps" in sequences on values. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a35c433..cddad01 100644 --- a/README.md +++ b/README.md @@ -119,5 +119,5 @@ If you're replicating SQL databases, whether MySQL, Postgres, or SQL Server, [ch - allballs: https://www.postgresql.org/message-id/24526.1106597936%40sss.pgh.pa.us - fsyncgate: https://wiki.postgresql.org/wiki/Fsync_Errors - Every SQL operator is actually a JOIN: *explanation needed* -- SERIAL is non-transactional: *explanation needed* +- SERIAL is non-transactional: https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL - NULL (?): *explanation needed*