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 <mmonc...@gmail.com>, wrote:
> On Thu, Feb 10, 2022 at 10:54 AM Merlin Moncure <mmonc...@gmail.com> wrote:
> > > On Wed, Feb 9, 2022 at 11:15 PM Guyren Howe <guy...@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:
> > https://en.wikipedia.org/wiki/Dataphor
> >
> > 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

Reply via email to