> With gcc 4 spreading, it seems like it's past time to do something about > all those signed-vs-unsigned-char warnings that it emits. (Translation: > now that I have to use gcc 4 regularly, I got annoyed enough to fix it > ;-)) > > I looked into it a little and determined that nearly all the warnings > were associated with the multibyte code. Outside the mb subsystem, > our code pretty much uses "char *" for strings, but inside mb it's > mostly "unsigned char *", which is needed because there are lots of > inequality comparisons in there. It seemed to me that the cleanest > fix was to change the external API of the mb subsystem to take and > return "char *", while still using "unsigned char *" internally. > The attached patch eliminates all signed-ness warnings in CVS tip > using this approach. It's kinda long and tedious, but straightforward, > and quite a lot of the changes simplify existing code by removing > casts that aren't needed anymore. > > Two questions for the list: > > 1. Can anyone think of a cleaner way to do this? > > 2. Is there objection to applying this patch now (ie, before beta3)? > It's not quite a bug fix, but I think it'll make it easier to find > bugs going forward.
For me, your patche seems to be a retrogression. In my understanding, the reason why PostgreSQL uses "char *" in many places is just it was designed in the old days when ASCII was the only charset in the world. -- SRA OSS, Inc. Japan Tatsuo Ishii ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match