~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/heap/hp_hash.c

  • Committer: Brian Aker
  • Date: 2008-08-10 04:50:31 UTC
  • Revision ID: brian@tangent.org-20080810045031-8ak1sgfsfh8y2jse
HeadĀ ulongĀ conversion.

Show diffs side-by-side

added added

removed removed

Lines of Context:
199
199
    Array index, in [0..maxlength)
200
200
*/
201
201
 
202
 
ulong hp_mask(ulong hashnr, ulong buffmax, ulong maxlength)
 
202
uint32_t hp_mask(uint32_t hashnr, uint32_t buffmax, uint32_t maxlength)
203
203
{
204
204
  if ((hashnr & (buffmax-1)) < maxlength) return (hashnr & (buffmax-1));
205
205
  return (hashnr & ((buffmax >> 1) -1));
229
229
 
230
230
        /* Calc hashvalue for a key */
231
231
 
232
 
ulong hp_hashnr(register HP_KEYDEF *keydef, register const uchar *key)
 
232
uint32_t hp_hashnr(register HP_KEYDEF *keydef, register const uchar *key)
233
233
{
234
234
  /*register*/ 
235
235
  uint32_t nr=1, nr2=4;
284
284
    {
285
285
      for (; pos < (uchar*) key ; pos++)
286
286
      {
287
 
        nr^=(ulong) ((((uint) nr & 63)+nr2)*((uint) *pos)) + (nr << 8);
 
287
        nr^=(uint32_t) ((((uint) nr & 63)+nr2)*((uint) *pos)) + (nr << 8);
288
288
        nr2+=3;
289
289
      }
290
290
    }
291
291
  }
292
 
  return((ulong) nr);
 
292
  return((uint32_t) nr);
293
293
}
294
294
 
295
295
        /* Calc hashvalue for a key in a record */
296
296
 
297
 
ulong hp_rec_hashnr(register HP_KEYDEF *keydef, register const uchar *rec)
 
297
uint32_t hp_rec_hashnr(register HP_KEYDEF *keydef, register const uchar *rec)
298
298
{
299
299
  uint32_t nr=1, nr2=4;
300
300
  HA_KEYSEG *seg,*endseg;
341
341
    {
342
342
      for (; pos < end ; pos++)
343
343
      {
344
 
        nr^=(ulong) ((((uint) nr & 63)+nr2)*((uint) *pos))+ (nr << 8);
 
344
        nr^=(uint32_t) ((((uint) nr & 63)+nr2)*((uint) *pos))+ (nr << 8);
345
345
        nr2+=3;
346
346
      }
347
347
    }
366
366
 * far, and works well on both numbers and strings.
367
367
 */
368
368
 
369
 
ulong hp_hashnr(register HP_KEYDEF *keydef, register const uchar *key)
 
369
uint32_t hp_hashnr(register HP_KEYDEF *keydef, register const uchar *key)
370
370
{
371
371
  /*
372
372
    Note, if a key consists of a combination of numeric and
374
374
    Making text columns work with NEW_HASH_FUNCTION
375
375
    needs also changes in strings/ctype-xxx.c.
376
376
  */
377
 
  ulong nr= 1, nr2= 4;
 
377
  uint32_t nr= 1, nr2= 4;
378
378
  HA_KEYSEG *seg,*endseg;
379
379
 
380
380
  for (seg=keydef->seg,endseg=seg+keydef->keysegs ; seg < endseg ; seg++)
421
421
 
422
422
        /* Calc hashvalue for a key in a record */
423
423
 
424
 
ulong hp_rec_hashnr(register HP_KEYDEF *keydef, register const uchar *rec)
 
424
uint32_t hp_rec_hashnr(register HP_KEYDEF *keydef, register const uchar *rec)
425
425
{
426
 
  ulong nr= 1, nr2= 4;
 
426
  uint32_t nr= 1, nr2= 4;
427
427
  HA_KEYSEG *seg,*endseg;
428
428
 
429
429
  for (seg=keydef->seg,endseg=seg+keydef->keysegs ; seg < endseg ; seg++)