~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/function/math/int.h

  • Committer: Stewart Smith
  • Date: 2009-05-15 06:57:12 UTC
  • mto: (991.1.5 for-brian)
  • mto: This revision was merged to the branch mainline in revision 1022.
  • Revision ID: stewart@flamingspork.com-20090515065712-bmionylacjmexmmm
Make sql_mode=NO_AUTO_VALUE_ON_ZERO default for Drizzle.

Also fix DEFAULT keyword handling for auto-increment so that it defaults to
NULL and not 0 so that the following is valid and generates two auto-inc
values:

create table t1 (a int auto_increment primary key)
insert into t1 (a) values (default);
insert into t1 (a) values (default);

Important to note that 0 is no longer magic. So this gives you duplicate
primary key error:

insert into t1 (a) values(0);
insert into t1 (a) values(0);

as you've inserted the explicit value of 0 twice.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems, Inc.
 
4
 *  Copyright (C) 2008 Sun Microsystems
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
23
23
#include <drizzled/function/func.h>
24
24
#include <drizzled/sql_list.h>
25
25
 
26
 
namespace drizzled
27
 
{
28
 
 
29
 
class DRIZZLED_API Item_int_func :
30
 
  public Item_func
 
26
class Item_int_func :public Item_func
31
27
{
32
28
public:
33
29
  Item_int_func() :Item_func() { max_length= 21; }
37
33
  { max_length= 21; }
38
34
  Item_int_func(List<Item> &list) :Item_func(list) { max_length= 21; }
39
35
  Item_int_func(Session *session, Item_int_func *item) :Item_func(session, item) {}
40
 
  virtual ~Item_int_func();
41
36
  double val_real();
42
37
  String *val_str(String*str);
43
38
  enum Item_result result_type () const { return INT_RESULT; }
44
39
  void fix_length_and_dec() {}
45
40
};
46
41
 
47
 
} /* namespace drizzled */
48
 
 
49
42
#endif /* DRIZZLED_FUNCTION_MATH_INT_H */