Thread
-
Re: [BUGS] General Bug Report: empty SELECT WHEREs return error
Fomichev Michael <fomichev@null.ru> — 1999-06-23T19:54:45Z
On Wed, 23 Jun 1999, Unprivileged user wrote: > Your name : Austin Schutz > Your email address : tex@habit.com > > Category : runtime: back-end: SQL > Severity : serious > > Summary: empty SELECT WHEREs return error > > System Configuration > -------------------- > Operating System : SunOS 5.6 > > PostgreSQL version : 6.0 > > Compiler used : gcc 2.8.1 > > Problem Description: > -------------------- > select * from foo where bar = "baz" > produces "ERROR: attribute 'hna' not found" > if there is no row with bar == "baz". > Rather than errorring an empty set should be returned. > This is important for cross-db-portable applications > which need to know whether a legitimate query returns > no rows vs. a 'bad' query. > It would be possible to test the error response for > being the specific 'attribute not found' error, but this is > extremely un-portable behavior (code would only work on > postgres) and further would mask cases where column bar > doesn't exist and the 'attribute not found' error is > correct. > > -------------------------------------------------------------------------- > > Test Case: > ---------- > create table foo (bar char(1)); > select * from foo where ( bar = "baz" ); > ERROR: attribute 'baz' not found > You should use a single quotes: create table foo (bar char(1)); select * from foo where bar='baz'; bar --- (0 rows) @------------------+-----------------------------------------------@ | Fomichev Michail | The Government of Kamchatka region. | |<fomichev@null.ru>| The Labour and Social Development Department. | `------------------+-----------------------------------------------'