~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_state.cc

  • Committer: Brian Aker
  • Date: 2008-10-06 06:47:29 UTC
  • Revision ID: brian@tangent.org-20081006064729-2i9mhjkzyvow9xsm
RemoveĀ uint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
/* Functions to map drizzle errno to sql_state */
22
 
#include <config.h>
23
 
 
24
 
#include CSTDINT_H
 
21
/* Functions to map mysqld errno to sql_state */
 
22
#include <drizzled/global.h>
 
23
#include <drizzled/error.h>
 
24
#include <libdrizzle/libdrizzle.h>
 
25
#include "sql_state.h"
 
26
#include <vector>
25
27
#include <algorithm>
26
28
 
27
 
#include <drizzled/sql_state.h>
28
 
#include <drizzled/error.h>
29
 
 
30
29
using namespace std;
31
30
 
32
 
typedef struct st_map_errno_to_sqlstate
33
 
{
34
 
  uint32_t drizzle_errno;
35
 
  const char *odbc_state;
36
 
  const char *jdbc_state;
37
 
} errno_sqlstate_map;
38
 
 
39
 
errno_sqlstate_map sqlstate_map[]=
 
31
struct st_map_errno_to_sqlstate sqlstate_array[]=
40
32
{
41
33
  { ER_DUP_KEY                              ,"23000", "" },
42
34
  { ER_OUTOFMEMORY                          ,"HY001", "S1001" },
246
238
  { ER_DUP_ENTRY_WITH_KEY_NAME              ,"23000", "S1009" },
247
239
};
248
240
 
249
 
bool compare_errno_map(errno_sqlstate_map a,
250
 
                       errno_sqlstate_map b)
 
241
vector<struct st_map_errno_to_sqlstate>
 
242
sqlstate_map(sqlstate_array,
 
243
             sqlstate_array + sizeof(sqlstate_array)/sizeof(*sqlstate_array));
 
244
 
 
245
bool compare_errno_map(st_map_errno_to_sqlstate a,
 
246
                       st_map_errno_to_sqlstate b)
251
247
{
252
248
  return (a.drizzle_errno < b.drizzle_errno);
253
249
}
255
251
const char *drizzle_errno_to_sqlstate(uint32_t drizzle_errno)
256
252
{
257
253
 
258
 
  errno_sqlstate_map drizzle_err_state= {drizzle_errno, NULL, NULL};
259
 
  errno_sqlstate_map* result=
260
 
    lower_bound(&sqlstate_map[0],
261
 
                &sqlstate_map[sizeof(sqlstate_map)/sizeof(*sqlstate_map)],
262
 
                drizzle_err_state, compare_errno_map);
 
254
  struct st_map_errno_to_sqlstate the_state= {drizzle_errno, NULL, NULL};
 
255
  vector<struct st_map_errno_to_sqlstate>::iterator result=
 
256
    lower_bound(sqlstate_map.begin(), sqlstate_map.end(),
 
257
                the_state, compare_errno_map);
263
258
 
264
259
  if ((*result).drizzle_errno == drizzle_errno)
265
260
    return (*result).odbc_state;