I started Doze to solve a number of problems I had, when doing import and data processing projects. I often need to write complex queries, and change them on-the-fly, based on input data. Most ORMs do a very poor job of this, as they aren't very flexible, and tend to generate poor queries, and I would often run into performance and memory consumption problems when using one. Doze solves this with a low memory profile, support for Server Side and Unbuffered Cursors, Asynchronous Connection support, and full control over generated SQL.

Doze aims to support the entirity of SQL's DML layer via an API, as well as PostgreSQL extensions to it. It currently has full support for Joins, Subqueries, and Common Table Expressions. Support for Writable Common Table Expressions is also in the works.

Currently, support for inspecting database relations is only preliminary, but a lot of work has gone into getting it production ready in recent months.

Doze on GitHub

©2011 Cameron Eure. All rights reserved.