Commit 4c77586d authored by tomas@whalegate.ndb.mysql.com's avatar tomas@whalegate.ndb.mysql.com
Browse files

Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0

into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge
parents 1bf737a1 3bbbdc09
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -40,3 +40,22 @@ a b c
select * from t1;
a	b	c
drop table t1;
DROP TABLE IF EXISTS truncate_test;
CREATE TABLE truncate_test (
i INT PRIMARY KEY,
a INT,
b VARCHAR(11),
UNIQUE KEY (a) 
) ENGINE = NDB;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
TRUNCATE truncate_test;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;
i	a	b
1	1	test
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;
i	a	b
1	1	new
DROP TABLE truncate_test;
+31 −0
Original line number Diff line number Diff line
@@ -81,3 +81,34 @@ select * from t1;
select * from t1;

drop table t1;

#For BUG#29851 TRUNCATE causes error 4350 from cluster in INSERT... ON DUPLICATE KEY UPDATE

connection con1;

--disable_warnings
DROP TABLE IF EXISTS truncate_test;
--enable_warnings

CREATE TABLE truncate_test (
  i INT PRIMARY KEY,
  a INT,
  b VARCHAR(11),
  UNIQUE KEY (a) 
) ENGINE = NDB;

INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';

connection con2;
TRUNCATE truncate_test;

connection con1;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;

connection con2;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;

DROP TABLE truncate_test;
+11 −0
Original line number Diff line number Diff line
@@ -27,6 +27,17 @@
#define MAX_NDB_NODES 49
#define MAX_NODES     64

/**************************************************************************
 * IT SHOULD BE (MAX_NDB_NODES - 1).
 * WHEN MAX_NDB_NODE IS CHANGED, IT SHOULD BE CHANGED ALSO
 **************************************************************************/
#define MAX_DATA_NODE_ID 48
/**************************************************************************
 * IT SHOULD BE (MAX_NODES - 1).
 * WHEN MAX_NODES IS CHANGED, IT SHOULD BE CHANGED ALSO
 **************************************************************************/
#define MAX_NODES_ID 63

/**
 * MAX_API_NODES = MAX_NODES - No of NDB Nodes in use
 */
+7 −1
Original line number Diff line number Diff line
@@ -551,7 +551,13 @@ extern "C" {
      /** Log event specific data for for corresponding NDB_LE_ log event */
      struct {
	int      gth;
        /* union is for compatibility backward.
         * page_size_kb member variable should be removed in the future
        */
        union {
	  unsigned page_size_kb;
          unsigned page_size_bytes;
        };
	unsigned pages_used;
	unsigned pages_total;
	unsigned block;
+9 −1
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ public:

  /**
   * setField - Set bitfield at given position and length (max 32 bits)
   * Note : length == 0 not supported.
   */
  static void setField(unsigned size, Uint32 data[],
      unsigned pos, unsigned len, Uint32 val);
@@ -133,6 +134,7 @@ public:

  /**
   * getField - Get bitfield at given position and length
   * Note : length == 0 not supported.
   */
  static void getField(unsigned size, const Uint32 data[],
		       unsigned pos, unsigned len, Uint32 dst[]);
@@ -814,6 +816,9 @@ BitmaskImpl::getField(unsigned size, const Uint32 src[],
		      unsigned pos, unsigned len, Uint32 dst[])
{
  assert(pos + len <= (size << 5));
  assert (len != 0);
  if (len == 0)
    return;

  src += (pos >> 5);
  Uint32 offset = pos & 31;
@@ -833,6 +838,9 @@ BitmaskImpl::setField(unsigned size, Uint32 dst[],
		      unsigned pos, unsigned len, const Uint32 src[])
{
  assert(pos + len <= (size << 5));
  assert(len != 0);
  if (len == 0)
    return;

  dst += (pos >> 5);
  Uint32 offset = pos & 31;
Loading