Thread

  1. [Patch] Fix enum type mismatch

    Zdenek Kotala <zdenek.kotala@sun.com> — 2009-11-13T15:29:00Z

    Attached patch fixed following warning:
    
    "../../../src/include/nodes/parsenodes.h", line 487: warning: enumerator
    value overflows INT_MAX (2147483647)
    
    The reason is clear, enum is int not unsigned.
    
    It is short fix, but I'm thinking about enum conversion to #define. We
    use e.g. in the same file.
    
    60  typedef uint32 AclMode;	/* a bitmask of privilege bits */
    61
    62  #define ACL_INSERT		(1<<0)	/* for relations */
    63  #define ACL_SELECT		(1<<1)
    64  #define ACL_UPDATE		(1<<2)
    65  #define ACL_DELETE		(1<<3)
    66  #define ACL_TRUNCATE	(1<<4)
    67  #define ACL_REFERENCES	(1<<5)
    68  #define ACL_TRIGGER		(1<<6)
    
    	Zdenek
    
  2. Re: [Patch] Fix enum type mismatch

    Tom Lane <tgl@sss.pgh.pa.us> — 2009-11-13T23:45:06Z

    Zdenek Kotala <Zdenek.Kotala@Sun.COM> writes:
    > Attached patch fixed following warning:
    > "../../../src/include/nodes/parsenodes.h", line 487: warning: enumerator
    > value overflows INT_MAX (2147483647)
    
    > The reason is clear, enum is int not unsigned.
    
    I think the compiler is entitled to assume either, actually.
    But your fix is good either way.  Applied.
    
    			regards, tom lane