home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / mysql / mysql-3.23.28g-win-source.exe / myisammrg / myrg_info.c < prev    next >
C/C++ Source or Header  |  2000-08-31  |  2KB  |  60 lines

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.    
  3.    This program is free software; you can redistribute it and/or modify
  4.    it under the terms of the GNU General Public License as published by
  5.    the Free Software Foundation; either version 2 of the License, or
  6.    (at your option) any later version.
  7.    
  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.
  12.    
  13.    You should have received a copy of the GNU General Public License
  14.    along with this program; if not, write to the Free Software
  15.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  16.  
  17. #include "mymrgdef.h"
  18.  
  19. ulonglong myrg_position(MYRG_INFO *info)
  20. {
  21.   MYRG_TABLE *current_table;
  22.  
  23.   if (!(current_table = info->current_table) &&
  24.       info->open_tables != info->end_table)
  25.     current_table = info->open_tables;
  26.   return  current_table ?
  27.     current_table->table->lastpos + current_table->file_offset :
  28.     ~(ulonglong) 0;
  29. }
  30.  
  31.     /* If flag != 0 one only gets pos of last record */
  32.  
  33. int myrg_status(MYRG_INFO *info,register MYMERGE_INFO *x,int flag)
  34. {
  35.   MYRG_TABLE *current_table;
  36.   DBUG_ENTER("myrg_status");
  37.  
  38.   if (!(current_table = info->current_table) &&
  39.       info->open_tables != info->end_table)
  40.     current_table = info->open_tables;
  41.   x->recpos  = info->current_table ?
  42.     info->current_table->table->lastpos + info->current_table->file_offset :
  43.       (ulong) -1L;
  44.   if (flag != HA_STATUS_POS)
  45.   {
  46.     x->records     = info->records;
  47.     x->deleted     = info->del;
  48.     x->data_file_length = info->data_file_length;
  49.     x->reclength  = info->reclength;
  50.     if (current_table)
  51.       x->errkey  = current_table->table->errkey;
  52.     else
  53.     {                        /* No tables in MRG */
  54.       x->errkey=0;
  55.     }
  56.     x->options     = info->options;
  57.   }
  58.   DBUG_RETURN(0);
  59. }
  60.