LedgerSMB Dev Blog
ledgersmbdev.blogspot.com · Company blog · on HN since 2011
Chris Travers, of the LedgerSMB project, writes about PostgreSQL, object-relational features, Perl, and accounting software design.
What HN saysHN commenters point to his long series on PostgreSQL inheritance and object-relational modeling, though one finds its SQL-as-OO approach confusing or annoying.
22HN people shared it
6linked it in comments
53stories submitted
841story points
4 years agolast shared
2011people per year2026
Most-shared posts
- 1Introduction to PostgreSQL as Object-Relational Database Management System3 people · 5 points · first shared 2012 · discussion on HN
- 2In Praise of Perl 52 people · 127 points · first shared 2014 · 119 comments on HN
- 3A Software Architect's View of the Design of Double Entry Accounting (2012)2 people · 80 points · first shared 2012 · 25 comments on HN
- 4PostgreSQL: Table Inheritance – What's It Good For?2 people · 12 points · first shared 2019 · 1 comments on HN
- 5Which is worse when working on production databases? Being drunk or tired?2 people · 4 points · first shared 2023 · discussion on HN
- 6O/R modelling interlude: PostgreSQL vs MySQL2 people · 2 points · first shared 2012 · discussion on HN
- 7Intro to Tables as Classes in PostgreSQL2 people · 1 points · first shared 2012 · discussion on HN
- 8Homepage2 people · first shared 2011
- 9Underrated Features of PostgreSQL1 people · 185 points · first shared 2011 · 49 comments on HN
- 10PostgreSQL vs MySQL: an apples to oranges comparison1 people · 148 points · first shared 2012 · 67 comments on HN
- 11Why use Moose? A PostgreSQL perspective.1 people · 60 points · first shared 2012 · 10 comments on HN
- 12Design thoughts on next-gen PKI for better privacy1 people · 49 points · first shared 2013 · 5 comments on HN
- 13Application vs Database Programming1 people · 39 points · first shared 2012 · 33 comments on HN
- 14PostgreSQL Common Table Expressions and LedgerSMB1 people · 30 points · first shared 2012 · 6 comments on HN
- 15What Git got right and wrong1 people · 18 points · first shared 2016 · 2 comments on HN
What HN people wrote when they linked it
einhverfr · 2012-09-09
I am actually thinking of writing one. My blog (yes I am the author of the article, http://ledgersmbdev.blogspot.com) is basically running a fairly large series on these features.
The big thing to realize is that there are two aspects here: development efficiency and complexity cost on one hand, and db performance on the other. A lot of the O/R capabilities really do have a significant complexity cost and it is easy to code solutions that don't work very well performance-wise or otherwise.
In a bit over a week, I will have general recommendations out on the blog entry. As a brief preview:
1: table methods are generally good
2: nested storage is generally bad
3: table inheritance is frequently used for the wrong things. It is a very powerful technique if you think in terms of composition, but not so great if you think in terms of inheritance.
4: avoid to the extent you can putting tuples in columns. Postgres gets really weird in these cases.
porker · 2017-11-03
> I'm personally a little annoyed at PG's efforts to turn SQL into half an OO programming language (see http://ledgersmbdev.blogspot.com/2012/08/postgresql-or-model... for examples)
I read that link and didn't get it - has anyone a fuller explanation or other links to recommend?
jacques_chester · 2013-06-06
Chris Travers from the LedgerSMB project has done a lot of thinking about this topic on his blog.
http://ledgersmbdev.blogspot.com/
They use PL/pgSQL to provide a bunch of service interfaces, then have Perl that provides automatic service discovery and object generation. Basically ORM from the inside out.
gladiatr72 · 2023-04-09
Good post, but I do not understand how this involves with Postgres. Perhaps a link to a list thread or some other background might be included?
N/m. This answers my question
http://ledgersmbdev.blogspot.com/2023/03/the-coming-storm-geopolitics-…
(same blog, different entry)
jeffdavis · 2012-09-10
Regarding the inheritance features, he's been writing an extensive series on the subject recently:
http://ledgersmbdev.blogspot.com/2012/08/intro-to-postgresql-as-object…
(though he should provide forward/backward links in the posts -- as it stands you need to find the other parts in the archive links on the right)
zzzeek · 2017-11-03
If I was doing brand new development somewhere I'm sure I'd use Postgresql, since from a developer point of view it's the most consistent and flexible. While for the last few years I've worked way more with MySQL / MariaDB and at the moment the MySQL side of things is a bit more familiar to me, I still appreciate PG's vastly superior query planner and index features. Certainly in the SQLAlchemy world when i want to see how a database does something "correctly", Postgresql is where you go to see the "correct" way to do something (such as, the correct answer for "SELECT NULL IN (SELECT 1 WHERE 1=0)" - the answer is false, not NULL, or when I had to convince MariaDB developers, who just added real CHECK constraints in 10.2, that I should be able to drop a column that has a single-column CHECK constraint on it without first dropping the constraint, PG serves as the canonical example for "yes this is supposed to work").
I'm personally a little annoyed at PG's efforts to turn SQL into half an OO programming language (see http://ledgersmbdev.blogspot.com/2012/08/postgresql-or-modelling-part-… for examples), but for selfish reasons; features like these are meant as replacements for what you get from a tool like SQLAlchemy Core and the unusual syntaxes they have are also really hard to implement yet I continually get asked to implement more of them. These aren't reasons I wouldn't use Postgresql it's just this little cloud of "ugh" that hangs over me when I…