Thread

  1. 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. |
    `------------------+-----------------------------------------------'