Following a great deal of discussion, I’m pleased to announce that the PostgreSQL Core team has decided that the major theme for the 9.1 release, due in 2011, will be ‘NoSQL’.
There is a growing trend towards NoSQL databases, with major sites like Twitter and Facebook utilising them extensively. NoSQL databases often include multi-master replication, clustering and failover features that have long been requested in PostgresSQL, but have been extremely difficult to implement with SQL which has prevented us from advancing Postgree in the way that we’d like.
To address this, the intention is to remove SQL support from Postgres, and replace it with a language called ‘QUEL’. This will provide us with the flexibility we need to implement the features of modern NoSQL databases. With no SQL support there will obviously be some differences in the query syntax that must be used to access your data. For example, the query:
select (e.salary/ (e.age – 18)) as comp from employee as e where e.name = “Jones”
would be rewritten as:
range of e is employee retrieve (comp = e.salary/ (e.age – 18)) where e.name = “Jones”
Aggregate syntax in QUEL is particularly powerful. For example, the query:
avg(salary) as avg_salary,
sum(salary) as tot_salary
may be written as:
range of e is employee
avg_salary = avg(e.salary by e.dept),
tot_salary = sum(e.salary by e.dept)
Note that the grouped column can be specified for each individual aggregate.
We will be producing a comprehensive guide to the QUEL syntax to aid with application migration. We appreciate the difficulty that this change may cause some users, but feel we must embrace the NoSQL philosophy in order to remain “The world’s most advanced Open Source
“There’s no question that, at 21 years old, the SQL standard is past its prime,” said core developer and standards expert Peter Eisentraut. “It’s time for us to switch to something fresher. I personally would have preferred XSLT, but QUEL is almost as good.”
Project committer Heikki Linnakangas added: “By replacing SQL with QUEL not only will will be able to add new features to Postgres that were previously too difficult, but we’ll also increase user loyalty as it’ll be much harder for them to change to a different, SQL-based
database. That’ll be pretty cool.”
You may also notice that without SQL, the project name is somewhat misleading. To address that, the project name will be changed to ‘PostgreQUEL’ with the 9.1 release. We expect this will also put an end to the periodic debates on changing the project name.
On behalf of the PostgreSQL Core TeamTweet