Thread

  1. Re: [SQL] Wierd stuff

    Tom Lane <tgl@sss.pgh.pa.us> — 1999-12-06T15:14:02Z

    Mario Jorge Nunes Filipe <mjnf@neptuno.sc.uevora.pt> writes:
    > Tom Lane wrote:
    >> Actually, I think that this may indeed be the root of the problem.
    >> I killed several bugs in cross-data-type joins a while back ... for
    >> example, IIRC pre-6.5 Postgres thought it could use hash joins for
    >> cross-data-type equality operators, but that doesn't work properly in
    >> general.  Mario, what does EXPLAIN show about how the join query is
    >> being done?
    
    > 	To awnser your question... EXPLAIN shows this:
    > sac=> explain select c.nome from aluno a, concelho c where
    > sac-> a.concelho_naturalidade=c.codigo and a.numero_aluno=13792;
    > NOTICE:  QUERY PLAN:
    
    > Hash Join  (cost=27.44 size=164 width=18)
    >  -> Seq Scan on c  (cost=13.16 size=308 width=16)
    >    -> Hash  (cost=0.00 size=0 width=0)
    >      -> Index Scan on a  (cost=2.05 size=2 width=2)
    
    Yup, that's what I suspected.  Hashing 2-byte and 4-byte integers
    doesn't deliver the same result --- at least not all the time, there
    are special cases such as zero.  So this explains all your observed
    misbehaviors.
    
    You can work around it for now by remaking the tables with consistent
    data types.
    
    			regards, tom lane
    
    
  2. Re: [SQL] Wierd stuff

    Mario Jorge Nunes Filipe <mjnf@neptuno.sc.uevora.pt> — 1999-12-07T09:53:51Z

    Tom Lane wrote:
     
    > Yup, that's what I suspected.  Hashing 2-byte and 4-byte integers
    > doesn't deliver the same result --- at least not all the time, there
    > are special cases such as zero.  So this explains all your observed
    > misbehaviors.
    > 
    > You can work around it for now by remaking the tables with consistent
    > data types.
    
    	OK! Thanks...
    -- 
            Mario Filipe 
            mjnf@uevora.pt
            http://neptuno.sc.uevora.pt/~mjnf