mariadb/ndb/include/kernel/BlockNumbers.h
unknown c7744c6df5 bug#12118 - ndb alter table data loss
Split table version into 2 (major, minor)
  Impl. signaling to API when table has been altered
  Allow running transactions to use any minor number for transactions


mysql-test/r/ndb_alter_table.result:
  Allow running transactions to use old table definition when possible.
mysql-test/t/ndb_alter_table.test:
  Allow running transactions to use old table definition when possible.
ndb/include/kernel/BlockNumbers.h:
  remove GREP
ndb/include/kernel/GlobalSignalNumbers.h:
  Add ALTER_TABL_REP and API_BROADCAST_REP
ndb/include/kernel/kernel_types.h:
  table_version_major
ndb/include/kernel/signaldata/AlterTable.hpp:
  New error code for alter table during rolling upgrade
ndb/include/ndbapi/NdbDictionary.hpp:
  Add state on table object to represent an altered but still valid table object
ndb/src/common/debugger/BlockNames.cpp:
  remove GREP
ndb/src/common/util/version.c:
  Fix upgrades
ndb/src/kernel/SimBlockList.cpp:
  remove GREP
ndb/src/kernel/blocks/Makefile.am:
  remove GREP
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  remove GREP
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Split tableSchemaVersion into 2 part
  24 bit real version
   8 bit for online alter table where old table definition is still usable
ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
  Check for same ndb versions
ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp:
  Update schema printer
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  remove grep
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  1) Use table_ version_major when checking table version
  2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  1) Use table_ version_major when checking table version
  2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  1) Use table_ version_major when checking table version
  2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  remove GREP
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
  Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
  Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/suma/Suma.cpp:
  remove GREP
ndb/src/mgmsrv/MgmtSrvr.cpp:
  remove GREP
ndb/src/ndbapi/DictCache.cpp:
  Add support for alter_table_rep
    by setting status to Altered
  
  NOTE special handling of tables in state RETREIVING
ndb/src/ndbapi/DictCache.hpp:
  Add support for alter_table_rep
    by setting status to Altered
  
  NOTE special handling of tables in state RETREIVING
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Change alter table so that remove from global cache is used wo/ retreiving it from there first
    as ALTER_TABLE_REP might already have changed the table object...
ndb/src/ndbapi/TransporterFacade.cpp:
  Add support for ALTER_TABLE_REP
sql/ha_ndbcluster.cc:
  Allow running transactions to use tables in state ALTERED...but new transactions may not...
ndb/include/kernel/signaldata/ApiBroadcast.hpp:
  New BitKeeper file ``ndb/include/kernel/signaldata/ApiBroadcast.hpp''
2005-08-18 14:02:25 +02:00

80 lines
2.5 KiB
C

/* Copyright (C) 2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifndef BLOCK_NUMBERS_H
#define BLOCK_NUMBERS_H
#include <kernel_types.h>
#include <RefConvert.hpp>
/* 240 */
#define MIN_API_BLOCK_NO 0x8000
/* 2047 */
#define API_PACKED 0x07ff
/* 4002 */
#define API_CLUSTERMGR 0x0FA2
#define BACKUP 0xF4
#define DBTC 0xF5
#define DBDIH 0xF6
#define DBLQH 0xF7
#define DBACC 0xF8
#define DBTUP 0xF9
#define DBDICT 0xFA
#define NDBCNTR 0xFB
#define CNTR 0xFB
#define QMGR 0xFC
#define NDBFS 0xFD
#define CMVMI 0xFE
#define TRIX 0xFF
#define DBUTIL 0x100
#define SUMA 0x101
#define DBTUX 0x102
const BlockReference BACKUP_REF = numberToRef(BACKUP, 0);
const BlockReference DBTC_REF = numberToRef(DBTC, 0);
const BlockReference DBDIH_REF = numberToRef(DBDIH, 0);
const BlockReference DBLQH_REF = numberToRef(DBLQH, 0);
const BlockReference DBACC_REF = numberToRef(DBACC, 0);
const BlockReference DBTUP_REF = numberToRef(DBTUP, 0);
const BlockReference DBDICT_REF = numberToRef(DBDICT, 0);
const BlockReference NDBCNTR_REF = numberToRef(NDBCNTR, 0);
const BlockReference QMGR_REF = numberToRef(QMGR, 0);
const BlockReference NDBFS_REF = numberToRef(NDBFS, 0);
const BlockReference CMVMI_REF = numberToRef(CMVMI, 0);
const BlockReference TRIX_REF = numberToRef(TRIX, 0);
const BlockReference DBUTIL_REF = numberToRef(DBUTIL, 0);
const BlockReference SUMA_REF = numberToRef(SUMA, 0);
const BlockReference DBTUX_REF = numberToRef(DBTUX, 0);
const BlockNumber MIN_BLOCK_NO = BACKUP;
const BlockNumber MAX_BLOCK_NO = DBTUX;
const BlockNumber NO_OF_BLOCKS = (MAX_BLOCK_NO - MIN_BLOCK_NO + 1);
/**
* Used for printing and stuff
*/
struct BlockName {
const char* name;
BlockNumber number;
};
extern const BlockName BlockNames[];
extern const BlockNumber NO_OF_BLOCK_NAMES;
#endif