~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/myisam/mi_rprev.c

  • Committer: Brian Aker
  • Date: 2009-02-21 00:18:15 UTC
  • Revision ID: brian@tangent.org-20090221001815-x20e8h71e984lvs1
Completion (?) of uint conversion.

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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
 
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
 
16
 
#include "myisam_priv.h"
 
16
#include "myisamdef.h"
17
17
 
18
18
        /*
19
19
           Read previous row with the same key as previous read
29
29
  MYISAM_SHARE *share=info->s;
30
30
 
31
31
  if ((inx = _mi_check_index(info,inx)) < 0)
32
 
    return(errno);
 
32
    return(my_errno);
33
33
  flag=SEARCH_SMALLER;                          /* Read previous */
34
34
  if (info->lastpos == HA_OFFSET_ERROR && info->update & HA_STATE_NEXT_FOUND)
35
35
    flag=0;                                     /* Read last */
36
36
 
37
37
  if (fast_mi_readinfo(info))
38
 
    return(errno);
 
38
    return(my_errno);
39
39
  changed=_mi_test_if_changed(info);
 
40
  if (share->concurrent_insert)
 
41
    pthread_rwlock_rdlock(&share->key_root_lock[inx]);
40
42
  if (!flag)
41
43
    error=_mi_search_last(info, share->keyinfo+inx,
42
44
                          share->state.key_root[inx]);
62
64
          break;
63
65
      }
64
66
    }
 
67
    pthread_rwlock_unlock(&share->key_root_lock[inx]);
65
68
  }
66
69
  info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED);
67
70
  info->update|= HA_STATE_PREV_FOUND;
68
71
  if (error)
69
72
  {
70
 
    if (errno == HA_ERR_KEY_NOT_FOUND)
71
 
      errno=HA_ERR_END_OF_FILE;
 
73
    if (my_errno == HA_ERR_KEY_NOT_FOUND)
 
74
      my_errno=HA_ERR_END_OF_FILE;
72
75
  }
73
76
  else if (!buf)
74
77
  {
75
 
    return(info->lastpos==HA_OFFSET_ERROR ? errno : 0);
 
78
    return(info->lastpos==HA_OFFSET_ERROR ? my_errno : 0);
76
79
  }
77
80
  else if (!(*info->read_record)(info,info->lastpos,buf))
78
81
  {
79
82
    info->update|= HA_STATE_AKTIV;              /* Record is read */
80
83
    return(0);
81
84
  }
82
 
  return(errno);
 
85
  return(my_errno);
83
86
} /* mi_rprev */