Re: How do I bump a row to the front of sort efficiently - Mailing list pgsql-general

From BladeOfLight16
Subject Re: How do I bump a row to the front of sort efficiently
Date
Msg-id CA+=1U=VvSGP_Ndt8DSgfcZijttKVwo9SamDNpBiESKrH+8Xosw@mail.gmail.com
Whole thread Raw
In response to How do I bump a row to the front of sort efficiently  (Sam Saffron <sam.saffron@gmail.com>)
Responses Re: How do I bump a row to the front of sort efficiently  (BladeOfLight16 <bladeoflight16@gmail.com>)
List pgsql-general
On Mon, Feb 2, 2015 at 1:16 AM, Sam Saffron <sam.saffron@gmail.com> wrote:
However, the contortions on the above query make it very un-ORM
friendly as I would need to define a view for it but would have no
clean way to pass limits and offsets in.

This is why ORMs are bad. They make hard problems much harder, and the only benefit is that they maybe make easy problems a little quicker. The cost/savings is heavily skewed toward the cost, since there's no upper bound on the cost and there is a pretty small lower bound on the savings. Micro-ORMs tend to do a better job of not shielding you from (or rather, getting in the way of) the SQL while still providing some good result-to-object translation. Whether even that is necessary depends on your language, though. (For example, in Python, psycopg2 has a built in way of spitting out namedtuples, which means you get result-to-object translation out of the box. That makes even a micro-ORM pretty unnecessary. On the other hand, a micro-ORM that does this well without blocking you from the SQL, such as PetaPOCO, is a boon in .NET.)

If you can, your best bet would probably be to find a way to get your ORM to execute raw SQL (with good parametrization to prevent injection attacks!!!!) and be done with it. It took me way too much experience fighting with an ORM on complicated queries to realize that.

pgsql-general by date:

Previous
From: BladeOfLight16
Date:
Subject: Re: oracle to postgres
Next
From: BladeOfLight16
Date:
Subject: Re: How do I bump a row to the front of sort efficiently