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:
select dept,may be written as:
avg(salary) as avg_salary,
sum(salary) as tot_salary
from
employees
group by
dept
range of e is employee
retrieve (e.dept,Note that the grouped column can be specified for each individual aggregate.
avg_salary = avg(e.salary by e.dept),
tot_salary = sum(e.salary by e.dept)
)
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 database"
"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.
Dave Page
On behalf of the PostgreSQL Core Team
http://archives.postgresql.org/pgsql-hackers/2010-04/msg00003.php
No comments:
Post a Comment