Re: Can we go beyond the standard to make Postgres radically better? - Mailing list pgsql-general

From Guyren Howe
Subject Re: Can we go beyond the standard to make Postgres radically better?
Date
Msg-id 4e3f0ff8-6a5a-4f57-b5c0-f87b99f55dc7@Spark
Whole thread Raw
In response to Re: Can we go beyond the standard to make Postgres radically better?  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-general
I’d like to point out that sum types would be great.

(Sum types let you have any of two or more different types in one value)

For example, I could work around the issues with NULL by defining an enumeration type with values like MISSING, UNKNOWN, INVALID, … and then I can have a column that is a sum of that type with the type we normally keep in the column.

We would need some machinery to declare how aggregates work, but I think that’s very much in the spirit of how types work in Postgres now.

In general, I would think we could make SQL a better functional programming language by just implementing good fp features like this.
On Feb 10, 2022, 11:09 -0800, Merlin Moncure <mmoncure@gmail.com>, wrote:
On Thu, Feb 10, 2022 at 10:54 AM Merlin Moncure <mmoncure@gmail.com> wrote:
On Wed, Feb 9, 2022 at 11:15 PM Guyren Howe <guyren@gmail.com> wrote:
 
    • Also nested function definitions, so top-level functions can be built out of local auxiliary functions.
  • Other languages
    • Tutorial D, Datalog, Quell, let’s open this puppy up!
    • SQL is a terrible, no good, very bad language
Postgres used to suport QUEL way back in the day.  Being blunt, there is zero chance of this happening in core.  A query language translator out of core, preprocessing the language into SQL, might work.   SQL has evolved far beyond what those languages could practically offer.   Main benefit here would be to better support relational division, which bizarrely has yet to arrive in SQL.
 A portable, low-level API
 
FYI, there was a semi-serious commercial attempt to do this back in 2001, Dataphor. It's been opensourced.  Wikipedia has a pretty good write up on it:

IMNSHO suggestions like these should travel this technical path; take the data language you want and translate it into SQL.  Some of these translations will end up being complicated (read: slow).  Iterating this kind of thing outside of core would allow for faster development.

merlin

pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Can we go beyond the standard to make Postgres radically better?
Next
From: Mladen Gogala
Date:
Subject: How to determine whether I'm running on a standby?