~jlukas79/+junk/mysql-server

« back to all changes in this revision

Viewing changes to storage/myisam/mi_test2.c

manual merge 6.0-main --> 6.0-bka-review

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#ifndef USE_MY_FUNC             /* We want to be able to dbug this !! */
19
19
#define USE_MY_FUNC
20
20
#endif
21
 
#ifdef DBUG_OFF
22
 
#undef DBUG_OFF
23
 
#endif
24
 
#ifndef SAFEMALLOC
25
 
#define SAFEMALLOC
26
 
#endif
27
21
#include "myisamdef.h"
28
22
#include <m_ctype.h>
29
23
#include <my_bit.h>
43
37
                     uchar *record,uchar *key);
44
38
 
45
39
static  int verbose=0,testflag=0,
46
 
            first_key=0,async_io=0,key_cacheing=0,write_cacheing=0,locking=0,
 
40
            first_key=0,async_io=0,key_cacheing=0,write_cacheing=0,do_locking=0,
47
41
            rec_pointer_size=0,pack_fields=1,use_log=0,silent=0,
48
42
            opt_quick_mode=0;
49
43
static int pack_seg=HA_SPACE_PACK,pack_type=HA_PACK_KEY,remove_count=-1,
188
182
  if (use_blob)
189
183
  {
190
184
    recinfo[6].type=FIELD_BLOB;
191
 
    recinfo[6].length=4+mi_portable_sizeof_char_ptr;
 
185
    recinfo[6].length=4+portable_sizeof_char_ptr;
192
186
    recinfo[6].null_bit=0;
193
187
    recinfo[6].null_pos=0;
194
188
  }
215
209
                &create_info,create_flag))
216
210
    goto err;
217
211
  if (use_log)
218
 
    mi_log(1);
 
212
    mi_log(MI_LOG_ACTION_OPEN, MI_LOG_LOGICAL, NULL, NULL);
219
213
  if (!(file=mi_open(filename,2,HA_OPEN_ABORT_IF_LOCKED)))
220
214
    goto err;
221
215
  if (!silent)
222
216
    printf("- Writing key:s\n");
223
217
  if (key_cacheing)
224
218
    init_key_cache(dflt_key_cache,key_cache_block_size,key_cache_size,0,0);
225
 
  if (locking)
 
219
  if (do_locking)
226
220
    mi_lock_database(file,F_WRLCK);
227
221
  if (write_cacheing)
228
222
    mi_extra(file,HA_EXTRA_WRITE_CACHE,0);
334
328
      if (use_blob)
335
329
      {
336
330
        if (i & 1)
337
 
          put_blob_in_record(record+blob_pos,&blob_buffer);
 
331
          put_blob_in_record(record2+blob_pos,&blob_buffer);
338
332
        else
339
 
          bmove(record+blob_pos,read_record+blob_pos,8);
 
333
          bmove(record2+blob_pos,read_record+blob_pos,8);
340
334
      }
341
335
      if (mi_update(file,read_record,record2))
342
336
      {
606
600
    if (mi_rsame(file,read_record2,(int) i)) goto err;
607
601
    if (bcmp(read_record,read_record2,reclength) != 0)
608
602
    {
609
 
      printf("is_rsame didn't find same record\n");
 
603
      printf("mi_rsame didn't find same record\n");
610
604
      goto end;
611
605
    }
612
606
  }
657
651
      sprintf((char*) key2,"%6d",k);
658
652
 
659
653
      min_key.key= key;
660
 
      min_key.length= USE_WHOLE_KEY;
 
654
      min_key.keypart_map= HA_WHOLE_KEY;
661
655
      min_key.flag= HA_READ_AFTER_KEY;
662
656
      max_key.key= key2;
663
 
      max_key.length= USE_WHOLE_KEY;
 
657
      max_key.keypart_map= HA_WHOLE_KEY;
664
658
      max_key.flag= HA_READ_BEFORE_KEY;
665
659
      range_records= mi_records_in_range(file, 0, &min_key, &max_key);
666
660
      records=0;
713
707
    printf("- mi_extra(CACHE) + mi_rrnd.... + mi_extra(NO_CACHE)\n");
714
708
  if (mi_reset(file) || mi_extra(file,HA_EXTRA_CACHE,0))
715
709
  {
716
 
    if (locking || (!use_blob && !pack_fields))
 
710
    if (do_locking || (!use_blob && !pack_fields))
717
711
    {
718
712
      puts("got error from mi_extra(HA_EXTRA_CACHE)");
719
713
      goto end;
780
774
      {
781
775
        ulong blob_length,pos;
782
776
        uchar *ptr;
783
 
        longget(blob_length,read_record+blob_pos+4);
784
 
        ptr=(uchar*) blob_length;
785
 
        longget(blob_length,read_record+blob_pos);
 
777
        memcpy_fixed(&ptr, read_record+blob_pos+4, sizeof(ptr));
 
778
        blob_length= uint4korr(read_record+blob_pos);
786
779
        for (pos=0 ; pos < blob_length ; pos++)
787
780
        {
788
781
          if (ptr[pos] != (uchar) (blob_length+pos))
834
827
      puts("Write cacheing used");
835
828
    if (write_cacheing)
836
829
      puts("quick mode");
837
 
    if (async_io && locking)
 
830
    if (async_io && do_locking)
838
831
      puts("Asyncron io with locking used");
839
 
    else if (locking)
 
832
    else if (do_locking)
840
833
      puts("Locking used");
841
834
    if (use_blob)
842
835
      puts("blobs used");
862
855
err:
863
856
  printf("got error: %d when using MyISAM-database\n",my_errno);
864
857
  if (file)
865
 
    VOID(mi_close(file));
 
858
    (void) mi_close(file);
866
859
  return(1);
867
860
} /* main */
868
861
 
905
898
      use_log=1;
906
899
      break;
907
900
    case 'L':
908
 
      locking=1;
 
901
      do_locking=1;
909
902
      break;
910
903
    case 'A':                           /* use asyncron io */
911
904
      async_io=1;