Обсуждение: Question on confusing behavior
Today, I told someone the syntax for "count" without thinking, and got it wrong - and in so doing, I found some interesting behavior. select count('table.fieldname'); works. however... select count('table.fieldname') where table.fieldname='something'; not only barfs, it kills your connection to the back-end. Then... select count(table.fieldname) where table.fieldname='something'; works fine. So, if the field name to count is enclosed in ticks, it works if there is no where clause, but not if there is a where clause. Now I'm not an expert at SQL, so I realize that it could be because I used totally illegal syntax. But, then I'd think that postgres would barf consistantly. Anyone care to enlighten me as to what's going on? steve
> Today, I told someone the syntax for "count" without thinking, and > got it wrong - and in so doing, I found some interesting behavior. > > > select count('table.fieldname'); > > works. however... > > select count('table.fieldname') where table.fieldname='something'; Using the table.field in single-quotes makes it a string, and that is a strange query. Legally, you can do: select count(*) where table.fieldname='something'; select count(table.fieldname) where table.fieldname='something'; However, I see your point, and will add it to the TODO list: * SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026