Commit 4d10a0cb authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Add support for NULL=NULL in keys (Used in GROUP BY optimization)

Add ISAM to Windows version
Fix of test results
Fixes for NULL keys in HEAP tables.
parent 7dd4eb71
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -451,3 +451,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
libmysqld/ha_innodb.cc
+3 −1
Original line number Diff line number Diff line
@@ -48121,10 +48121,12 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet
@item
Fixed bug in @code{GROUP BY BINARY column}
@item
Added support for @code{NULL} keys in HEAP tables.
@item
Use index for @code{ORDER BY} in queries of type:
@code{SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC,key_part2 DESC}
@code{SELECT * FROM t WHERE key_part1=1 ORDER BY key_part1 DESC,key_part2 DESC}
@item
Fixed bug in @code{FLUSH QUERY CACHE}.
@item
+2 −1
Original line number Diff line number Diff line
@@ -46,7 +46,8 @@ HP_INFO *heap_open(const char *name, int mode, uint keys, HP_KEYDEF *keydef,
      for (j=length=0 ; j < keydef[i].keysegs; j++)
      {
	length+=keydef[i].seg[j].length;
	if (keydef[i].seg[j].null_bit)
	if (keydef[i].seg[j].null_bit &&
	    !(keydef[i].flag & HA_NULL_ARE_EQUAL))
	  keydef[i].flag |= HA_NULL_PART_KEY;
      }
      keydef[i].length=length;
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ int heap_rkey(HP_INFO *info, byte *record, int inx, const byte *key)
{
  byte *pos;
  HP_SHARE *share=info->s;
  DBUG_ENTER("hp_rkey");
  DBUG_ENTER("heap_rkey");
  DBUG_PRINT("enter",("base: %lx  inx: %d",info,inx));

  if ((uint) inx >= share->keys)
+1 −1
Original line number Diff line number Diff line
@@ -238,7 +238,7 @@ int _hp_write_key(register HP_SHARE *info, HP_KEYDEF *keyinfo,
      _hp_movelink(pos,gpos,empty);
    }

    /* Check if dupplicated keys */
    /* Check if duplicated keys */
    if ((keyinfo->flag & HA_NOSAME) && pos == gpos &&
	(!(keyinfo->flag & HA_NULL_PART_KEY) ||
	 !hp_if_null_in_key(keyinfo, record)))
Loading