>Description:

    It appears that if a column generated by a select is
    a sum of variables generated in other columns of the
    select (see example below!), the column will have a
    bogus result if the select is 'DISTINCT'.  If the
    DISTINCT keyword is dropped, the column is generated
    properly, even in a case where the output is no changed
    by specifying DISTINCT.

>How-To-Repeat:
 
    CREATE TABLE source (
        i int not null,
        v int not null,
        index (i)
    );
     
    insert into source values (1,1);
    insert into source values (1,3);
    insert into source values (2,1);
     
    create table joinkeys (
        i int not null,
        unique (i)
    );
     
    insert into joinkeys
    select
    distinct
        i
    from source;
     
    select * from joinkeys;
     
    # This select is actually an "insert into X select" in the
    # production code, but that part isn't necessary to see the
    # problem.

    select
    distinct
        joinkeys.i,
        @vv1:=if(sv1.i,1,0),
        @vv2:=if(sv2.i,1,0),
        @vv3:=if(sv3.i,1,0),
        @vv1+@vv2+@vv3
    from
        joinkeys
        left join source as sv1 on sv1.i=joinkeys.i and sv1.v=1
        left join source as sv2 on sv2.i=joinkeys.i and sv2.v=2
        left join source as sv3 on sv3.i=joinkeys.i and sv3.v=3
    ;

>Fix:
        Sorry, I haven't a clue!  In the SQL I'm attempting to
        optimize (inherited code) I don't actually need the DISTINCT,
        but had tried using it and noticed this problem.

>Submitter-Id:  <submitter ID>
>Originator:    Gary Shea
>Organization:
    GTS Design Consulting
>MySQL support: licence
>Synopsis:      Problem with variable-generated SELECT column with DISTINCT
>Severity:      
>Priority:      
>Category:      mysql
>Class:         sw-bug
>Release:       mysql-3.23.33 (Source distribution)

>Environment:
System: FreeBSD eggther.videoaxs.com 4.2-STABLE FreeBSD 4.2-STABLE #1: Tue Jan 30 
14:13:24 GMT 2001     [EMAIL PROTECTED]:/usr/src/sys/compile/EGGTHER  i386


Some paths:  /usr/bin/perl /usr/bin/make /usr/local/bin/gmake /usr/bin/gcc /usr/bin/cc
GCC: Using builtin specs.
gcc version 2.95.2 19991024 (release)
Compilation info: CC='cc'  CFLAGS='-O -pipe'  CXX='c++'  CXXFLAGS='-O -pipe 
-felide-constructors -fno-rtti -fno-exceptions'  LDFLAGS=''
LIBC: 
-r--r--r--  1 root  wheel  1169390 Jan 30 05:11 /usr/lib/libc.a
lrwxr-xr-x  1 root  wheel  9 Jan 30 05:11 /usr/lib/libc.so -> libc.so.4
-r--r--r--  1 root  wheel  559484 Jan 30 05:11 /usr/lib/libc.so.4
Configure command: ./configure  --localstatedir=/var/db/mysql --without-perl 
--without-debug --without-readline --without-bench --with-mit-threads=no 
--with-libwrap --with-low-memory --enable-assembler --prefix=/usr/local 
i386--freebsd4.2
Perl: This is perl, version 5.005_03 built for i386-freebsd

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to