~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/myisam/mi_cache.cc

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
   You should have received a copy of the GNU General Public License
13
13
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
15
15
 
16
16
/*
17
17
  Functions for read record cacheing with myisam
33
33
*/
34
34
 
35
35
 
36
 
#include "myisamdef.h"
 
36
#include "myisam_priv.h"
37
37
 
38
38
#include <algorithm>
39
39
 
40
40
using namespace std;
41
 
 
42
 
 
43
 
int _mi_read_cache(IO_CACHE *info, unsigned char *buff, my_off_t pos, uint32_t length,
 
41
using namespace drizzled;
 
42
 
 
43
 
 
44
int _mi_read_cache(internal::IO_CACHE *info, unsigned char *buff, internal::my_off_t pos, uint32_t length,
44
45
                   int flag)
45
46
{
46
47
  uint32_t read_length,in_buff_length;
47
 
  my_off_t offset;
 
48
  internal::my_off_t offset;
48
49
  unsigned char *in_buff_pos;
49
50
 
50
51
  if (pos < info->pos_in_file)
51
52
  {
52
53
    read_length=length;
53
 
    if ((my_off_t) read_length > (my_off_t) (info->pos_in_file-pos))
 
54
    if ((internal::my_off_t) read_length > (internal::my_off_t) (info->pos_in_file-pos))
54
55
      read_length=(uint) (info->pos_in_file-pos);
55
56
    info->seek_not_done=1;
56
57
    if (my_pread(info->file,buff,read_length,pos,MYF(MY_NABP)))
61
62
    buff+=read_length;
62
63
  }
63
64
  if (pos >= info->pos_in_file &&
64
 
      (offset= (my_off_t) (pos - info->pos_in_file)) <
65
 
      (my_off_t) (info->read_end - info->request_pos))
 
65
      (offset= (internal::my_off_t) (pos - info->pos_in_file)) <
 
66
      (internal::my_off_t) (info->read_end - info->request_pos))
66
67
  {
67
68
    in_buff_pos=info->request_pos+(uint) offset;
68
69
    in_buff_length= min(length, (uint32_t) (info->read_end-in_buff_pos));
98
99
  if (!(flag & READING_HEADER) || (int) read_length == -1 ||
99
100
      read_length+in_buff_length < 3)
100
101
  {
101
 
    if (!my_errno || my_errno == -1)
102
 
      my_errno=HA_ERR_WRONG_IN_RECORD;
 
102
    if (!errno || errno == -1)
 
103
      errno=HA_ERR_WRONG_IN_RECORD;
103
104
    return(1);
104
105
  }
105
106
  memset(buff+read_length, 0,