void decode(uint16 *dest, const uchar *source) { MRN_DBUG_ENTER_FUNCTION(); #ifdef MRN_DEST_IS_POINTER ushortget(dest, source); #else uint16 value; ushortget(value, source); *dest = value; #endif DBUG_VOID_RETURN; };
void _nisam_print_key(FILE *stream, register N_KEYSEG *keyseg, const uchar *key) { int flag; short int s_1; long int l_1; float f_1; double d_1; uchar *end; VOID(fputs("Key: \"",stream)); flag=0; for (; keyseg->base.type ;keyseg++) { if (flag++) VOID(putc('-',stream)); end= (uchar*) key+ keyseg->base.length; switch (keyseg->base.type) { case HA_KEYTYPE_BINARY: if (!(keyseg->base.flag & HA_SPACE_PACK) && keyseg->base.length == 1) { /* packed binary digit */ VOID(fprintf(stream,"%d",(uint) *key++)); break; } /* fall through */ case HA_KEYTYPE_TEXT: case HA_KEYTYPE_NUM: if (keyseg->base.flag & HA_SPACE_PACK) { VOID(fprintf(stream,"%.*s",(int) *key,key+1)); key+= (int) *key+1; } else { VOID(fprintf(stream,"%.*s",(int) keyseg->base.length,key)); key=end; } break; case HA_KEYTYPE_INT8: VOID(fprintf(stream,"%d",(int) *((signed char*) key))); key=end; break; case HA_KEYTYPE_SHORT_INT: shortget(s_1,key); VOID(fprintf(stream,"%d",(int) s_1)); key=end; break; case HA_KEYTYPE_USHORT_INT: { ushort u_1; ushortget(u_1,key); VOID(fprintf(stream,"%u",(uint) u_1)); key=end; break; } case HA_KEYTYPE_LONG_INT: longget(l_1,key); VOID(fprintf(stream,"%ld",l_1)); key=end; break; case HA_KEYTYPE_ULONG_INT: longget(l_1,key); VOID(fprintf(stream,"%lu",(ulong) l_1)); key=end; break; case HA_KEYTYPE_INT24: VOID(fprintf(stream,"%ld",(long) sint3korr(key))); key=end; break; case HA_KEYTYPE_UINT24: VOID(fprintf(stream,"%ld",(long) uint3korr(key))); key=end; break; case HA_KEYTYPE_FLOAT: bmove((byte*) &f_1,(byte*) key,(int) sizeof(float)); VOID(fprintf(stream,"%g",(double) f_1)); key=end; break; case HA_KEYTYPE_DOUBLE: doubleget(d_1,key); VOID(fprintf(stream,"%g",d_1)); key=end; break; #ifdef HAVE_LONG_LONG case HA_KEYTYPE_LONGLONG: { char buff[21]; longlong tmp; longlongget(tmp,key); longlong2str(tmp,buff,-10); VOID(fprintf(stream,"%s",buff)); key=end; break; } case HA_KEYTYPE_ULONGLONG: { char buff[21]; longlong tmp; longlongget(tmp,key); longlong2str(tmp,buff,10); VOID(fprintf(stream,"%s",buff)); key=end; break; } #endif default: break; /* This never happens */ } } VOID(fputs("\n",stream)); return; } /* print_key */