Well for one thing, postgresql doesn't yet support cursors, and even if it did, I wouldn't blindly use a cursor, just to save myself the trouble of thinking about whether a query would return more than one row. Ususally, when you intend to get only one row back from a query, it's pretty easy to guarantee. Cursors are kind of clunky to use, so in general, I wouldn't use one unless there were no other way to get the result that I wanted.