Postgres has since the outset gone beyond the SQL standard in many ways : 
types, inheritance, programmability, generality are all well beyond what SQL 
used to mandate and still well beyond the current standard.

There are huge developer benefits available to focusing more on making a great 
relational programming environment, well outside the SQL standard.

Examples of small things Postgres could have:
SELECT * - b.a_id from a natural join b
let me describe a select list by removing fields from a relation. In the 
example, I get all fields in the join of  a  and b other than the shared key, 
which I only get once.
note how this simplifies maintaining views wrt  changes in tables
Let me put the FROM clause first
if I can write FROM a join b SELECT a.height, a.name, b.email then an editor 
can give me autocomplete when I’m writing the select clause.
Hierarchical schemas
Examples of larger things Postgres might have:
First-class functions.
A global-only namespace is dumb. Schemas are only slightly less dumb. The 
obvious way to store and call functions is as values of fields. Let me organize 
them how I choose
Also let me pass around functions as values, let me make new ones and so on. 
Postgres is the best relational programming environment already because it has 
a decent type system and more general features. Let’s expand and also simplify 
that.
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
A portable, low-level API
An alternative to SQLite that provides CRUD operations on a Postgres database.

I adore Postgres, but this is despite rather than because of SQL. By all means, 
let’s have a close-to-standard subset of features, but let’s fearlessly go 
beyond them when it would be obviously much better.

Reply via email to