~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_state.cc

  • Committer: Monty Taylor
  • Date: 2008-10-07 08:30:48 UTC
  • mto: This revision was merged to the branch mainline in revision 489.
  • Revision ID: monty@inaugust.com-20081007083048-iepl14lb0babii6r
Removed extraneous vector from sql_state.

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 mysqld errno to sql_state */
22
 
#include <drizzled/global.h>
 
21
/* Functions to map drizzle errno to sql_state */
 
22
#include "config.h"
 
23
 
 
24
#include CSTDINT_H
 
25
#include <algorithm>
 
26
 
 
27
#include <drizzled/sql_state.h>
23
28
#include <drizzled/error.h>
24
 
#include <libdrizzle/libdrizzle.h>
25
 
#include "sql_state.h"
26
 
#include <vector>
27
 
#include <algorithm>
28
29
 
29
30
using namespace std;
30
31
 
31
 
struct st_map_errno_to_sqlstate sqlstate_array[]=
 
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[]=
32
40
{
33
41
  { ER_DUP_KEY                              ,"23000", "" },
34
42
  { ER_OUTOFMEMORY                          ,"HY001", "S1001" },
238
246
  { ER_DUP_ENTRY_WITH_KEY_NAME              ,"23000", "S1009" },
239
247
};
240
248
 
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)
 
249
bool compare_errno_map(errno_sqlstate_map a,
 
250
                       errno_sqlstate_map b)
247
251
{
248
252
  return (a.drizzle_errno < b.drizzle_errno);
249
253
}
251
255
const char *drizzle_errno_to_sqlstate(uint32_t drizzle_errno)
252
256
{
253
257
 
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);
 
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);
258
263
 
259
264
  if ((*result).drizzle_errno == drizzle_errno)
260
265
    return (*result).odbc_state;