Re: [GENERAL] Count(*) throws error
От | Simon Riggs |
---|---|
Тема | Re: [GENERAL] Count(*) throws error |
Дата | |
Msg-id | 1184191176.4316.57.camel@ebony.site обсуждение исходный текст |
Ответы |
Re: [GENERAL] Count(*) throws error
Re: [GENERAL] Count(*) throws error |
Список | pgsql-hackers |
On Wed, 2007-07-11 at 17:42 -0400, Tom Lane wrote: > "Jasbinder Singh Bali" <jsbali@gmail.com> writes: > > I'm using the following statement in my plpgsql function > > > SELECT INTO no_rows COUNT(*) FROM tbl_concurrent; > > > I have decalred no_rows int4 and initialized it to zero > > > Running the function throws the following error: > > > ERROR: syntax error at or near "(" at character 13 > > QUERY: SELECT $1 (*) FROM tbl_concurrent > > I'll bet a nickel you have a local variable named "count" in that > function, and plpgsql is blindly trying to substitute its value into > the SQL query. The replacement of "COUNT" by " $1 " in the query > text is the tip-off. I came across a boat load of these the other day. Seems fairly naff that we substitute variables blindly. Seems like we could be slightly more friendly without too much bother: at least only substitute after the VALUES clause in INSERT. We really shouldn't substitute "var = var" to "$n = $n" either; am I right in thinking the latter would happen silently and cause potential error? -- Simon Riggs EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: