Tom Lane <[EMAIL PROTECTED]> writes: > Michael seems to feel that the tuple count should be nonzero if any > of the replacement operations did anything at all. This does not > make a lot of sense at the command tag level ("UPDATE 4" might not > mean that 4 tuples were updated) but if you look at the definition > of PQcmdTuples ("returns the number of rows affected by the SQL > command") it's not so unreasonable. And I can see the point of > wanting to know whether anything happened.
Close. It's not so much that I want to know exactly what happened, it's that I want to know that if PostgreSQL says nothing happened, then I can be sure that nothing happened, rather than being told that nothing happened when something happened, and vice versa. In fact, my suggestion---which might suffer from issues that I am not aware of, perhaps the ones that led to the patch in the first place---would be that, given ambiguity, have the system return something that would cause PQcmdTuples to return an empty string (I'm assuing this would be a result string with no numbers attached at all). It is documented, after all, as being the return value when the system cannot determine an otherwise correct number, and all of the code I looked at would, I believe, cope gracefully with it, returning what I'm guessing (except in the Perl case, where I'm sure) is a sentinel value indicating, "it worked, but I have no idea how many tuples were involved". But I'm not wedded to that---I just don't want to get an answer back that might lead me off into the woods. As for the issue of whether the tag is the same or not, I am utterly pragmatic---I don't use it, and don't really have a way to get to it from the interfaces I use, so I think the best option is probably something where the rules to describe it are straightforward to minimize confusion and support issues. And it should be documented appropriately. I mean, even when this is resolved, we should probably be putting something in the documentation that says that PQcmdTuples can really only really be depended upon as a tri-state value: 0 ("nothing happened"), >0 ("something happened"), empty string ("heck if I know"). Mike. ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org