Re: [PATCHES] Fix memcmp() with different sizes.

2004-02-03 Thread Kurt Roeckx
On Mon, Feb 02, 2004 at 09:27:46PM -0500, Tom Lane wrote:
 Kurt Roeckx [EMAIL PROTECTED] writes:
  -   if (memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 
  +   if (VARSIZE(re_array[i].cre_pat) == text_re_len 
  +   memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 
 
 This is not actually broken.  The first four bytes of what memcmp is
 comparing are the length, and so it'll fall out immediately anyway if
 the lengths differ.

That assumes the memcmp starts from the first char and not from
the last.  If it starts from the last you have undefined
behaviour.


Kurt


---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: [PATCHES] Fix memcmp() with different sizes.

2004-02-02 Thread Tom Lane
Kurt Roeckx [EMAIL PROTECTED] writes:
 - if (memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 
 + if (VARSIZE(re_array[i].cre_pat) == text_re_len 
 + memcmp(re_array[i].cre_pat, text_re, text_re_len) == 0 

This is not actually broken.  The first four bytes of what memcmp is
comparing are the length, and so it'll fall out immediately anyway if
the lengths differ.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org