Thread

  1. scan.c:900: warning: ... postgresql-7.1

    Limin Liu <limin@pumpkinnet.com> — 2001-04-17T18:56:36Z

    Does anyone get the same warning messages from postgresql-7.1?
    
    It's under src/backend/parser...
    
    scan.c: In function `base_yylex':
    scan.c:900: warning: `yy_cp' might be used uninitialized in this
    function
    scan.c:900: warning: `yy_bp' might be used uninitialized in this
    function
    
    Here is the scan.c line 900
    --
    register char *yy_cp, *yy_bp;
    --
    
    In my previous postgres copy (7.1 beta 4), I did find the initialization
    for these two variables in scan.c.
    
    Can anyone please tell me why the init. is removed?  Thank you very
    much.
    
    
    --
    LM Liu
    
    
    
    
  2. Re: scan.c:900: warning: ... postgresql-7.1

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-04-17T20:36:44Z

    Limin Liu <limin@pumpkinnet.com> writes:
    > Does anyone get the same warning messages from postgresql-7.1?
    > It's under src/backend/parser...
    
    > scan.c: In function `base_yylex':
    > scan.c:900: warning: `yy_cp' might be used uninitialized in this
    > function
    > scan.c:900: warning: `yy_bp' might be used uninitialized in this
    > function
    
    I get no such warning.  Have you regenerated scan.c locally, and if so
    what version of flex did you use?
    
    			regards, tom lane
    
    
  3. Re: scan.c:900: warning: ... postgresql-7.1

    Limin Liu <limin@pumpkinnet.com> — 2001-04-17T21:11:38Z

    > > scan.c: In function `base_yylex':
    > > scan.c:900: warning: `yy_cp' might be used uninitialized in this
    > > function
    > > scan.c:900: warning: `yy_bp' might be used uninitialized in this
    > > function
    >
    > I get no such warning.  Have you regenerated scan.c locally, and if so
    
    No, I didn't.  I un-tar the postgresql-7.1.tar.gz again and the scan.c
    line 900 shows no initialization.
    
    
    >
    > what version of flex did you use?
    >
    
    I have
    flex version 2.5.4
    
    Thanx
    
    
    --
    LM Liu
    
    
    
    
  4. Re: scan.c:900: warning: ... postgresql-7.1

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-04-17T21:23:44Z

    Limin Liu <limin@pumpkinnet.com> writes:
    >> I get no such warning.  Have you regenerated scan.c locally, and if so
    
    > No, I didn't.  I un-tar the postgresql-7.1.tar.gz again and the scan.c
    > line 900 shows no initialization.
    
    No, but it doesn't need to.  Both variables are assigned before first
    use, as even an extremely stupid compiler should be able to figure out.
    
    What compiler version are you using, and with what command-line switches?
    
    			regards, tom lane
    
    
  5. Re: scan.c:900: warning: ... postgresql-7.1

    Limin Liu <limin@pumpkinnet.com> — 2001-04-17T22:03:36Z

    > No, but it doesn't need to.  Both variables are assigned before first
    > use, as even an extremely stupid compiler should be able to figure out.
    
    :-) I agree.
    
    >
    > What compiler version are you using, and with what command-line switches?
    >
    
    Here is what I have
    % gcc -v
    Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
    gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
    
    I believe this compiler is not that old.
    
    After I un-tar the .gz, I run ./configure with prefix then gmake.  That's
    it.
    
    I first see warning in lex.Int_yy.c, than scan.c.    Here are those message,
    hope this can help.
    ======================
    gmake[3]: Entering directory `/tmp/tmp/postgresql-7.1/src/backend/bootstrap'
    
    gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-error
    -I../../../src/include   -c
    -o bootparse.o bootparse.c
    gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-error
    -I../../../src/include   -c
    -o bootscanner.o bootscanner.c
    lex.Int_yy.c: In function `Int_yylex':
    lex.Int_yy.c:689: warning: `Int_yy_cp' might be used uninitialized in this
    function
    lex.Int_yy.c:689: warning: `Int_yy_bp' might be used uninitialized in this
    function
         :
    gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-error
    -I../../../src/include   -c
    -o scan.o scan.c
    scan.c: In function `base_yylex':
    scan.c:900: warning: `yy_cp' might be used uninitialized in this function
    scan.c:900: warning: `yy_bp' might be used uninitialized in this function
         :
    pgc.c: In function `yylex':
    pgc.c:1243: warning: label `find_rule' defined but not used
    pgc.c:1178: warning: `yy_cp' might be used uninitialized in this function
    pgc.c:1178: warning: `yy_bp' might be used uninitialized in this function
    pgc.c: At top level:
    pgc.c:3091: warning: `yy_flex_realloc' defined but not used
    ======================
    configure does find flex and bison...
       :
    checking for flex... /usr/bin/flex
    checking whether ln -s works... yes
    checking for ld used by GCC... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for ranlib... ranlib
    checking for lorder... no
    checking for tar... /bin/tar
    checking for perl... perl
    checking for bison... bison -y
      :
    
    Everything looks fine to me and the previous copy (7.1 beta4) doesn't give
    me any warning message.  That's why I am curious what's going on...
    
    Thanks for your help
    
    --
    LM Liu
    
    
    
    
  6. Re: scan.c:900: warning: ... postgresql-7.1

    Tom Lane <tgl@sss.pgh.pa.us> — 2001-04-17T22:50:39Z

    Limin Liu <limin@pumpkinnet.com> writes:
    >> What compiler version are you using, and with what command-line switches?
    
    > % gcc -v
    > Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
    > gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
    
    > I believe this compiler is not that old.
    
    Two years is a long time... I have been using gcc 2.95.2 until about two
    weeks ago, when I updated to 2.95.3.  Neither of them complain about
    this file, and I have not heard any reports of complaints from other
    people about it either.
    
    > Everything looks fine to me and the previous copy (7.1 beta4) doesn't give
    > me any warning message.  That's why I am curious what's going on...
    
    There were some irrelevant-looking changes in scan.l between beta4 and
    release, which perhaps could have triggered this glitch.
    
    Actually, what's even more interesting is that you get the same bogus
    warning messages from bootscanner.c.  I presume you weren't seeing that
    before, either?  bootscanner.l has not changed (except for a
    copyright-notice update) since 7.1beta1.  It's hard to draw any other
    conclusion than that something has gone wrong with your compiler
    installation.  Is it possible your disk dropped a bit, or something
    like that?
    
    			regards, tom lane
    
    
  7. Re: scan.c:900: warning: ... postgresql-7.1

    Limin Liu <limin@pumpkinnet.com> — 2001-04-17T22:54:55Z

    > Two years is a long time... I have been using gcc 2.95.2 until about two
    > weeks ago, when I updated to 2.95.3.  Neither of them complain about
    > this file, and I have not heard any reports of complaints from other
    > people about it either.
    >
    
    I think I will update my compiler, since I have no clue some to answer your
    following question!  :-)
    
    >
    > installation.  Is it possible your disk dropped a bit, or something
    > like that?
    >
    
    Thank you very much
    
    --
    LM Liu
    
    
    
    
  8. Need help with query

    Kevin Heflin <kheflin@shreve.net> — 2001-04-17T23:49:19Z

    Don't know if this would be the correct place to ask this. We have a 
    postgresql server running version 6.5.3
    It hosts a 100 or so different databases, and performs just great. I do 
    however have one query which takes about 20 seconds to complete. The 
    database only has 200-300 records. Don't know much about SQL other than 
    simple selects and inserts. I'm the one who created the query in 
    question, and even today when I look at it, I'm not sure I understand 
    it, but it gives us the results we want, it's just very slow.
    
    I'm sure someone with some SQL know-how could probably shorten this 
    query down some. But it's way over my head.
    
    Basically I've got a database with these tables:
    client (list of clients)
    project (each project belongs to a client)
    subproject (each subproject belongs to a project)
    status (each project has a status)
    users (each project and subproject are assigned to a user)
    timelog (each timelog record indicates time worked on a particular 
    subproject and who worked on it)
    
    A sample row would look like this:
    
    
    project_id|project_title|clientid|status|percentcomplete|duedate   
    |usersid|client_id|name       
    |users_id|users_name|status_id|status_name|hoursworked
    ----------+-------------+--------+------+---------------+----------+-------+
    ---------+-----------+--------+----------+---------+-----------+-----------
            143|project 1    |      79|     3|            
    100|04-06-2001|      8|       79|Client Name|       8|     Kevin|        
    3|status     |          1
    
    
    
    The query is below. Again if this is not the appropriate list for such a 
    question, my apologies.
    
    Kevin
    
    
    *******************
    SELECT
    p1.project_id, p1.project_title, p1.clientid, p1.status, 
    p1.percentcomplete, p1.duedate, p1.usersid,
    c2.client_id, c2.name,
    u3.users_id, u3.users_name,
    s4.status_id, s4.status_name,
    sum(case when t.jobid=s.subproject_id then t.timespent else 0::float4 
    end) as hoursworked
    
    FROM
    project p1, client c2, users u3, status s4, timelog t, subproject s
    
    WHERE
    (s4.status_id=2 OR s4.status_id=3) AND
    (c2.client_id=p1.clientid) AND (u3.users_id=p1.usersid) AND
    (s4.status_id=p1.status) AND (p1.project_id=s.projectid)
    
    GROUP BY
    p1.project_id, p1.project_title, p1.clientid, p1.status, 
    p1.percentcomplete, p1.duedate, p1.usersid,
    c2.client_id, c2.name, u3.users_id, u3.users_name, s4.status_id, 
    s4.status_name
    
    UNION SELECT
    p1.project_id, p1.project_title, p1.clientid, p1.status, 
    p1.percentcomplete, p1.duedate, p1.usersid,
    c2.client_id, c2.name,
    u3.users_id, u3.users_name,
    s4.status_id, s4.status_name,
    0 as hoursworked
    
    FROM
    project p1,client c2,users u3,status s4, subproject s
    
    WHERE
    (s4.status_id=2 OR s4.status_id=3) AND
    (c2.client_id=p1.clientid) AND (u3.users_id=p1.usersid) AND
    (s4.status_id=p1.status) AND
    
    NOT EXISTS
    (Select s.subproject_id from subproject s where 
    s.projectid=p1.project_id)
    
    GROUP BY
    p1.project_id, p1.project_title, p1.clientid, p1.status, 
    p1.percentcomplete, p1.duedate, p1.usersid,
    c2.client_id, c2.name, u3.users_id, u3.users_name, s4.status_id, 
    s4.status_name
    
    ORDER BY p1.project_title
    
    
  9. Re: Need help with query

    Joel Burton <jburton@scw.org> — 2001-04-18T01:33:40Z

    On Tue, 17 Apr 2001, Kevin Heflin wrote:
    
    > Don't know if this would be the correct place to ask this. We have a 
    > postgresql server running version 6.5.3
    > It hosts a 100 or so different databases, and performs just great. I do 
    > however have one query which takes about 20 seconds to complete. The 
    > database only has 200-300 records. Don't know much about SQL other than 
    > simple selects and inserts. I'm the one who created the query in 
    > question, and even today when I look at it, I'm not sure I understand 
    > it, but it gives us the results we want, it's just very slow.
    > 
    > I'm sure someone with some SQL know-how could probably shorten this 
    > query down some. But it's way over my head.
    > 
    > Basically I've got a database with these tables:
    > client (list of clients)
    > project (each project belongs to a client)
    > subproject (each subproject belongs to a project)
    > status (each project has a status)
    > users (each project and subproject are assigned to a user)
    > timelog (each timelog record indicates time worked on a particular 
    > subproject and who worked on it)
    > 
    > A sample row would look like this:
    > 
    > 
    > project_id|project_title|clientid|status|percentcomplete|duedate   
    > |usersid|client_id|name       
    > |users_id|users_name|status_id|status_name|hoursworked
    > ----------+-------------+--------+------+---------------+----------+-------+
    > ---------+-----------+--------+----------+---------+-----------+-----------
    >         143|project 1    |      79|     3|            
    > 100|04-06-2001|      8|       79|Client Name|       8|     Kevin|        
    > 3|status     |          1
    
    Kevin --
    
    Looking quickly at your problem, I have one or two ideas, but need to play
    for a few minutes.
    
    Can you post a schema and a small amount of data?
    
    -- 
    Joel Burton   <jburton@scw.org>
    Director of Information Systems, Support Center of Washington