diff options
author | unknown <brian@zim.(none)> | 2005-04-26 18:19:54 -0700 |
---|---|---|
committer | unknown <brian@zim.(none)> | 2005-04-26 18:19:54 -0700 |
commit | b7e422be1b7a8ca3f4e761e67db5e8febc701dfd (patch) | |
tree | df9016f3d70b4657f89dcddca2ec4e188fc7fbdf /ndb/include | |
parent | c0333ecee42a4de499b3377cfa21d7b5af1ddd2b (diff) | |
download | mariadb-git-b7e422be1b7a8ca3f4e761e67db5e8febc701dfd.tar.gz |
Changes to create storage directory for storage engines.
storage/heap/.cvsignore:
mvdir
storage/heap/ChangeLog:
mvdir
storage/heap/Makefile.am:
mvdir
storage/heap/_check.c:
mvdir
storage/heap/_rectest.c:
mvdir
storage/heap/heapdef.h:
mvdir
storage/heap/hp_block.c:
mvdir
storage/heap/hp_clear.c:
mvdir
storage/heap/hp_close.c:
mvdir
storage/heap/hp_create.c:
mvdir
storage/heap/hp_delete.c:
mvdir
storage/heap/hp_extra.c:
mvdir
storage/heap/hp_hash.c:
mvdir
storage/heap/hp_info.c:
mvdir
storage/heap/hp_open.c:
mvdir
storage/heap/hp_panic.c:
mvdir
storage/heap/hp_rename.c:
mvdir
storage/heap/hp_rfirst.c:
mvdir
storage/heap/hp_rkey.c:
mvdir
storage/heap/hp_rlast.c:
mvdir
storage/heap/hp_rnext.c:
mvdir
storage/heap/hp_rprev.c:
mvdir
storage/heap/hp_rrnd.c:
mvdir
storage/heap/hp_rsame.c:
mvdir
storage/heap/hp_scan.c:
mvdir
storage/heap/hp_static.c:
mvdir
storage/heap/hp_test1.c:
mvdir
storage/heap/hp_test2.c:
mvdir
storage/heap/hp_update.c:
mvdir
storage/heap/hp_write.c:
mvdir
storage/heap/make-ccc:
mvdir
storage/myisam/.cvsignore:
mvdir
storage/myisam/ChangeLog:
mvdir
storage/myisam/Makefile.am:
mvdir
storage/myisam/NEWS:
mvdir
storage/myisam/TODO:
mvdir
storage/myisam/ft_boolean_search.c:
mvdir
storage/myisam/ft_eval.c:
mvdir
storage/myisam/ft_eval.h:
mvdir
storage/myisam/ft_nlq_search.c:
mvdir
storage/myisam/ft_parser.c:
mvdir
storage/myisam/ft_static.c:
mvdir
storage/myisam/ft_stem.c:
mvdir
storage/myisam/ft_stopwords.c:
mvdir
storage/myisam/ft_test1.c:
mvdir
storage/myisam/ft_test1.h:
mvdir
storage/myisam/ft_update.c:
mvdir
storage/myisam/ftdefs.h:
mvdir
storage/myisam/fulltext.h:
mvdir
storage/myisam/make-ccc:
mvdir
storage/myisam/mi_cache.c:
mvdir
storage/myisam/mi_changed.c:
mvdir
storage/myisam/mi_check.c:
mvdir
storage/myisam/mi_checksum.c:
mvdir
storage/myisam/mi_close.c:
mvdir
storage/myisam/mi_create.c:
mvdir
storage/myisam/mi_dbug.c:
mvdir
storage/myisam/mi_delete.c:
mvdir
storage/myisam/mi_delete_all.c:
mvdir
storage/myisam/mi_delete_table.c:
mvdir
storage/myisam/mi_dynrec.c:
mvdir
storage/myisam/mi_extra.c:
mvdir
storage/myisam/mi_info.c:
mvdir
storage/myisam/mi_key.c:
mvdir
storage/myisam/mi_keycache.c:
mvdir
storage/myisam/mi_locking.c:
mvdir
storage/myisam/mi_log.c:
mvdir
storage/myisam/mi_open.c:
mvdir
storage/myisam/mi_packrec.c:
mvdir
storage/myisam/mi_page.c:
mvdir
storage/myisam/mi_panic.c:
mvdir
storage/myisam/mi_preload.c:
mvdir
storage/myisam/mi_range.c:
mvdir
storage/myisam/mi_rename.c:
mvdir
storage/myisam/mi_rfirst.c:
mvdir
storage/myisam/mi_rkey.c:
mvdir
storage/myisam/mi_rlast.c:
mvdir
storage/myisam/mi_rnext.c:
mvdir
storage/myisam/mi_rnext_same.c:
mvdir
storage/myisam/mi_rprev.c:
mvdir
storage/myisam/mi_rrnd.c:
mvdir
storage/myisam/mi_rsame.c:
mvdir
storage/myisam/ftbench/Ecompare.pl:
mvdir
storage/myisam/ftbench/Ecreate.pl:
mvdir
storage/myisam/ftbench/Ereport.pl:
mvdir
storage/myisam/ftbench/README:
mvdir
storage/myisam/ftbench/ft-test-run.sh:
mvdir
storage/myisam/mi_rsamepos.c:
mvdir
storage/myisam/mi_scan.c:
mvdir
storage/myisam/mi_search.c:
mvdir
storage/myisam/mi_static.c:
mvdir
storage/myisam/mi_statrec.c:
mvdir
storage/myisam/mi_test1.c:
mvdir
storage/myisam/mi_test2.c:
mvdir
storage/myisam/mi_test3.c:
mvdir
storage/myisam/mi_test_all.res:
mvdir
storage/myisam/mi_test_all.sh:
mvdir
storage/myisam/mi_unique.c:
mvdir
storage/myisam/mi_update.c:
mvdir
storage/myisam/mi_write.c:
mvdir
storage/myisam/myisam_ftdump.c:
mvdir
storage/myisam/myisamchk.c:
mvdir
storage/myisam/myisamdef.h:
mvdir
storage/myisam/myisamlog.c:
mvdir
storage/myisam/myisampack.c:
mvdir
storage/myisam/rt_index.c:
mvdir
storage/myisam/rt_index.h:
mvdir
storage/myisam/rt_key.c:
mvdir
storage/myisam/rt_key.h:
mvdir
storage/myisam/rt_mbr.c:
mvdir
storage/myisam/rt_mbr.h:
mvdir
storage/myisam/rt_split.c:
mvdir
storage/myisam/rt_test.c:
mvdir
storage/myisam/sort.c:
mvdir
storage/myisam/sp_defs.h:
mvdir
storage/myisam/sp_key.c:
mvdir
storage/myisam/sp_test.c:
mvdir
storage/myisam/test_pack:
mvdir
storage/myisammrg/.cvsignore:
mvdir
storage/myisammrg/Makefile.am:
mvdir
storage/myisammrg/make-ccc:
mvdir
storage/myisammrg/myrg_close.c:
mvdir
storage/myisammrg/myrg_create.c:
mvdir
storage/myisammrg/myrg_def.h:
mvdir
storage/myisammrg/myrg_delete.c:
mvdir
storage/myisammrg/myrg_extra.c:
mvdir
storage/myisammrg/myrg_info.c:
mvdir
storage/myisammrg/myrg_locking.c:
mvdir
storage/myisammrg/myrg_open.c:
mvdir
storage/myisammrg/myrg_panic.c:
mvdir
storage/myisammrg/myrg_queue.c:
mvdir
storage/myisammrg/myrg_range.c:
mvdir
storage/myisammrg/myrg_rfirst.c:
mvdir
storage/myisammrg/myrg_rkey.c:
mvdir
storage/myisammrg/myrg_rlast.c:
mvdir
storage/myisammrg/myrg_rnext.c:
mvdir
storage/myisammrg/myrg_rnext_same.c:
mvdir
storage/myisammrg/myrg_rprev.c:
mvdir
storage/myisammrg/myrg_rrnd.c:
mvdir
storage/myisammrg/myrg_rsame.c:
mvdir
storage/myisammrg/myrg_static.c:
mvdir
storage/myisammrg/myrg_update.c:
mvdir
storage/myisammrg/myrg_write.c:
mvdir
storage/innobase/Makefile.am:
mvdir
storage/innobase/btr/Makefile.am:
mvdir
storage/innobase/btr/btr0btr.c:
mvdir
storage/innobase/btr/btr0cur.c:
mvdir
storage/innobase/btr/btr0pcur.c:
mvdir
storage/innobase/btr/btr0sea.c:
mvdir
storage/innobase/btr/makefilewin:
mvdir
storage/innobase/buf/Makefile.am:
mvdir
storage/innobase/buf/buf0buf.c:
mvdir
storage/innobase/buf/buf0flu.c:
mvdir
storage/innobase/buf/buf0lru.c:
mvdir
storage/innobase/buf/buf0rea.c:
mvdir
storage/innobase/buf/makefilewin:
mvdir
storage/innobase/configure.in:
mvdir
storage/innobase/data/Makefile.am:
mvdir
storage/innobase/data/data0data.c:
mvdir
storage/innobase/data/data0type.c:
mvdir
storage/innobase/data/makefilewin:
mvdir
storage/innobase/db/db0err.h:
mvdir
storage/innobase/dict/Makefile.am:
mvdir
storage/innobase/dict/dict0boot.c:
mvdir
storage/innobase/dict/dict0crea.c:
mvdir
storage/innobase/dict/dict0dict.c:
mvdir
storage/innobase/dict/dict0load.c:
mvdir
storage/innobase/makefilewin:
mvdir
storage/innobase/my_cnf:
mvdir
storage/innobase/dict/dict0mem.c:
mvdir
storage/innobase/dict/makefilewin:
mvdir
storage/innobase/dyn/Makefile.am:
mvdir
storage/innobase/dyn/dyn0dyn.c:
mvdir
storage/innobase/dyn/makefilewin:
mvdir
storage/innobase/eval/Makefile.am:
mvdir
storage/innobase/eval/eval0eval.c:
mvdir
storage/innobase/eval/eval0proc.c:
mvdir
storage/innobase/eval/makefilewin:
mvdir
storage/innobase/fil/Makefile.am:
mvdir
storage/innobase/fil/fil0fil.c:
mvdir
storage/innobase/fil/makefilewin:
mvdir
storage/innobase/fsp/Makefile.am:
mvdir
storage/innobase/fsp/fsp0fsp.c:
mvdir
storage/innobase/fsp/makefilewin:
mvdir
storage/innobase/fut/Makefile.am:
mvdir
storage/innobase/fut/fut0fut.c:
mvdir
storage/innobase/fut/fut0lst.c:
mvdir
storage/innobase/fut/makefilewin:
mvdir
storage/innobase/ha/Makefile.am:
mvdir
storage/innobase/ha/ha0ha.c:
mvdir
storage/innobase/ha/hash0hash.c:
mvdir
storage/innobase/ha/makefilewin:
mvdir
storage/innobase/ibuf/Makefile.am:
mvdir
storage/innobase/ibuf/ibuf0ibuf.c:
mvdir
storage/innobase/ibuf/makefilewin:
mvdir
storage/innobase/include/Makefile.am:
mvdir
storage/innobase/include/Makefile.i:
mvdir
storage/innobase/include/btr0btr.h:
mvdir
storage/innobase/include/btr0btr.ic:
mvdir
storage/innobase/include/btr0cur.h:
mvdir
storage/innobase/include/btr0cur.ic:
mvdir
storage/innobase/include/btr0pcur.h:
mvdir
storage/innobase/include/btr0pcur.ic:
mvdir
storage/innobase/include/btr0sea.h:
mvdir
storage/innobase/include/btr0sea.ic:
mvdir
storage/innobase/include/btr0types.h:
mvdir
storage/innobase/include/buf0buf.h:
mvdir
storage/innobase/include/buf0buf.ic:
mvdir
storage/innobase/include/buf0flu.h:
mvdir
storage/innobase/include/buf0flu.ic:
mvdir
storage/innobase/include/buf0lru.h:
mvdir
storage/innobase/include/buf0lru.ic:
mvdir
storage/innobase/include/buf0rea.h:
mvdir
storage/innobase/include/buf0types.h:
mvdir
storage/innobase/include/data0data.h:
mvdir
storage/innobase/include/data0data.ic:
mvdir
storage/innobase/include/data0type.h:
mvdir
storage/innobase/include/data0type.ic:
mvdir
storage/innobase/include/data0types.h:
mvdir
storage/innobase/include/db0err.h:
mvdir
storage/innobase/include/dict0boot.h:
mvdir
storage/innobase/include/dict0boot.ic:
mvdir
storage/innobase/include/dict0crea.h:
mvdir
storage/innobase/include/dict0crea.ic:
mvdir
storage/innobase/include/dict0dict.h:
mvdir
storage/innobase/include/dict0dict.ic:
mvdir
storage/innobase/include/dict0load.h:
mvdir
storage/innobase/include/dict0load.ic:
mvdir
storage/innobase/include/dict0mem.h:
mvdir
storage/innobase/include/dict0mem.ic:
mvdir
storage/innobase/include/dict0types.h:
mvdir
storage/innobase/include/dyn0dyn.h:
mvdir
storage/innobase/include/dyn0dyn.ic:
mvdir
storage/innobase/include/eval0eval.h:
mvdir
storage/innobase/include/eval0eval.ic:
mvdir
storage/innobase/include/eval0proc.h:
mvdir
storage/innobase/include/eval0proc.ic:
mvdir
storage/innobase/include/fil0fil.h:
mvdir
storage/innobase/include/fsp0fsp.h:
mvdir
storage/innobase/include/fsp0fsp.ic:
mvdir
storage/innobase/include/fut0fut.h:
mvdir
storage/innobase/include/fut0fut.ic:
mvdir
storage/innobase/include/fut0lst.h:
mvdir
storage/innobase/include/fut0lst.ic:
mvdir
storage/innobase/include/ha0ha.h:
mvdir
storage/innobase/include/ha0ha.ic:
mvdir
storage/innobase/include/hash0hash.h:
mvdir
storage/innobase/include/hash0hash.ic:
mvdir
storage/innobase/include/ibuf0ibuf.h:
mvdir
storage/innobase/include/ibuf0ibuf.ic:
mvdir
storage/innobase/include/ibuf0types.h:
mvdir
storage/innobase/include/lock0lock.h:
mvdir
storage/innobase/include/lock0lock.ic:
mvdir
storage/innobase/include/lock0types.h:
mvdir
storage/innobase/include/log0log.h:
mvdir
storage/innobase/include/log0log.ic:
mvdir
storage/innobase/include/log0recv.h:
mvdir
storage/innobase/include/log0recv.ic:
mvdir
storage/innobase/include/mach0data.h:
mvdir
storage/innobase/include/mach0data.ic:
mvdir
storage/innobase/include/makefilewin.i:
mvdir
storage/innobase/include/mem0dbg.h:
mvdir
storage/innobase/include/mem0dbg.ic:
mvdir
storage/innobase/include/mem0mem.h:
mvdir
storage/innobase/include/mem0mem.ic:
mvdir
storage/innobase/include/mem0pool.h:
mvdir
storage/innobase/include/mem0pool.ic:
mvdir
storage/innobase/include/mtr0log.h:
mvdir
storage/innobase/include/mtr0log.ic:
mvdir
storage/innobase/include/mtr0mtr.h:
mvdir
storage/innobase/include/mtr0mtr.ic:
mvdir
storage/innobase/include/mtr0types.h:
mvdir
storage/innobase/include/os0file.h:
mvdir
storage/innobase/include/os0proc.h:
mvdir
storage/innobase/include/os0proc.ic:
mvdir
storage/innobase/include/os0sync.h:
mvdir
storage/innobase/include/os0sync.ic:
mvdir
storage/innobase/include/os0thread.h:
mvdir
storage/innobase/include/os0thread.ic:
mvdir
storage/innobase/include/page0cur.h:
mvdir
storage/innobase/include/page0cur.ic:
mvdir
storage/innobase/include/page0page.h:
mvdir
storage/innobase/include/page0page.ic:
mvdir
storage/innobase/include/page0types.h:
mvdir
storage/innobase/include/pars0grm.h:
mvdir
storage/innobase/include/pars0opt.h:
mvdir
storage/innobase/include/pars0opt.ic:
mvdir
storage/innobase/include/pars0pars.h:
mvdir
storage/innobase/include/pars0pars.ic:
mvdir
storage/innobase/include/pars0sym.h:
mvdir
storage/innobase/include/pars0sym.ic:
mvdir
storage/innobase/include/pars0types.h:
mvdir
storage/innobase/include/que0que.h:
mvdir
storage/innobase/include/que0que.ic:
mvdir
storage/innobase/include/que0types.h:
mvdir
storage/innobase/include/read0read.h:
mvdir
storage/innobase/include/read0read.ic:
mvdir
storage/innobase/include/read0types.h:
mvdir
storage/innobase/include/rem0cmp.h:
mvdir
storage/innobase/include/rem0cmp.ic:
mvdir
storage/innobase/include/rem0rec.h:
mvdir
storage/innobase/include/rem0rec.ic:
mvdir
storage/innobase/include/rem0types.h:
mvdir
storage/innobase/include/row0ins.h:
mvdir
storage/innobase/include/row0ins.ic:
mvdir
storage/innobase/include/row0mysql.h:
mvdir
storage/innobase/include/row0mysql.ic:
mvdir
storage/innobase/include/row0purge.h:
mvdir
storage/innobase/include/row0purge.ic:
mvdir
storage/innobase/include/row0row.h:
mvdir
storage/innobase/include/row0row.ic:
mvdir
storage/innobase/include/row0sel.h:
mvdir
storage/innobase/include/row0sel.ic:
mvdir
storage/innobase/include/row0types.h:
mvdir
storage/innobase/include/row0uins.h:
mvdir
storage/innobase/include/row0uins.ic:
mvdir
storage/innobase/include/row0umod.h:
mvdir
storage/innobase/include/row0umod.ic:
mvdir
storage/innobase/include/row0undo.h:
mvdir
storage/innobase/include/row0undo.ic:
mvdir
storage/innobase/include/row0upd.h:
mvdir
storage/innobase/include/row0upd.ic:
mvdir
storage/innobase/include/row0vers.h:
mvdir
storage/innobase/include/row0vers.ic:
mvdir
storage/innobase/include/srv0que.h:
mvdir
storage/innobase/include/srv0srv.h:
mvdir
storage/innobase/include/srv0srv.ic:
mvdir
storage/innobase/include/srv0start.h:
mvdir
storage/innobase/include/sync0arr.h:
mvdir
storage/innobase/include/sync0arr.ic:
mvdir
storage/innobase/include/sync0rw.h:
mvdir
storage/innobase/include/sync0rw.ic:
mvdir
storage/innobase/include/sync0sync.h:
mvdir
storage/innobase/include/sync0sync.ic:
mvdir
storage/innobase/include/sync0types.h:
mvdir
storage/innobase/include/thr0loc.h:
mvdir
storage/innobase/include/thr0loc.ic:
mvdir
storage/innobase/include/trx0purge.h:
mvdir
storage/innobase/include/trx0purge.ic:
mvdir
storage/innobase/include/trx0rec.h:
mvdir
storage/innobase/include/trx0rec.ic:
mvdir
storage/innobase/include/trx0roll.h:
mvdir
storage/innobase/include/trx0roll.ic:
mvdir
storage/innobase/include/trx0rseg.h:
mvdir
storage/innobase/include/trx0rseg.ic:
mvdir
storage/innobase/include/trx0sys.h:
mvdir
storage/innobase/include/trx0sys.ic:
mvdir
storage/innobase/include/trx0trx.h:
mvdir
storage/innobase/include/trx0trx.ic:
mvdir
storage/innobase/include/trx0types.h:
mvdir
storage/innobase/include/trx0undo.h:
mvdir
storage/innobase/include/trx0undo.ic:
mvdir
storage/innobase/include/trx0xa.h:
mvdir
storage/innobase/include/univ.i:
mvdir
storage/innobase/include/usr0sess.h:
mvdir
storage/innobase/include/usr0sess.ic:
mvdir
storage/innobase/include/usr0types.h:
mvdir
storage/innobase/include/ut0byte.h:
mvdir
storage/innobase/include/ut0byte.ic:
mvdir
storage/innobase/include/ut0dbg.h:
mvdir
storage/innobase/include/ut0lst.h:
mvdir
storage/innobase/include/ut0mem.h:
mvdir
storage/innobase/include/ut0mem.ic:
mvdir
storage/innobase/include/ut0rnd.h:
mvdir
storage/innobase/include/ut0rnd.ic:
mvdir
storage/innobase/include/ut0sort.h:
mvdir
storage/innobase/include/ut0ut.h:
mvdir
storage/innobase/include/ut0ut.ic:
mvdir
storage/innobase/lock/Makefile.am:
mvdir
storage/innobase/lock/lock0lock.c:
mvdir
storage/innobase/lock/makefilewin:
mvdir
storage/innobase/log/Makefile.am:
mvdir
storage/innobase/log/log0log.c:
mvdir
storage/innobase/log/log0recv.c:
mvdir
storage/innobase/log/makefilewin:
mvdir
storage/innobase/mach/Makefile.am:
mvdir
storage/innobase/mach/mach0data.c:
mvdir
storage/innobase/mach/makefilewin:
mvdir
storage/innobase/mem/Makefile.am:
mvdir
storage/innobase/mem/makefilewin:
mvdir
storage/innobase/mem/mem0dbg.c:
mvdir
storage/innobase/mem/mem0mem.c:
mvdir
storage/innobase/mem/mem0pool.c:
mvdir
storage/innobase/mtr/Makefile.am:
mvdir
storage/innobase/mtr/makefilewin:
mvdir
storage/innobase/mtr/mtr0log.c:
mvdir
storage/innobase/mtr/mtr0mtr.c:
mvdir
storage/innobase/os/Makefile.am:
mvdir
storage/innobase/os/makefilewin:
mvdir
storage/innobase/os/os0file.c:
mvdir
storage/innobase/os/os0proc.c:
mvdir
storage/innobase/os/os0sync.c:
mvdir
storage/innobase/os/os0thread.c:
mvdir
storage/innobase/page/Makefile.am:
mvdir
storage/innobase/page/makefilewin:
mvdir
storage/innobase/page/page0cur.c:
mvdir
storage/innobase/page/page0page.c:
mvdir
storage/innobase/pars/Makefile.am:
mvdir
storage/innobase/pars/lexyy.c:
mvdir
storage/innobase/pars/makefilewin:
mvdir
storage/innobase/pars/pars0grm.c:
mvdir
storage/innobase/pars/pars0grm.h:
mvdir
storage/innobase/pars/pars0grm.y:
mvdir
storage/innobase/pars/pars0lex.l:
mvdir
storage/innobase/pars/pars0opt.c:
mvdir
storage/innobase/pars/pars0pars.c:
mvdir
storage/innobase/pars/pars0sym.c:
mvdir
storage/innobase/que/Makefile.am:
mvdir
storage/innobase/que/makefilewin:
mvdir
storage/innobase/que/que0que.c:
mvdir
storage/innobase/read/Makefile.am:
mvdir
storage/innobase/read/makefilewin:
mvdir
storage/innobase/read/read0read.c:
mvdir
storage/innobase/rem/Makefile.am:
mvdir
storage/innobase/rem/makefilewin:
mvdir
storage/innobase/rem/rem0cmp.c:
mvdir
storage/innobase/rem/rem0rec.c:
mvdir
storage/innobase/row/Makefile.am:
mvdir
storage/innobase/row/makefilewin:
mvdir
storage/innobase/row/row0ins.c:
mvdir
storage/innobase/row/row0mysql.c:
mvdir
storage/innobase/row/row0purge.c:
mvdir
storage/innobase/row/row0row.c:
mvdir
storage/innobase/row/row0sel.c:
mvdir
storage/innobase/row/row0uins.c:
mvdir
storage/innobase/row/row0umod.c:
mvdir
storage/innobase/row/row0undo.c:
mvdir
storage/innobase/row/row0upd.c:
mvdir
storage/innobase/row/row0vers.c:
mvdir
storage/innobase/srv/Makefile.am:
mvdir
storage/innobase/srv/makefilewin:
mvdir
storage/innobase/srv/srv0que.c:
mvdir
storage/innobase/srv/srv0srv.c:
mvdir
storage/innobase/srv/srv0start.c:
mvdir
storage/innobase/sync/Makefile.am:
mvdir
storage/innobase/sync/makefilewin:
mvdir
storage/innobase/sync/sync0arr.c:
mvdir
storage/innobase/sync/sync0rw.c:
mvdir
storage/innobase/sync/sync0sync.c:
mvdir
storage/innobase/thr/Makefile.am:
mvdir
storage/innobase/thr/makefilewin:
mvdir
storage/innobase/thr/thr0loc.c:
mvdir
storage/innobase/trx/Makefile.am:
mvdir
storage/innobase/trx/makefilewin:
mvdir
storage/innobase/trx/trx0purge.c:
mvdir
storage/innobase/trx/trx0rec.c:
mvdir
storage/innobase/trx/trx0roll.c:
mvdir
storage/innobase/trx/trx0rseg.c:
mvdir
storage/innobase/trx/trx0sys.c:
mvdir
storage/innobase/trx/trx0trx.c:
mvdir
storage/innobase/trx/trx0undo.c:
mvdir
storage/innobase/usr/Makefile.am:
mvdir
storage/innobase/usr/makefilewin:
mvdir
storage/innobase/usr/usr0sess.c:
mvdir
storage/innobase/ut/Makefile.am:
mvdir
storage/innobase/ut/makefilewin:
mvdir
storage/innobase/ut/ut0byte.c:
mvdir
storage/innobase/ut/ut0dbg.c:
mvdir
storage/innobase/ut/ut0mem.c:
mvdir
storage/innobase/ut/ut0rnd.c:
mvdir
storage/innobase/ut/ut0ut.c:
mvdir
storage/ndb/Makefile.am:
mvdir
storage/ndb/bin/.empty:
mvdir
storage/ndb/bin/check-regression.sh:
mvdir
storage/ndb/bin/makeTestPrograms_html.sh:
mvdir
storage/ndb/config/common.mk.am:
mvdir
storage/ndb/config/make-win-dsw.sh:
mvdir
storage/ndb/config/type_kernel.mk.am:
mvdir
storage/ndb/config/type_mgmapiclient.mk.am:
mvdir
storage/ndb/config/type_ndbapi.mk.am:
mvdir
storage/ndb/config/type_ndbapiclient.mk.am:
mvdir
storage/ndb/config/type_ndbapitest.mk.am:
mvdir
storage/ndb/config/type_ndbapitools.mk.am:
mvdir
storage/ndb/config/type_util.mk.am:
mvdir
storage/ndb/config/win-includes:
mvdir
storage/ndb/config/win-lib.am:
mvdir
storage/ndb/config/win-libraries:
mvdir
storage/ndb/config/win-name:
mvdir
storage/ndb/config/win-prg.am:
mvdir
storage/ndb/config/win-sources:
mvdir
storage/ndb/demos/1-node/1-api-3/Ndb.cfg:
mvdir
storage/ndb/demos/1-node/1-db-2/Ndb.cfg:
mvdir
storage/ndb/demos/1-node/1-mgm-1/Ndb.cfg:
mvdir
storage/ndb/demos/1-node/1-mgm-1/template_config.ini:
mvdir
storage/ndb/demos/2-node/2-api-4/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-api-5/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-api-6/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-api-7/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-db-2/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-db-3/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-mgm-1/Ndb.cfg:
mvdir
storage/ndb/demos/2-node/2-mgm-1/template_config.ini:
mvdir
storage/ndb/demos/config-templates/config_template-1-REP.ini:
mvdir
storage/ndb/demos/config-templates/config_template-4.ini:
mvdir
storage/ndb/demos/config-templates/config_template-install.ini:
mvdir
storage/ndb/demos/run_demo1-PS-SS_common.sh:
mvdir
storage/ndb/demos/run_demo1-PS.sh:
mvdir
storage/ndb/demos/run_demo1-SS.sh:
mvdir
storage/ndb/demos/run_demo1.sh:
mvdir
storage/ndb/demos/run_demo2.sh:
mvdir
storage/ndb/docs/Makefile.am:
mvdir
storage/ndb/docs/README:
mvdir
storage/ndb/docs/doxygen/Doxyfile.mgmapi:
mvdir
storage/ndb/docs/doxygen/Doxyfile.ndbapi:
mvdir
storage/ndb/docs/doxygen/Doxyfile.ndb:
mvdir
storage/ndb/docs/doxygen/Doxyfile.odbc:
mvdir
storage/ndb/docs/doxygen/Doxyfile.test:
mvdir
storage/ndb/docs/doxygen/header.mgmapi.tex:
mvdir
storage/ndb/docs/doxygen/header.ndbapi.tex:
mvdir
storage/ndb/docs/doxygen/postdoxy.pl:
mvdir
storage/ndb/docs/doxygen/predoxy.pl:
mvdir
storage/ndb/docs/wl2077.txt:
mvdir
storage/ndb/home/bin/Linuxmkisofs:
mvdir
storage/ndb/home/bin/Solarismkisofs:
mvdir
storage/ndb/home/bin/cvs2cl.pl:
mvdir
storage/ndb/home/bin/fix-cvs-root:
mvdir
storage/ndb/home/bin/import-from-bk.sh:
mvdir
storage/ndb/home/bin/ndb_deploy:
mvdir
storage/ndb/home/bin/ndbdoxy.pl:
mvdir
storage/ndb/home/bin/ngcalc:
mvdir
storage/ndb/home/bin/parseConfigFile.awk:
mvdir
storage/ndb/home/bin/setup-test.sh:
mvdir
storage/ndb/home/bin/signallog2html.lib/signallog2list.awk:
mvdir
storage/ndb/home/bin/signallog2html.lib/uniq_blocks.awk:
mvdir
storage/ndb/home/bin/signallog2html.sh:
mvdir
storage/ndb/home/bin/stripcr:
mvdir
storage/ndb/home/lib/funcs.sh:
mvdir
storage/ndb/include/Makefile.am:
mvdir
storage/ndb/include/debugger/DebuggerNames.hpp:
mvdir
storage/ndb/include/debugger/EventLogger.hpp:
mvdir
storage/ndb/include/debugger/GrepError.hpp:
mvdir
storage/ndb/include/debugger/SignalLoggerManager.hpp:
mvdir
storage/ndb/include/editline/editline.h:
mvdir
storage/ndb/include/kernel/AttributeDescriptor.hpp:
mvdir
storage/ndb/include/kernel/AttributeHeader.hpp:
mvdir
storage/ndb/include/kernel/AttributeList.hpp:
mvdir
storage/ndb/include/kernel/BlockNumbers.h:
mvdir
storage/ndb/include/kernel/GlobalSignalNumbers.h:
mvdir
storage/ndb/include/kernel/GrepEvent.hpp:
mvdir
storage/ndb/include/kernel/Interpreter.hpp:
mvdir
storage/ndb/include/kernel/LogLevel.hpp:
mvdir
storage/ndb/include/kernel/NodeBitmask.hpp:
mvdir
storage/ndb/include/kernel/NodeInfo.hpp:
mvdir
storage/ndb/include/kernel/NodeState.hpp:
mvdir
storage/ndb/include/kernel/RefConvert.hpp:
mvdir
storage/ndb/include/kernel/kernel_config_parameters.h:
mvdir
storage/ndb/include/kernel/kernel_types.h:
mvdir
storage/ndb/include/kernel/ndb_limits.h:
mvdir
storage/ndb/include/kernel/signaldata/AbortAll.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AccFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AccLock.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AccScan.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AlterIndx.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AlterTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AlterTable.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AlterTrig.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ApiVersion.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/AttrInfo.hpp:
mvdir
storage/ndb/include/kernel/trigger_definitions.h:
mvdir
storage/ndb/include/ndb_constants.h:
mvdir
storage/ndb/include/ndb_global.h.in:
mvdir
storage/ndb/include/ndb_init.h:
mvdir
storage/ndb/include/ndb_net.h:
mvdir
storage/ndb/include/ndb_types.h.in:
mvdir
storage/ndb/include/ndb_version.h.in:
mvdir
storage/ndb/include/kernel/signaldata/BackupContinueB.hpp:
mvdir
storage/ndb/include/kernel/signaldata/BackupImpl.hpp:
mvdir
storage/ndb/include/kernel/signaldata/BackupSignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/BuildIndx.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CmInit.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CntrStart.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ConfigParamId.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CopyActive.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CopyFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateEvnt.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateIndx.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateTable.hpp:
mvdir
storage/ndb/include/kernel/signaldata/CreateTrig.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DiAddTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DiGetNodes.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DictStart.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DihAddFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DihContinueB.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DihStartTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DisconnectRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DropIndx.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DropTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DropTabFile.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DropTable.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DropTrig.hpp:
mvdir
storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/EmptyLcp.hpp:
mvdir
storage/ndb/include/kernel/signaldata/EndTo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/EventReport.hpp:
mvdir
storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ExecFragReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FailRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsAppendReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsCloseReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsOpenReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsRef.hpp:
mvdir
storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/GCPSave.hpp:
mvdir
storage/ndb/include/kernel/signaldata/GetTabInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/GetTableId.hpp:
mvdir
storage/ndb/include/kernel/signaldata/GrepImpl.hpp:
mvdir
storage/ndb/include/kernel/signaldata/HotSpareRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/KeyInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/LCP.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ListTables.hpp:
mvdir
storage/ndb/include/kernel/signaldata/LqhFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/LqhKey.hpp:
mvdir
storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/LqhTransConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ManagementServer.hpp:
mvdir
storage/ndb/include/kernel/signaldata/MasterGCP.hpp:
mvdir
storage/ndb/include/kernel/signaldata/MasterLCP.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NdbSttor.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NextScan.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NodeFailRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/PackedSignal.hpp:
mvdir
storage/ndb/include/kernel/signaldata/PrepDropTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ReadConfig.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/RelTabMem.hpp:
mvdir
storage/ndb/include/kernel/signaldata/RepImpl.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ResumeReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ScanFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/ScanTab.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SetVarReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SignalData.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SrFragidConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartFragReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartMe.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartPerm.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartRec.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StartTo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StopMe.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StopPerm.hpp:
mvdir
storage/ndb/include/kernel/signaldata/StopReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SumaImpl.hpp:
mvdir
storage/ndb/include/kernel/signaldata/SystemError.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TamperOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcCommit.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcContinueB.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcHbRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcIndx.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcKeyConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcKeyRef.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcKeyReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TestOrd.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TransIdAI.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TupCommit.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TupFrag.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TupKey.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TuxBound.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TuxContinueB.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TuxMaint.hpp:
mvdir
storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UpdateTo.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilDelete.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilExecute.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilLock.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilPrepare.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilRelease.hpp:
mvdir
storage/ndb/include/kernel/signaldata/UtilSequence.hpp:
mvdir
storage/ndb/include/kernel/signaldata/WaitGCP.hpp:
mvdir
storage/ndb/include/logger/ConsoleLogHandler.hpp:
mvdir
storage/ndb/include/logger/FileLogHandler.hpp:
mvdir
storage/ndb/include/logger/LogHandler.hpp:
mvdir
storage/ndb/include/logger/Logger.hpp:
mvdir
storage/ndb/include/logger/SysLogHandler.hpp:
mvdir
storage/ndb/include/mgmapi/mgmapi.h:
mvdir
storage/ndb/include/mgmapi/mgmapi_config_parameters.h:
mvdir
storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h:
mvdir
storage/ndb/include/mgmapi/mgmapi_debug.h:
mvdir
storage/ndb/include/mgmapi/ndb_logevent.h:
mvdir
storage/ndb/include/mgmcommon/ConfigRetriever.hpp:
mvdir
storage/ndb/include/mgmcommon/IPCConfig.hpp:
mvdir
storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp:
mvdir
storage/ndb/include/ndbapi/Ndb.hpp:
mvdir
storage/ndb/include/ndbapi/NdbApi.hpp:
mvdir
storage/ndb/include/ndbapi/NdbBlob.hpp:
mvdir
storage/ndb/include/ndbapi/NdbDictionary.hpp:
mvdir
storage/ndb/include/ndbapi/NdbError.hpp:
mvdir
storage/ndb/include/ndbapi/NdbEventOperation.hpp:
mvdir
storage/ndb/include/ndbapi/NdbIndexOperation.hpp:
mvdir
storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp:
mvdir
storage/ndb/include/ndbapi/NdbOperation.hpp:
mvdir
storage/ndb/include/ndbapi/NdbPool.hpp:
mvdir
storage/ndb/include/ndbapi/NdbRecAttr.hpp:
mvdir
storage/ndb/include/ndbapi/NdbReceiver.hpp:
mvdir
storage/ndb/include/ndbapi/NdbScanFilter.hpp:
mvdir
storage/ndb/include/ndbapi/NdbScanOperation.hpp:
mvdir
storage/ndb/include/ndbapi/NdbTransaction.hpp:
mvdir
storage/ndb/include/ndbapi/ndb_cluster_connection.hpp:
mvdir
storage/ndb/include/ndbapi/ndb_opt_defaults.h:
mvdir
storage/ndb/include/ndbapi/ndbapi_limits.h:
mvdir
storage/ndb/include/ndbapi/ndberror.h:
mvdir
storage/ndb/include/newtonapi/dba.h:
mvdir
storage/ndb/include/newtonapi/defs/pcn_types.h:
mvdir
storage/ndb/include/portlib/NdbCondition.h:
mvdir
storage/ndb/include/portlib/NdbConfig.h:
mvdir
storage/ndb/include/portlib/NdbDaemon.h:
mvdir
storage/ndb/include/portlib/NdbEnv.h:
mvdir
storage/ndb/include/portlib/NdbHost.h:
mvdir
storage/ndb/include/portlib/NdbMain.h:
mvdir
storage/ndb/include/portlib/NdbMem.h:
mvdir
storage/ndb/include/portlib/NdbMutex.h:
mvdir
storage/ndb/include/portlib/NdbSleep.h:
mvdir
storage/ndb/include/portlib/NdbTCP.h:
mvdir
storage/ndb/include/portlib/NdbThread.h:
mvdir
storage/ndb/include/portlib/NdbTick.h:
mvdir
storage/ndb/include/portlib/PortDefs.h:
mvdir
storage/ndb/include/portlib/prefetch.h:
mvdir
storage/ndb/include/transporter/TransporterCallback.hpp:
mvdir
storage/ndb/include/transporter/TransporterDefinitions.hpp:
mvdir
storage/ndb/include/transporter/TransporterRegistry.hpp:
mvdir
storage/ndb/include/util/Base64.hpp:
mvdir
storage/ndb/include/util/BaseString.hpp:
mvdir
storage/ndb/include/util/Bitmask.hpp:
mvdir
storage/ndb/include/util/ConfigValues.hpp:
mvdir
storage/ndb/include/util/File.hpp:
mvdir
storage/ndb/include/util/InputStream.hpp:
mvdir
storage/ndb/include/util/NdbAutoPtr.hpp:
mvdir
storage/ndb/include/util/NdbOut.hpp:
mvdir
storage/ndb/include/util/NdbSqlUtil.hpp:
mvdir
storage/ndb/include/util/OutputStream.hpp:
mvdir
storage/ndb/include/util/Parser.hpp:
mvdir
storage/ndb/include/util/Properties.hpp:
mvdir
storage/ndb/include/util/SimpleProperties.hpp:
mvdir
storage/ndb/include/util/SocketAuthenticator.hpp:
mvdir
storage/ndb/include/util/SocketClient.hpp:
mvdir
storage/ndb/include/util/SocketServer.hpp:
mvdir
storage/ndb/include/util/UtilBuffer.hpp:
mvdir
storage/ndb/include/util/Vector.hpp:
mvdir
storage/ndb/include/util/basestring_vsnprintf.h:
mvdir
storage/ndb/include/util/md5_hash.hpp:
mvdir
storage/ndb/include/util/ndb_opts.h:
mvdir
storage/ndb/include/util/random.h:
mvdir
storage/ndb/include/util/socket_io.h:
mvdir
storage/ndb/include/util/uucode.h:
mvdir
storage/ndb/include/util/version.h:
mvdir
storage/ndb/lib/.empty:
mvdir
storage/ndb/ndbapi-examples/Makefile:
mvdir
storage/ndb/ndbapi-examples/mgmapi_logevent_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/mgmapi_logevent_example/mgmapi_logevent.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_async_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_async_example/ndbapi_async.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_async_example/readme.txt:
mvdir
storage/ndb/ndbapi-examples/ndbapi_async_example1/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_async_example1/ndbapi_async1.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_event_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_event_example/ndbapi_event.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_retries_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_retries_example/ndbapi_retries.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_scan_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_scan_example/ndbapi_scan.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_scan_example/readme.txt:
mvdir
storage/ndb/ndbapi-examples/ndbapi_simple_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_simple_example/ndbapi_simple.cpp:
mvdir
storage/ndb/ndbapi-examples/ndbapi_simple_index_example/Makefile:
mvdir
storage/ndb/ndbapi-examples/ndbapi_simple_index_example/ndbapi_simple_index.cpp:
mvdir
storage/ndb/src/Makefile.am:
mvdir
storage/ndb/src/common/Makefile.am:
mvdir
storage/ndb/src/common/debugger/BlockNames.cpp:
mvdir
storage/ndb/src/common/debugger/DebuggerNames.cpp:
mvdir
storage/ndb/src/common/debugger/EventLogger.cpp:
mvdir
storage/ndb/src/common/debugger/GrepError.cpp:
mvdir
storage/ndb/src/common/debugger/Makefile.am:
mvdir
storage/ndb/src/common/debugger/SignalLoggerManager.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/AccLock.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/AlterTab.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/AlterTable.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CntrStart.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/ContinueB.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DropIndx.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DropTab.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/DropTrig.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FailRep.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsConf.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/FsRef.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/GCPSave.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/LCP.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/LqhKey.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/Makefile.am:
mvdir
storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/ScanTab.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/SignalNames.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/StartRec.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/SystemError.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TcIndx.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TupCommit.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TupKey.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/UtilLock.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp:
mvdir
storage/ndb/src/common/debugger/signaldata/print.awk:
mvdir
storage/ndb/src/common/logger/ConsoleLogHandler.cpp:
mvdir
storage/ndb/src/common/logger/FileLogHandler.cpp:
mvdir
storage/ndb/src/common/logger/LogHandler.cpp:
mvdir
storage/ndb/src/common/logger/LogHandlerList.cpp:
mvdir
storage/ndb/src/common/logger/LogHandlerList.hpp:
mvdir
storage/ndb/src/common/logger/Logger.cpp:
mvdir
storage/ndb/src/common/logger/Makefile.am:
mvdir
storage/ndb/src/common/logger/SysLogHandler.cpp:
mvdir
storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp:
mvdir
storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp:
mvdir
storage/ndb/src/common/logger/listtest/Makefile:
mvdir
storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp:
mvdir
storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp:
mvdir
storage/ndb/src/common/logger/loggertest/Makefile:
mvdir
storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp:
mvdir
storage/ndb/src/common/mgmcommon/IPCConfig.cpp:
mvdir
storage/ndb/src/common/mgmcommon/Makefile.am:
mvdir
storage/ndb/src/common/mgmcommon/printConfig/Makefile:
mvdir
storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp:
mvdir
storage/ndb/src/common/portlib/Makefile.am:
mvdir
storage/ndb/src/common/portlib/NdbCondition.c:
mvdir
storage/ndb/src/common/portlib/NdbConfig.c:
mvdir
storage/ndb/src/common/portlib/NdbDaemon.c:
mvdir
storage/ndb/src/common/portlib/NdbEnv.c:
mvdir
storage/ndb/src/common/portlib/NdbHost.c:
mvdir
storage/ndb/src/common/portlib/NdbMem.c:
mvdir
storage/ndb/src/common/portlib/NdbMutex.c:
mvdir
storage/ndb/src/common/portlib/NdbPortLibTest.cpp:
mvdir
storage/ndb/src/common/portlib/NdbSleep.c:
mvdir
storage/ndb/src/common/portlib/NdbTCP.cpp:
mvdir
storage/ndb/src/common/portlib/NdbThread.c:
mvdir
storage/ndb/src/common/portlib/NdbTick.c:
mvdir
storage/ndb/src/common/portlib/gcc.cpp:
mvdir
storage/ndb/src/common/portlib/memtest.c:
mvdir
storage/ndb/src/common/portlib/mmslist.cpp:
mvdir
storage/ndb/src/common/portlib/mmstest.cpp:
mvdir
storage/ndb/src/common/portlib/munmaptest.cpp:
mvdir
storage/ndb/src/common/portlib/old_dirs/memtest/Makefile:
mvdir
storage/ndb/src/common/portlib/old_dirs/memtest/munmaptest/Makefile:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/Makefile:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbCondition.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbConditionOSE.h:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbEnv.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbHost.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbMem.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbMem_SoftOse.cpp:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbMutex.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbOut.cpp:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbSleep.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbTCP.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbThread.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/ose/NdbTick.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/test/Makefile:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/Makefile:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbCondition.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbDaemon.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbEnv.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbHost.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbMem.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbMutex.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbSleep.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbTCP.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbThread.c:
mvdir
storage/ndb/src/common/portlib/old_dirs/win32/NdbTick.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbCondition.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbDaemon.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbEnv.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbHost.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbMem.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbMutex.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbSleep.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbTCP.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbThread.c:
mvdir
storage/ndb/src/common/portlib/win32/NdbTick.c:
mvdir
storage/ndb/src/common/transporter/Makefile.am:
mvdir
storage/ndb/src/common/transporter/OSE_Receiver.cpp:
mvdir
storage/ndb/src/common/transporter/OSE_Receiver.hpp:
mvdir
storage/ndb/src/common/transporter/OSE_Signals.hpp:
mvdir
storage/ndb/src/common/transporter/OSE_Transporter.cpp:
mvdir
storage/ndb/src/common/transporter/OSE_Transporter.hpp:
mvdir
storage/ndb/src/common/transporter/Packer.cpp:
mvdir
storage/ndb/src/common/transporter/Packer.hpp:
mvdir
storage/ndb/src/common/transporter/SCI_Transporter.cpp:
mvdir
storage/ndb/src/common/transporter/SCI_Transporter.hpp:
mvdir
storage/ndb/src/common/transporter/SHM_Buffer.hpp:
mvdir
storage/ndb/src/common/transporter/SHM_Transporter.cpp:
mvdir
storage/ndb/src/common/transporter/SHM_Transporter.hpp:
mvdir
storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp:
mvdir
storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp:
mvdir
storage/ndb/src/common/transporter/SendBuffer.cpp:
mvdir
storage/ndb/src/common/transporter/SendBuffer.hpp:
mvdir
storage/ndb/src/common/transporter/TCP_Transporter.cpp:
mvdir
storage/ndb/src/common/transporter/TCP_Transporter.hpp:
mvdir
storage/ndb/src/common/transporter/Transporter.cpp:
mvdir
storage/ndb/src/common/transporter/Transporter.hpp:
mvdir
storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp:
mvdir
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
mvdir
storage/ndb/src/common/transporter/basictest/Makefile:
mvdir
storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp:
mvdir
storage/ndb/src/common/transporter/buddy.cpp:
mvdir
storage/ndb/src/common/transporter/buddy.hpp:
mvdir
storage/ndb/src/common/transporter/failoverSCI/Makefile:
mvdir
storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp:
mvdir
storage/ndb/src/common/transporter/perftest/Makefile:
mvdir
storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp:
mvdir
storage/ndb/src/common/transporter/priotest/Makefile:
mvdir
storage/ndb/src/common/transporter/priotest/prioOSE/Makefile:
mvdir
storage/ndb/src/common/transporter/priotest/prioSCI/Makefile:
mvdir
storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp:
mvdir
storage/ndb/src/common/transporter/priotest/prioSHM/Makefile:
mvdir
storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp:
mvdir
storage/ndb/src/common/transporter/priotest/prioTCP/Makefile:
mvdir
storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp:
mvdir
storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp:
mvdir
storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp:
mvdir
storage/ndb/src/common/util/Base64.cpp:
mvdir
storage/ndb/src/common/util/BaseString.cpp:
mvdir
storage/ndb/src/common/util/Bitmask.cpp:
mvdir
storage/ndb/src/common/util/ConfigValues.cpp:
mvdir
storage/ndb/src/common/util/File.cpp:
mvdir
storage/ndb/src/common/util/InputStream.cpp:
mvdir
storage/ndb/src/common/util/Makefile.am:
mvdir
storage/ndb/src/common/util/NdbErrHnd.cpp:
mvdir
storage/ndb/src/common/util/NdbOut.cpp:
mvdir
storage/ndb/src/common/util/NdbSqlUtil.cpp:
mvdir
storage/ndb/src/common/util/OutputStream.cpp:
mvdir
storage/ndb/src/common/util/Parser.cpp:
mvdir
storage/ndb/src/common/util/Properties.cpp:
mvdir
storage/ndb/src/common/util/SimpleProperties.cpp:
mvdir
storage/ndb/src/common/util/SocketAuthenticator.cpp:
mvdir
storage/ndb/src/common/util/SocketClient.cpp:
mvdir
storage/ndb/src/common/util/SocketServer.cpp:
mvdir
storage/ndb/src/common/util/basestring_vsnprintf.c:
mvdir
storage/ndb/src/common/util/filetest/FileUnitTest.cpp:
mvdir
storage/ndb/src/common/util/filetest/FileUnitTest.hpp:
mvdir
storage/ndb/src/common/util/filetest/Makefile:
mvdir
storage/ndb/src/common/util/getarg.cat3:
mvdir
storage/ndb/src/common/util/md5_hash.cpp:
mvdir
storage/ndb/src/common/util/ndb_init.c:
mvdir
storage/ndb/src/common/util/new.cpp:
mvdir
storage/ndb/src/common/util/random.c:
mvdir
storage/ndb/src/common/util/socket_io.cpp:
mvdir
storage/ndb/src/common/util/strdup.c:
mvdir
storage/ndb/src/common/util/testConfigValues/Makefile:
mvdir
storage/ndb/src/common/util/testConfigValues/testConfigValues.cpp:
mvdir
storage/ndb/src/common/util/uucode.c:
mvdir
storage/ndb/src/common/util/version.c:
mvdir
storage/ndb/src/common/util/testProperties/Makefile:
mvdir
storage/ndb/src/common/util/testProperties/testProperties.cpp:
mvdir
storage/ndb/src/common/util/testSimpleProperties/Makefile:
mvdir
storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp:
mvdir
storage/ndb/src/cw/Makefile.am:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsw:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.sln:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.suo:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.vcproj:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/Closed.ICO:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/Open.ICO:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/TreeView.h:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/bmp00001.bmp:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/resource.h:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/small.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/C++/toolbar.bmp:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/App.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/DATABASE.ICO:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/Database.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/NDB_CPC.csproj.user:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/NDB_CPC.csproj:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/NDB_CPC.ncb:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/NDB_CPC.sln:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/Process.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Computer.cls:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Database.cls:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 110.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 231.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 237.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 241.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 242.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 270.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 271.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 273.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 31.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 337.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 338.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Icon 339.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/MSSCCPRJ.SCC:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Module1.bas:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/NdbCPC.vbp:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/NdbCPC.vbw:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/Process.cls:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/closed folder.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/computer.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmAbout.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmLogin.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmMain.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewComputer.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewComputer.frx:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewDatabase.frx:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewDatabase1.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewDatabase2.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewDatabase2.log:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmNewDatabase3.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmOptions.frm:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/frmSplash.frx:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/networking.ico:
mvdir
storage/ndb/src/cw/cpcc-win32/vb6/open folder.ico:
mvdir
storage/ndb/src/cw/cpcd/APIService.cpp:
mvdir
storage/ndb/src/cw/cpcd/APIService.hpp:
mvdir
storage/ndb/src/cw/cpcd/CPCD.cpp:
mvdir
storage/ndb/src/cw/cpcd/CPCD.hpp:
mvdir
storage/ndb/src/cw/cpcd/Makefile.am:
mvdir
storage/ndb/src/cw/cpcd/Monitor.cpp:
mvdir
storage/ndb/src/cw/cpcd/Process.cpp:
mvdir
storage/ndb/src/cw/cpcd/common.cpp:
mvdir
storage/ndb/src/cw/cpcd/common.hpp:
mvdir
storage/ndb/src/cw/cpcd/main.cpp:
mvdir
storage/ndb/src/cw/test/socketclient/Makefile:
mvdir
storage/ndb/src/cw/test/socketclient/socketClientTest.cpp:
mvdir
storage/ndb/src/cw/util/ClientInterface.cpp:
mvdir
storage/ndb/src/cw/util/ClientInterface.hpp:
mvdir
storage/ndb/src/cw/util/Makefile:
mvdir
storage/ndb/src/cw/util/SocketRegistry.cpp:
mvdir
storage/ndb/src/cw/util/SocketRegistry.hpp:
mvdir
storage/ndb/src/cw/util/SocketService.cpp:
mvdir
storage/ndb/src/cw/util/SocketService.hpp:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/SISCI_LIBRARY_WIN32.TXT:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/scilib.lib:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/scilib_md.lib:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/scilib_mt.lib:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/sisci_api.lib:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/sisci_api_md.lib:
mvdir
storage/ndb/src/external/WIN32.x86/sci/lib/sisci_api_mt.lib:
mvdir
storage/ndb/src/kernel/Makefile.am:
mvdir
storage/ndb/src/kernel/SimBlockList.cpp:
mvdir
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
mvdir
storage/ndb/src/kernel/blocks/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/NodeRestart.new.txt:
mvdir
storage/ndb/src/kernel/blocks/NodeRestart.txt:
mvdir
storage/ndb/src/kernel/blocks/Start.txt:
mvdir
storage/ndb/src/kernel/blocks/SystemRestart.new.txt:
mvdir
storage/ndb/src/kernel/blocks/SystemRestart.txt:
mvdir
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
mvdir
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
mvdir
storage/ndb/src/kernel/blocks/backup/Backup.txt:
mvdir
storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp:
mvdir
storage/ndb/src/kernel/blocks/backup/BackupInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp:
mvdir
storage/ndb/src/kernel/blocks/backup/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/backup/read.cpp:
mvdir
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
mvdir
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp:
mvdir
storage/ndb/src/kernel/blocks/cmvmi/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbacc/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/mutexes.hpp:
mvdir
storage/ndb/src/kernel/blocks/new-block.tar.gz:
mvdir
storage/ndb/src/kernel/main.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbdict/CreateIndex.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/CreateTable.new.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/CreateTable.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Dbdict.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/DropTable.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Event.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl:
mvdir
storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl:
mvdir
storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbdih/LCP.txt:
mvdir
storage/ndb/src/kernel/blocks/dbdih/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbdih/printSysfile/Makefile:
mvdir
storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/Makefile:
mvdir
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp:
mvdir
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtc/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupLCP.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupSystemRestart.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/DbtupUndoLog.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtup/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbtup/Notes.txt:
mvdir
storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbtux/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/dbtux/Times.txt:
mvdir
storage/ndb/src/kernel/blocks/dbtux/tuxstatus.html:
mvdir
storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp:
mvdir
storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp:
mvdir
storage/ndb/src/kernel/blocks/dbutil/DbUtil.txt:
mvdir
storage/ndb/src/kernel/blocks/dbutil/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/grep/Grep.cpp:
mvdir
storage/ndb/src/kernel/blocks/grep/Grep.hpp:
mvdir
storage/ndb/src/kernel/blocks/grep/GrepInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/grep/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/grep/systab_test/Makefile:
mvdir
storage/ndb/src/kernel/blocks/grep/systab_test/grep_systab_test.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbcntr/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/Makefile:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelOSE.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/Makefile:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp:
mvdir
storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp:
mvdir
storage/ndb/src/kernel/blocks/qmgr/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
mvdir
storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
mvdir
storage/ndb/src/kernel/blocks/qmgr/timer.hpp:
mvdir
storage/ndb/src/kernel/blocks/suma/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
mvdir
storage/ndb/src/kernel/blocks/suma/Suma.hpp:
mvdir
storage/ndb/src/kernel/blocks/suma/Suma.txt:
mvdir
storage/ndb/src/kernel/blocks/suma/SumaInit.cpp:
mvdir
storage/ndb/src/kernel/blocks/trix/Makefile.am:
mvdir
storage/ndb/src/kernel/blocks/trix/Trix.cpp:
mvdir
storage/ndb/src/kernel/blocks/trix/Trix.hpp:
mvdir
storage/ndb/src/kernel/error/Error.hpp:
mvdir
storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp:
mvdir
storage/ndb/src/kernel/error/ErrorMessages.cpp:
mvdir
storage/ndb/src/kernel/error/ErrorMessages.hpp:
mvdir
storage/ndb/src/kernel/error/ErrorReporter.cpp:
mvdir
storage/ndb/src/kernel/error/ErrorReporter.hpp:
mvdir
storage/ndb/src/kernel/error/Makefile.am:
mvdir
storage/ndb/src/kernel/error/TimeModule.cpp:
mvdir
storage/ndb/src/kernel/error/TimeModule.hpp:
mvdir
storage/ndb/src/kernel/vm/Array.hpp:
mvdir
storage/ndb/src/kernel/vm/ArrayFifoList.hpp:
mvdir
storage/ndb/src/kernel/vm/ArrayList.hpp:
mvdir
storage/ndb/src/kernel/vm/ArrayPool.hpp:
mvdir
storage/ndb/src/kernel/vm/CArray.hpp:
mvdir
storage/ndb/src/kernel/vm/Callback.hpp:
mvdir
storage/ndb/src/kernel/vm/ClusterConfiguration.cpp:
mvdir
storage/ndb/src/kernel/vm/ClusterConfiguration.hpp:
mvdir
storage/ndb/src/kernel/vm/Configuration.cpp:
mvdir
storage/ndb/src/kernel/vm/Configuration.hpp:
mvdir
storage/ndb/src/kernel/vm/DLFifoList.hpp:
mvdir
storage/ndb/src/kernel/vm/DLHashTable.hpp:
mvdir
storage/ndb/src/kernel/vm/DLHashTable2.hpp:
mvdir
storage/ndb/src/kernel/vm/DLList.hpp:
mvdir
storage/ndb/src/kernel/vm/DataBuffer.hpp:
mvdir
storage/ndb/src/kernel/vm/Emulator.cpp:
mvdir
storage/ndb/src/kernel/vm/Emulator.hpp:
mvdir
storage/ndb/src/kernel/vm/FastScheduler.cpp:
mvdir
storage/ndb/src/kernel/vm/FastScheduler.hpp:
mvdir
storage/ndb/src/kernel/vm/GlobalData.hpp:
mvdir
storage/ndb/src/kernel/vm/KeyTable.hpp:
mvdir
storage/ndb/src/kernel/vm/KeyTable2.hpp:
mvdir
storage/ndb/src/kernel/vm/LongSignal.hpp:
mvdir
storage/ndb/src/kernel/vm/Makefile.am:
mvdir
storage/ndb/src/kernel/vm/MetaData.cpp:
mvdir
storage/ndb/src/kernel/vm/MetaData.hpp:
mvdir
storage/ndb/src/kernel/vm/Mutex.cpp:
mvdir
storage/ndb/src/kernel/vm/Mutex.hpp:
mvdir
storage/ndb/src/kernel/vm/Prio.hpp:
mvdir
storage/ndb/src/kernel/vm/RequestTracker.hpp:
mvdir
storage/ndb/src/kernel/vm/SLList.hpp:
mvdir
storage/ndb/src/kernel/vm/SafeCounter.cpp:
mvdir
storage/ndb/src/kernel/vm/SafeCounter.hpp:
mvdir
storage/ndb/src/kernel/vm/SectionReader.cpp:
mvdir
storage/ndb/src/kernel/vm/SectionReader.hpp:
mvdir
storage/ndb/src/kernel/vm/SignalCounter.hpp:
mvdir
storage/ndb/src/kernel/vm/SimBlockList.hpp:
mvdir
storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp:
mvdir
storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
mvdir
storage/ndb/src/kernel/vm/SimulatedBlock.hpp:
mvdir
storage/ndb/src/kernel/vm/ThreadConfig.cpp:
mvdir
storage/ndb/src/kernel/vm/ThreadConfig.hpp:
mvdir
storage/ndb/src/kernel/vm/TimeQueue.cpp:
mvdir
storage/ndb/src/kernel/vm/TimeQueue.hpp:
mvdir
storage/ndb/src/kernel/vm/TransporterCallback.cpp:
mvdir
storage/ndb/src/kernel/vm/VMSignal.cpp:
mvdir
storage/ndb/src/kernel/vm/VMSignal.hpp:
mvdir
storage/ndb/src/kernel/vm/WaitQueue.hpp:
mvdir
storage/ndb/src/kernel/vm/WatchDog.cpp:
mvdir
storage/ndb/src/kernel/vm/WatchDog.hpp:
mvdir
storage/ndb/src/kernel/vm/al_test/Makefile:
mvdir
storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp:
mvdir
storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp:
mvdir
storage/ndb/src/kernel/vm/al_test/main.cpp:
mvdir
storage/ndb/src/kernel/vm/pc.hpp:
mvdir
storage/ndb/src/kernel/vm/testCopy/Makefile:
mvdir
storage/ndb/src/kernel/vm/testCopy/rr.cpp:
mvdir
storage/ndb/src/kernel/vm/testCopy/testCopy.cpp:
mvdir
storage/ndb/src/kernel/vm/testDataBuffer/Makefile:
mvdir
storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp:
mvdir
storage/ndb/src/kernel/vm/testLongSig/Makefile:
mvdir
storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp:
mvdir
storage/ndb/src/kernel/vm/testSimplePropertiesSection/Makefile:
mvdir
storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp:
mvdir
storage/ndb/src/mgmapi/LocalConfig.cpp:
mvdir
storage/ndb/src/mgmapi/LocalConfig.hpp:
mvdir
storage/ndb/src/mgmapi/Makefile.am:
mvdir
storage/ndb/src/mgmapi/mgmapi.cpp:
mvdir
storage/ndb/src/mgmapi/mgmapi_configuration.cpp:
mvdir
storage/ndb/src/mgmapi/mgmapi_configuration.hpp:
mvdir
storage/ndb/src/mgmapi/mgmapi_internal.h:
mvdir
storage/ndb/src/mgmapi/ndb_logevent.cpp:
mvdir
storage/ndb/src/mgmapi/ndb_logevent.hpp:
mvdir
storage/ndb/src/mgmapi/test/Makefile:
mvdir
storage/ndb/src/mgmapi/test/keso.c:
mvdir
storage/ndb/src/mgmapi/test/mgmSrvApi.cpp:
mvdir
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
mvdir
storage/ndb/src/mgmclient/Makefile.am:
mvdir
storage/ndb/src/mgmclient/main.cpp:
mvdir
storage/ndb/src/mgmclient/ndb_mgmclient.hpp:
mvdir
storage/ndb/src/mgmclient/ndb_mgmclient.h:
mvdir
storage/ndb/src/mgmclient/test_cpcd/Makefile:
mvdir
storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp:
mvdir
storage/ndb/src/mgmsrv/Config.cpp:
mvdir
storage/ndb/src/mgmsrv/Config.hpp:
mvdir
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
mvdir
storage/ndb/src/mgmsrv/ConfigInfo.hpp:
mvdir
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
mvdir
storage/ndb/src/mgmsrv/InitConfigFileParser.hpp:
mvdir
storage/ndb/src/mgmsrv/Makefile.am:
mvdir
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
mvdir
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
mvdir
storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp:
mvdir
storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp:
mvdir
storage/ndb/src/mgmsrv/Services.cpp:
mvdir
storage/ndb/src/mgmsrv/Services.hpp:
mvdir
storage/ndb/src/mgmsrv/SignalQueue.cpp:
mvdir
storage/ndb/src/mgmsrv/SignalQueue.hpp:
mvdir
storage/ndb/src/mgmsrv/convertStrToInt.cpp:
mvdir
storage/ndb/src/mgmsrv/convertStrToInt.hpp:
mvdir
storage/ndb/src/mgmsrv/main.cpp:
mvdir
storage/ndb/src/mgmsrv/mkconfig/Makefile:
mvdir
storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp:
mvdir
storage/ndb/src/ndbapi/API.hpp:
mvdir
storage/ndb/src/ndbapi/ClusterMgr.cpp:
mvdir
storage/ndb/src/ndbapi/ClusterMgr.hpp:
mvdir
storage/ndb/src/ndbapi/DictCache.cpp:
mvdir
storage/ndb/src/ndbapi/DictCache.hpp:
mvdir
storage/ndb/src/ndbapi/Makefile.am:
mvdir
storage/ndb/src/ndbapi/Ndb.cpp:
mvdir
storage/ndb/src/ndbapi/NdbApiSignal.cpp:
mvdir
storage/ndb/src/ndbapi/NdbApiSignal.hpp:
mvdir
storage/ndb/src/ndbapi/NdbBlob.cpp:
mvdir
storage/ndb/src/ndbapi/NdbBlobImpl.hpp:
mvdir
storage/ndb/src/ndbapi/NdbDictionary.cpp:
mvdir
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
mvdir
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
mvdir
storage/ndb/src/ndbapi/NdbErrorOut.cpp:
mvdir
storage/ndb/src/ndbapi/NdbEventOperation.cpp:
mvdir
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
mvdir
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp:
mvdir
storage/ndb/src/ndbapi/NdbImpl.hpp:
mvdir
storage/ndb/src/ndbapi/NdbIndexOperation.cpp:
mvdir
storage/ndb/src/ndbapi/NdbLinHash.hpp:
mvdir
storage/ndb/src/ndbapi/NdbOperation.cpp:
mvdir
storage/ndb/src/ndbapi/NdbOperationDefine.cpp:
mvdir
storage/ndb/src/ndbapi/NdbOperationExec.cpp:
mvdir
storage/ndb/src/ndbapi/NdbOperationInt.cpp:
mvdir
storage/ndb/src/ndbapi/NdbOperationScan.cpp:
mvdir
storage/ndb/src/ndbapi/NdbOperationSearch.cpp:
mvdir
storage/ndb/src/ndbapi/NdbPool.cpp:
mvdir
storage/ndb/src/ndbapi/NdbPoolImpl.cpp:
mvdir
storage/ndb/src/ndbapi/NdbPoolImpl.hpp:
mvdir
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
mvdir
storage/ndb/src/ndbapi/NdbReceiver.cpp:
mvdir
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
mvdir
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
mvdir
storage/ndb/src/ndbapi/NdbTransaction.cpp:
mvdir
storage/ndb/src/ndbapi/NdbTransactionScan.cpp:
mvdir
storage/ndb/src/ndbapi/NdbUtil.cpp:
mvdir
storage/ndb/src/ndbapi/NdbUtil.hpp:
mvdir
storage/ndb/src/ndbapi/NdbWaiter.hpp:
mvdir
storage/ndb/src/ndbapi/Ndberr.cpp:
mvdir
storage/ndb/src/ndbapi/Ndbif.cpp:
mvdir
storage/ndb/src/ndbapi/Ndbinit.cpp:
mvdir
storage/ndb/src/ndbapi/Ndblist.cpp:
mvdir
storage/ndb/src/ndbapi/ObjectMap.hpp:
mvdir
storage/ndb/src/ndbapi/ScanOperation.txt:
mvdir
storage/ndb/src/ndbapi/TransporterFacade.cpp:
mvdir
storage/ndb/src/ndbapi/TransporterFacade.hpp:
mvdir
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
mvdir
storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp:
mvdir
storage/ndb/src/ndbapi/ndberror.c:
mvdir
storage/ndb/src/ndbapi/signal-sender/Makefile:
mvdir
storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp:
mvdir
storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp:
mvdir
storage/ndb/src/old_files/client/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/Extra.mk:
mvdir
storage/ndb/src/old_files/client/odbc/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/NdbOdbc.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/NdbOdbc.def:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/CodeGen.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/CodeGen.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_base.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_base.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_column.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_column.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_comp_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_comp_op.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_index.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_row.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_row.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_table.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_create_table.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_data_type.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_data_type.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_column.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_column.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_constr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_constr.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_row.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_row.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_index.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_lookup.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_delete_scan.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml_column.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml_column.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml_row.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_dml_row.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_drop_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_drop_index.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_drop_table.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_drop_table.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_column.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_column.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_const.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_const.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_conv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_conv.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_func.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_func.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_op.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_param.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_param.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_row.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_expr_row.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_idx_column.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_idx_column.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_insert.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_insert.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_pred.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_pred.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_pred_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_pred_op.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_count.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_count.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_distinct.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_distinct.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_filter.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_filter.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_group.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_group.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_index.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_join.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_join.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_lookup.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_project.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_project.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_range.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_range.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_repeat.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_repeat.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_scan.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_sort.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_sort.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_sys.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_query_sys.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_root.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_root.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_select.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_select.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_set_row.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_set_row.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_stmt.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_stmt.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_table.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_table.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_table_list.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_table_list.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_index.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_lookup.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Code_update_scan.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/SimpleGram.ypp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/SimpleParser.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/SimpleParser.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/codegen/SimpleScan.lpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/AttrArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/AttrArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/CodeTree.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/CodeTree.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/ConnArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/ConnArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/Ctx.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/Ctx.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataField.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataField.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataRow.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataRow.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataType.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DataType.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DescArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DescArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DiagArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/DiagArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/common/OdbcData.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/OdbcData.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/ResultArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/ResultArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/Sqlstate.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/Sqlstate.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/StmtArea.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/StmtArea.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/StmtInfo.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/common.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/common/common.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictCatalog.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictCatalog.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictColumn.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictColumn.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictIndex.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictIndex.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictSchema.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictSchema.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictSys.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictSys.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictTable.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/DictTable.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/dictionary/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/docs/class.fig:
mvdir
storage/ndb/src/old_files/client/odbc/docs/descfield.pl:
mvdir
storage/ndb/src/old_files/client/odbc/docs/diag.txt:
mvdir
storage/ndb/src/old_files/client/odbc/docs/getinfo.pl:
mvdir
storage/ndb/src/old_files/client/odbc/docs/gettypeinfo.pl:
mvdir
storage/ndb/src/old_files/client/odbc/docs/handleattr.pl:
mvdir
storage/ndb/src/old_files/client/odbc/docs/main.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/docs/ndbodbc.html:
mvdir
storage/ndb/src/old_files/client/odbc/docs/select.fig:
mvdir
storage/ndb/src/old_files/client/odbc/docs/systables.pl:
mvdir
storage/ndb/src/old_files/client/odbc/docs/type.txt:
mvdir
storage/ndb/src/old_files/client/odbc/driver/Func.data:
mvdir
storage/ndb/src/old_files/client/odbc/driver/Func.pl:
mvdir
storage/ndb/src/old_files/client/odbc/driver/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLAllocConnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLAllocEnv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLAllocHandle.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLAllocHandleStd.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLAllocStmt.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLBindCol.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLBindParam.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLBindParameter.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLBrowseConnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLBulkOperations.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLCancel.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLCloseCursor.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLColAttribute.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLColAttributes.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLColumnPrivileges.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLColumns.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLConnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLCopyDesc.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDataSources.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDescribeCol.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDescribeParam.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDisconnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDriverConnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLDrivers.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLEndTran.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLError.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLExecDirect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLExecute.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLExtendedFetch.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFetch.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFetchScroll.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLForeignKeys.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFreeConnect.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFreeEnv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFreeHandle.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLFreeStmt.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetConnectAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetConnectOption.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetCursorName.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetData.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetDescField.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetDescRec.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetDiagField.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetDiagRec.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetEnvAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetFunctions.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetInfo.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetStmtAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetStmtOption.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLGetTypeInfo.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLMoreResults.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLNativeSql.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLNumParams.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLNumResultCols.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLParamData.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLParamOptions.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLPrepare.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLPrimaryKeys.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLProcedureColumns.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLProcedures.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLPutData.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLRowCount.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetConnectAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetConnectOption.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetCursorName.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetDescField.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetDescRec.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetEnvAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetParam.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetPos.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetScrollOptions.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetStmtAttr.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSetStmtOption.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLSpecialColumns.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLStatistics.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLTablePrivileges.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLTables.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/SQLTransact.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/driver.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/driver/driver.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_comp_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_create_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_create_table.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_delete_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_delete_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_delete_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_drop_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_drop_table.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_expr_conv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_expr_func.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_expr_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_insert.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_pred_op.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_query_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_query_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_query_range.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_query_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_query_sys.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_update_index.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_update_lookup.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Exec_update_scan.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Executor.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Executor.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/executor/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/handles/AttrDbc.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/AttrEnv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/AttrRoot.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/AttrStmt.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/DescSpec.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/FuncTab.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleBase.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleBase.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleDbc.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleDesc.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleDesc.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleEnv.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleEnv.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleRoot.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleRoot.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleStmt.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/HandleStmt.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/InfoTab.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/Makefile:
mvdir
storage/ndb/src/old_files/client/odbc/handles/PoolNdb.cpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/PoolNdb.hpp:
mvdir
storage/ndb/src/old_files/client/odbc/handles/handles.hpp:
mvdir
storage/ndb/src/old_files/ndbbaseclient/Makefile:
mvdir
storage/ndb/src/old_files/ndbbaseclient/ndbbaseclient_dummy.cpp:
mvdir
storage/ndb/src/old_files/ndbclient/Makefile:
mvdir
storage/ndb/src/old_files/ndbclient/ndbclient_dummy.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/Makefile:
mvdir
storage/ndb/src/old_files/newtonapi/dba_binding.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_bulkread.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_config.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_dac.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_error.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_init.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_internal.hpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_process.cpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_process.hpp:
mvdir
storage/ndb/src/old_files/newtonapi/dba_schema.cpp:
mvdir
storage/ndb/src/old_files/rep/ExtSender.cpp:
mvdir
storage/ndb/src/old_files/rep/ExtSender.hpp:
mvdir
storage/ndb/src/old_files/rep/Makefile:
mvdir
storage/ndb/src/old_files/rep/NodeConnectInfo.hpp:
mvdir
storage/ndb/src/old_files/rep/README:
mvdir
storage/ndb/src/old_files/rep/RepApiInterpreter.cpp:
mvdir
storage/ndb/src/old_files/rep/RepApiInterpreter.hpp:
mvdir
storage/ndb/src/old_files/rep/RepApiService.cpp:
mvdir
storage/ndb/src/old_files/rep/RepApiService.hpp:
mvdir
storage/ndb/src/old_files/rep/RepCommandInterpreter.cpp:
mvdir
storage/ndb/src/old_files/rep/RepCommandInterpreter.hpp:
mvdir
storage/ndb/src/old_files/rep/RepComponents.cpp:
mvdir
storage/ndb/src/old_files/rep/RepComponents.hpp:
mvdir
storage/ndb/src/old_files/rep/RepMain.cpp:
mvdir
storage/ndb/src/old_files/rep/Requestor.cpp:
mvdir
storage/ndb/src/old_files/rep/Requestor.hpp:
mvdir
storage/ndb/src/old_files/rep/RequestorSubscriptions.cpp:
mvdir
storage/ndb/src/old_files/rep/SignalQueue.cpp:
mvdir
storage/ndb/src/old_files/rep/SignalQueue.hpp:
mvdir
storage/ndb/src/old_files/rep/TODO:
mvdir
storage/ndb/src/old_files/rep/adapters/AppNDB.cpp:
mvdir
storage/ndb/src/old_files/rep/adapters/AppNDB.hpp:
mvdir
storage/ndb/src/old_files/rep/adapters/ExtAPI.cpp:
mvdir
storage/ndb/src/old_files/rep/adapters/ExtAPI.hpp:
mvdir
storage/ndb/src/old_files/rep/adapters/ExtNDB.cpp:
mvdir
storage/ndb/src/old_files/rep/adapters/ExtNDB.hpp:
mvdir
storage/ndb/src/old_files/rep/adapters/Makefile:
mvdir
storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp:
mvdir
storage/ndb/src/old_files/rep/dbug_hack.cpp:
mvdir
storage/ndb/src/old_files/rep/rep_version.hpp:
mvdir
storage/ndb/src/old_files/rep/repapi/Makefile:
mvdir
storage/ndb/src/old_files/rep/repapi/repapi.cpp:
mvdir
storage/ndb/src/old_files/rep/repapi/repapi.h:
mvdir
storage/ndb/src/old_files/rep/state/Channel.cpp:
mvdir
storage/ndb/src/old_files/rep/state/Channel.hpp:
mvdir
storage/ndb/src/old_files/rep/state/Interval.cpp:
mvdir
storage/ndb/src/old_files/rep/state/Interval.hpp:
mvdir
storage/ndb/src/old_files/rep/state/Makefile:
mvdir
storage/ndb/src/old_files/rep/state/RepState.cpp:
mvdir
storage/ndb/src/old_files/rep/state/RepState.hpp:
mvdir
storage/ndb/src/old_files/rep/state/RepStateEvent.cpp:
mvdir
storage/ndb/src/old_files/rep/state/RepStateRequests.cpp:
mvdir
storage/ndb/src/old_files/rep/state/testInterval/Makefile:
mvdir
storage/ndb/src/old_files/rep/state/testInterval/testInterval.cpp:
mvdir
storage/ndb/src/old_files/rep/state/testRepState/Makefile:
mvdir
storage/ndb/src/old_files/rep/state/testRepState/testRequestor.cpp:
mvdir
storage/ndb/src/old_files/rep/state/testRepState/testRequestor.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIBuffer.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIBuffer.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIContainer.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIContainer.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIContainerPS.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIContainerPS.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIPage.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/GCIPage.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/LogRecord.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/Makefile:
mvdir
storage/ndb/src/old_files/rep/storage/NodeConnectInfo.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/NodeGroup.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/NodeGroup.hpp:
mvdir
storage/ndb/src/old_files/rep/storage/NodeGroupInfo.cpp:
mvdir
storage/ndb/src/old_files/rep/storage/NodeGroupInfo.hpp:
mvdir
storage/ndb/src/old_files/rep/transfer/Makefile:
mvdir
storage/ndb/src/old_files/rep/transfer/TransPS.cpp:
mvdir
storage/ndb/src/old_files/rep/transfer/TransPS.hpp:
mvdir
storage/ndb/src/old_files/rep/transfer/TransSS.cpp:
mvdir
storage/ndb/src/old_files/rep/transfer/TransSS.hpp:
mvdir
storage/ndb/src/old_files/rep/transfer/TransSSSubscriptions.cpp:
mvdir
storage/ndb/test/Makefile.am:
mvdir
storage/ndb/test/include/CpcClient.hpp:
mvdir
storage/ndb/test/include/HugoAsynchTransactions.hpp:
mvdir
storage/ndb/test/include/HugoCalculator.hpp:
mvdir
storage/ndb/test/include/HugoOperations.hpp:
mvdir
storage/ndb/test/include/HugoTransactions.hpp:
mvdir
storage/ndb/test/include/NDBT.hpp:
mvdir
storage/ndb/test/include/NDBT_DataSet.hpp:
mvdir
storage/ndb/test/include/NDBT_DataSetTransaction.hpp:
mvdir
storage/ndb/test/include/NDBT_Error.hpp:
mvdir
storage/ndb/test/include/NDBT_Output.hpp:
mvdir
storage/ndb/test/include/NDBT_ResultRow.hpp:
mvdir
storage/ndb/test/include/NDBT_ReturnCodes.h:
mvdir
storage/ndb/test/include/NDBT_Stats.hpp:
mvdir
storage/ndb/test/include/NDBT_Table.hpp:
mvdir
storage/ndb/test/include/NDBT_Tables.hpp:
mvdir
storage/ndb/test/include/NDBT_Test.hpp:
mvdir
storage/ndb/test/include/NdbBackup.hpp:
mvdir
storage/ndb/test/include/NdbConfig.hpp:
mvdir
storage/ndb/test/include/NdbGrep.hpp:
mvdir
storage/ndb/test/include/NdbRestarter.hpp:
mvdir
storage/ndb/test/include/NdbRestarts.hpp:
mvdir
storage/ndb/test/include/NdbSchemaCon.hpp:
mvdir
storage/ndb/test/include/NdbSchemaOp.hpp:
mvdir
storage/ndb/test/include/NdbTest.hpp:
mvdir
storage/ndb/test/include/NdbTimer.hpp:
mvdir
storage/ndb/test/include/TestNdbEventOperation.hpp:
mvdir
storage/ndb/test/include/UtilTransactions.hpp:
mvdir
storage/ndb/test/include/getarg.h:
mvdir
storage/ndb/test/ndbapi/InsertRecs.cpp:
mvdir
storage/ndb/test/ndbapi/Makefile.am:
mvdir
storage/ndb/test/ndbapi/ScanFilter.hpp:
mvdir
storage/ndb/test/ndbapi/ScanFunctions.hpp:
mvdir
storage/ndb/test/ndbapi/ScanInterpretTest.hpp:
mvdir
storage/ndb/test/ndbapi/TraceNdbApi.cpp:
mvdir
storage/ndb/test/ndbapi/VerifyNdbApi.cpp:
mvdir
storage/ndb/test/ndbapi/acid.cpp:
mvdir
storage/ndb/test/ndbapi/acid2.cpp:
mvdir
storage/ndb/test/ndbapi/adoInsertRecs.cpp:
mvdir
storage/ndb/test/ndbapi/asyncGenerator.cpp:
mvdir
storage/ndb/test/ndbapi/benchronja.cpp:
mvdir
storage/ndb/test/ndbapi/bulk_copy.cpp:
mvdir
storage/ndb/test/ndbapi/cdrserver.cpp:
mvdir
storage/ndb/test/ndbapi/celloDb.cpp:
mvdir
storage/ndb/test/ndbapi/create_all_tabs.cpp:
mvdir
storage/ndb/test/ndbapi/create_tab.cpp:
mvdir
storage/ndb/test/ndbapi/drop_all_tabs.cpp:
mvdir
storage/ndb/test/ndbapi/flexAsynch.cpp:
mvdir
storage/ndb/test/ndbapi/flexBench.cpp:
mvdir
storage/ndb/test/ndbapi/flexHammer.cpp:
mvdir
storage/ndb/test/ndbapi/flexScan.cpp:
mvdir
storage/ndb/test/ndbapi/flexTT.cpp:
mvdir
storage/ndb/test/ndbapi/flexTimedAsynch.cpp:
mvdir
storage/ndb/test/ndbapi/flex_bench_mysql.cpp:
mvdir
storage/ndb/test/ndbapi/index.cpp:
mvdir
storage/ndb/test/ndbapi/index2.cpp:
mvdir
storage/ndb/test/ndbapi/initronja.cpp:
mvdir
storage/ndb/test/ndbapi/interpreterInTup.cpp:
mvdir
storage/ndb/test/ndbapi/mainAsyncGenerator.cpp:
mvdir
storage/ndb/test/ndbapi/msa.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_async1.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_async2.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_populate.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction2.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction3.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction4.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction5.cpp:
mvdir
storage/ndb/test/ndbapi/ndb_user_transaction6.cpp:
mvdir
storage/ndb/test/ndbapi/restarter.cpp:
mvdir
storage/ndb/test/ndbapi/restarter2.cpp:
mvdir
storage/ndb/test/ndbapi/restarts.cpp:
mvdir
storage/ndb/test/ndbapi/size.cpp:
mvdir
storage/ndb/test/ndbapi/slow_select.cpp:
mvdir
storage/ndb/test/ndbapi/testBackup.cpp:
mvdir
storage/ndb/test/ndbapi/testBasic.cpp:
mvdir
storage/ndb/test/ndbapi/testBasicAsynch.cpp:
mvdir
storage/ndb/test/ndbapi/testBitfield.cpp:
mvdir
storage/ndb/test/ndbapi/testBlobs.cpp:
mvdir
storage/ndb/test/ndbapi/testDataBuffers.cpp:
mvdir
storage/ndb/test/ndbapi/testDeadlock.cpp:
mvdir
storage/ndb/test/ndbapi/testDict.cpp:
mvdir
storage/ndb/test/ndbapi/testGrep.cpp:
mvdir
storage/ndb/test/ndbapi/testGrepVerify.cpp:
mvdir
storage/ndb/test/ndbapi/testIndex.cpp:
mvdir
storage/ndb/test/ndbapi/testInterpreter.cpp:
mvdir
storage/ndb/test/ndbapi/testLcp.cpp:
mvdir
storage/ndb/test/ndbapi/testMgm.cpp:
mvdir
storage/ndb/test/ndbapi/testNdbApi.cpp:
mvdir
storage/ndb/test/ndbapi/testNodeRestart.cpp:
mvdir
storage/ndb/test/ndbapi/testOIBasic.cpp:
mvdir
storage/ndb/test/ndbapi/testOperations.cpp:
mvdir
storage/ndb/test/ndbapi/testOrderedIndex.cpp:
mvdir
storage/ndb/test/ndbapi/testPartitioning.cpp:
mvdir
storage/ndb/test/ndbapi/testReadPerf.cpp:
mvdir
storage/ndb/test/ndbapi/testRestartGci.cpp:
mvdir
storage/ndb/test/ndbapi/bank/Bank.cpp:
mvdir
storage/ndb/test/ndbapi/bank/Bank.hpp:
mvdir
storage/ndb/test/ndbapi/bank/BankLoad.cpp:
mvdir
storage/ndb/test/ndbapi/bank/Makefile.am:
mvdir
storage/ndb/test/ndbapi/bank/bankCreator.cpp:
mvdir
storage/ndb/test/ndbapi/bank/bankMakeGL.cpp:
mvdir
storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp:
mvdir
storage/ndb/test/ndbapi/bank/bankTimer.cpp:
mvdir
storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp:
mvdir
storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp:
mvdir
storage/ndb/test/ndbapi/bank/testBank.cpp:
mvdir
storage/ndb/test/ndbapi/bench/asyncGenerator.cpp:
mvdir
storage/ndb/test/ndbapi/bench/dbGenerator.h:
mvdir
storage/ndb/test/ndbapi/bench/dbPopulate.cpp:
mvdir
storage/ndb/test/ndbapi/bench/dbPopulate.h:
mvdir
storage/ndb/test/ndbapi/bench/macros.h:
mvdir
storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp:
mvdir
storage/ndb/test/ndbapi/bench/mainPopulate.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_async1.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_async2.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_error.hpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_schema.hpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp:
mvdir
storage/ndb/test/ndbapi/testScan.cpp:
mvdir
storage/ndb/test/ndbapi/testScanInterpreter.cpp:
mvdir
storage/ndb/test/ndbapi/testScanPerf.cpp:
mvdir
storage/ndb/test/ndbapi/testSystemRestart.cpp:
mvdir
storage/ndb/test/ndbapi/testTimeout.cpp:
mvdir
storage/ndb/test/ndbapi/testTransactions.cpp:
mvdir
storage/ndb/test/ndbapi/test_event.cpp:
mvdir
storage/ndb/test/ndbapi/test_event_multi_table.cpp:
mvdir
storage/ndb/test/ndbapi/userInterface.cpp:
mvdir
storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp:
mvdir
storage/ndb/test/ndbapi/bench/testData.h:
mvdir
storage/ndb/test/ndbapi/bench/testDefinitions.h:
mvdir
storage/ndb/test/ndbapi/bench/userInterface.cpp:
mvdir
storage/ndb/test/ndbapi/bench/userInterface.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/acid/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/acid2/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/acid2/TraceNdbApi.hpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/acid2/VerifyNdbApi.hpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/basicAsynch/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/bulk_copy/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/create_all_tabs/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/create_tab/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/drop_all_tabs/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexAsynch/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexBench/Makefile.am:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexBench/ndbplot.pl:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexHammer/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexHammer/README:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexScan/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexScan/README:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexTT/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flexTimedAsynch/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/flex_bench_mysql/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/indexTest/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/indexTest2/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/interpreterInTup/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/generator/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/dbGenerator.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/testData.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/userInterface.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/macros.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/ndb_error.hpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/bin/.empty:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/include/ndb_schema.hpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/include/testDefinitions.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/lib/.empty:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l-p10.sh:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l.sh:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-p10.sh:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench.sh:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/README:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/mainGenerator.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/include/testData.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/include/userInterface.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.linux:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.sparc:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/mainPopulate.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/localDbPrepare.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/macros.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/ndb_error.hpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userHandle.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userInterface.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userHandle.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userInterface.cpp:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userTransaction.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userTransaction.c:
mvdir
storage/ndb/test/ndbapi/old_dirs/restarter/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/restarter2/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/restarts/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/ronja/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/ronja/benchronja/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/ronja/initronja/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/telco/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/telco/readme:
mvdir
storage/ndb/test/ndbapi/old_dirs/testBackup/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testBasic/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testBlobs/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testDataBuffers/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testDict/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testGrep/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testGrep/verify/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testIndex/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testInterpreter/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testMgm/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testNdbApi/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testNodeRestart/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testOIBasic/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testOIBasic/times.txt:
mvdir
storage/ndb/test/ndbapi/old_dirs/testOperations/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testOrderedIndex/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testRestartGci/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testScan/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testScanInterpreter/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testSystemRestart/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testTimeout/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/testTransactions/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/test_event/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/vw_test/Makefile:
mvdir
storage/ndb/test/ndbapi/old_dirs/vw_test/bcd.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/vw_test/script/client_start:
mvdir
storage/ndb/test/ndbapi/old_dirs/vw_test/utv.h:
mvdir
storage/ndb/test/ndbapi/old_dirs/vw_test/vcdrfunc.h:
mvdir
storage/ndb/test/ndbnet/test.run:
mvdir
storage/ndb/test/ndbnet/testError.run:
mvdir
storage/ndb/test/ndbnet/testMNF.run:
mvdir
storage/ndb/test/ndbnet/testNR.run:
mvdir
storage/ndb/test/ndbnet/testNR1.run:
mvdir
storage/ndb/test/ndbnet/testNR4.run:
mvdir
storage/ndb/test/ndbnet/testSRhang.run:
mvdir
storage/ndb/test/ndbnet/testTR295.run:
mvdir
storage/ndb/test/newtonapi/basic_test/Makefile:
mvdir
storage/ndb/test/newtonapi/basic_test/basic/Makefile:
mvdir
storage/ndb/test/newtonapi/basic_test/basic/basic.cpp:
mvdir
storage/ndb/test/newtonapi/basic_test/bulk_read/Makefile:
mvdir
storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp:
mvdir
storage/ndb/test/newtonapi/basic_test/common.cpp:
mvdir
storage/ndb/test/newtonapi/basic_test/common.hpp:
mvdir
storage/ndb/test/newtonapi/basic_test/ptr_binding/Makefile:
mvdir
storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp:
mvdir
storage/ndb/test/newtonapi/basic_test/too_basic.cpp:
mvdir
storage/ndb/test/newtonapi/perf_test/Makefile:
mvdir
storage/ndb/test/newtonapi/perf_test/perf.cpp:
mvdir
storage/ndb/test/odbc/SQL99_test/Makefile:
mvdir
storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp:
mvdir
storage/ndb/test/odbc/SQL99_test/SQL99_test.h:
mvdir
storage/ndb/test/odbc/client/Makefile:
mvdir
storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp:
mvdir
storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp:
mvdir
storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp:
mvdir
storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp:
mvdir
storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp:
mvdir
storage/ndb/test/odbc/client/SQLBindColTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLBindParameterTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLCancelTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLColAttributeTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp:
mvdir
storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp:
mvdir
storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp:
mvdir
storage/ndb/test/odbc/client/SQLConnectTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLCopyDescTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLDescribeColTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLDisconnectTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLEndTranTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLErrorTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLExecDirectTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLExecuteTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLFetchTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDataTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetInfoTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLParamDataTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLPrepareTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLPutDataTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLRowCountTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLTablesTest.cpp:
mvdir
storage/ndb/test/odbc/client/SQLTransactTest.cpp:
mvdir
storage/ndb/test/odbc/client/common.hpp:
mvdir
storage/ndb/test/odbc/client/main.cpp:
mvdir
storage/ndb/test/odbc/dm-iodbc/Makefile:
mvdir
storage/ndb/test/odbc/dm-unixodbc/Makefile:
mvdir
storage/ndb/test/odbc/driver/Makefile:
mvdir
storage/ndb/test/odbc/driver/testOdbcDriver.cpp:
mvdir
storage/ndb/test/odbc/test_compiler/Makefile:
mvdir
storage/ndb/test/odbc/test_compiler/test_compiler.cpp:
mvdir
storage/ndb/test/run-test/16node-tests.txt:
mvdir
storage/ndb/test/run-test/Makefile.am:
mvdir
storage/ndb/test/run-test/README.ATRT:
mvdir
storage/ndb/test/run-test/README:
mvdir
storage/ndb/test/run-test/atrt-analyze-result.sh:
mvdir
storage/ndb/test/run-test/atrt-clear-result.sh:
mvdir
storage/ndb/test/run-test/atrt-example.tgz:
mvdir
storage/ndb/test/run-test/atrt-gather-result.sh:
mvdir
storage/ndb/test/run-test/atrt-mysql-test-run:
mvdir
storage/ndb/test/run-test/atrt-setup.sh:
mvdir
storage/ndb/test/run-test/atrt-testBackup:
mvdir
storage/ndb/test/run-test/basic.txt:
mvdir
storage/ndb/test/run-test/daily-basic-tests.txt:
mvdir
storage/ndb/test/run-test/daily-devel-tests.txt:
mvdir
storage/ndb/test/run-test/example.conf:
mvdir
storage/ndb/test/run-test/main.cpp:
mvdir
storage/ndb/test/run-test/make-config.sh:
mvdir
storage/ndb/test/run-test/make-html-reports.sh:
mvdir
storage/ndb/test/run-test/make-index.sh:
mvdir
storage/ndb/test/run-test/ndb-autotest.sh:
mvdir
storage/ndb/test/run-test/run-test.hpp:
mvdir
storage/ndb/test/src/CpcClient.cpp:
mvdir
storage/ndb/test/src/HugoAsynchTransactions.cpp:
mvdir
storage/ndb/test/src/HugoCalculator.cpp:
mvdir
storage/ndb/test/src/HugoOperations.cpp:
mvdir
storage/ndb/test/src/HugoTransactions.cpp:
mvdir
storage/ndb/test/src/Makefile.am:
mvdir
storage/ndb/test/src/NDBT_Error.cpp:
mvdir
storage/ndb/test/src/NDBT_Output.cpp:
mvdir
storage/ndb/test/src/NDBT_ResultRow.cpp:
mvdir
storage/ndb/test/src/NDBT_ReturnCodes.cpp:
mvdir
storage/ndb/test/src/NDBT_Table.cpp:
mvdir
storage/ndb/test/src/NDBT_Tables.cpp:
mvdir
storage/ndb/test/src/NDBT_Test.cpp:
mvdir
storage/ndb/test/src/NdbBackup.cpp:
mvdir
storage/ndb/test/src/NdbConfig.cpp:
mvdir
storage/ndb/test/src/NdbGrep.cpp:
mvdir
storage/ndb/test/src/NdbRestarter.cpp:
mvdir
storage/ndb/test/src/NdbRestarts.cpp:
mvdir
storage/ndb/test/src/NdbSchemaCon.cpp:
mvdir
storage/ndb/test/src/NdbSchemaOp.cpp:
mvdir
storage/ndb/test/src/UtilTransactions.cpp:
mvdir
storage/ndb/test/src/getarg.c:
mvdir
storage/ndb/test/tools/Makefile.am:
mvdir
storage/ndb/test/tools/copy_tab.cpp:
mvdir
storage/ndb/test/tools/cpcc.cpp:
mvdir
storage/ndb/test/tools/create_index.cpp:
mvdir
storage/ndb/test/tools/hugoCalculator.cpp:
mvdir
storage/ndb/test/tools/hugoFill.cpp:
mvdir
storage/ndb/test/tools/hugoLoad.cpp:
mvdir
storage/ndb/test/tools/hugoLockRecords.cpp:
mvdir
storage/ndb/test/tools/hugoPkDelete.cpp:
mvdir
storage/ndb/test/tools/hugoPkRead.cpp:
mvdir
storage/ndb/test/tools/hugoPkReadRecord.cpp:
mvdir
storage/ndb/test/tools/hugoPkUpdate.cpp:
mvdir
storage/ndb/test/tools/hugoScanRead.cpp:
mvdir
storage/ndb/test/tools/hugoScanUpdate.cpp:
mvdir
storage/ndb/test/tools/old_dirs/hugoCalculator/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoFill/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoLoad/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoLockRecords/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoPkDelete/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoPkRead/Makefile:
mvdir
storage/ndb/test/tools/restart.cpp:
mvdir
storage/ndb/test/tools/transproxy.cpp:
mvdir
storage/ndb/test/tools/verify_index.cpp:
mvdir
storage/ndb/test/tools/old_dirs/hugoPkReadRecord/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoPkUpdate/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoScanRead/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/hugoScanUpdate/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/restart/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/transproxy/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/verify_index/Makefile:
mvdir
storage/ndb/test/tools/old_dirs/waiter/waiter.cpp:
mvdir
storage/ndb/tools/Makefile.am:
mvdir
storage/ndb/tools/clean-links.sh:
mvdir
storage/ndb/tools/delete_all.cpp:
mvdir
storage/ndb/tools/desc.cpp:
mvdir
storage/ndb/tools/drop_index.cpp:
mvdir
storage/ndb/tools/drop_tab.cpp:
mvdir
storage/ndb/tools/listTables.cpp:
mvdir
storage/ndb/tools/make-errors.pl:
mvdir
storage/ndb/tools/make-links.sh:
mvdir
storage/ndb/tools/ndb_test_platform.cpp:
mvdir
storage/ndb/tools/ndbsql.cpp:
mvdir
storage/ndb/tools/old_dirs/copy_tab/Makefile:
mvdir
storage/ndb/tools/old_dirs/cpcc/Makefile:
mvdir
storage/ndb/tools/old_dirs/create_index/Makefile:
mvdir
storage/ndb/tools/old_dirs/delete_all/Makefile:
mvdir
storage/ndb/tools/old_dirs/desc/Makefile:
mvdir
storage/ndb/tools/old_dirs/drop_index/Makefile:
mvdir
storage/ndb/tools/old_dirs/drop_tab/Makefile:
mvdir
storage/ndb/tools/old_dirs/list_tables/Makefile:
mvdir
storage/ndb/tools/old_dirs/ndbnet/Makefile.PL:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/ndbnet.pl:
mvdir
storage/ndb/tools/old_dirs/ndbnet/ndbnetd.pl:
mvdir
storage/ndb/tools/old_dirs/ndbnet/ndbrun:
mvdir
storage/ndb/tools/rgrep:
mvdir
storage/ndb/tools/select_all.cpp:
mvdir
storage/ndb/tools/select_count.cpp:
mvdir
storage/ndb/tools/waiter.cpp:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm:
mvdir
storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm:
mvdir
storage/ndb/tools/old_dirs/ndbsql/Makefile:
mvdir
storage/ndb/tools/old_dirs/select_all/Makefile:
mvdir
storage/ndb/tools/old_dirs/select_count/Makefile:
mvdir
storage/ndb/tools/old_dirs/src/counterviewer/CounterViewer.java:
mvdir
storage/ndb/tools/restore/Restore.cpp:
mvdir
storage/ndb/tools/restore/Restore.hpp:
mvdir
storage/ndb/tools/restore/consumer.cpp:
mvdir
storage/ndb/tools/restore/consumer.hpp:
mvdir
storage/ndb/tools/restore/consumer_printer.cpp:
mvdir
storage/ndb/tools/restore/consumer_printer.hpp:
mvdir
storage/ndb/tools/restore/consumer_restore.cpp:
mvdir
storage/ndb/tools/restore/consumer_restore.hpp:
mvdir
storage/ndb/tools/restore/consumer_restorem.cpp:
mvdir
storage/ndb/tools/restore/restore_main.cpp:
mvdir
storage/bdb/LICENSE:
mvdir
storage/bdb/Makefile.in:
mvdir
storage/bdb/btree/bt_compare.c:
mvdir
storage/bdb/btree/bt_conv.c:
mvdir
storage/bdb/btree/bt_curadj.c:
mvdir
storage/bdb/btree/bt_cursor.c:
mvdir
storage/bdb/btree/bt_delete.c:
mvdir
storage/bdb/btree/bt_method.c:
mvdir
storage/bdb/btree/bt_open.c:
mvdir
storage/bdb/btree/bt_put.c:
mvdir
storage/bdb/btree/bt_rec.c:
mvdir
storage/bdb/btree/bt_reclaim.c:
mvdir
storage/bdb/btree/bt_recno.c:
mvdir
storage/bdb/btree/bt_rsearch.c:
mvdir
storage/bdb/btree/bt_search.c:
mvdir
storage/bdb/btree/bt_split.c:
mvdir
storage/bdb/btree/bt_stat.c:
mvdir
storage/bdb/btree/bt_upgrade.c:
mvdir
storage/bdb/btree/bt_verify.c:
mvdir
storage/bdb/btree/btree.src:
mvdir
storage/bdb/build_unix/.IGNORE_ME:
mvdir
storage/bdb/build_vxworks/BerkeleyDB.wsp:
mvdir
storage/bdb/build_vxworks/dbdemo/README:
mvdir
storage/bdb/build_win32/Berkeley_DB.dsw:
mvdir
storage/bdb/build_win32/app_dsp.src:
mvdir
storage/bdb/build_win32/build_all.dsp:
mvdir
storage/bdb/build_win32/db_java_xa.dsp:
mvdir
storage/bdb/build_win32/db_java_xaj.mak:
mvdir
storage/bdb/build_win32/db_lib.dsp:
mvdir
storage/bdb/build_win32/db_test.src:
mvdir
storage/bdb/build_win32/dbkill.cpp:
mvdir
storage/bdb/build_win32/dllmain.c:
mvdir
storage/bdb/build_win32/dynamic_dsp.src:
mvdir
storage/bdb/build_win32/java_dsp.src:
mvdir
storage/bdb/build_win32/libdb_tcl.def:
mvdir
storage/bdb/build_win32/libdbrc.src:
mvdir
storage/bdb/build_win32/srcfile_dsp.src:
mvdir
storage/bdb/build_win32/static_dsp.src:
mvdir
storage/bdb/build_win32/tcl_dsp.src:
mvdir
storage/bdb/clib/getcwd.c:
mvdir
storage/bdb/clib/getopt.c:
mvdir
storage/bdb/clib/memcmp.c:
mvdir
storage/bdb/clib/memmove.c:
mvdir
storage/bdb/clib/raise.c:
mvdir
storage/bdb/clib/snprintf.c:
mvdir
storage/bdb/clib/strcasecmp.c:
mvdir
storage/bdb/clib/strdup.c:
mvdir
storage/bdb/clib/strerror.c:
mvdir
storage/bdb/clib/vsnprintf.c:
mvdir
storage/bdb/common/db_byteorder.c:
mvdir
storage/bdb/common/db_err.c:
mvdir
storage/bdb/common/db_getlong.c:
mvdir
storage/bdb/common/db_idspace.c:
mvdir
storage/bdb/common/db_log2.c:
mvdir
storage/bdb/common/util_arg.c:
mvdir
storage/bdb/common/util_cache.c:
mvdir
storage/bdb/common/util_log.c:
mvdir
storage/bdb/common/util_sig.c:
mvdir
storage/bdb/cxx/cxx_db.cpp:
mvdir
storage/bdb/cxx/cxx_dbc.cpp:
mvdir
storage/bdb/cxx/cxx_dbt.cpp:
mvdir
storage/bdb/cxx/cxx_env.cpp:
mvdir
storage/bdb/cxx/cxx_except.cpp:
mvdir
storage/bdb/cxx/cxx_lock.cpp:
mvdir
storage/bdb/cxx/cxx_logc.cpp:
mvdir
storage/bdb/cxx/cxx_mpool.cpp:
mvdir
storage/bdb/cxx/cxx_txn.cpp:
mvdir
storage/bdb/db/crdel.src:
mvdir
storage/bdb/db/crdel_rec.c:
mvdir
storage/bdb/db/db.c:
mvdir
storage/bdb/db/db.src:
mvdir
storage/bdb/db/db_am.c:
mvdir
storage/bdb/db/db_cam.c:
mvdir
storage/bdb/db/db_conv.c:
mvdir
storage/bdb/db/db_dispatch.c:
mvdir
storage/bdb/db/db_dup.c:
mvdir
storage/bdb/db/db_iface.c:
mvdir
storage/bdb/db/db_join.c:
mvdir
storage/bdb/db/db_meta.c:
mvdir
storage/bdb/db/db_method.c:
mvdir
storage/bdb/db/db_open.c:
mvdir
storage/bdb/db/db_overflow.c:
mvdir
storage/bdb/db/db_pr.c:
mvdir
storage/bdb/db/db_rec.c:
mvdir
storage/bdb/db/db_reclaim.c:
mvdir
storage/bdb/db/db_remove.c:
mvdir
storage/bdb/db/db_rename.c:
mvdir
storage/bdb/db/db_ret.c:
mvdir
storage/bdb/db/db_truncate.c:
mvdir
storage/bdb/db/db_upg.c:
mvdir
storage/bdb/db/db_upg_opd.c:
mvdir
storage/bdb/db/db_vrfy.c:
mvdir
storage/bdb/db/db_vrfyutil.c:
mvdir
storage/bdb/db185/db185.c:
mvdir
storage/bdb/db185/db185_int.in:
mvdir
storage/bdb/db_archive/db_archive.c:
mvdir
storage/bdb/db_checkpoint/db_checkpoint.c:
mvdir
storage/bdb/db_deadlock/db_deadlock.c:
mvdir
storage/bdb/db_dump/db_dump.c:
mvdir
storage/bdb/db_dump185/db_dump185.c:
mvdir
storage/bdb/db_load/db_load.c:
mvdir
storage/bdb/db_printlog/README:
mvdir
storage/bdb/db_printlog/commit.awk:
mvdir
storage/bdb/db_printlog/count.awk:
mvdir
storage/bdb/db_printlog/db_printlog.c:
mvdir
storage/bdb/db_printlog/dbname.awk:
mvdir
storage/bdb/db_printlog/fileid.awk:
mvdir
storage/bdb/db_printlog/logstat.awk:
mvdir
storage/bdb/db_printlog/pgno.awk:
mvdir
storage/bdb/db_printlog/range.awk:
mvdir
storage/bdb/db_printlog/rectype.awk:
mvdir
storage/bdb/db_printlog/status.awk:
mvdir
storage/bdb/db_printlog/txn.awk:
mvdir
storage/bdb/db_recover/db_recover.c:
mvdir
storage/bdb/db_stat/db_stat.c:
mvdir
storage/bdb/db_upgrade/db_upgrade.c:
mvdir
storage/bdb/db_verify/db_verify.c:
mvdir
storage/bdb/dbinc/btree.h:
mvdir
storage/bdb/dbinc/crypto.h:
mvdir
storage/bdb/dbinc/cxx_common.h:
mvdir
storage/bdb/dbinc/cxx_except.h:
mvdir
storage/bdb/dbinc/cxx_int.h:
mvdir
storage/bdb/dbinc/db.in:
mvdir
storage/bdb/dbinc/db_185.in:
mvdir
storage/bdb/dbinc/db_am.h:
mvdir
storage/bdb/dbinc/db_cxx.in:
mvdir
storage/bdb/dbinc/db_dispatch.h:
mvdir
storage/bdb/dbinc/db_int.in:
mvdir
storage/bdb/dbinc/db_join.h:
mvdir
storage/bdb/dbinc/db_page.h:
mvdir
storage/bdb/dbinc/db_server_int.h:
mvdir
storage/bdb/dbinc/db_shash.h:
mvdir
storage/bdb/dbinc/db_swap.h:
mvdir
storage/bdb/dbinc/db_upgrade.h:
mvdir
storage/bdb/dbinc/db_verify.h:
mvdir
storage/bdb/dbinc/debug.h:
mvdir
storage/bdb/dbinc/fop.h:
mvdir
storage/bdb/dbinc/globals.h:
mvdir
storage/bdb/dbinc/hash.h:
mvdir
storage/bdb/dbinc/hmac.h:
mvdir
storage/bdb/dbinc/lock.h:
mvdir
storage/bdb/dbinc/log.h:
mvdir
storage/bdb/dbinc/mp.h:
mvdir
storage/bdb/dbinc/mutex.h:
mvdir
storage/bdb/dbinc/os.h:
mvdir
storage/bdb/dbinc/qam.h:
mvdir
storage/bdb/dbinc/queue.h:
mvdir
storage/bdb/dbinc/region.h:
mvdir
storage/bdb/dbinc/rep.h:
mvdir
storage/bdb/dbinc/shqueue.h:
mvdir
storage/bdb/dbinc/tcl_db.h:
mvdir
storage/bdb/dbinc/txn.h:
mvdir
storage/bdb/dbinc/xa.h:
mvdir
storage/bdb/dbm/dbm.c:
mvdir
storage/bdb/dbreg/dbreg.c:
mvdir
storage/bdb/dbreg/dbreg.src:
mvdir
storage/bdb/dbreg/dbreg_rec.c:
mvdir
storage/bdb/dbreg/dbreg_util.c:
mvdir
storage/bdb/dist/Makefile.in:
mvdir
storage/bdb/dist/RELEASE:
mvdir
storage/bdb/dist/buildrel:
mvdir
storage/bdb/dist/config.guess:
mvdir
storage/bdb/dist/config.sub:
mvdir
storage/bdb/dist/configure.ac:
mvdir
storage/bdb/dist/db.ecd.in:
mvdir
storage/bdb/dist/db.spec.in:
mvdir
storage/bdb/dist/gen_inc.awk:
mvdir
storage/bdb/dist/gen_rec.awk:
mvdir
storage/bdb/dist/gen_rpc.awk:
mvdir
storage/bdb/dist/install-sh:
mvdir
storage/bdb/dist/ltmain.sh:
mvdir
storage/bdb/dist/pubdef.in:
mvdir
storage/bdb/dist/s_all:
mvdir
storage/bdb/dist/s_config:
mvdir
storage/bdb/dist/aclocal/config.ac:
mvdir
storage/bdb/dist/aclocal/cxx.ac:
mvdir
storage/bdb/dist/aclocal/gcc.ac:
mvdir
storage/bdb/dist/aclocal/libtool.ac:
mvdir
storage/bdb/dist/s_crypto:
mvdir
storage/bdb/dist/s_dir:
mvdir
storage/bdb/dist/s_include:
mvdir
storage/bdb/dist/s_javah:
mvdir
storage/bdb/dist/s_java:
mvdir
storage/bdb/dist/s_perm:
mvdir
storage/bdb/dist/s_readme:
mvdir
storage/bdb/dist/s_recover:
mvdir
storage/bdb/dist/s_rpc:
mvdir
storage/bdb/dist/s_symlink:
mvdir
storage/bdb/dist/s_tags:
mvdir
storage/bdb/dist/s_test:
mvdir
storage/bdb/dist/s_vxworks:
mvdir
storage/bdb/dist/s_win32_dsp:
mvdir
storage/bdb/dist/s_win32:
mvdir
storage/bdb/dist/srcfiles.in:
mvdir
storage/bdb/dist/vx_buildcd:
mvdir
storage/bdb/dist/vx_config.in:
mvdir
storage/bdb/dist/win_config.in:
mvdir
storage/bdb/dist/win_exports.in:
mvdir
storage/bdb/dist/aclocal/mutex.ac:
mvdir
storage/bdb/dist/aclocal/options.ac:
mvdir
storage/bdb/dist/aclocal/programs.ac:
mvdir
storage/bdb/dist/aclocal/sosuffix.ac:
mvdir
storage/bdb/dist/aclocal/tcl.ac:
mvdir
storage/bdb/dist/aclocal/types.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_check_class.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_check_classpath.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_check_junit.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_check_rqrd_class.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_java_options.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_jni_include_dirs.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_jar.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_java.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_java_works.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_javac.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_javac_works.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_javadoc.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_prog_javah.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_try_compile_java.ac:
mvdir
storage/bdb/dist/aclocal_java/ac_try_run_javac.ac:
mvdir
storage/bdb/dist/template/rec_ctemp:
mvdir
storage/bdb/dist/vx_2.0/BerkeleyDB.wpj:
mvdir
storage/bdb/dist/vx_2.0/wpj.in:
mvdir
storage/bdb/dist/vx_3.1/Makefile.custom:
mvdir
storage/bdb/dist/vx_3.1/cdf.1:
mvdir
storage/bdb/dist/vx_3.1/cdf.2:
mvdir
storage/bdb/dist/vx_3.1/cdf.3:
mvdir
storage/bdb/dist/vx_3.1/component.cdf:
mvdir
storage/bdb/dist/vx_3.1/component.wpj:
mvdir
storage/bdb/dist/vx_3.1/wpj.1:
mvdir
storage/bdb/dist/vx_3.1/wpj.2:
mvdir
storage/bdb/dist/vx_3.1/wpj.3:
mvdir
storage/bdb/dist/vx_3.1/wpj.4:
mvdir
storage/bdb/dist/vx_3.1/wpj.5:
mvdir
storage/bdb/dist/vx_setup/CONFIG.in:
mvdir
storage/bdb/dist/vx_setup/LICENSE.TXT:
mvdir
storage/bdb/dist/vx_setup/MESSAGES.TCL:
mvdir
storage/bdb/dist/vx_setup/README.in:
mvdir
storage/bdb/dist/vx_setup/SETUP.BMP:
mvdir
storage/bdb/dist/vx_setup/vx_allfile.in:
mvdir
storage/bdb/dist/vx_setup/vx_demofile.in:
mvdir
storage/bdb/dist/vx_setup/vx_setup.in:
mvdir
storage/bdb/env/db_salloc.c:
mvdir
storage/bdb/env/db_shash.c:
mvdir
storage/bdb/env/env_file.c:
mvdir
storage/bdb/env/env_method.c.b:
mvdir
storage/bdb/env/env_method.c:
mvdir
storage/bdb/env/env_open.c:
mvdir
storage/bdb/env/env_recover.c:
mvdir
storage/bdb/env/env_region.c:
mvdir
storage/bdb/fileops/fileops.src:
mvdir
storage/bdb/fileops/fop_basic.c:
mvdir
storage/bdb/fileops/fop_rec.c:
mvdir
storage/bdb/fileops/fop_util.c:
mvdir
storage/bdb/hash/hash.c:
mvdir
storage/bdb/hash/hash.src:
mvdir
storage/bdb/hash/hash_conv.c:
mvdir
storage/bdb/hash/hash_dup.c:
mvdir
storage/bdb/hash/hash_func.c:
mvdir
storage/bdb/hash/hash_meta.c:
mvdir
storage/bdb/hash/hash_method.c:
mvdir
storage/bdb/hash/hash_open.c:
mvdir
storage/bdb/hash/hash_page.c:
mvdir
storage/bdb/hash/hash_rec.c:
mvdir
storage/bdb/hash/hash_reclaim.c:
mvdir
storage/bdb/hash/hash_stat.c:
mvdir
storage/bdb/hash/hash_upgrade.c:
mvdir
storage/bdb/hash/hash_verify.c:
mvdir
storage/bdb/hmac/hmac.c:
mvdir
storage/bdb/hmac/sha1.c:
mvdir
storage/bdb/hsearch/hsearch.c:
mvdir
storage/bdb/libdb_java/checkapi.prl:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_Db.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbEnv.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbLock.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbLogc.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbLsn.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbTxn.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_DbUtil.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_Dbc.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_Dbt.h:
mvdir
storage/bdb/libdb_java/com_sleepycat_db_xa_DbXAResource.h:
mvdir
storage/bdb/libdb_java/java_Db.c:
mvdir
storage/bdb/libdb_java/java_DbEnv.c:
mvdir
storage/bdb/libdb_java/java_DbLock.c:
mvdir
storage/bdb/libdb_java/java_DbLogc.c:
mvdir
storage/bdb/libdb_java/java_DbLsn.c:
mvdir
storage/bdb/libdb_java/java_DbTxn.c:
mvdir
storage/bdb/libdb_java/java_DbUtil.c:
mvdir
storage/bdb/libdb_java/java_DbXAResource.c:
mvdir
storage/bdb/libdb_java/java_Dbc.c:
mvdir
storage/bdb/libdb_java/java_Dbt.c:
mvdir
storage/bdb/libdb_java/java_info.c:
mvdir
storage/bdb/libdb_java/java_info.h:
mvdir
storage/bdb/libdb_java/java_locked.c:
mvdir
storage/bdb/libdb_java/java_locked.h:
mvdir
storage/bdb/libdb_java/java_util.c:
mvdir
storage/bdb/libdb_java/java_util.h:
mvdir
storage/bdb/lock/Design:
mvdir
storage/bdb/lock/lock.c:
mvdir
storage/bdb/lock/lock_deadlock.c:
mvdir
storage/bdb/lock/lock_method.c:
mvdir
storage/bdb/lock/lock_region.c:
mvdir
storage/bdb/lock/lock_stat.c:
mvdir
storage/bdb/lock/lock_util.c:
mvdir
storage/bdb/log/log.c:
mvdir
storage/bdb/log/log_archive.c:
mvdir
storage/bdb/log/log_compare.c:
mvdir
storage/bdb/log/log_get.c:
mvdir
storage/bdb/log/log_method.c:
mvdir
storage/bdb/log/log_put.c:
mvdir
storage/bdb/mp/mp_alloc.c:
mvdir
storage/bdb/mp/mp_bh.c:
mvdir
storage/bdb/mp/mp_fget.c:
mvdir
storage/bdb/mp/mp_fopen.c:
mvdir
storage/bdb/mp/mp_fput.c:
mvdir
storage/bdb/mp/mp_fset.c:
mvdir
storage/bdb/mp/mp_method.c:
mvdir
storage/bdb/mp/mp_region.c:
mvdir
storage/bdb/mp/mp_register.c:
mvdir
storage/bdb/mp/mp_stat.c:
mvdir
storage/bdb/mp/mp_sync.c:
mvdir
storage/bdb/mp/mp_trickle.c:
mvdir
storage/bdb/mutex/README:
mvdir
storage/bdb/mutex/mut_fcntl.c:
mvdir
storage/bdb/mutex/mut_pthread.c:
mvdir
storage/bdb/mutex/mut_tas.c:
mvdir
storage/bdb/mutex/mut_win32.c:
mvdir
storage/bdb/mutex/mutex.c:
mvdir
storage/bdb/mutex/tm.c:
mvdir
storage/bdb/mutex/uts4_cc.s:
mvdir
storage/bdb/os/os_abs.c:
mvdir
storage/bdb/os/os_alloc.c:
mvdir
storage/bdb/os/os_clock.c:
mvdir
storage/bdb/os/os_config.c:
mvdir
storage/bdb/os/os_dir.c:
mvdir
storage/bdb/os/os_errno.c:
mvdir
storage/bdb/os/os_fid.c:
mvdir
storage/bdb/os/os_fsync.c:
mvdir
storage/bdb/os/os_handle.c:
mvdir
storage/bdb/os/os_id.c:
mvdir
storage/bdb/os/os_map.c:
mvdir
storage/bdb/os/os_method.c:
mvdir
storage/bdb/os/os_oflags.c:
mvdir
storage/bdb/os/os_open.c:
mvdir
storage/bdb/os/os_region.c:
mvdir
storage/bdb/os/os_rename.c:
mvdir
storage/bdb/os/os_root.c:
mvdir
storage/bdb/os/os_rpath.c:
mvdir
storage/bdb/os/os_rw.c:
mvdir
storage/bdb/os/os_seek.c:
mvdir
storage/bdb/os/os_sleep.c:
mvdir
storage/bdb/os/os_spin.c:
mvdir
storage/bdb/os/os_stat.c:
mvdir
storage/bdb/os/os_tmpdir.c:
mvdir
storage/bdb/os/os_unlink.c:
mvdir
storage/bdb/os_vxworks/os_vx_abs.c:
mvdir
storage/bdb/os_vxworks/os_vx_config.c:
mvdir
storage/bdb/os_vxworks/os_vx_map.c:
mvdir
storage/bdb/os_win32/os_abs.c:
mvdir
storage/bdb/os_win32/os_clock.c:
mvdir
storage/bdb/os_win32/os_config.c:
mvdir
storage/bdb/os_win32/os_dir.c:
mvdir
storage/bdb/os_win32/os_errno.c:
mvdir
storage/bdb/os_win32/os_fid.c:
mvdir
storage/bdb/os_win32/os_fsync.c:
mvdir
storage/bdb/os_win32/os_handle.c:
mvdir
storage/bdb/os_win32/os_map.c:
mvdir
storage/bdb/os_win32/os_open.c:
mvdir
storage/bdb/os_win32/os_rename.c:
mvdir
storage/bdb/os_win32/os_rw.c:
mvdir
storage/bdb/os_win32/os_seek.c:
mvdir
storage/bdb/os_win32/os_sleep.c:
mvdir
storage/bdb/os_win32/os_spin.c:
mvdir
storage/bdb/os_win32/os_stat.c:
mvdir
storage/bdb/os_win32/os_type.c:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB.pm:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB.pod.P:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB.pod:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB.xs:
mvdir
storage/bdb/perl/BerkeleyDB/Changes:
mvdir
storage/bdb/perl/BerkeleyDB/MANIFEST:
mvdir
storage/bdb/perl/BerkeleyDB/Makefile.PL:
mvdir
storage/bdb/perl/BerkeleyDB/README:
mvdir
storage/bdb/perl/BerkeleyDB/Todo:
mvdir
storage/bdb/perl/BerkeleyDB/config.in:
mvdir
storage/bdb/perl/BerkeleyDB/constants.h:
mvdir
storage/bdb/perl/BerkeleyDB/constants.xs:
mvdir
storage/bdb/perl/BerkeleyDB/dbinfo:
mvdir
storage/bdb/perl/BerkeleyDB/mkconsts:
mvdir
storage/bdb/perl/BerkeleyDB/mkpod:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB/Btree.pm:
mvdir
storage/bdb/perl/BerkeleyDB/BerkeleyDB/Hash.pm:
mvdir
storage/bdb/perl/BerkeleyDB/hints/dec_osf.pl:
mvdir
storage/bdb/perl/BerkeleyDB/hints/irix_6_5.pl:
mvdir
storage/bdb/perl/BerkeleyDB/hints/solaris.pl:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004_01:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004_02:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004_03:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004_04:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004_05:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.004:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.005_01:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.005_02:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.005_03:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.005:
mvdir
storage/bdb/perl/BerkeleyDB/patches/5.6.0:
mvdir
storage/bdb/perl/BerkeleyDB/ppport.h:
mvdir
storage/bdb/perl/BerkeleyDB/scan:
mvdir
storage/bdb/perl/BerkeleyDB/t/btree.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/destroy.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/env.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/examples.t.T:
mvdir
storage/bdb/perl/BerkeleyDB/t/examples.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/examples3.t.T:
mvdir
storage/bdb/perl/BerkeleyDB/t/examples3.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/filter.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/hash.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/join.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/mldbm.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/queue.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/recno.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/strict.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/subdb.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/txn.t:
mvdir
storage/bdb/perl/BerkeleyDB/typemap:
mvdir
storage/bdb/perl/BerkeleyDB/t/unknown.t:
mvdir
storage/bdb/perl/BerkeleyDB/t/util.pm:
mvdir
storage/bdb/perl/DB_File/Changes:
mvdir
storage/bdb/perl/DB_File/DB_File.pm:
mvdir
storage/bdb/perl/DB_File/DB_File.xs:
mvdir
storage/bdb/perl/DB_File/DB_File_BS:
mvdir
storage/bdb/perl/DB_File/MANIFEST:
mvdir
storage/bdb/perl/DB_File/Makefile.PL:
mvdir
storage/bdb/perl/DB_File/README:
mvdir
storage/bdb/perl/DB_File/config.in:
mvdir
storage/bdb/perl/DB_File/dbinfo:
mvdir
storage/bdb/perl/DB_File/fallback.h:
mvdir
storage/bdb/perl/DB_File/fallback.xs:
mvdir
storage/bdb/perl/DB_File/hints/dynixptx.pl:
mvdir
storage/bdb/perl/DB_File/hints/sco.pl:
mvdir
storage/bdb/perl/DB_File/patches/5.004_01:
mvdir
storage/bdb/perl/DB_File/patches/5.004_02:
mvdir
storage/bdb/perl/DB_File/patches/5.004_03:
mvdir
storage/bdb/perl/DB_File/patches/5.004_04:
mvdir
storage/bdb/perl/DB_File/patches/5.004_05:
mvdir
storage/bdb/perl/DB_File/patches/5.004:
mvdir
storage/bdb/perl/DB_File/patches/5.005_01:
mvdir
storage/bdb/perl/DB_File/patches/5.005_02:
mvdir
storage/bdb/perl/DB_File/patches/5.005_03:
mvdir
storage/bdb/perl/DB_File/patches/5.005:
mvdir
storage/bdb/perl/DB_File/patches/5.6.0:
mvdir
storage/bdb/perl/DB_File/ppport.h:
mvdir
storage/bdb/perl/DB_File/t/db-btree.t:
mvdir
storage/bdb/perl/DB_File/t/db-hash.t:
mvdir
storage/bdb/perl/DB_File/t/db-recno.t:
mvdir
storage/bdb/perl/DB_File/typemap:
mvdir
storage/bdb/perl/DB_File/version.c:
mvdir
storage/bdb/qam/qam.c:
mvdir
storage/bdb/qam/qam.src:
mvdir
storage/bdb/qam/qam_conv.c:
mvdir
storage/bdb/qam/qam_files.c:
mvdir
storage/bdb/qam/qam_method.c:
mvdir
storage/bdb/qam/qam_open.c:
mvdir
storage/bdb/qam/qam_rec.c:
mvdir
storage/bdb/qam/qam_stat.c:
mvdir
storage/bdb/qam/qam_upgrade.c:
mvdir
storage/bdb/qam/qam_verify.c:
mvdir
storage/bdb/rep/rep_method.c:
mvdir
storage/bdb/rep/rep_record.c:
mvdir
storage/bdb/rep/rep_region.c:
mvdir
storage/bdb/rep/rep_util.c:
mvdir
storage/bdb/rpc_client/client.c:
mvdir
storage/bdb/rpc_client/gen_client_ret.c:
mvdir
storage/bdb/rpc_server/c/db_server_proc.c.in:
mvdir
storage/bdb/rpc_server/c/db_server_util.c:
mvdir
storage/bdb/rpc_server/clsrv.html:
mvdir
storage/bdb/rpc_server/cxx/db_server_cxxproc.cpp:
mvdir
storage/bdb/rpc_server/cxx/db_server_cxxutil.cpp:
mvdir
storage/bdb/rpc_server/java/DbDispatcher.java:
mvdir
storage/bdb/rpc_server/java/DbServer.java:
mvdir
storage/bdb/rpc_server/java/FreeList.java:
mvdir
storage/bdb/rpc_server/java/LocalIterator.java:
mvdir
storage/bdb/rpc_server/java/README:
mvdir
storage/bdb/rpc_server/java/RpcDb.java:
mvdir
storage/bdb/rpc_server/java/RpcDbEnv.java:
mvdir
storage/bdb/rpc_server/java/RpcDbTxn.java:
mvdir
storage/bdb/rpc_server/java/RpcDbc.java:
mvdir
storage/bdb/rpc_server/java/Timer.java:
mvdir
storage/bdb/rpc_server/java/jrpcgen.jar:
mvdir
storage/bdb/rpc_server/java/oncrpc.jar:
mvdir
storage/bdb/rpc_server/rpc.src:
mvdir
storage/bdb/rpc_server/java/gen/DbServerStub.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_associate_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_associate_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_bt_maxkey_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_bt_maxkey_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_bt_minkey_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_bt_minkey_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_close_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_close_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_create_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_create_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_cursor_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_cursor_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_del_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_del_reply.java:
mvdir
storage/bdb/rpc_server/java/s_jrpcgen:
mvdir
storage/bdb/rpc_server/java/gen/__db_encrypt_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_encrypt_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_extentsize_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_extentsize_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_flags_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_flags_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_get_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_get_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_h_ffactor_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_h_ffactor_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_h_nelem_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_h_nelem_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_join_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_join_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_key_range_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_key_range_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_lorder_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_lorder_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_open_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_open_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_pagesize_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_pagesize_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_pget_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_pget_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_put_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_put_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_delim_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_delim_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_len_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_len_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_pad_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_re_pad_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_remove_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_remove_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_rename_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_rename_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_stat_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_stat_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_sync_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_sync_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_truncate_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__db_truncate_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_close_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_close_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_count_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_count_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_del_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_del_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_dup_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_dup_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_get_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_get_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_pget_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_pget_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_put_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__dbc_put_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_cachesize_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_cachesize_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_close_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_close_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_create_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_create_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_dbremove_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_dbremove_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_dbrename_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_dbrename_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_encrypt_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_encrypt_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_flags_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_flags_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_open_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_open_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_remove_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__env_remove_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_abort_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_abort_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_begin_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_begin_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_commit_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_commit_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_discard_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_discard_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_prepare_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_prepare_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_recover_msg.java:
mvdir
storage/bdb/rpc_server/java/gen/__txn_recover_reply.java:
mvdir
storage/bdb/rpc_server/java/gen/db_server.java:
mvdir
storage/bdb/tcl/tcl_compat.c:
mvdir
storage/bdb/tcl/tcl_db.c:
mvdir
storage/bdb/tcl/tcl_db_pkg.c:
mvdir
storage/bdb/tcl/docs/db.html:
mvdir
storage/bdb/tcl/docs/env.html:
mvdir
storage/bdb/tcl/docs/historic.html:
mvdir
storage/bdb/tcl/docs/index.html:
mvdir
storage/bdb/tcl/docs/library.html:
mvdir
storage/bdb/tcl/docs/lock.html:
mvdir
storage/bdb/tcl/docs/log.html:
mvdir
storage/bdb/tcl/docs/mpool.html:
mvdir
storage/bdb/tcl/docs/rep.html:
mvdir
storage/bdb/tcl/docs/test.html:
mvdir
storage/bdb/tcl/docs/txn.html:
mvdir
storage/bdb/tcl/tcl_dbcursor.c:
mvdir
storage/bdb/tcl/tcl_env.c:
mvdir
storage/bdb/tcl/tcl_internal.c:
mvdir
storage/bdb/tcl/tcl_lock.c:
mvdir
storage/bdb/tcl/tcl_log.c:
mvdir
storage/bdb/tcl/tcl_mp.c:
mvdir
storage/bdb/tcl/tcl_rep.c:
mvdir
storage/bdb/tcl/tcl_txn.c:
mvdir
storage/bdb/tcl/tcl_util.c:
mvdir
storage/bdb/test/archive.tcl:
mvdir
storage/bdb/test/bigfile001.tcl:
mvdir
storage/bdb/test/bigfile002.tcl:
mvdir
storage/bdb/test/byteorder.tcl:
mvdir
storage/bdb/test/conscript.tcl:
mvdir
storage/bdb/test/dbm.tcl:
mvdir
storage/bdb/test/dbscript.tcl:
mvdir
storage/bdb/test/ddoyscript.tcl:
mvdir
storage/bdb/test/ddscript.tcl:
mvdir
storage/bdb/test/dead001.tcl:
mvdir
storage/bdb/test/dead002.tcl:
mvdir
storage/bdb/test/dead003.tcl:
mvdir
storage/bdb/test/dead004.tcl:
mvdir
storage/bdb/test/dead005.tcl:
mvdir
storage/bdb/test/dead006.tcl:
mvdir
storage/bdb/test/dead007.tcl:
mvdir
storage/bdb/test/env001.tcl:
mvdir
storage/bdb/test/env002.tcl:
mvdir
storage/bdb/test/env003.tcl:
mvdir
storage/bdb/test/env004.tcl:
mvdir
storage/bdb/test/env005.tcl:
mvdir
storage/bdb/test/env006.tcl:
mvdir
storage/bdb/test/env007.tcl:
mvdir
storage/bdb/test/env008.tcl:
mvdir
storage/bdb/test/env009.tcl:
mvdir
storage/bdb/test/env010.tcl:
mvdir
storage/bdb/test/env011.tcl:
mvdir
storage/bdb/test/hsearch.tcl:
mvdir
storage/bdb/test/join.tcl:
mvdir
storage/bdb/test/lock001.tcl:
mvdir
storage/bdb/test/lock002.tcl:
mvdir
storage/bdb/test/lock003.tcl:
mvdir
storage/bdb/test/lock004.tcl:
mvdir
storage/bdb/test/lock005.tcl:
mvdir
storage/bdb/test/lockscript.tcl:
mvdir
storage/bdb/test/log001.tcl:
mvdir
storage/bdb/test/log002.tcl:
mvdir
storage/bdb/test/log003.tcl:
mvdir
storage/bdb/test/log004.tcl:
mvdir
storage/bdb/test/log005.tcl:
mvdir
storage/bdb/test/logtrack.tcl:
mvdir
storage/bdb/test/mdbscript.tcl:
mvdir
storage/bdb/test/memp001.tcl:
mvdir
storage/bdb/test/memp002.tcl:
mvdir
storage/bdb/test/memp003.tcl:
mvdir
storage/bdb/test/mpoolscript.tcl:
mvdir
storage/bdb/test/mutex001.tcl:
mvdir
storage/bdb/test/mutex002.tcl:
mvdir
storage/bdb/test/mutex003.tcl:
mvdir
storage/bdb/test/mutexscript.tcl:
mvdir
storage/bdb/test/ndbm.tcl:
mvdir
storage/bdb/test/parallel.tcl:
mvdir
storage/bdb/test/recd001.tcl:
mvdir
storage/bdb/test/recd002.tcl:
mvdir
storage/bdb/test/recd003.tcl:
mvdir
storage/bdb/test/recd004.tcl:
mvdir
storage/bdb/test/recd005.tcl:
mvdir
storage/bdb/test/recd006.tcl:
mvdir
storage/bdb/test/recd007.tcl:
mvdir
storage/bdb/test/recd008.tcl:
mvdir
storage/bdb/test/recd009.tcl:
mvdir
storage/bdb/test/recd010.tcl:
mvdir
storage/bdb/test/recd011.tcl:
mvdir
storage/bdb/test/recd012.tcl:
mvdir
storage/bdb/test/recd013.tcl:
mvdir
storage/bdb/test/recd014.tcl:
mvdir
storage/bdb/test/recd015.tcl:
mvdir
storage/bdb/test/recd016.tcl:
mvdir
storage/bdb/test/recd017.tcl:
mvdir
storage/bdb/test/recd018.tcl:
mvdir
storage/bdb/test/recd019.tcl:
mvdir
storage/bdb/test/recd020.tcl:
mvdir
storage/bdb/test/recd15scr.tcl:
mvdir
storage/bdb/test/recdscript.tcl:
mvdir
storage/bdb/test/rep001.tcl:
mvdir
storage/bdb/test/rep002.tcl:
mvdir
storage/bdb/test/rep003.tcl:
mvdir
storage/bdb/test/rep004.tcl:
mvdir
storage/bdb/test/rep005.tcl:
mvdir
storage/bdb/test/reputils.tcl:
mvdir
storage/bdb/test/rpc001.tcl:
mvdir
storage/bdb/test/rpc002.tcl:
mvdir
storage/bdb/test/rpc003.tcl:
mvdir
storage/bdb/test/rpc004.tcl:
mvdir
storage/bdb/test/rpc005.tcl:
mvdir
storage/bdb/test/rsrc001.tcl:
mvdir
storage/bdb/test/rsrc002.tcl:
mvdir
storage/bdb/test/rsrc003.tcl:
mvdir
storage/bdb/test/rsrc004.tcl:
mvdir
storage/bdb/test/sdb001.tcl:
mvdir
storage/bdb/test/sdb002.tcl:
mvdir
storage/bdb/test/sdb003.tcl:
mvdir
storage/bdb/test/sdb004.tcl:
mvdir
storage/bdb/test/sdb005.tcl:
mvdir
storage/bdb/test/sdb006.tcl:
mvdir
storage/bdb/test/sdb007.tcl:
mvdir
storage/bdb/test/sdb008.tcl:
mvdir
storage/bdb/test/sdb009.tcl:
mvdir
storage/bdb/test/sdb010.tcl:
mvdir
storage/bdb/test/sdb011.tcl:
mvdir
storage/bdb/test/sdb012.tcl:
mvdir
storage/bdb/test/sdbscript.tcl:
mvdir
storage/bdb/test/sdbtest001.tcl:
mvdir
storage/bdb/test/sdbtest002.tcl:
mvdir
storage/bdb/test/sdbutils.tcl:
mvdir
storage/bdb/test/sec001.tcl:
mvdir
storage/bdb/test/sec002.tcl:
mvdir
storage/bdb/test/shelltest.tcl:
mvdir
storage/bdb/test/si001.tcl:
mvdir
storage/bdb/test/si002.tcl:
mvdir
storage/bdb/test/si003.tcl:
mvdir
storage/bdb/test/si004.tcl:
mvdir
storage/bdb/test/si005.tcl:
mvdir
storage/bdb/test/si006.tcl:
mvdir
storage/bdb/test/sindex.tcl:
mvdir
storage/bdb/test/sysscript.tcl:
mvdir
storage/bdb/test/test.tcl:
mvdir
storage/bdb/test/test001.tcl:
mvdir
storage/bdb/test/test002.tcl:
mvdir
storage/bdb/test/test003.tcl:
mvdir
storage/bdb/test/test004.tcl:
mvdir
storage/bdb/test/test005.tcl:
mvdir
storage/bdb/test/test006.tcl:
mvdir
storage/bdb/test/test007.tcl:
mvdir
storage/bdb/test/test008.tcl:
mvdir
storage/bdb/test/test009.tcl:
mvdir
storage/bdb/test/test010.tcl:
mvdir
storage/bdb/test/test011.tcl:
mvdir
storage/bdb/test/test012.tcl:
mvdir
storage/bdb/test/test013.tcl:
mvdir
storage/bdb/test/test014.tcl:
mvdir
storage/bdb/test/test015.tcl:
mvdir
storage/bdb/test/test016.tcl:
mvdir
storage/bdb/test/test017.tcl:
mvdir
storage/bdb/test/test018.tcl:
mvdir
storage/bdb/test/test019.tcl:
mvdir
storage/bdb/test/test020.tcl:
mvdir
storage/bdb/test/test021.tcl:
mvdir
storage/bdb/test/test022.tcl:
mvdir
storage/bdb/test/test023.tcl:
mvdir
storage/bdb/test/test024.tcl:
mvdir
storage/bdb/test/test025.tcl:
mvdir
storage/bdb/test/test026.tcl:
mvdir
storage/bdb/test/test027.tcl:
mvdir
storage/bdb/test/test028.tcl:
mvdir
storage/bdb/test/test029.tcl:
mvdir
storage/bdb/test/test030.tcl:
mvdir
storage/bdb/test/test031.tcl:
mvdir
storage/bdb/test/test032.tcl:
mvdir
storage/bdb/test/test033.tcl:
mvdir
storage/bdb/test/test034.tcl:
mvdir
storage/bdb/test/test035.tcl:
mvdir
storage/bdb/test/test036.tcl:
mvdir
storage/bdb/test/test037.tcl:
mvdir
storage/bdb/test/test038.tcl:
mvdir
storage/bdb/test/test039.tcl:
mvdir
storage/bdb/test/test040.tcl:
mvdir
storage/bdb/test/test041.tcl:
mvdir
storage/bdb/test/test042.tcl:
mvdir
storage/bdb/test/test043.tcl:
mvdir
storage/bdb/test/test044.tcl:
mvdir
storage/bdb/test/test045.tcl:
mvdir
storage/bdb/test/test046.tcl:
mvdir
storage/bdb/test/test047.tcl:
mvdir
storage/bdb/test/test048.tcl:
mvdir
storage/bdb/test/test049.tcl:
mvdir
storage/bdb/test/test050.tcl:
mvdir
storage/bdb/test/test051.tcl:
mvdir
storage/bdb/test/test052.tcl:
mvdir
storage/bdb/test/test053.tcl:
mvdir
storage/bdb/test/test054.tcl:
mvdir
storage/bdb/test/test055.tcl:
mvdir
storage/bdb/test/test056.tcl:
mvdir
storage/bdb/test/test057.tcl:
mvdir
storage/bdb/test/test058.tcl:
mvdir
storage/bdb/test/test059.tcl:
mvdir
storage/bdb/test/test060.tcl:
mvdir
storage/bdb/test/test061.tcl:
mvdir
storage/bdb/test/test062.tcl:
mvdir
storage/bdb/test/test063.tcl:
mvdir
storage/bdb/test/test064.tcl:
mvdir
storage/bdb/test/test065.tcl:
mvdir
storage/bdb/test/test066.tcl:
mvdir
storage/bdb/test/test067.tcl:
mvdir
storage/bdb/test/test068.tcl:
mvdir
storage/bdb/test/test069.tcl:
mvdir
storage/bdb/test/test070.tcl:
mvdir
storage/bdb/test/test071.tcl:
mvdir
storage/bdb/test/test072.tcl:
mvdir
storage/bdb/test/test073.tcl:
mvdir
storage/bdb/test/test074.tcl:
mvdir
storage/bdb/test/test075.tcl:
mvdir
storage/bdb/test/test076.tcl:
mvdir
storage/bdb/test/test077.tcl:
mvdir
storage/bdb/test/test078.tcl:
mvdir
storage/bdb/test/test079.tcl:
mvdir
storage/bdb/test/test080.tcl:
mvdir
storage/bdb/test/test081.tcl:
mvdir
storage/bdb/test/test082.tcl:
mvdir
storage/bdb/test/test083.tcl:
mvdir
storage/bdb/test/test084.tcl:
mvdir
storage/bdb/test/test085.tcl:
mvdir
storage/bdb/test/test086.tcl:
mvdir
storage/bdb/test/test087.tcl:
mvdir
storage/bdb/test/test088.tcl:
mvdir
storage/bdb/test/test089.tcl:
mvdir
storage/bdb/test/test090.tcl:
mvdir
storage/bdb/test/test091.tcl:
mvdir
storage/bdb/test/test092.tcl:
mvdir
storage/bdb/test/test093.tcl:
mvdir
storage/bdb/test/test094.tcl:
mvdir
storage/bdb/test/test095.tcl:
mvdir
storage/bdb/test/test096.tcl:
mvdir
storage/bdb/test/test097.tcl:
mvdir
storage/bdb/test/test098.tcl:
mvdir
storage/bdb/test/test099.tcl:
mvdir
storage/bdb/test/test100.tcl:
mvdir
storage/bdb/test/test101.tcl:
mvdir
storage/bdb/test/testparams.tcl:
mvdir
storage/bdb/test/testutils.tcl:
mvdir
storage/bdb/test/txn001.tcl:
mvdir
storage/bdb/test/txn002.tcl:
mvdir
storage/bdb/test/txn003.tcl:
mvdir
storage/bdb/test/txn004.tcl:
mvdir
storage/bdb/test/txn005.tcl:
mvdir
storage/bdb/test/txn006.tcl:
mvdir
storage/bdb/test/txn007.tcl:
mvdir
storage/bdb/test/txn008.tcl:
mvdir
storage/bdb/test/txn009.tcl:
mvdir
storage/bdb/test/txnscript.tcl:
mvdir
storage/bdb/test/update.tcl:
mvdir
storage/bdb/test/scr001/chk.code:
mvdir
storage/bdb/test/scr002/chk.def:
mvdir
storage/bdb/test/scr003/chk.define:
mvdir
storage/bdb/test/scr004/chk.javafiles:
mvdir
storage/bdb/test/scr005/chk.nl:
mvdir
storage/bdb/test/scr006/chk.offt:
mvdir
storage/bdb/test/scr007/chk.proto:
mvdir
storage/bdb/test/scr008/chk.pubdef:
mvdir
storage/bdb/test/scr009/chk.srcfiles:
mvdir
storage/bdb/test/scr010/chk.str:
mvdir
storage/bdb/test/scr010/spell.ok:
mvdir
storage/bdb/test/scr011/chk.tags:
mvdir
storage/bdb/test/scr012/chk.vx_code:
mvdir
storage/bdb/test/scr013/chk.stats:
mvdir
storage/bdb/test/scr014/chk.err:
mvdir
storage/bdb/test/scr015/README:
mvdir
storage/bdb/test/scr015/TestConstruct01.cpp:
mvdir
storage/bdb/test/scr015/TestConstruct01.testerr:
mvdir
storage/bdb/test/scr015/TestConstruct01.testout:
mvdir
storage/bdb/test/scr015/TestExceptInclude.cpp:
mvdir
storage/bdb/test/scr015/TestGetSetMethods.cpp:
mvdir
storage/bdb/test/scr015/TestKeyRange.cpp:
mvdir
storage/bdb/test/scr015/TestKeyRange.testin:
mvdir
storage/bdb/test/scr015/TestKeyRange.testout:
mvdir
storage/bdb/test/upgrade.tcl:
mvdir
storage/bdb/test/wordlist:
mvdir
storage/bdb/test/wrap.tcl:
mvdir
storage/bdb/test/scr015/TestLogc.cpp:
mvdir
storage/bdb/test/scr015/TestLogc.testout:
mvdir
storage/bdb/test/scr015/TestSimpleAccess.cpp:
mvdir
storage/bdb/test/scr015/TestSimpleAccess.testout:
mvdir
storage/bdb/test/scr015/TestTruncate.cpp:
mvdir
storage/bdb/test/scr015/TestTruncate.testout:
mvdir
storage/bdb/test/scr015/chk.cxxtests:
mvdir
storage/bdb/test/scr015/ignore:
mvdir
storage/bdb/test/scr015/testall:
mvdir
storage/bdb/test/scr015/testone:
mvdir
storage/bdb/test/scr016/CallbackTest.java:
mvdir
storage/bdb/test/scr016/CallbackTest.testout:
mvdir
storage/bdb/test/scr016/README:
mvdir
storage/bdb/test/scr016/TestAppendRecno.java:
mvdir
storage/bdb/test/scr016/TestAppendRecno.testout:
mvdir
storage/bdb/test/scr016/TestAssociate.java:
mvdir
storage/bdb/test/scr016/TestAssociate.testout:
mvdir
storage/bdb/test/scr016/TestClosedDb.java:
mvdir
storage/bdb/test/scr016/TestClosedDb.testout:
mvdir
storage/bdb/test/scr016/TestConstruct01.java:
mvdir
storage/bdb/test/scr016/TestConstruct01.testerr:
mvdir
storage/bdb/test/scr016/TestConstruct01.testout:
mvdir
storage/bdb/test/scr016/TestConstruct02.java:
mvdir
storage/bdb/test/scr016/TestConstruct02.testout:
mvdir
storage/bdb/test/scr016/TestDbtFlags.java:
mvdir
storage/bdb/test/scr016/TestDbtFlags.testerr:
mvdir
storage/bdb/test/scr016/TestDbtFlags.testout:
mvdir
storage/bdb/test/scr016/TestGetSetMethods.java:
mvdir
storage/bdb/test/scr016/TestKeyRange.java:
mvdir
storage/bdb/test/scr016/TestKeyRange.testout:
mvdir
storage/bdb/test/scr016/TestLockVec.java:
mvdir
storage/bdb/test/scr016/TestLockVec.testout:
mvdir
storage/bdb/test/scr016/TestLogc.java:
mvdir
storage/bdb/test/scr016/TestLogc.testout:
mvdir
storage/bdb/test/scr016/TestOpenEmpty.java:
mvdir
storage/bdb/test/scr016/TestOpenEmpty.testerr:
mvdir
storage/bdb/test/scr016/TestReplication.java:
mvdir
storage/bdb/test/scr016/TestRpcServer.java:
mvdir
storage/bdb/test/scr016/TestSameDbt.java:
mvdir
storage/bdb/test/scr016/TestSameDbt.testout:
mvdir
storage/bdb/test/scr016/TestSimpleAccess.java:
mvdir
storage/bdb/test/scr016/TestSimpleAccess.testout:
mvdir
storage/bdb/test/scr016/TestStat.java:
mvdir
storage/bdb/test/scr016/TestStat.testout:
mvdir
storage/bdb/test/scr016/TestTruncate.java:
mvdir
storage/bdb/test/scr016/TestTruncate.testout:
mvdir
storage/bdb/test/scr016/TestUtil.java:
mvdir
storage/bdb/test/scr016/TestXAServlet.java:
mvdir
storage/bdb/test/scr016/chk.javatests:
mvdir
storage/bdb/test/scr016/ignore:
mvdir
storage/bdb/test/scr016/testall:
mvdir
storage/bdb/test/scr016/testone:
mvdir
storage/bdb/test/scr017/O.BH:
mvdir
storage/bdb/test/scr017/O.R:
mvdir
storage/bdb/test/scr017/chk.db185:
mvdir
storage/bdb/test/scr017/t.c:
mvdir
storage/bdb/test/scr018/chk.comma:
mvdir
storage/bdb/test/scr018/t.c:
mvdir
storage/bdb/test/scr019/chk.include:
mvdir
storage/bdb/test/scr020/chk.inc:
mvdir
storage/bdb/test/scr021/chk.flags:
mvdir
storage/bdb/test/scr022/chk.rr:
mvdir
storage/bdb/txn/txn.c:
mvdir
storage/bdb/txn/txn.src:
mvdir
storage/bdb/txn/txn_method.c:
mvdir
storage/bdb/txn/txn_rec.c:
mvdir
storage/bdb/txn/txn_recover.c:
mvdir
storage/bdb/txn/txn_region.c:
mvdir
storage/bdb/txn/txn_stat.c:
mvdir
storage/bdb/txn/txn_util.c:
mvdir
storage/bdb/xa/xa.c:
mvdir
storage/bdb/xa/xa_db.c:
mvdir
storage/bdb/xa/xa_map.c:
mvdir
Diffstat (limited to 'ndb/include')
258 files changed, 0 insertions, 40765 deletions
diff --git a/ndb/include/Makefile.am b/ndb/include/Makefile.am deleted file mode 100644 index 10f297492e9..00000000000 --- a/ndb/include/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ - -include $(top_srcdir)/ndb/config/common.mk.am - -ndbinclude_HEADERS = \ -ndb_constants.h \ -ndb_init.h \ -ndb_types.h \ -ndb_version.h - -ndbapiinclude_HEADERS = \ -ndbapi/ndbapi_limits.h \ -ndbapi/ndb_opt_defaults.h \ -ndbapi/Ndb.hpp \ -ndbapi/NdbApi.hpp \ -ndbapi/NdbTransaction.hpp \ -ndbapi/NdbDictionary.hpp \ -ndbapi/NdbError.hpp \ -ndbapi/NdbEventOperation.hpp \ -ndbapi/NdbIndexOperation.hpp \ -ndbapi/NdbOperation.hpp \ -ndbapi/ndb_cluster_connection.hpp \ -ndbapi/NdbBlob.hpp \ -ndbapi/NdbPool.hpp \ -ndbapi/NdbRecAttr.hpp \ -ndbapi/NdbReceiver.hpp \ -ndbapi/NdbScanFilter.hpp \ -ndbapi/NdbScanOperation.hpp \ -ndbapi/NdbIndexScanOperation.hpp \ -ndbapi/ndberror.h - -mgmapiinclude_HEADERS = \ -mgmapi/mgmapi.h \ -mgmapi/mgmapi_debug.h \ -mgmapi/mgmapi_config_parameters.h \ -mgmapi/mgmapi_config_parameters_debug.h \ -mgmapi/ndb_logevent.h - -noinst_HEADERS = \ -ndb_global.h \ -ndb_net.h - -EXTRA_DIST = debugger editline kernel logger mgmcommon \ -portlib transporter util - -dist-hook: - -rm -rf `find $(distdir) -type d -name SCCS` - -windoze-dsp: - -# Don't update the files from bitkeeper -%::SCCS/s.% diff --git a/ndb/include/debugger/DebuggerNames.hpp b/ndb/include/debugger/DebuggerNames.hpp deleted file mode 100644 index cf9b1b57226..00000000000 --- a/ndb/include/debugger/DebuggerNames.hpp +++ /dev/null @@ -1,71 +0,0 @@ -/* 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 DEBUGGER_NAMES -#define DEBUGGER_NAMES - -#include <kernel_types.h> -#include <signaldata/SignalDataPrint.hpp> - -/** - * getSignalName - * - * NOTES: Very quick - * - * RETURNS: Signal name or 0 if none found - */ -const char * -getSignalName(GlobalSignalNumber gsn, const char * defualtValue = "Unknown"); - -/** - * getGsn - * - * NOTES: Very slow - * - * RETURNS: Gsn or 0 if none found - */ -GlobalSignalNumber -getGsn(const char * signalName); - -/** - * getBlockName - * - * NOTES: Very quick - * - * RETURNS: Block name or - * defValue if not a valid block number - */ -const char * -getBlockName(BlockNumber blockNo, const char * defValue = 0); - -/** - * getBlockNo - * - * NOTES: Very slow - * - * RETURNS: BlockNo or 0 if none found - */ -BlockNumber -getBlockNo(const char * blockName); - -/** - * Find a print function for a signal - * - * RETURNS: 0 if none found - */ -SignalDataPrintFunction findPrintFunction(GlobalSignalNumber); - -#endif diff --git a/ndb/include/debugger/EventLogger.hpp b/ndb/include/debugger/EventLogger.hpp deleted file mode 100644 index 6308cf25465..00000000000 --- a/ndb/include/debugger/EventLogger.hpp +++ /dev/null @@ -1,180 +0,0 @@ -/* 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 EVENTLOGGER_H -#define EVENTLOGGER_H - -#include <logger/Logger.hpp> -#include <logger/FileLogHandler.hpp> -#include "GrepError.hpp" -#include <kernel/kernel_types.h> -#include <kernel/LogLevel.hpp> -#include <kernel/signaldata/EventReport.hpp> - -class EventLoggerBase { -public: - virtual ~EventLoggerBase(); - - /** - * LogLevel settings - */ - LogLevel m_logLevel; - - /** - * This matrix defines which event should be printed when - * - * threshold - is in range [0-15] - * severity - DEBUG to ALERT (Type of log message) - */ - typedef void (* EventTextFunction)(char *,size_t,const Uint32*); - - struct EventRepLogLevelMatrix { - Ndb_logevent_type eventType; - LogLevel::EventCategory eventCategory; - Uint32 threshold; - Logger::LoggerLevel severity; - EventTextFunction textF; - }; - - static const EventRepLogLevelMatrix matrix[]; - static const Uint32 matrixSize; - static int event_lookup(int eventType, - LogLevel::EventCategory &cat, - Uint32 &threshold, - Logger::LoggerLevel &severity, - EventTextFunction &textF); -}; - -/** - * The EventLogger is primarily used for logging NDB events - * in the Management Server. It inherits all logging functionality of Logger. - * - * HOW TO USE - * - * 1) Create an EventLogger - * - * EventLogger myEventLogger = new EventLogger(); - * - * 2) Log NDB events and other log messages. - * - * myEventLogger->info("Changing log levels."); - * - * EventReport* report = (EventReport*)&theSignalData[0]; - * myEventLogger->log(eventReport->getEventType(), theSignalData, aNodeId); - * - * - * The following NDB event categories and log levels are enabled as default: - * - * EVENT-CATEGORY LOG-LEVEL - * - * Startup 4 - * Shutdown 1 - * Statistic 2 - * Checkpoint 5 - * NodeRestart 8 - * Connection 2 - * Error 15 - * Info 10 - * - * @see Logger - * @version #@ $Id: EventLogger.hpp,v 1.3 2003/09/01 10:15:52 innpeno Exp $ - */ -class EventLogger : public EventLoggerBase, public Logger -{ -public: - /** - * Default constructor. Enables default log levels and - * sets the log category to 'EventLogger'. - */ - EventLogger(); - - /** - * Destructor. - */ - virtual ~EventLogger(); - - /** - * Opens/creates the eventlog with the specified filename. - * - * @param aFileName the eventlog filename. - * @param maxNoFiles the maximum no of archived eventlog files. - * @param maxFileSize the maximum eventlog file size. - * @param maxLogEntries the maximum number of log entries before - * checking time to archive. - * @return true if successful. - */ - bool open(const char* logFileName, - int maxNoFiles = FileLogHandler::MAX_NO_FILES, - long int maxFileSize = FileLogHandler::MAX_FILE_SIZE, - unsigned int maxLogEntries = FileLogHandler::MAX_LOG_ENTRIES); - - /** - * Closes the eventlog. - */ - void close(); - - /** - * Logs the NDB event. - * - * @param eventType the type of event. - * @param theData the event data. - * @param nodeId the node id of event origin. - */ - virtual void log(int, const Uint32*, NodeId = 0,const class LogLevel * = 0); - - - /** - * Returns the event text for the specified event report type. - * - * @param textF print function for the event - * @param theData the event data. - * @param nodeId a node id. - * @return the event report text. - */ - static const char* getText(char * dst, size_t dst_len, - EventTextFunction textF, - const Uint32* theData, NodeId nodeId = 0); - - /** - * Returns the log level that is used to filter an event. The event will not - * be logged unless its event category's log level is <= levelFilter. - * - * @return the log level filter that is used for all event categories. - */ - int getFilterLevel() const; - - /** - * Sets log level filter. The event will be logged if - * the event category's log level is <= 'filterLevel'. - * - * @param level the log level to filter. - */ - void setFilterLevel(int filterLevel); - -private: - /** Prohibit */ - EventLogger(const EventLogger&); - EventLogger operator = (const EventLogger&); - bool operator == (const EventLogger&); - - Uint32 m_filterLevel; - - STATIC_CONST(MAX_TEXT_LENGTH = 256); - char m_text[MAX_TEXT_LENGTH]; -}; - - -#endif diff --git a/ndb/include/debugger/GrepError.hpp b/ndb/include/debugger/GrepError.hpp deleted file mode 100644 index beedbd95c80..00000000000 --- a/ndb/include/debugger/GrepError.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* 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 GREP_ERROR_H -#define GREP_ERROR_H - -#include <ndb_types.h> - -/** - * - */ -class GrepError { -public: - enum GE_Code { - GE_NO_ERROR = 0, - SUBSCRIPTION_ID_NOMEM = 1, - SUBSCRIPTION_ID_NOT_FOUND = 2, - SUBSCRIPTION_ID_NOT_UNIQUE = 3, - SUBSCRIPTION_ID_SUMA_FAILED_CREATE = 4, - SUBSCRIPTION_ID_ALREADY_EXIST = 5, - COULD_NOT_ALLOCATE_MEM_FOR_SIGNAL = 6, - NULL_VALUE = 7, - SEQUENCE_ERROR = 8, - NOSPACE_IN_POOL= 9, - SUBSCRIPTION_NOT_FOUND = 10, - - NF_FakeErrorREF = 11, - - // Error that the user can get when issuing commands - SUBSCRIPTION_NOT_STARTED = 100, - START_OF_COMPONENT_IN_WRONG_STATE, - START_ALREADY_IN_PROGRESS, - ILLEGAL_STOP_EPOCH_ID, - WRONG_NO_OF_SECTIONS, - ILLEGAL_ACTION_WHEN_STOPPING, - ILLEGAL_USE_OF_COMMAND, - CHANNEL_NOT_STOPPABLE, - - // subscriber releated 20 - 30 - SUBSCRIBER_NOT_FOUND = 20, - - //SUMA specific 400 - 600 - SELECTED_TABLE_NOT_FOUND = 400, - SELECTED_TABLE_ALREADY_ADDED = 401, - - //REP ERRORS starts at 1000 - REP_NO_CONNECTED_NODES = 1001, - REP_DELETE_NEGATIVE_EPOCH = 1002, - REP_DELETE_NONEXISTING_EPOCH = 1003, - REP_APPLY_LOGRECORD_FAILED = 1012, - REP_APPLY_METARECORD_FAILED = 1013, - REP_APPLY_NONCOMPLETE_GCIBUFFER = 1004, - REP_APPLY_NULL_GCIBUFFER = 1005, - REP_APPLIER_START_TRANSACTION = 1006, - REP_APPLIER_NO_TABLE = 1007, - REP_APPLIER_NO_OPERATION = 1007, - REP_APPLIER_EXECUTE_TRANSACTION = 1008, - REP_APPLIER_CREATE_TABLE = 1009, - REP_APPLIER_PREPARE_TABLE = 1010, - REP_DISCONNECT = 1011, - REQUESTOR_ILLEGAL_STATE_FOR_SLOWSTOP = 1200, - REQUESTOR_ILLEGAL_STATE_FOR_FASTSTOP = 1201, - REP_NOT_PROPER_TABLE = 1202, - REP_TABLE_ALREADY_SELECTED = 1203, - REP_TABLE_NOT_FOUND = 1204, - - NOT_YET_IMPLEMENTED, - NO_OF_ERROR_CODES - }; - - struct ErrorDescription { - GE_Code errCode; - const char * name; - }; - static const ErrorDescription errorDescriptions[]; - static const Uint32 noOfErrorDescs; - static const char * getErrorDesc(GrepError::GE_Code err); - -}; - -#endif diff --git a/ndb/include/debugger/SignalLoggerManager.hpp b/ndb/include/debugger/SignalLoggerManager.hpp deleted file mode 100644 index 742bf7d294e..00000000000 --- a/ndb/include/debugger/SignalLoggerManager.hpp +++ /dev/null @@ -1,174 +0,0 @@ -/* 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 */ - -//**************************************************************************** -// -// .NAME -// SignalLoggerManager - Handle signal loggers -// -//**************************************************************************** -#ifndef SignalLoggerManager_H -#define SignalLoggerManager_H - - -#include <kernel_types.h> -#include <BlockNumbers.h> -#include <TransporterDefinitions.hpp> - -class SignalLoggerManager -{ -public: - SignalLoggerManager(); - virtual ~SignalLoggerManager(); - - /** - * Sets output - * @Returns old output stream - */ - FILE * setOutputStream(FILE * output); - - /** - * Gets current output - */ - FILE * getOutputStream() const; - - void flushSignalLog(); - - /** - * For direct signals - * @See also SimulatedBlock EXECUTE_DIRECT - */ - void executeDirect(const SignalHeader&, - Uint8 prio, const Uint32 * theData, Uint32 node); - - /** - * For input signals - */ - void executeSignal(const SignalHeader&, Uint8 prio, - const Uint32 * theData, Uint32 node, - const SegmentedSectionPtr ptr[3], Uint32 secs); - - void executeSignal(const SignalHeader&, Uint8 prio, - const Uint32 * theData, Uint32 node, - const LinearSectionPtr ptr[3], Uint32 secs); - - /** - * For output signals - */ - void sendSignal(const SignalHeader&, Uint8 prio, - const Uint32 * theData, Uint32 node, - const SegmentedSectionPtr ptr[3], Uint32 secs); - - void sendSignal(const SignalHeader&, Uint8 prio, - const Uint32 * theData, Uint32 node, - const LinearSectionPtr ptr[3], Uint32 secs); - - /** - * For output signals - */ - void sendSignalWithDelay(Uint32 delayInMilliSeconds, - const SignalHeader&, - Uint8 prio, const Uint32 * data, Uint32 node, - const SegmentedSectionPtr ptr[3], Uint32 secs); - - /** - * Generic messages in the signal log - */ - void log(BlockNumber bno, const char * msg); - - /** - * LogModes - */ - enum LogMode { - LogOff = 0, - LogIn = 1, - LogOut = 2, - LogInOut = 3 - }; - - /** - * Returns no of loggers affected - */ - int log(LogMode logMode, const char * params); - int logOn(bool allBlocks, BlockNumber bno, LogMode logMode); - int logOff(bool allBlocks, BlockNumber bno, LogMode logMode); - int logToggle(bool allBlocks, BlockNumber bno, LogMode logMode); - - void setTrace(unsigned long trace); - unsigned long getTrace() const; - - void setOwnNodeId(int nodeId); - void setLogDistributed(bool val); - - /** - * Print header - */ - static void printSignalHeader(FILE * output, - const SignalHeader & sh, - Uint8 prio, - Uint32 node, - bool printReceiversSignalId); - - /** - * Function for printing the Signal Data - */ - static void printSignalData(FILE * out, - const SignalHeader & sh, const Uint32 *); - - /** - * Print linear section. - */ - static void printLinearSection(FILE * output, - const SignalHeader & sh, - const LinearSectionPtr ptr[3], - unsigned i); - - /** - * Print segmented section. - */ - static void printSegmentedSection(FILE * output, - const SignalHeader & sh, - const SegmentedSectionPtr ptr[3], - unsigned i); - - /** - * Print data word in hex. Adds line break before the word - * when pos > 0 && pos % 7 == 0. Increments pos. - */ - static void printDataWord(FILE * output, Uint32 & pos, const Uint32 data); - -private: - bool m_logDistributed; - Uint32 m_ownNodeId; - - FILE * outputStream; - int log(int cmd, BlockNumber bno, LogMode logMode); - - Uint32 traceId; - Uint8 logModes[NO_OF_BLOCKS]; - - inline bool - logMatch(BlockNumber bno, LogMode mask) - { - // avoid addressing outside logModes - return - bno < MIN_BLOCK_NO || bno > MAX_BLOCK_NO || - (logModes[bno-MIN_BLOCK_NO] & mask); - } -}; - -#endif // SignalLoggerManager_H - diff --git a/ndb/include/editline/editline.h b/ndb/include/editline/editline.h deleted file mode 100644 index 2757e385968..00000000000 --- a/ndb/include/editline/editline.h +++ /dev/null @@ -1,38 +0,0 @@ -/* 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 */ - -/* $Id: editline.h,v 1.1 2002/12/11 13:53:46 hin Exp $ */ - -/* - * Public include file for editline, to be included instead of readline.h - */ - -#ifndef __EDITLINE_H_INCLUDED__ -#define __EDITLINE_H_INCLUDED__ - -#ifdef __cplusplus -extern "C" { -#endif - -extern char *readline(const char *); -extern void add_history(char *); - -#ifdef __cplusplus -} -#endif - -#endif /* !__EDITLINE_H_INCLUDED__ */ - diff --git a/ndb/include/kernel/AttributeDescriptor.hpp b/ndb/include/kernel/AttributeDescriptor.hpp deleted file mode 100644 index af28e777213..00000000000 --- a/ndb/include/kernel/AttributeDescriptor.hpp +++ /dev/null @@ -1,208 +0,0 @@ -/* 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 ATTRIBUTE_DESCRIPTOR_HPP -#define ATTRIBUTE_DESCRIPTOR_HPP - -class AttributeDescriptor { - friend class Dbdict; - friend class Dbtc; - friend class Dbacc; - friend class Dbtup; - friend class Dbtux; - -private: - static void setType(Uint32 &, Uint32 type); - static void setSize(Uint32 &, Uint32 size); - static void setArray(Uint32 &, Uint32 arraySize); - static void setNullable(Uint32 &, Uint32 nullable); - static void setDKey(Uint32 &, Uint32 dkey); - static void setPrimaryKey(Uint32 &, Uint32 dkey); - static void setDynamic(Uint32 &, Uint32 dynamicInd); - - static Uint32 getType(const Uint32 &); - static Uint32 getSize(const Uint32 &); - static Uint32 getSizeInBytes(const Uint32 &); - static Uint32 getSizeInWords(const Uint32 &); - static Uint32 getArrayType(const Uint32 &); - static Uint32 getArraySize(const Uint32 &); - static Uint32 getNullable(const Uint32 &); - static Uint32 getDKey(const Uint32 &); - static Uint32 getPrimaryKey(const Uint32 &); - static Uint32 getDynamic(const Uint32 &); -}; - -/** - * - * a = Array type - 2 Bits -> Max 3 (Bit 0-1) - * t = Attribute type - 5 Bits -> Max 31 (Bit 2-6) - * s = Attribute size - 3 Bits -> Max 7 (Bit 8-10) - * d = Disk based - 1 Bit 11 - * n = Nullable - 1 Bit 12 - * k = Distribution Key Ind - 1 Bit 13 - * p = Primary key attribute - 1 Bit 14 - * y = Dynamic attribute - 1 Bit 15 - * z = Array size - 16 Bits -> Max 65535 (Bit 16-31) - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * aattttt sssdnkpyzzzzzzzzzzzzzzzz - * aattsss n d k pyzzzzzzzzzzzzzzzz [ old format ] - * - */ - -#define AD_ARRAY_TYPE_SHIFT (0) -#define AD_ARRAY_TYPE_MASK (3) - -#define AD_TYPE_SHIFT (2) -#define AD_TYPE_MASK (31) - -#define AD_SIZE_SHIFT (8) -#define AD_SIZE_MASK (7) - -#define AD_SIZE_IN_BYTES_SHIFT (3) -#define AD_SIZE_IN_WORDS_OFFSET (31) -#define AD_SIZE_IN_WORDS_SHIFT (5) - -#define AD_NULLABLE_SHIFT (12) -#define AD_DISTR_KEY_SHIFT (13) -#define AD_PRIMARY_KEY (14) -#define AD_DYNAMIC (15) - -#define AD_ARRAY_SIZE_SHIFT (16) -#define AD_ARRAY_SIZE_MASK (65535) - -inline -void -AttributeDescriptor::setType(Uint32 & desc, Uint32 type){ - ASSERT_MAX(type, AD_TYPE_MASK, "AttributeDescriptor::setType"); - desc |= (type << AD_TYPE_SHIFT); -} - -inline -void -AttributeDescriptor::setSize(Uint32 & desc, Uint32 size){ - ASSERT_MAX(size, AD_SIZE_MASK, "AttributeDescriptor::setSize"); - desc |= (size << AD_SIZE_SHIFT); -} - -inline -void -AttributeDescriptor::setArray(Uint32 & desc, Uint32 size){ - ASSERT_MAX(size, AD_ARRAY_SIZE_MASK, "AttributeDescriptor::setArray"); - desc |= (size << AD_ARRAY_SIZE_SHIFT); - if(size <= 1){ - desc |= (size << AD_ARRAY_TYPE_SHIFT); - } else { - desc |= (2 << AD_ARRAY_TYPE_SHIFT); - } -} - -inline -void -AttributeDescriptor::setNullable(Uint32 & desc, Uint32 nullable){ - ASSERT_BOOL(nullable, "AttributeDescriptor::setNullable"); - desc |= (nullable << AD_NULLABLE_SHIFT); -} - -inline -void -AttributeDescriptor::setDKey(Uint32 & desc, Uint32 dkey){ - ASSERT_BOOL(dkey, "AttributeDescriptor::setDKey"); - desc |= (dkey << AD_DISTR_KEY_SHIFT); -} - -inline -void -AttributeDescriptor::setPrimaryKey(Uint32 & desc, Uint32 dkey){ - ASSERT_BOOL(dkey, "AttributeDescriptor::setPrimaryKey"); - desc |= (dkey << AD_PRIMARY_KEY); -} - -inline -void -AttributeDescriptor::setDynamic(Uint32 & desc, Uint32 dynamic){ - ASSERT_BOOL(dynamic, "AttributeDescriptor::setDynamic"); - desc |= (dynamic << AD_DYNAMIC); -} - -/** - * Getters - */ -inline -Uint32 -AttributeDescriptor::getType(const Uint32 & desc){ - return (desc >> AD_TYPE_SHIFT) & AD_TYPE_MASK; -} - -inline -Uint32 -AttributeDescriptor::getSize(const Uint32 & desc){ - return (desc >> AD_SIZE_SHIFT) & AD_SIZE_MASK; -} - -inline -Uint32 -AttributeDescriptor::getSizeInBytes(const Uint32 & desc){ - return (getArraySize(desc) << getSize(desc)) - >> AD_SIZE_IN_BYTES_SHIFT; -} - -inline -Uint32 -AttributeDescriptor::getSizeInWords(const Uint32 & desc){ - return ((getArraySize(desc) << getSize(desc)) - + AD_SIZE_IN_WORDS_OFFSET) - >> AD_SIZE_IN_WORDS_SHIFT; -} - -inline -Uint32 -AttributeDescriptor::getArrayType(const Uint32 & desc){ - return (desc >> AD_ARRAY_TYPE_SHIFT) & AD_ARRAY_TYPE_MASK; -} - -inline -Uint32 -AttributeDescriptor::getArraySize(const Uint32 & desc){ - return (desc >> AD_ARRAY_SIZE_SHIFT) & AD_ARRAY_SIZE_MASK; -} - -inline -Uint32 -AttributeDescriptor::getNullable(const Uint32 & desc){ - return (desc >> AD_NULLABLE_SHIFT) & 1; -} - -inline -Uint32 -AttributeDescriptor::getDKey(const Uint32 & desc){ - return (desc >> AD_DISTR_KEY_SHIFT) & 1; -} - -inline -Uint32 -AttributeDescriptor::getPrimaryKey(const Uint32 & desc){ - return (desc >> AD_PRIMARY_KEY) & 1; -} - -inline -Uint32 -AttributeDescriptor::getDynamic(const Uint32 & desc){ - return (desc >> AD_DYNAMIC) & 1; -} - -#endif diff --git a/ndb/include/kernel/AttributeHeader.hpp b/ndb/include/kernel/AttributeHeader.hpp deleted file mode 100644 index 3cb432067eb..00000000000 --- a/ndb/include/kernel/AttributeHeader.hpp +++ /dev/null @@ -1,215 +0,0 @@ -/* 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 ATTRIBUTE_HEADER -#define ATTRIBUTE_HEADER - -/** - * @class AttributeHeader - * @brief Header passed in front of every attribute value in AttrInfo signal - */ -class AttributeHeader { - friend class Dbtup; - friend class Backup; - friend class NdbOperation; - friend class DbUtil; - friend class Suma; - -public: - /** - * Psuedo columns - */ - STATIC_CONST( PSUEDO = 0x8000 ); - STATIC_CONST( FRAGMENT = 0xFFFE ); // Read fragment no - STATIC_CONST( ROW_COUNT = 0xFFFD ); // Read row count (committed) - STATIC_CONST( COMMIT_COUNT = 0xFFFC ); // Read commit count - STATIC_CONST( RANGE_NO = 0xFFFB ); // Read range no (when batched ranges) - - STATIC_CONST( ROW_SIZE = 0xFFFA ); - STATIC_CONST( FRAGMENT_MEMORY= 0xFFF9 ); - - /** Initialize AttributeHeader at location aHeaderPtr */ - static AttributeHeader& init(void* aHeaderPtr, Uint32 anAttributeId, - Uint32 aDataSize); - - /** Returns size of AttributeHeader (usually one or two words) */ - Uint32 getHeaderSize() const; // In 32-bit words - - /** Store AttributeHeader in location given as argument */ - void insertHeader(Uint32*); - - /** Get next attribute header (if there is one) */ - AttributeHeader* getNext() const; - - /** Get location of attribute value */ - Uint32* getDataPtr() const; - - /** Getters and Setters */ - Uint32 getAttributeId() const; - void setAttributeId(Uint32); - Uint32 getDataSize() const; // In 32-bit words - void setDataSize(Uint32); - bool isNULL() const; - void setNULL(); - - /** Print **/ - //void print(NdbOut&); - void print(FILE*); - - static Uint32 getDataSize(Uint32); - -public: - AttributeHeader(Uint32 = 0); - AttributeHeader(Uint32 anAttributeId, Uint32 aDataSize); - ~AttributeHeader(); - - Uint32 m_value; -}; - -/** - * 1111111111222222222233 - * 01234567890123456789012345678901 - * ssssssssssssss eiiiiiiiiiiiiiiii - * - * i = Attribute Id - * s = Size of current "chunk" - 14 Bits -> 16384 (words) = 65k - * Including optional extra word(s). - * e - Element data/Blob, read element of array - * If == 0 next data word contains attribute value. - * If == 1 next data word contains: - * For Array of Fixed size Elements - * Start Index (16 bit), Stop Index(16 bit) - * For Blob - * Start offset (32 bit) (length is defined in previous word) - * - * An attribute value equal to "null" is represented by setting s == 0. - * - * Bit 14 is not yet used. - */ - -inline -AttributeHeader& AttributeHeader::init(void* aHeaderPtr, Uint32 anAttributeId, - Uint32 aDataSize) -{ - return * new (aHeaderPtr) AttributeHeader(anAttributeId, aDataSize); -} - -inline -AttributeHeader::AttributeHeader(Uint32 aHeader) -{ - m_value = aHeader; -} - -inline -AttributeHeader::AttributeHeader(Uint32 anAttributeId, Uint32 aDataSize) -{ - m_value = 0; - this->setAttributeId(anAttributeId); - this->setDataSize(aDataSize); -} - -inline -AttributeHeader::~AttributeHeader() -{} - -inline -Uint32 AttributeHeader::getHeaderSize() const -{ - // Should check 'e' bit here - return 1; -} - -inline -Uint32 AttributeHeader::getAttributeId() const -{ - return (m_value & 0xFFFF0000) >> 16; -} - -inline -void AttributeHeader::setAttributeId(Uint32 anAttributeId) -{ - m_value &= 0x0000FFFF; // Clear attribute id - m_value |= (anAttributeId << 16); -} - -inline -Uint32 AttributeHeader::getDataSize() const -{ - return (m_value & 0x3FFF); -} - -inline -void AttributeHeader::setDataSize(Uint32 aDataSize) -{ - m_value &= (~0x3FFF); - m_value |= aDataSize; -} - -inline -bool AttributeHeader::isNULL() const -{ - return (getDataSize() == 0); -} - -inline -void AttributeHeader::setNULL() -{ - setDataSize(0); -} - -inline -Uint32* AttributeHeader::getDataPtr() const -{ - return (Uint32*)&m_value + getHeaderSize(); -} - -inline -void AttributeHeader::insertHeader(Uint32* target) -{ - *target = m_value; -} - -inline -AttributeHeader* -AttributeHeader::getNext() const { - return (AttributeHeader*)(getDataPtr() + getDataSize()); -} - -inline -void -//AttributeHeader::print(NdbOut& output) { -AttributeHeader::print(FILE* output) { - fprintf(output, "AttributeId: H\'%.8x (D\'%d), DataSize: H\'%.8x (D\'%d), " - "isNULL: %d\n", - getAttributeId(), getAttributeId(), - getDataSize(), getDataSize(), - isNULL()); -} - -inline -Uint32 -AttributeHeader::getDataSize(Uint32 m_value){ - return (m_value & 0x3FFF); -} - -#endif - - - - - - - diff --git a/ndb/include/kernel/AttributeList.hpp b/ndb/include/kernel/AttributeList.hpp deleted file mode 100644 index 7c6f71df3d2..00000000000 --- a/ndb/include/kernel/AttributeList.hpp +++ /dev/null @@ -1,32 +0,0 @@ -/* 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 ATTRIBUTE_LIST_HPP -#define ATTRIBUTE_LIST_HPP - -/** - * Masks and lists used by index and trigger. Must be plain old Uint32 data. - * XXX depends on other headers XXX move to some common file - */ - -typedef Bitmask<MAXNROFATTRIBUTESINWORDS> AttributeMask; - -struct AttributeList { - Uint32 sz; - Uint32 id[MAX_ATTRIBUTES_IN_INDEX]; -}; - -#endif diff --git a/ndb/include/kernel/BlockNumbers.h b/ndb/include/kernel/BlockNumbers.h deleted file mode 100644 index cb3cc697eee..00000000000 --- a/ndb/include/kernel/BlockNumbers.h +++ /dev/null @@ -1,82 +0,0 @@ -/* 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 GREP 0x102 -#define DBTUX 0x103 - -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 GREP_REF = numberToRef(GREP, 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 diff --git a/ndb/include/kernel/GlobalSignalNumbers.h b/ndb/include/kernel/GlobalSignalNumbers.h deleted file mode 100644 index 9413f4ef56a..00000000000 --- a/ndb/include/kernel/GlobalSignalNumbers.h +++ /dev/null @@ -1,949 +0,0 @@ -/* 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 GLOBAL_SIGNAL_NUMBERS_H -#define GLOBAL_SIGNAL_NUMBERS_H - -#include <kernel_types.h> -/** - * NOTE - * - * When adding a new signal, remember to update MAX_GSN and SignalNames.cpp - */ -const GlobalSignalNumber MAX_GSN = 712; - -struct GsnName { - GlobalSignalNumber gsn; - const char * name; -}; - -extern const GsnName SignalNames[]; -extern const GlobalSignalNumber NO_OF_SIGNAL_NAMES; - -/** - * These are used by API and kernel - */ -#define GSN_API_REGCONF 1 -#define GSN_API_REGREF 2 -#define GSN_API_REGREQ 3 - -#define GSN_ATTRINFO 4 -#define GSN_TRANSID_AI 5 -#define GSN_KEYINFO 6 -#define GSN_READCONF 7 - -#define GSN_TCKEY_FAILCONF 8 -#define GSN_TCKEY_FAILREF 9 -#define GSN_TCKEYCONF 10 -#define GSN_TCKEYREF 11 -#define GSN_TCKEYREQ 12 - -#define GSN_TCROLLBACKCONF 13 -#define GSN_TCROLLBACKREF 14 -#define GSN_TCROLLBACKREQ 15 -#define GSN_TCROLLBACKREP 16 - -#define GSN_TC_COMMITCONF 17 -#define GSN_TC_COMMITREF 18 -#define GSN_TC_COMMITREQ 19 -#define GSN_TC_HBREP 20 - -#define GSN_TRANSID_AI_R 21 -#define GSN_KEYINFO20_R 22 - -#define GSN_GET_TABINFOREF 23 -#define GSN_GET_TABINFOREQ 24 -#define GSN_GET_TABINFO_CONF 190 - -#define GSN_GET_TABLEID_REQ 683 -#define GSN_GET_TABLEID_REF 684 -#define GSN_GET_TABLEID_CONF 685 - -#define GSN_DIHNDBTAMPER 25 -#define GSN_NODE_FAILREP 26 -#define GSN_NF_COMPLETEREP 27 - -#define GSN_SCAN_NEXTREQ 28 -#define GSN_SCAN_TABCONF 29 -/* 30 unused */ -#define GSN_SCAN_TABREF 31 -#define GSN_SCAN_TABREQ 32 -#define GSN_KEYINFO20 33 - -#define GSN_TCRELEASECONF 34 -#define GSN_TCRELEASEREF 35 -#define GSN_TCRELEASEREQ 36 - -#define GSN_TCSEIZECONF 37 -#define GSN_TCSEIZEREF 38 -#define GSN_TCSEIZEREQ 39 - -/* 40 unused */ -/* 41 unused */ -/* 42 unused */ -/* 43 unused */ -/* 44 unused */ -/* 45 unused */ -/* 46 unused */ -/* 47 unused */ -/* 48 unused */ -/* 49 unused */ -/* 50 unused */ -/* 51 unused */ -/* 52 unused */ -/* 53 unused */ -/* 54 unused */ -/* 55 unused */ -/* 56 unused */ -/* 57 unused */ -/* 58 unused */ -/* 59 unused */ -/* 60 unused */ -/* 61 unused */ -/* 62 unused */ -/* 63 unused */ -/* 64 unused */ -/* 65 unused */ -/* 66 unused */ - -/** - * These are used only by kernel - */ - -#define GSN_ACC_ABORTCONF 67 -/* 68 unused */ -/* 69 unused */ -/* 70 unused */ -#define GSN_ACC_ABORTREQ 71 -#define GSN_ACC_CHECK_SCAN 72 -#define GSN_ACC_COMMITCONF 73 -#define GSN_ACC_COMMITREQ 74 -#define GSN_ACC_CONTOPCONF 75 -#define GSN_ACC_CONTOPREQ 76 -#define GSN_ACC_LCPCONF 77 -#define GSN_ACC_LCPREF 78 -#define GSN_ACC_LCPREQ 79 -#define GSN_ACC_LCPSTARTED 80 -#define GSN_ACC_OVER_REC 81 - -#define GSN_ACC_SAVE_PAGES 83 -#define GSN_ACC_SCAN_INFO 84 -#define GSN_ACC_SCAN_INFO24 85 -#define GSN_ACC_SCANCONF 86 -#define GSN_ACC_SCANREF 87 -#define GSN_ACC_SCANREQ 88 -#define GSN_ACC_SRCONF 89 -#define GSN_ACC_SRREF 90 -#define GSN_ACC_SRREQ 91 -#define GSN_ACC_TO_CONF 92 -#define GSN_ACC_TO_REF 93 -#define GSN_ACC_TO_REQ 94 -#define GSN_ACCFRAGCONF 95 -#define GSN_ACCFRAGREF 96 -#define GSN_ACCFRAGREQ 97 -#define GSN_ACCKEYCONF 98 -#define GSN_ACCKEYREF 99 -#define GSN_ACCKEYREQ 100 -#define GSN_ACCMINUPDATE 101 -#define GSN_ACCSEIZECONF 103 -#define GSN_ACCSEIZEREF 104 -#define GSN_ACCSEIZEREQ 105 -#define GSN_ACCUPDATECONF 106 -#define GSN_ACCUPDATEKEY 107 -#define GSN_ACCUPDATEREF 108 - -#define GSN_ADD_FRAGCONF 109 -#define GSN_ADD_FRAGREF 110 -#define GSN_ADD_FRAGREQ 111 - -#define GSN_API_FAILCONF 113 -#define GSN_API_FAILREQ 114 -#define GSN_CNTR_START_REQ 115 -/* 116 not unused */ -#define GSN_CNTR_START_REF 117 -#define GSN_CNTR_START_CONF 118 -#define GSN_CNTR_START_REP 119 -/* 120 unused */ -/* 121 unused */ -/* 122 unused */ -/* 123 unused */ -/* 124 unused */ -#define GSN_CHECK_LCP_STOP 125 -#define GSN_CLOSE_COMCONF 126 /* local */ -#define GSN_CLOSE_COMREQ 127 /* local */ -#define GSN_CM_ACKADD 128 /* distr. */ -/* 129 unused */ -#define GSN_CM_ADD 130 /* distr. */ -/* 131 unused */ -/* 132 not unused */ -/* 133 not unused */ -#define GSN_CM_HEARTBEAT 134 /* distr. */ -/* 135 unused */ -/* 136 unused */ -/* 137 unused */ -#define GSN_CM_NODEINFOCONF 138 /* distr. */ -#define GSN_CM_NODEINFOREF 139 /* distr. */ -#define GSN_CM_NODEINFOREQ 140 /* distr. */ -#define GSN_CM_REGCONF 141 /* distr. */ -#define GSN_CM_REGREF 142 /* distr. */ -#define GSN_CM_REGREQ 143 /* distr. */ -/* 144 unused */ -/* 145 unused */ -/* 146 unused */ -#define GSN_CM_ADD_REP 147 /* local */ -/* 148 unused */ -/* 149 unused */ -/* 150 unused */ -#define GSN_CNTR_WAITREP 151 /* distr. */ -#define GSN_COMMIT 152 -#define GSN_COMMIT_FAILCONF 153 -#define GSN_COMMIT_FAILREQ 154 -#define GSN_COMMITCONF 155 -#define GSN_COMMITREQ 156 -#define GSN_COMMITTED 157 -#define GSN_COMPLETE 159 -#define GSN_COMPLETECONF 160 -#define GSN_COMPLETED 161 -#define GSN_COMPLETEREQ 162 -#define GSN_CONNECT_REP 163 -#define GSN_CONTINUEB 164 -/* 165 not unused */ -#define GSN_COPY_ACTIVECONF 166 -#define GSN_COPY_ACTIVEREF 167 -#define GSN_COPY_ACTIVEREQ 168 -#define GSN_COPY_FRAGCONF 169 -#define GSN_COPY_FRAGREF 170 -#define GSN_COPY_FRAGREQ 171 -#define GSN_COPY_GCICONF 172 -#define GSN_COPY_GCIREQ 173 -#define GSN_COPY_STATECONF 174 -#define GSN_COPY_STATEREQ 175 -#define GSN_COPY_TABCONF 176 -#define GSN_COPY_TABREQ 177 -#define GSN_CREATE_FRAGCONF 178 -#define GSN_CREATE_FRAGREF 179 -#define GSN_CREATE_FRAGREQ 180 -#define GSN_DEBUG_SIG 181 -#define GSN_DI_FCOUNTCONF 182 -#define GSN_DI_FCOUNTREF 183 -#define GSN_DI_FCOUNTREQ 184 -#define GSN_DIADDTABCONF 185 -#define GSN_DIADDTABREF 186 -#define GSN_DIADDTABREQ 187 -/* 188 not unused */ -/* 189 not unused */ -/* 190 not unused */ -#define GSN_DICTSTARTCONF 191 -#define GSN_DICTSTARTREQ 192 - -#define GSN_LIST_TABLES_REQ 193 -#define GSN_LIST_TABLES_CONF 194 - -#define GSN_ABORT 195 -#define GSN_ABORTCONF 196 -#define GSN_ABORTED 197 -#define GSN_ABORTREQ 198 - -/****************************************** - * DROP TABLE - * - */ - -/** - * This is drop table's public interface - */ -#define GSN_DROP_TABLE_REQ 82 -#define GSN_DROP_TABLE_REF 102 -#define GSN_DROP_TABLE_CONF 112 - -/** - * This is used for implementing drop table - */ -#define GSN_PREP_DROP_TAB_REQ 199 -#define GSN_PREP_DROP_TAB_REF 200 -#define GSN_PREP_DROP_TAB_CONF 201 - -#define GSN_DROP_TAB_REQ 202 -#define GSN_DROP_TAB_REF 203 -#define GSN_DROP_TAB_CONF 204 - -#define GSN_WAIT_DROP_TAB_REQ 208 -#define GSN_WAIT_DROP_TAB_REF 209 -#define GSN_WAIT_DROP_TAB_CONF 216 - -/*****************************************/ - -#define GSN_UPDATE_TOCONF 205 -#define GSN_UPDATE_TOREF 206 -#define GSN_UPDATE_TOREQ 207 - -#define GSN_DIGETNODESCONF 210 -#define GSN_DIGETNODESREF 211 -#define GSN_DIGETNODESREQ 212 -#define GSN_DIGETPRIMCONF 213 -#define GSN_DIGETPRIMREF 214 -#define GSN_DIGETPRIMREQ 215 - -#define GSN_DIH_RESTARTCONF 217 -#define GSN_DIH_RESTARTREF 218 -#define GSN_DIH_RESTARTREQ 219 - -/* 220 not unused */ -/* 221 not unused */ -/* 222 not unused */ - -#define GSN_EMPTY_LCP_REQ 223 -#define GSN_EMPTY_LCP_CONF 224 - -#define GSN_SCHEMA_INFO 225 -#define GSN_SCHEMA_INFOCONF 226 - -#define GSN_MASTER_GCPCONF 227 -#define GSN_MASTER_GCPREF 228 -#define GSN_MASTER_GCPREQ 229 - -/* 230 not unused */ -/* 231 not unused */ - -#define GSN_DIRELEASECONF 232 -#define GSN_DIRELEASEREF 233 -#define GSN_DIRELEASEREQ 234 -#define GSN_DISCONNECT_REP 235 -#define GSN_DISEIZECONF 236 -#define GSN_DISEIZEREF 237 -#define GSN_DISEIZEREQ 238 -#define GSN_DIVERIFYCONF 239 -#define GSN_DIVERIFYREF 240 -#define GSN_DIVERIFYREQ 241 -#define GSN_ENABLE_COMORD 242 -#define GSN_END_LCPCONF 243 -#define GSN_END_LCPREQ 244 -#define GSN_END_TOCONF 245 -#define GSN_END_TOREQ 246 -#define GSN_EVENT_REP 247 -#define GSN_EXEC_FRAGCONF 248 -#define GSN_EXEC_FRAGREF 249 -#define GSN_EXEC_FRAGREQ 250 -#define GSN_EXEC_SRCONF 251 -#define GSN_EXEC_SRREQ 252 -#define GSN_EXPANDCHECK2 253 -#define GSN_FAIL_REP 254 -#define GSN_FSCLOSECONF 255 -#define GSN_FSCLOSEREF 256 -#define GSN_FSCLOSEREQ 257 -#define GSN_FSAPPENDCONF 258 -#define GSN_FSOPENCONF 259 -#define GSN_FSOPENREF 260 -#define GSN_FSOPENREQ 261 -#define GSN_FSREADCONF 262 -#define GSN_FSREADREF 263 -#define GSN_FSREADREQ 264 -#define GSN_FSSYNCCONF 265 -#define GSN_FSSYNCREF 266 -#define GSN_FSSYNCREQ 267 -#define GSN_FSAPPENDREQ 268 -#define GSN_FSAPPENDREF 269 -#define GSN_FSWRITECONF 270 -#define GSN_FSWRITEREF 271 -#define GSN_FSWRITEREQ 272 -#define GSN_GCP_ABORT 273 -#define GSN_GCP_ABORTED 274 -#define GSN_GCP_COMMIT 275 -#define GSN_GCP_NODEFINISH 276 -#define GSN_GCP_NOMORETRANS 277 -#define GSN_GCP_PREPARE 278 -#define GSN_GCP_PREPARECONF 279 -#define GSN_GCP_PREPAREREF 280 -#define GSN_GCP_SAVECONF 281 -#define GSN_GCP_SAVEREF 282 -#define GSN_GCP_SAVEREQ 283 -#define GSN_GCP_TCFINISHED 284 -#define GSN_SR_FRAGIDCONF 285 -#define GSN_SR_FRAGIDREF 286 -#define GSN_SR_FRAGIDREQ 287 -#define GSN_GETGCICONF 288 -#define GSN_GETGCIREQ 289 -#define GSN_HOT_SPAREREP 290 -#define GSN_INCL_NODECONF 291 -#define GSN_INCL_NODEREF 292 -#define GSN_INCL_NODEREQ 293 -#define GSN_LCP_FRAGIDCONF 294 -#define GSN_LCP_FRAGIDREF 295 -#define GSN_LCP_FRAGIDREQ 296 -#define GSN_LCP_HOLDOPCONF 297 -#define GSN_LCP_HOLDOPREF 298 -#define GSN_LCP_HOLDOPREQ 299 -#define GSN_SHRINKCHECK2 301 -#define GSN_GET_SCHEMA_INFOREQ 302 -/* 303 not unused */ -/* 304 not unused */ -#define GSN_LQH_RESTART_OP 305 -#define GSN_LQH_TRANSCONF 306 -#define GSN_LQH_TRANSREQ 307 -#define GSN_LQHADDATTCONF 308 -#define GSN_LQHADDATTREF 309 -#define GSN_LQHADDATTREQ 310 -#define GSN_LQHFRAGCONF 311 -#define GSN_LQHFRAGREF 312 -#define GSN_LQHFRAGREQ 313 -#define GSN_LQHKEYCONF 314 -#define GSN_LQHKEYREF 315 -#define GSN_LQHKEYREQ 316 - -#define GSN_MASTER_LCPCONF 318 -#define GSN_MASTER_LCPREF 319 -#define GSN_MASTER_LCPREQ 320 - -#define GSN_MEMCHECKCONF 321 -#define GSN_MEMCHECKREQ 322 -#define GSN_NDB_FAILCONF 323 -#define GSN_NDB_STARTCONF 324 -#define GSN_NDB_STARTREF 325 -#define GSN_NDB_STARTREQ 326 -#define GSN_NDB_STTOR 327 -#define GSN_NDB_STTORRY 328 -#define GSN_NDB_TAMPER 329 -#define GSN_NEXT_SCANCONF 330 -#define GSN_NEXT_SCANREF 331 -#define GSN_NEXT_SCANREQ 332 -#define GSN_NEXTOPERATION 333 - -#define GSN_READ_CONFIG_REQ 334 /* new name for sizealt, local */ -#define GSN_READ_CONFIG_CONF 335 /* new name for sizealt, local */ - -/* 336 unused */ -/* 337 unused */ -/* 338 unused */ -#define GSN_OPEN_COMCONF 339 -#define GSN_OPEN_COMREF 340 -#define GSN_OPEN_COMREQ 341 -#define GSN_PACKED_SIGNAL 342 -#define GSN_PREP_FAILCONF 343 -#define GSN_PREP_FAILREF 344 -#define GSN_PREP_FAILREQ 345 -#define GSN_PRES_TOCONF 346 -#define GSN_PRES_TOREQ 347 -#define GSN_READ_NODESCONF 348 -#define GSN_READ_NODESREF 349 -#define GSN_READ_NODESREQ 350 -#define GSN_SCAN_FRAGCONF 351 -#define GSN_SCAN_FRAGREF 352 -#define GSN_SCAN_FRAGREQ 353 -#define GSN_SCAN_HBREP 354 -#define GSN_SCAN_PROCCONF 355 -#define GSN_SCAN_PROCREQ 356 -#define GSN_SEND_PACKED 357 -#define GSN_SET_LOGLEVELORD 358 - -#define GSN_LQH_ALLOCREQ 359 -#define GSN_TUP_ALLOCREQ 360 -#define GSN_TUP_DEALLOCREQ 361 - -/* 362 not unused */ - -#define GSN_TUP_WRITELOG_REQ 363 -#define GSN_LQH_WRITELOG_REQ 364 - -#define GSN_LCP_FRAG_REP 300 -#define GSN_LCP_FRAG_ORD 365 -#define GSN_LCP_COMPLETE_REP 158 - -#define GSN_START_LCP_REQ 317 -#define GSN_START_LCP_CONF 366 - -#define GSN_UNBLO_DICTCONF 367 -#define GSN_UNBLO_DICTREQ 368 -#define GSN_START_COPYCONF 369 -#define GSN_START_COPYREF 370 -#define GSN_START_COPYREQ 371 -#define GSN_START_EXEC_SR 372 -#define GSN_START_FRAGCONF 373 -#define GSN_START_FRAGREF 374 -#define GSN_START_FRAGREQ 375 -#define GSN_START_LCP_REF 376 -#define GSN_START_LCP_ROUND 377 -#define GSN_START_MECONF 378 -#define GSN_START_MEREF 379 -#define GSN_START_MEREQ 380 -#define GSN_START_PERMCONF 381 -#define GSN_START_PERMREF 382 -#define GSN_START_PERMREQ 383 -#define GSN_START_RECCONF 384 -#define GSN_START_RECREF 385 -#define GSN_START_RECREQ 386 -#define GSN_START_TOCONF 387 -#define GSN_START_TOREQ 388 -#define GSN_STORED_PROCCONF 389 -#define GSN_STORED_PROCREF 390 -#define GSN_STORED_PROCREQ 391 -#define GSN_STTOR 392 -#define GSN_STTORRY 393 -#define GSN_BACKUP_TRIG_REQ 394 -#define GSN_SYSTEM_ERROR 395 -#define GSN_TAB_COMMITCONF 396 -#define GSN_TAB_COMMITREF 397 -#define GSN_TAB_COMMITREQ 398 -#define GSN_TAKE_OVERTCCONF 399 -#define GSN_TAKE_OVERTCREQ 400 -#define GSN_TC_CLOPSIZECONF 401 -#define GSN_TC_CLOPSIZEREQ 402 -#define GSN_TC_SCHVERCONF 403 -#define GSN_TC_SCHVERREQ 404 -#define GSN_TCGETOPSIZECONF 405 -#define GSN_TCGETOPSIZEREQ 406 -#define GSN_TEST_ORD 407 -#define GSN_TESTSIG 408 -#define GSN_TIME_SIGNAL 409 -/* 410 unused */ -/* 411 unused */ -/* 412 unused */ -#define GSN_TUP_ABORTREQ 414 -#define GSN_TUP_ADD_ATTCONF 415 -#define GSN_TUP_ADD_ATTRREF 416 -#define GSN_TUP_ADD_ATTRREQ 417 -#define GSN_TUP_ATTRINFO 418 -#define GSN_TUP_COMMITREQ 419 -/* 420 unused */ -#define GSN_TUP_LCPCONF 421 -#define GSN_TUP_LCPREF 422 -#define GSN_TUP_LCPREQ 423 -#define GSN_TUP_LCPSTARTED 424 -#define GSN_TUP_PREPLCPCONF 425 -#define GSN_TUP_PREPLCPREF 426 -#define GSN_TUP_PREPLCPREQ 427 -#define GSN_TUP_SRCONF 428 -#define GSN_TUP_SRREF 429 -#define GSN_TUP_SRREQ 430 -#define GSN_TUPFRAGCONF 431 -#define GSN_TUPFRAGREF 432 -#define GSN_TUPFRAGREQ 433 -#define GSN_TUPKEYCONF 434 -#define GSN_TUPKEYREF 435 -#define GSN_TUPKEYREQ 436 -#define GSN_TUPRELEASECONF 437 -#define GSN_TUPRELEASEREF 438 -#define GSN_TUPRELEASEREQ 439 -#define GSN_TUPSEIZECONF 440 -#define GSN_TUPSEIZEREF 441 -#define GSN_TUPSEIZEREQ 442 - -#define GSN_ABORT_ALL_REQ 445 -#define GSN_ABORT_ALL_REF 446 -#define GSN_ABORT_ALL_CONF 447 - -#define GSN_STATISTICS_REQ 448 -#define GSN_STOP_ORD 449 -#define GSN_TAMPER_ORD 450 -#define GSN_SET_VAR_REQ 451 -#define GSN_SET_VAR_CONF 452 -#define GSN_SET_VAR_REF 453 -#define GSN_STATISTICS_CONF 454 - -#define GSN_START_ORD 455 -/* 456 unused */ -/* 457 unused */ - -#define GSN_EVENT_SUBSCRIBE_REQ 458 -#define GSN_EVENT_SUBSCRIBE_CONF 459 -#define GSN_EVENT_SUBSCRIBE_REF 460 -#define GSN_ACC_COM_BLOCK 461 -#define GSN_ACC_COM_UNBLOCK 462 -#define GSN_TUP_COM_BLOCK 463 -#define GSN_TUP_COM_UNBLOCK 464 - -#define GSN_DUMP_STATE_ORD 465 - -#define GSN_START_INFOREQ 466 -#define GSN_START_INFOREF 467 -#define GSN_START_INFOCONF 468 - -#define GSN_TC_COMMIT_ACK 469 -#define GSN_REMOVE_MARKER_ORD 470 - -#define GSN_CHECKNODEGROUPSREQ 471 -#define GSN_CHECKNODEGROUPSCONF 472 - -/* 473 unused */ -#define GSN_ARBIT_PREPREQ 474 -#define GSN_ARBIT_PREPCONF 475 -#define GSN_ARBIT_PREPREF 476 -#define GSN_ARBIT_STARTREQ 477 -#define GSN_ARBIT_STARTCONF 478 -#define GSN_ARBIT_STARTREF 479 -#define GSN_ARBIT_CHOOSEREQ 480 -#define GSN_ARBIT_CHOOSECONF 481 -#define GSN_ARBIT_CHOOSEREF 482 -#define GSN_ARBIT_STOPORD 483 -#define GSN_ARBIT_STOPREP 484 - -#define GSN_BLOCK_COMMIT_ORD 485 -#define GSN_UNBLOCK_COMMIT_ORD 486 - -#define GSN_NODE_STATE_REP 487 -#define GSN_CHANGE_NODE_STATE_REQ 488 -#define GSN_CHANGE_NODE_STATE_CONF 489 - -#define GSN_DIH_SWITCH_REPLICA_REQ 490 -#define GSN_DIH_SWITCH_REPLICA_CONF 491 -#define GSN_DIH_SWITCH_REPLICA_REF 492 - -#define GSN_STOP_PERM_REQ 493 -#define GSN_STOP_PERM_REF 494 -#define GSN_STOP_PERM_CONF 495 - -#define GSN_STOP_ME_REQ 496 -#define GSN_STOP_ME_REF 497 -#define GSN_STOP_ME_CONF 498 - -#define GSN_WAIT_GCP_REQ 499 -#define GSN_WAIT_GCP_REF 500 -#define GSN_WAIT_GCP_CONF 501 - -/* 502 not used */ - -/** - * Trigger and index signals - */ - -/** - * These are used by API and kernel - */ -#define GSN_TRIG_ATTRINFO 503 -#define GSN_CREATE_TRIG_REQ 504 -#define GSN_CREATE_TRIG_CONF 505 -#define GSN_CREATE_TRIG_REF 506 -#define GSN_ALTER_TRIG_REQ 507 -#define GSN_ALTER_TRIG_CONF 508 -#define GSN_ALTER_TRIG_REF 509 -#define GSN_CREATE_INDX_REQ 510 -#define GSN_CREATE_INDX_CONF 511 -#define GSN_CREATE_INDX_REF 512 -#define GSN_DROP_TRIG_REQ 513 -#define GSN_DROP_TRIG_CONF 514 -#define GSN_DROP_TRIG_REF 515 -#define GSN_DROP_INDX_REQ 516 -#define GSN_DROP_INDX_CONF 517 -#define GSN_DROP_INDX_REF 518 -#define GSN_TCINDXREQ 519 -#define GSN_TCINDXCONF 520 -#define GSN_TCINDXREF 521 -#define GSN_INDXKEYINFO 522 -#define GSN_INDXATTRINFO 523 -#define GSN_TCINDXNEXTREQ 524 -#define GSN_TCINDXNEXTCONF 525 -#define GSN_TCINDXNEXREF 526 -#define GSN_FIRE_TRIG_ORD 527 - -/** - * These are used only by kernel - */ -#define GSN_BUILDINDXREQ 528 -#define GSN_BUILDINDXCONF 529 -#define GSN_BUILDINDXREF 530 - -/** - * Backup interface - */ -#define GSN_BACKUP_REQ 531 -#define GSN_BACKUP_DATA 532 -#define GSN_BACKUP_REF 533 -#define GSN_BACKUP_CONF 534 - -#define GSN_ABORT_BACKUP_ORD 535 - -#define GSN_BACKUP_ABORT_REP 536 -#define GSN_BACKUP_COMPLETE_REP 537 -#define GSN_BACKUP_NF_COMPLETE_REP 538 - -/** - * Internal backup signals - */ -#define GSN_DEFINE_BACKUP_REQ 539 -#define GSN_DEFINE_BACKUP_REF 540 -#define GSN_DEFINE_BACKUP_CONF 541 - -#define GSN_START_BACKUP_REQ 542 -#define GSN_START_BACKUP_REF 543 -#define GSN_START_BACKUP_CONF 544 - -#define GSN_BACKUP_FRAGMENT_REQ 545 -#define GSN_BACKUP_FRAGMENT_REF 546 -#define GSN_BACKUP_FRAGMENT_CONF 547 - -#define GSN_STOP_BACKUP_REQ 548 -#define GSN_STOP_BACKUP_REF 549 -#define GSN_STOP_BACKUP_CONF 550 - -/** - * Used for master take-over / API status request - */ -#define GSN_BACKUP_STATUS_REQ 551 -#define GSN_BACKUP_STATUS_REF 116 -#define GSN_BACKUP_STATUS_CONF 165 - -/** - * Db sequence signals - */ -#define GSN_UTIL_SEQUENCE_REQ 552 -#define GSN_UTIL_SEQUENCE_REF 553 -#define GSN_UTIL_SEQUENCE_CONF 554 - -#define GSN_FSREMOVEREQ 555 -#define GSN_FSREMOVEREF 556 -#define GSN_FSREMOVECONF 557 - -#define GSN_UTIL_PREPARE_REQ 558 -#define GSN_UTIL_PREPARE_CONF 559 -#define GSN_UTIL_PREPARE_REF 560 - -#define GSN_UTIL_EXECUTE_REQ 561 -#define GSN_UTIL_EXECUTE_CONF 562 -#define GSN_UTIL_EXECUTE_REF 563 - -#define GSN_UTIL_RELEASE_REQ 564 -#define GSN_UTIL_RELEASE_CONF 565 -#define GSN_UTIL_RELEASE_REF 566 - -/** - * When dropping a long signal due to lack of memory resources - */ -#define GSN_SIGNAL_DROPPED_REP 567 -#define GSN_CONTINUE_FRAGMENTED 568 - -/** - * Suma participant interface - */ -#define GSN_SUB_REMOVE_REQ 569 -#define GSN_SUB_REMOVE_REF 570 -#define GSN_SUB_REMOVE_CONF 571 -#define GSN_SUB_STOP_REQ 572 -#define GSN_SUB_STOP_REF 573 -#define GSN_SUB_STOP_CONF 574 -/* 575 unused */ -#define GSN_SUB_CREATE_REQ 576 -#define GSN_SUB_CREATE_REF 577 -#define GSN_SUB_CREATE_CONF 578 -#define GSN_SUB_START_REQ 579 -#define GSN_SUB_START_REF 580 -#define GSN_SUB_START_CONF 581 -#define GSN_SUB_SYNC_REQ 582 -#define GSN_SUB_SYNC_REF 583 -#define GSN_SUB_SYNC_CONF 584 -#define GSN_SUB_META_DATA 585 -#define GSN_SUB_TABLE_DATA 586 - -#define GSN_CREATE_TABLE_REQ 587 -#define GSN_CREATE_TABLE_REF 588 -#define GSN_CREATE_TABLE_CONF 589 - -#define GSN_ALTER_TABLE_REQ 624 -#define GSN_ALTER_TABLE_REF 625 -#define GSN_ALTER_TABLE_CONF 626 - -#define GSN_SUB_SYNC_CONTINUE_REQ 590 -#define GSN_SUB_SYNC_CONTINUE_REF 591 -#define GSN_SUB_SYNC_CONTINUE_CONF 592 -#define GSN_SUB_GCP_COMPLETE_REP 593 - -#define GSN_CREATE_FRAGMENTATION_REQ 594 -#define GSN_CREATE_FRAGMENTATION_REF 595 -#define GSN_CREATE_FRAGMENTATION_CONF 596 - -#define GSN_CREATE_TAB_REQ 597 -#define GSN_CREATE_TAB_REF 598 -#define GSN_CREATE_TAB_CONF 599 - -#define GSN_ALTER_TAB_REQ 600 -#define GSN_ALTER_TAB_REF 601 -#define GSN_ALTER_TAB_CONF 602 - -#define GSN_ALTER_INDX_REQ 603 -#define GSN_ALTER_INDX_REF 604 -#define GSN_ALTER_INDX_CONF 605 - -/** - * Grep signals - */ -#define GSN_GREP_SUB_CREATE_REQ 606 -#define GSN_GREP_SUB_CREATE_REF 607 -#define GSN_GREP_SUB_CREATE_CONF 608 -#define GSN_GREP_CREATE_REQ 609 -#define GSN_GREP_CREATE_REF 610 -#define GSN_GREP_CREATE_CONF 611 - -#define GSN_GREP_SUB_START_REQ 612 -#define GSN_GREP_SUB_START_REF 613 -#define GSN_GREP_SUB_START_CONF 614 -#define GSN_GREP_START_REQ 615 -#define GSN_GREP_START_REF 616 -#define GSN_GREP_START_CONF 617 - -#define GSN_GREP_SUB_SYNC_REQ 618 -#define GSN_GREP_SUB_SYNC_REF 619 -#define GSN_GREP_SUB_SYNC_CONF 620 -#define GSN_GREP_SYNC_REQ 621 -#define GSN_GREP_SYNC_REF 622 -#define GSN_GREP_SYNC_CONF 623 - -/** - * REP signals - */ -#define GSN_REP_WAITGCP_REQ 627 -#define GSN_REP_WAITGCP_REF 628 -#define GSN_REP_WAITGCP_CONF 629 -#define GSN_GREP_WAITGCP_REQ 630 -#define GSN_GREP_WAITGCP_REF 631 -#define GSN_GREP_WAITGCP_CONF 632 -#define GSN_REP_GET_GCI_REQ 633 -#define GSN_REP_GET_GCI_REF 634 -#define GSN_REP_GET_GCI_CONF 635 -#define GSN_REP_GET_GCIBUFFER_REQ 636 -#define GSN_REP_GET_GCIBUFFER_REF 637 -#define GSN_REP_GET_GCIBUFFER_CONF 638 -#define GSN_REP_INSERT_GCIBUFFER_REQ 639 -#define GSN_REP_INSERT_GCIBUFFER_REF 640 -#define GSN_REP_INSERT_GCIBUFFER_CONF 641 -#define GSN_REP_CLEAR_PS_GCIBUFFER_REQ 642 -#define GSN_REP_CLEAR_PS_GCIBUFFER_REF 643 -#define GSN_REP_CLEAR_PS_GCIBUFFER_CONF 644 -#define GSN_REP_CLEAR_SS_GCIBUFFER_REQ 645 -#define GSN_REP_CLEAR_SS_GCIBUFFER_REF 646 -#define GSN_REP_CLEAR_SS_GCIBUFFER_CONF 647 -#define GSN_REP_DATA_PAGE 648 -#define GSN_REP_GCIBUFFER_ACC_REP 649 - -#define GSN_GREP_SUB_REMOVE_REQ 650 -#define GSN_GREP_SUB_REMOVE_REF 651 -#define GSN_GREP_SUB_REMOVE_CONF 652 -#define GSN_GREP_REMOVE_REQ 653 -#define GSN_GREP_REMOVE_REF 654 -#define GSN_GREP_REMOVE_CONF 655 - -/* Start Global Replication */ -#define GSN_GREP_REQ 656 - -/** - * Management server - */ -#define GSN_MGM_LOCK_CONFIG_REQ 657 -#define GSN_MGM_LOCK_CONFIG_REP 658 -#define GSN_MGM_UNLOCK_CONFIG_REQ 659 -#define GSN_MGM_UNLOCK_CONFIG_REP 660 - -#define GSN_UTIL_CREATE_LOCK_REQ 132 -#define GSN_UTIL_CREATE_LOCK_REF 133 -#define GSN_UTIL_CREATE_LOCK_CONF 188 - -#define GSN_UTIL_DESTROY_LOCK_REQ 189 -#define GSN_UTIL_DESTROY_LOCK_REF 220 -#define GSN_UTIL_DESTROY_LOCK_CONF 221 - -#define GSN_UTIL_LOCK_REQ 222 -#define GSN_UTIL_LOCK_REF 230 -#define GSN_UTIL_LOCK_CONF 231 - -#define GSN_UTIL_UNLOCK_REQ 303 -#define GSN_UTIL_UNLOCK_REF 304 -#define GSN_UTIL_UNLOCK_CONF 362 - -/* SUMA */ -#define GSN_CREATE_SUBID_REQ 661 -#define GSN_CREATE_SUBID_REF 662 -#define GSN_CREATE_SUBID_CONF 663 - -/* GREP */ -#define GSN_GREP_CREATE_SUBID_REQ 664 -#define GSN_GREP_CREATE_SUBID_REF 665 -#define GSN_GREP_CREATE_SUBID_CONF 666 -#define GSN_REP_DROP_TABLE_REQ 667 -#define GSN_REP_DROP_TABLE_REF 668 -#define GSN_REP_DROP_TABLE_CONF 669 - -/* - * TUX - */ -#define GSN_TUXFRAGREQ 670 -#define GSN_TUXFRAGCONF 671 -#define GSN_TUXFRAGREF 672 -#define GSN_TUX_ADD_ATTRREQ 673 -#define GSN_TUX_ADD_ATTRCONF 674 -#define GSN_TUX_ADD_ATTRREF 675 - -/* - * REP - */ -#define GSN_REP_DISCONNECT_REP 676 - -#define GSN_TUX_MAINT_REQ 677 -#define GSN_TUX_MAINT_CONF 678 -#define GSN_TUX_MAINT_REF 679 - -/* not used 680 */ -/* not used 681 */ - -/** - * from mgmtsrvr to NDBCNTR - */ -#define GSN_RESUME_REQ 682 -#define GSN_STOP_REQ 443 -#define GSN_STOP_REF 444 -#define GSN_API_VERSION_REQ 697 -#define GSN_API_VERSION_CONF 698 - -/* not used 686 */ -/* not used 687 */ -/* not used 689 */ -/* not used 690 */ - -/** - * SUMA restart protocol - */ -#define GSN_SUMA_START_ME 691 -#define GSN_SUMA_HANDOVER_REQ 692 -#define GSN_SUMA_HANDOVER_CONF 693 - -/* not used 694 */ -/* not used 695 */ -/* not used 696 */ - -/** - * GREP restart protocol - */ -#define GSN_GREP_START_ME 706 -#define GSN_GREP_ADD_SUB_REQ 707 -#define GSN_GREP_ADD_SUB_REF 708 -#define GSN_GREP_ADD_SUB_CONF 709 - - -/* - * EVENT Signals - */ -#define GSN_SUB_GCP_COMPLETE_ACC 699 - -#define GSN_CREATE_EVNT_REQ 700 -#define GSN_CREATE_EVNT_CONF 701 -#define GSN_CREATE_EVNT_REF 702 - -#define GSN_DROP_EVNT_REQ 703 -#define GSN_DROP_EVNT_CONF 704 -#define GSN_DROP_EVNT_REF 705 - -#define GSN_TUX_BOUND_INFO 710 - -#define GSN_ACC_LOCKREQ 711 -#define GSN_READ_PSUEDO_REQ 712 - -#endif diff --git a/ndb/include/kernel/GrepEvent.hpp b/ndb/include/kernel/GrepEvent.hpp deleted file mode 100644 index 2073a7072c9..00000000000 --- a/ndb/include/kernel/GrepEvent.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* 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 GREP_EVENT_H -#define GREP_EVENT_H - -class GrepEvent { -public: - enum Subscription { - GrepSS_CreateSubIdConf = 1, - GrepSS_SubCreateConf = 2, - GrepSS_SubStartMetaConf = 3, - GrepSS_SubStartDataConf = 4, - GrepSS_SubSyncDataConf = 5, - GrepSS_SubSyncMetaConf = 6, - GrepSS_SubRemoveConf = 7, - - GrepPS_CreateSubIdConf = 8, - GrepPS_SubCreateConf = 9, - GrepPS_SubStartMetaConf = 10, - GrepPS_SubStartDataConf = 11, - GrepPS_SubSyncMetaConf = 12, - GrepPS_SubSyncDataConf = 13, - GrepPS_SubRemoveConf = 14, - - GrepPS_CreateSubIdRef = 15, - GrepPS_SubCreateRef = 16, - GrepPS_SubStartMetaRef = 17, - GrepPS_SubStartDataRef = 18, - GrepPS_SubSyncMetaRef = 19, - GrepPS_SubSyncDataRef = 20, - GrepPS_SubRemoveRef = 21, - - GrepSS_CreateSubIdRef = 22, - GrepSS_SubCreateRef = 23, - GrepSS_SubStartMetaRef = 24, - GrepSS_SubStartDataRef = 25, - GrepSS_SubSyncMetaRef = 26, - GrepSS_SubSyncDataRef = 27, - GrepSS_SubRemoveRef = 28, - - Rep_Disconnect = 29 - - }; -}; -#endif diff --git a/ndb/include/kernel/Interpreter.hpp b/ndb/include/kernel/Interpreter.hpp deleted file mode 100644 index 69c952ea7c3..00000000000 --- a/ndb/include/kernel/Interpreter.hpp +++ /dev/null @@ -1,284 +0,0 @@ -/* 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 NDB_INTERPRETER_HPP -#define NDB_INTERPRETER_HPP - -#include <ndb_types.h> - -class Interpreter { -public: - - inline static Uint32 mod4(Uint32 len){ - return len + ((4 - (len & 3)) & 3); - } - - - /** - * General Mnemonic format - * - * i = Instruction - 5 Bits ( 0 - 5 ) max 63 - * x = Register 1 - 3 Bits ( 6 - 8 ) max 7 - * y = Register 2 - 3 Bits ( 9 -11 ) max 7 - * b = Branch offset (only branches) - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * iiiiiixxxyyy bbbbbbbbbbbbbbbb - * - * - */ - - /** - * Instructions - */ - STATIC_CONST( READ_ATTR_INTO_REG = 1 ); - STATIC_CONST( WRITE_ATTR_FROM_REG = 2 ); - STATIC_CONST( LOAD_CONST_NULL = 3 ); - STATIC_CONST( LOAD_CONST16 = 4 ); - STATIC_CONST( LOAD_CONST32 = 5 ); - STATIC_CONST( LOAD_CONST64 = 6 ); - STATIC_CONST( ADD_REG_REG = 7 ); - STATIC_CONST( SUB_REG_REG = 8 ); - STATIC_CONST( BRANCH = 9 ); - STATIC_CONST( BRANCH_REG_EQ_NULL = 10 ); - STATIC_CONST( BRANCH_REG_NE_NULL = 11 ); - STATIC_CONST( BRANCH_EQ_REG_REG = 12 ); - STATIC_CONST( BRANCH_NE_REG_REG = 13 ); - STATIC_CONST( BRANCH_LT_REG_REG = 14 ); - STATIC_CONST( BRANCH_LE_REG_REG = 15 ); - STATIC_CONST( BRANCH_GT_REG_REG = 16 ); - STATIC_CONST( BRANCH_GE_REG_REG = 17 ); - STATIC_CONST( EXIT_OK = 18 ); - STATIC_CONST( EXIT_REFUSE = 19 ); - STATIC_CONST( CALL = 20 ); - STATIC_CONST( RETURN = 21 ); - STATIC_CONST( EXIT_OK_LAST = 22 ); - STATIC_CONST( BRANCH_ATTR_OP_ARG = 23 ); - STATIC_CONST( BRANCH_ATTR_EQ_NULL = 24 ); - STATIC_CONST( BRANCH_ATTR_NE_NULL = 25 ); - - /** - * Macros for creating code - */ - static Uint32 Read(Uint32 AttrId, Uint32 Register); - static Uint32 Write(Uint32 AttrId, Uint32 Register); - - static Uint32 LoadNull(Uint32 Register); - static Uint32 LoadConst16(Uint32 Register, Uint32 Value); - static Uint32 LoadConst32(Uint32 Register); // Value in next word - static Uint32 LoadConst64(Uint32 Register); // Value in next 2 words - static Uint32 Add(Uint32 DstReg, Uint32 SrcReg1, Uint32 SrcReg2); - static Uint32 Sub(Uint32 DstReg, Uint32 SrcReg1, Uint32 SrcReg2); - static Uint32 Branch(Uint32 Inst, Uint32 Reg1, Uint32 Reg2); - static Uint32 ExitOK(); - - /** - * Branch string - * - * i = Instruction - 5 Bits ( 0 - 5 ) max 63 - * a = Attribute id - * l = Length of string - * b = Branch offset - * t = branch type - * d = Array length diff - * v = Varchar flag - * p = No-blank-padding flag for char compare - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * iiiiii ddvtttpbbbbbbbbbbbbbbbb - * aaaaaaaaaaaaaaaallllllllllllllll - * -string.... - - */ - enum UnaryCondition { - IS_NULL = 0, - IS_NOT_NULL = 1 - }; - - enum BinaryCondition { - EQ = 0, - NE = 1, - LT = 2, - LE = 3, - GT = 4, - GE = 5, - LIKE = 6, - NOT_LIKE = 7 - }; - static Uint32 BranchCol(BinaryCondition cond, - Uint32 arrayLengthDiff, Uint32 varchar, bool nopad); - static Uint32 BranchCol_2(Uint32 AttrId); - static Uint32 BranchCol_2(Uint32 AttrId, Uint32 Len); - - static Uint32 getBinaryCondition(Uint32 op1); - static Uint32 getArrayLengthDiff(Uint32 op1); - static Uint32 isVarchar(Uint32 op1); - static Uint32 isNopad(Uint32 op1); - static Uint32 getBranchCol_AttrId(Uint32 op2); - static Uint32 getBranchCol_Len(Uint32 op2); - - /** - * Macros for decoding code - */ - static Uint32 getOpCode(Uint32 op); - static Uint32 getReg1(Uint32 op); - static Uint32 getReg2(Uint32 op); - static Uint32 getReg3(Uint32 op); -}; - -inline -Uint32 -Interpreter::Read(Uint32 AttrId, Uint32 Register){ - return (AttrId << 16) + (Register << 6) + READ_ATTR_INTO_REG; -} - -inline -Uint32 -Interpreter::Write(Uint32 AttrId, Uint32 Register){ - return (AttrId << 16) + (Register << 6) + WRITE_ATTR_FROM_REG; -} - -inline -Uint32 -Interpreter::LoadConst16(Uint32 Register, Uint32 Value){ - return (Value << 16) + (Register << 6) + LOAD_CONST16; -} - -inline -Uint32 -Interpreter::LoadConst32(Uint32 Register){ - return (Register << 6) + LOAD_CONST32; -} - -inline -Uint32 -Interpreter::LoadConst64(Uint32 Register){ - return (Register << 6) + LOAD_CONST64; -} - -inline -Uint32 -Interpreter::Add(Uint32 Dcoleg, Uint32 SrcReg1, Uint32 SrcReg2){ - return (SrcReg1 << 6) + (SrcReg2 << 9) + (Dcoleg << 16) + ADD_REG_REG; -} - -inline -Uint32 -Interpreter::Sub(Uint32 Dcoleg, Uint32 SrcReg1, Uint32 SrcReg2){ - return (SrcReg1 << 6) + (SrcReg2 << 9) + (Dcoleg << 16) + SUB_REG_REG; -} - -inline -Uint32 -Interpreter::Branch(Uint32 Inst, Uint32 Reg1, Uint32 Reg2){ - return (Reg1 << 9) + (Reg2 << 6) + Inst; -} - -inline -Uint32 -Interpreter::BranchCol(BinaryCondition cond, - Uint32 arrayLengthDiff, - Uint32 varchar, bool nopad){ - //ndbout_c("BranchCol: cond=%d diff=%u varchar=%u nopad=%d", - //cond, arrayLengthDiff, varchar, nopad); - return - BRANCH_ATTR_OP_ARG + - (arrayLengthDiff << 9) + - (varchar << 11) + - (cond << 12) + - (nopad << 15); -} - -inline -Uint32 -Interpreter::BranchCol_2(Uint32 AttrId, Uint32 Len){ - return (AttrId << 16) + Len; -} - -inline -Uint32 -Interpreter::BranchCol_2(Uint32 AttrId){ - return (AttrId << 16); -} - -inline -Uint32 -Interpreter::getBinaryCondition(Uint32 op){ - return (op >> 12) & 0x7; -} - -inline -Uint32 -Interpreter::getArrayLengthDiff(Uint32 op){ - return (op >> 9) & 0x3; -} - -inline -Uint32 -Interpreter::isVarchar(Uint32 op){ - return (op >> 11) & 1; -} - -inline -Uint32 -Interpreter::isNopad(Uint32 op){ - return (op >> 15) & 1; -} - -inline -Uint32 -Interpreter::getBranchCol_AttrId(Uint32 op){ - return (op >> 16) & 0xFFFF; -} - -inline -Uint32 -Interpreter::getBranchCol_Len(Uint32 op){ - return op & 0xFFFF; -} - -inline -Uint32 -Interpreter::ExitOK(){ - return EXIT_OK; -} - -inline -Uint32 -Interpreter::getOpCode(Uint32 op){ - return op & 0x3f; -} - -inline -Uint32 -Interpreter::getReg1(Uint32 op){ - return (op >> 6) & 0x7; -} - -inline -Uint32 -Interpreter::getReg2(Uint32 op){ - return (op >> 9) & 0x7; -} - -inline -Uint32 -Interpreter::getReg3(Uint32 op){ - return (op >> 16) & 0x7; -} - -#endif diff --git a/ndb/include/kernel/LogLevel.hpp b/ndb/include/kernel/LogLevel.hpp deleted file mode 100644 index 60dcd36ab56..00000000000 --- a/ndb/include/kernel/LogLevel.hpp +++ /dev/null @@ -1,163 +0,0 @@ -/* 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 _LOG_LEVEL_HPP -#define _LOG_LEVEL_HPP - -#include <ndb_global.h> -#include <mgmapi_config_parameters.h> - -/** - * - */ -class LogLevel { - friend class Config; -public: - /** - * Constructor - */ - LogLevel(); - - /** - * Howto add a new event category: - * 1. Add the new event category to EventCategory below - * 2. Update #define _LOGLEVEL_CATEGORIES (found below) with the number of - * items in EventCategory - * 3. Update LogLevelCategoryName in LogLevel.cpp - * 4. Add the event in EventLogger - */ - - - /** - * Copy operator - */ - LogLevel & operator= (const LogLevel &); - - enum EventCategory { - llInvalid = -1, - llStartUp = CFG_LOGLEVEL_STARTUP - CFG_MIN_LOGLEVEL, - llShutdown = CFG_LOGLEVEL_SHUTDOWN - CFG_MIN_LOGLEVEL, - llStatistic = CFG_LOGLEVEL_STATISTICS - CFG_MIN_LOGLEVEL, - llCheckpoint = CFG_LOGLEVEL_CHECKPOINT - CFG_MIN_LOGLEVEL, - llNodeRestart = CFG_LOGLEVEL_NODERESTART - CFG_MIN_LOGLEVEL, - llConnection = CFG_LOGLEVEL_CONNECTION - CFG_MIN_LOGLEVEL, - llInfo = CFG_LOGLEVEL_INFO - CFG_MIN_LOGLEVEL, - llWarning = CFG_LOGLEVEL_WARNING - CFG_MIN_LOGLEVEL, - llError = CFG_LOGLEVEL_ERROR - CFG_MIN_LOGLEVEL, - llCongestion = CFG_LOGLEVEL_CONGESTION - CFG_MIN_LOGLEVEL, - llDebug = CFG_LOGLEVEL_DEBUG - CFG_MIN_LOGLEVEL - ,llBackup = CFG_LOGLEVEL_BACKUP - CFG_MIN_LOGLEVEL - }; - - /** - * No of categories - */ -#define _LOGLEVEL_CATEGORIES (CFG_MAX_LOGLEVEL - CFG_MIN_LOGLEVEL + 1) - STATIC_CONST( LOGLEVEL_CATEGORIES = _LOGLEVEL_CATEGORIES ); - - void clear(); - - /** - * Note level is valid as 0-15 - */ - int setLogLevel(EventCategory ec, Uint32 level = 7); - - /** - * Get the loglevel (0-15) for a category - */ - Uint32 getLogLevel(EventCategory ec) const; - - /** - * Set this= max(this, ll) per category - */ - LogLevel& set_max(const LogLevel& ll); - - bool operator==(const LogLevel& l) const { - return memcmp(this, &l, sizeof(* this)) == 0; - } - - LogLevel& operator=(const struct EventSubscribeReq & req); - -private: - /** - * The actual data - */ - Uint8 logLevelData[LOGLEVEL_CATEGORIES]; -}; - -inline -LogLevel::LogLevel(){ - clear(); -} - -inline -LogLevel & -LogLevel::operator= (const LogLevel & org){ - memcpy(logLevelData, org.logLevelData, sizeof(logLevelData)); - return * this; -} - -inline -void -LogLevel::clear(){ - for(Uint32 i = 0; i<LOGLEVEL_CATEGORIES; i++){ - logLevelData[i] = 0; - } -} - -inline -int -LogLevel::setLogLevel(EventCategory ec, Uint32 level){ - if (ec >= 0 && (Uint32) ec < LOGLEVEL_CATEGORIES) - { - logLevelData[ec] = (Uint8)level; - return 0; - } - return 1; -} - -inline -Uint32 -LogLevel::getLogLevel(EventCategory ec) const{ - assert(ec >= 0 && (Uint32) ec < LOGLEVEL_CATEGORIES); - - return (Uint32)logLevelData[ec]; -} - -inline -LogLevel & -LogLevel::set_max(const LogLevel & org){ - for(Uint32 i = 0; i<LOGLEVEL_CATEGORIES; i++){ - if(logLevelData[i] < org.logLevelData[i]) - logLevelData[i] = org.logLevelData[i]; - } - return * this; -} - -#include "signaldata/EventSubscribeReq.hpp" - -inline -LogLevel& -LogLevel::operator=(const EventSubscribeReq& req) -{ - clear(); - for(size_t i = 0; i<req.noOfEntries; i++){ - logLevelData[(req.theData[i] >> 16)] = req.theData[i] & 0xFFFF; - } - return * this; -} - -#endif diff --git a/ndb/include/kernel/NodeBitmask.hpp b/ndb/include/kernel/NodeBitmask.hpp deleted file mode 100644 index 423c01cd841..00000000000 --- a/ndb/include/kernel/NodeBitmask.hpp +++ /dev/null @@ -1,89 +0,0 @@ -/* 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 NODE_BITMASK_HPP -#define NODE_BITMASK_HPP - -#include <ndb_limits.h> -#include <kernel_types.h> -#include <Bitmask.hpp> - -/** - * No of 32 bits words needed to store a node bitmask - * containing all the nodes in the system - * Both NDB nodes and API, MGM... nodes - * - * Note that this is used in a lot of signals - */ -#define _NODE_BITMASK_SIZE 2 - -/** - * No of 32 bits words needed to store a node bitmask - * containing all the ndb nodes in the system - * - * Note that this is used in a lot of signals - */ -#define _NDB_NODE_BITMASK_SIZE 2 - -/** - * No of 32 bits word needed to store B bits for N nodes - */ -#define NODE_ARRAY_SIZE(N, B) (((N)*(B)+31) >> 5) - -typedef Bitmask<(unsigned int)_NODE_BITMASK_SIZE> NodeBitmask; - -typedef Bitmask<(unsigned int)_NDB_NODE_BITMASK_SIZE> NdbNodeBitmask; - -#define __NBM_SZ ((MAX_NODES >> 5) + ((MAX_NODES & 31) != 0)) -#define __NNBM_SZ ((MAX_NDB_NODES >> 5) + ((MAX_NDB_NODES & 31) != 0)) - -#if ( __NBM_SZ > _NODE_BITMASK_SIZE) -#error "MAX_NODES can not fit into NODE_BITMASK_SIZE" -#endif - -#if ( __NNBM_SZ > _NDB_NODE_BITMASK_SIZE) -#error "MAX_NDB_NODES can not fit into NDB_NODE_BITMASK_SIZE" -#endif - -/** - * General B Bits operations - * - * Get(x, A[], B) - * w = x >> S1 - * s = (x & S2) << S3 - * return (A[w] >> s) & S4 - * - * Set(x, A[], v, B) - * w = x >> S1 - * s = (x & S2) << S3 - * m = ~(S4 << s) - * t = A[w] & m; - * A[w] = t | ((v & S4) << s) - * - * B(Bits) S1 S2 S3 S4 - * 1 5 31 0 1 - * 2 4 15 1 3 - * 4 3 7 2 15 - * 8 2 3 3 255 - * 16 1 1 4 65535 - * - * S1 = 5 - 2log(B) - * S2 = 2^S1 - 1 - * S3 = 2log(B) - * S4 = 2^B - 1 - */ - -#endif diff --git a/ndb/include/kernel/NodeInfo.hpp b/ndb/include/kernel/NodeInfo.hpp deleted file mode 100644 index 5377f001949..00000000000 --- a/ndb/include/kernel/NodeInfo.hpp +++ /dev/null @@ -1,95 +0,0 @@ -/* 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 NODE_INFO_HPP -#define NODE_INFO_HPP - -#include <NdbOut.hpp> -#include <mgmapi_config_parameters.h> - -class NodeInfo { -public: - NodeInfo(); - - /** - * NodeType - */ - enum NodeType { - DB = NODE_TYPE_DB, ///< Database node - API = NODE_TYPE_API, ///< NDB API node - MGM = NODE_TYPE_MGM, ///< Management node (incl. NDB API) - REP = NODE_TYPE_REP, ///< Replication node (incl. NDB API) - INVALID = 255 ///< Invalid type - }; - NodeType getType() const; - - Uint32 m_version; ///< Node version - Uint32 m_signalVersion; ///< Signal version - Uint32 m_type; ///< Node type - Uint32 m_connectCount; ///< No of times connected - bool m_connected; ///< Node is connected - - friend NdbOut & operator<<(NdbOut&, const NodeInfo&); -}; - - -inline -NodeInfo::NodeInfo(){ - m_version = 0; - m_signalVersion = 0; - m_type = INVALID; - m_connectCount = 0; -} - -inline -NodeInfo::NodeType -NodeInfo::getType() const { - return (NodeType)m_type; -} - -inline -NdbOut & -operator<<(NdbOut& ndbout, const NodeInfo & info){ - ndbout << "[NodeInfo: "; - switch(info.m_type){ - case NodeInfo::DB: - ndbout << "DB"; - break; - case NodeInfo::API: - ndbout << "API"; - break; - case NodeInfo::MGM: - ndbout << "MGM"; - break; - case NodeInfo::REP: - ndbout << "REP"; - break; - case NodeInfo::INVALID: - ndbout << "INVALID"; - break; - default: - ndbout << "<Unknown: " << info.m_type << ">"; - break; - } - - ndbout << " version: " << info.m_version - << " sig. version; " << info.m_signalVersion - << " connect count: " << info.m_connectCount - << "]"; - return ndbout; -} - -#endif diff --git a/ndb/include/kernel/NodeState.hpp b/ndb/include/kernel/NodeState.hpp deleted file mode 100644 index 16784ecde79..00000000000 --- a/ndb/include/kernel/NodeState.hpp +++ /dev/null @@ -1,319 +0,0 @@ -/* 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 NODE_STATE_HPP -#define NODE_STATE_HPP - -#include <NdbOut.hpp> -#include <NodeBitmask.hpp> - -class NodeState { -public: - enum StartLevel { - /** - * SL_NOTHING - * Nothing is started - */ - SL_NOTHING = 0, - - /** - * SL_CMVMI - * CMVMI is started - * Listening to management server - * Qmgr knows nothing... - */ - SL_CMVMI = 1, - - /** - * SL_STARTING - * All blocks are starting - * Initial or restart - * During this phase is <b>startPhase</b> valid - */ - SL_STARTING = 2, - - /** - * The database is started open for connections - */ - SL_STARTED = 3, - - SL_SINGLEUSER = 4, - - /** - * SL_STOPPING_1 - Inform API - * API is informed not to start transactions on node - * The database is about to close - * - * New TcSeize(s) are refused (TcSeizeRef) - */ - SL_STOPPING_1 = 5, - - /** - * SL_STOPPING_2 - Close TC - * New transactions(TC) are refused - */ - SL_STOPPING_2 = 6, - - - - - /** - * SL_STOPPING_3 - Wait for reads in LQH - * No transactions are running in TC - * New scans(s) and read(s) are refused in LQH - * NS: The node is not Primary for any fragment - * NS: No node is allow to start - */ - SL_STOPPING_3 = 7, - - /** - * SL_STOPPING_4 - Close LQH - * Node is out of DIGETNODES - * Insert/Update/Delete can still be running in LQH - * GCP is refused - * Node is not startable w.o Node Recovery - */ - SL_STOPPING_4 = 8 - }; - - enum StartType { - ST_INITIAL_START = 0, - ST_SYSTEM_RESTART = 1, - ST_NODE_RESTART = 2, - ST_INITIAL_NODE_RESTART = 3, - ST_ILLEGAL_TYPE = 4 - }; - - /** - * Length in 32-bit words - */ - STATIC_CONST( DataLength = 8 + NdbNodeBitmask::Size ); - - /** - * Constructor(s) - */ - NodeState(); - NodeState(StartLevel); - NodeState(StartLevel, bool systemShutdown); - NodeState(StartLevel, Uint32 startPhase, StartType); - void init(); - - /** - * Current start level - */ - Uint32 startLevel; - - /** - * Node group - */ - Uint32 nodeGroup; // valid when startLevel == SL_STARTING - - /** - * Dynamic id - */ - union { - Uint32 dynamicId; // valid when startLevel == SL_STARTING to API - Uint32 masterNodeId; // When from cntr - }; - - /** - * - */ - union { - struct { - Uint32 startPhase; // valid when startLevel == SL_STARTING - Uint32 restartType; // valid when startLevel == SL_STARTING - } starting; - struct { - Uint32 systemShutdown; // valid when startLevel == SL_STOPPING_{X} - Uint32 timeout; - Uint32 alarmTime; - } stopping; - - - }; - Uint32 singleUserMode; - Uint32 singleUserApi; //the single user node - - BitmaskPOD<NdbNodeBitmask::Size> m_connected_nodes; - - void setDynamicId(Uint32 dynamic); - void setNodeGroup(Uint32 group); - void setSingleUser(Uint32 s); - void setSingleUserApi(Uint32 n); - - - /** - * Is a node restart in progress (ordinary or initial) - */ - bool getNodeRestartInProgress() const; - - /** - * Is a system restart ongoing - */ - bool getSystemRestartInProgress() const; - - /** - * Is in single user mode? - */ - bool getSingleUserMode() const; - - /** - * Is in single user mode - */ - Uint32 getSingleUserApi() const; - - friend NdbOut & operator<<(NdbOut&, const NodeState&); -}; - -inline -NodeState::NodeState(){ - init(); -} - -inline -void -NodeState::init(){ - startLevel = SL_CMVMI; - nodeGroup = 0xFFFFFFFF; - dynamicId = 0xFFFFFFFF; - singleUserMode = 0; - singleUserApi = 0xFFFFFFFF; - m_connected_nodes.clear(); -} - -inline -NodeState::NodeState(StartLevel sl){ - init(); - startLevel = sl; - singleUserMode = 0; - singleUserApi = 0xFFFFFFFF; -} - -inline -NodeState::NodeState(StartLevel sl, Uint32 sp, StartType typeOfStart){ - init(); - startLevel = sl; - starting.startPhase = sp; - starting.restartType = typeOfStart; - singleUserMode = 0; - singleUserApi = 0xFFFFFFFF; -} - -inline -NodeState::NodeState(StartLevel sl, bool sys){ - init(); - startLevel = sl; - stopping.systemShutdown = sys; - singleUserMode = 0; - singleUserApi = 0xFFFFFFFF; -} - -inline -void NodeState::setDynamicId(Uint32 dynamic){ - dynamicId = dynamic; -} - -inline -void NodeState::setNodeGroup(Uint32 group){ - nodeGroup = group; -} - -inline -void NodeState::setSingleUser(Uint32 s) { - singleUserMode = s; -} - -inline -void NodeState::setSingleUserApi(Uint32 n) { - singleUserApi = n; -} -inline -bool NodeState::getNodeRestartInProgress() const { - return startLevel == SL_STARTING && - (starting.restartType == ST_NODE_RESTART || - starting.restartType == ST_INITIAL_NODE_RESTART); -} - -inline -bool NodeState::getSingleUserMode() const { - return singleUserMode; -} - -inline -Uint32 NodeState::getSingleUserApi() const { - return singleUserApi; -} - -inline -bool NodeState::getSystemRestartInProgress() const { - return startLevel == SL_STARTING && starting.restartType == ST_SYSTEM_RESTART; -} - -inline -NdbOut & -operator<<(NdbOut& ndbout, const NodeState & state){ - ndbout << "[NodeState: startLevel: "; - switch(state.startLevel){ - case NodeState::SL_NOTHING: - ndbout << "<NOTHING> ]"; - break; - case NodeState::SL_CMVMI: - ndbout << "<CMVMI> ]"; - break; - case NodeState::SL_STARTING: - ndbout << "<STARTING type: "; - switch(state.starting.restartType){ - case NodeState::ST_INITIAL_START: - ndbout << " INITIAL START"; - break; - case NodeState::ST_SYSTEM_RESTART: - ndbout << " SYSTEM RESTART "; - break; - case NodeState::ST_NODE_RESTART: - ndbout << " NODE RESTART "; - break; - case NodeState::ST_INITIAL_NODE_RESTART: - ndbout << " INITIAL NODE RESTART "; - break; - case NodeState::ST_ILLEGAL_TYPE: - default: - ndbout << " UNKNOWN " << state.starting.restartType; - } - ndbout << " phase: " << state.starting.startPhase << "> ]"; - break; - case NodeState::SL_STARTED: - ndbout << "<STARTED> ]"; - break; - case NodeState::SL_STOPPING_1: - ndbout << "<STOPPING 1 sys: " << state.stopping.systemShutdown << "> ]"; - break; - case NodeState::SL_STOPPING_2: - ndbout << "<STOPPING 2 sys: " << state.stopping.systemShutdown << "> ]"; - break; - case NodeState::SL_STOPPING_3: - ndbout << "<STOPPING 3 sys: " << state.stopping.systemShutdown << "> ]"; - break; - case NodeState::SL_STOPPING_4: - ndbout << "<STOPPING 4 sys: " << state.stopping.systemShutdown << "> ]"; - break; - default: - ndbout << "<UNKNOWN " << state.startLevel << "> ]"; - } - return ndbout; -} - -#endif diff --git a/ndb/include/kernel/RefConvert.hpp b/ndb/include/kernel/RefConvert.hpp deleted file mode 100644 index 7604b1cf224..00000000000 --- a/ndb/include/kernel/RefConvert.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* 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 REFCONVERT_H -#define REFCONVERT_H - -#include "kernel_types.h" - -/** - * Convert BlockReference to BlockNumber - */ -inline -BlockNumber refToBlock(BlockReference ref){ - return (BlockNumber)(ref >> 16); -} - -/** - * Convert BlockReference to NodeId - */ -inline -NodeId refToNode(BlockReference ref){ - return (NodeId)(ref & 0xFFFF); -} - -/** - * Convert NodeId and BlockNumber to BlockReference - */ -inline -BlockReference numberToRef(BlockNumber bnr, NodeId proc){ - return (((Uint32)bnr) << 16) + proc; -} - -#endif - diff --git a/ndb/include/kernel/kernel_config_parameters.h b/ndb/include/kernel/kernel_config_parameters.h deleted file mode 100644 index bb7c6ebd42c..00000000000 --- a/ndb/include/kernel/kernel_config_parameters.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef DB_CONFIG_PARAMTERS_H -#define DB_CONFIG_PARAMTERS_H - -#define PRIVATE_BASE 14000 - -#define CFG_ACC_DIR_RANGE (PRIVATE_BASE + 1) -#define CFG_ACC_DIR_ARRAY (PRIVATE_BASE + 2) -#define CFG_ACC_FRAGMENT (PRIVATE_BASE + 3) -#define CFG_ACC_OP_RECS (PRIVATE_BASE + 4) -#define CFG_ACC_OVERFLOW_RECS (PRIVATE_BASE + 5) -#define CFG_ACC_PAGE8 (PRIVATE_BASE + 6) -#define CFG_ACC_ROOT_FRAG (PRIVATE_BASE + 7) -#define CFG_ACC_TABLE (PRIVATE_BASE + 8) -#define CFG_ACC_SCAN (PRIVATE_BASE + 9) - -#define CFG_DICT_ATTRIBUTE (PRIVATE_BASE + 10) -#define CFG_DICT_TABLE (PRIVATE_BASE + 13) - -#define CFG_DIH_API_CONNECT (PRIVATE_BASE + 15) -#define CFG_DIH_CONNECT (PRIVATE_BASE + 16) -#define CFG_DIH_FRAG_CONNECT (PRIVATE_BASE + 17) -#define CFG_DIH_MORE_NODES (PRIVATE_BASE + 18) -#define CFG_DIH_REPLICAS (PRIVATE_BASE + 19) -#define CFG_DIH_TABLE (PRIVATE_BASE + 20) - -#define CFG_LQH_FRAG (PRIVATE_BASE + 21) -#define CFG_LQH_TABLE (PRIVATE_BASE + 23) -#define CFG_LQH_TC_CONNECT (PRIVATE_BASE + 24) -#define CFG_LQH_LOG_FILES (PRIVATE_BASE + 26) -#define CFG_LQH_SCAN (PRIVATE_BASE + 27) - -#define CFG_TC_API_CONNECT (PRIVATE_BASE + 28) -#define CFG_TC_TC_CONNECT (PRIVATE_BASE + 29) -#define CFG_TC_TABLE (PRIVATE_BASE + 30) -#define CFG_TC_SCAN (PRIVATE_BASE + 31) -#define CFG_TC_LOCAL_SCAN (PRIVATE_BASE + 32) - -#define CFG_TUP_FRAG (PRIVATE_BASE + 33) -#define CFG_TUP_OP_RECS (PRIVATE_BASE + 34) -#define CFG_TUP_PAGE (PRIVATE_BASE + 35) -#define CFG_TUP_PAGE_RANGE (PRIVATE_BASE + 36) -#define CFG_TUP_TABLE (PRIVATE_BASE + 37) -#define CFG_TUP_TABLE_DESC (PRIVATE_BASE + 38) -#define CFG_TUP_STORED_PROC (PRIVATE_BASE + 39) - -#define CFG_TUX_INDEX (PRIVATE_BASE + 40) -#define CFG_TUX_FRAGMENT (PRIVATE_BASE + 41) -#define CFG_TUX_ATTRIBUTE (PRIVATE_BASE + 42) -#define CFG_TUX_SCAN_OP (PRIVATE_BASE + 43) - -#endif diff --git a/ndb/include/kernel/kernel_types.h b/ndb/include/kernel/kernel_types.h deleted file mode 100644 index b176d20798c..00000000000 --- a/ndb/include/kernel/kernel_types.h +++ /dev/null @@ -1,43 +0,0 @@ -/* 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 NDB_KERNEL_TYPES_H -#define NDB_KERNEL_TYPES_H - -#include <ndb_types.h> - -typedef Uint16 NodeId; -typedef Uint16 BlockNumber; -typedef Uint32 BlockReference; -typedef Uint16 GlobalSignalNumber; - -enum Operation_t { - ZREAD = 0 - ,ZUPDATE = 1 - ,ZINSERT = 2 - ,ZDELETE = 3 - ,ZWRITE = 4 - ,ZREAD_EX = 5 -#if 0 - ,ZREAD_CONSISTENT = 6 -#endif -}; - -#endif - - - - diff --git a/ndb/include/kernel/ndb_limits.h b/ndb/include/kernel/ndb_limits.h deleted file mode 100644 index 2646b54fa02..00000000000 --- a/ndb/include/kernel/ndb_limits.h +++ /dev/null @@ -1,130 +0,0 @@ -/* 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 NDB_LIMITS_H -#define NDB_LIMITS_H - -#define RNIL 0xffffff00 - -/** - * Note that actual value = MAX_NODES - 1, - * since NodeId = 0 can not be used - */ -#define MAX_NDB_NODES 49 -#define MAX_NODES 64 - -/** - * MAX_API_NODES = MAX_NODES - No of NDB Nodes in use - */ - -/** - * The maximum number of replicas in the system - */ -#define MAX_REPLICAS 4 - -/** - * The maximum number of local checkpoints stored at a time - */ -#define MAX_LCP_STORED 3 - -/** - * The maximum number of log execution rounds at system restart - */ -#define MAX_LOG_EXEC 4 - -/** - * The maximum number of tuples per page - **/ -#define MAX_TUPLES_PER_PAGE 8191 -#define MAX_TUPLES_BITS 13 /* 13 bits = 8191 tuples per page */ -#define MAX_TABLES 1600 -#define MAX_TAB_NAME_SIZE 128 -#define MAX_ATTR_NAME_SIZE 32 -#define MAX_ATTR_DEFAULT_VALUE_SIZE 128 -#define MAX_ATTRIBUTES_IN_TABLE 128 -#define MAX_ATTRIBUTES_IN_INDEX 32 -#define MAX_TUPLE_SIZE_IN_WORDS 2013 -#define MAX_KEY_SIZE_IN_WORDS 1023 -#define MAX_FRM_DATA_SIZE 6000 -#define MAX_NULL_BITS 4096 -#define MAX_FRAGMENT_DATA_BYTES (4+(2 * 8 * MAX_REPLICAS * MAX_NDB_NODES)) - -#define MIN_ATTRBUF ((MAX_ATTRIBUTES_IN_TABLE/24) + 1) -/* - * Max Number of Records to fetch per SCAN_NEXTREQ in a scan in LQH. The - * API can order a multiple of this number of records at a time since - * fragments can be scanned in parallel. - */ -#define MAX_PARALLEL_OP_PER_SCAN 992 -/* -* The default batch size. Configurable parameter. -*/ -#define DEF_BATCH_SIZE 64 -/* -* When calculating the number of records sent from LQH in each batch -* one uses SCAN_BATCH_SIZE divided by the expected size of signals -* per row. This gives the batch size used for the scan. The NDB API -* will receive one batch from each node at a time so there has to be -* some care taken also so that the NDB API is not overloaded with -* signals. -* This parameter is configurable, this is the default value. -*/ -#define SCAN_BATCH_SIZE 32768 -/* -* To protect the NDB API from overload we also define a maximum total -* batch size from all nodes. This parameter should most likely be -* configurable, or dependent on sendBufferSize. -* This parameter is configurable, this is the default value. -*/ -#define MAX_SCAN_BATCH_SIZE 262144 -/* - * Maximum number of Parallel Scan queries on one hash index fragment - */ -#define MAX_PARALLEL_SCANS_PER_FRAG 12 -/* - * Maximum parallel ordered index scans per primary table fragment. - * Implementation limit is (256 minus 12). - */ -#define MAX_PARALLEL_INDEX_SCANS_PER_FRAG 32 - -/** - * Computed defines - */ -#define MAXNROFATTRIBUTESINWORDS (MAX_ATTRIBUTES_IN_TABLE / 32) - -/* - * Ordered index constants. Make configurable per index later. - */ -#define MAX_TTREE_NODE_SIZE 64 /* total words in node */ -#define MAX_TTREE_PREF_SIZE 4 /* words in min prefix */ -#define MAX_TTREE_NODE_SLACK 2 /* diff between max and min occupancy */ - -/* - * Blobs. - */ -#define NDB_BLOB_HEAD_SIZE 2 /* sizeof(NdbBlob::Head) >> 2 */ - -/* - * Character sets. - */ -#define MAX_XFRM_MULTIPLY 8 /* max expansion when normalizing */ - -/* - * Long signals - */ -#define NDB_SECTION_SEGMENT_SZ 60 - -#endif diff --git a/ndb/include/kernel/signaldata/AbortAll.hpp b/ndb/include/kernel/signaldata/AbortAll.hpp deleted file mode 100644 index a3d7f483953..00000000000 --- a/ndb/include/kernel/signaldata/AbortAll.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/* 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 ABORT_ALL_REQ_HPP -#define ABORT_ALL_REQ_HPP - -#include "SignalData.hpp" - -class AbortAllReq { - - /** - * Reciver(s) - */ - friend class Dbtc; - - /** - * Sender - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); - -public: - - Uint32 senderRef; - Uint32 senderData; -}; - -class AbortAllConf { - - /** - * Reciver(s) - */ - friend class Ndbcntr; - - /** - * Sender - */ - friend class Dbtc; - -public: - STATIC_CONST( SignalLength = 1 ); - -public: - Uint32 senderData; -}; - -class AbortAllRef { - - /** - * Reciver(s) - */ - friend class Ndbcntr; - - /** - * Sender - */ - friend class Dbtc; - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - InvalidState = 1, - AbortAlreadyInProgress = 2, - FunctionNotImplemented = 3 - }; -public: - Uint32 senderData; - Uint32 errorCode; -}; - -#endif - diff --git a/ndb/include/kernel/signaldata/AccFrag.hpp b/ndb/include/kernel/signaldata/AccFrag.hpp deleted file mode 100644 index e28ab0d1ee6..00000000000 --- a/ndb/include/kernel/signaldata/AccFrag.hpp +++ /dev/null @@ -1,89 +0,0 @@ -/* 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 ACC_FRAG_HPP -#define ACC_FRAG_HPP - -#include "SignalData.hpp" - -class AccFragReq { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbacc; -public: - STATIC_CONST( SignalLength = 12 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 tableId; - Uint32 reqInfo; - Uint32 fragId; - Uint32 localKeyLen; - Uint32 maxLoadFactor; - Uint32 minLoadFactor; - Uint32 kValue; - Uint32 lhFragBits; - Uint32 lhDirBits; - Uint32 keyLength; -}; - -class AccFragConf { - /** - * Sender(s) - */ - friend class Dbacc; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 userPtr; - Uint32 rootFragPtr; - Uint32 fragId[2]; - Uint32 fragPtr[2]; - Uint32 rootHashCheck; -}; - -class AccFragRef { - /** - * Sender(s) - */ - friend class Dbacc; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 userPtr; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AccLock.hpp b/ndb/include/kernel/signaldata/AccLock.hpp deleted file mode 100644 index 1a41b4c9334..00000000000 --- a/ndb/include/kernel/signaldata/AccLock.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* 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 ACC_LOCK_HPP -#define ACC_LOCK_HPP - -#include "SignalData.hpp" - -/* - * Lock or unlock tuple. If lock request is queued, the reply is later - * via ACCKEYCONF. - */ -class AccLockReq { - friend class Dbtux; - friend class Dbacc; - friend bool printACC_LOCKREQ(FILE *, const Uint32*, Uint32, Uint16); -public: - enum RequestType { // first byte - LockShared = 1, - LockExclusive = 2, - Unlock = 3, - Abort = 4, - AbortWithConf = 5 - }; - enum RequestFlag { // second byte - }; - enum ReturnCode { - Success = 0, - IsBlocked = 1, // was put in lock queue - WouldBlock = 2, // if we add non-blocking option - Refused = 3, - NoFreeOp = 4 - }; - STATIC_CONST( LockSignalLength = 12 ); - STATIC_CONST( UndoSignalLength = 3 ); -private: - Uint32 returnCode; - Uint32 requestInfo; - Uint32 accOpPtr; - // rest only if lock request - Uint32 userPtr; - Uint32 userRef; - Uint32 tableId; - Uint32 fragId; - Uint32 fragPtrI; - Uint32 hashValue; - Uint32 tupAddr; - Uint32 transId1; - Uint32 transId2; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AccScan.hpp b/ndb/include/kernel/signaldata/AccScan.hpp deleted file mode 100644 index d1ca4424d1a..00000000000 --- a/ndb/include/kernel/signaldata/AccScan.hpp +++ /dev/null @@ -1,163 +0,0 @@ -/* 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 ACC_SCAN_HPP -#define ACC_SCAN_HPP - -#include "SignalData.hpp" - -/* - * Used by ACC and TUX scan. - */ - -class AccScanReq { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Dbacc; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 8 ); - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 fragmentNo; - Uint32 requestInfo; - Uint32 transId1; - Uint32 transId2; - Uint32 savePointId; - - /** - * Previously there where also a scan type - */ - static Uint32 getLockMode(const Uint32 & requestInfo); - static Uint32 getReadCommittedFlag(const Uint32 & requestInfo); - static Uint32 getDescendingFlag(const Uint32 & requestInfo); - - static void setLockMode(Uint32 & requestInfo, Uint32 lockMode); - static void setReadCommittedFlag(Uint32 & requestInfo, Uint32 readCommitted); - static void setDescendingFlag(Uint32 & requestInfo, Uint32 descending); -}; - -/** - * Request Info - * - * l = Lock Mode - 1 Bit 2 - * h = Read Committed - 1 Bit 5 - * z = Descending (TUX) - 1 Bit 6 - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * l hz - */ -#define AS_LOCK_MODE_SHIFT (2) -#define AS_LOCK_MODE_MASK (1) -#define AS_READ_COMMITTED_SHIFT (5) -#define AS_DESCENDING_SHIFT (6) - -inline -Uint32 -AccScanReq::getLockMode(const Uint32 & requestInfo){ - return (requestInfo >> AS_LOCK_MODE_SHIFT) & AS_LOCK_MODE_MASK; -} - -inline -Uint32 -AccScanReq::getReadCommittedFlag(const Uint32 & requestInfo){ - return (requestInfo >> AS_READ_COMMITTED_SHIFT) & 1; -} - -inline -Uint32 -AccScanReq::getDescendingFlag(const Uint32 & requestInfo){ - return (requestInfo >> AS_DESCENDING_SHIFT) & 1; -} - -inline -void -AccScanReq::setLockMode(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, AS_LOCK_MODE_MASK, "AccScanReq::setLockMode"); - requestInfo |= (val << AS_LOCK_MODE_SHIFT); -} - -inline -void -AccScanReq::setReadCommittedFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "AccScanReq::setReadCommittedFlag"); - requestInfo |= (val << AS_READ_COMMITTED_SHIFT); -} - -inline -void -AccScanReq::setDescendingFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "AccScanReq::setDescendingFlag"); - requestInfo |= (val << AS_DESCENDING_SHIFT); -} - -class AccScanConf { - /** - * Sender(s) - */ - friend class Dbacc; - friend class Dbtux; - - /** - * Reciver(s) - */ - friend class Dblqh; - - enum { - ZEMPTY_FRAGMENT = 0, - ZNOT_EMPTY_FRAGMENT = 1 - }; - -public: - STATIC_CONST( SignalLength = 8 ); - -private: - Uint32 scanPtr; - Uint32 accPtr; - Uint32 unused1; - Uint32 unused2; - Uint32 unused3; - Uint32 unused4; - Uint32 unused5; - Uint32 flag; -}; - -class AccCheckScan { - friend class Dbacc; - friend class Dbtux; - friend class Dblqh; - enum { - ZCHECK_LCP_STOP = 0, - ZNOT_CHECK_LCP_STOP = 1 - }; -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 accPtr; // scanptr.i in ACC or TUX - Uint32 checkLcpStop; // from enum -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AccSizeAltReq.hpp b/ndb/include/kernel/signaldata/AccSizeAltReq.hpp deleted file mode 100644 index ac348444826..00000000000 --- a/ndb/include/kernel/signaldata/AccSizeAltReq.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 ACC_SIZE_ALT_REQ_H -#define ACC_SIZE_ALT_REQ_H - -#include "SignalData.hpp" - -class AccSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dbacc; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_DIR_RANGE = 1 ); - STATIC_CONST( IND_DIR_ARRAY = 2 ); - STATIC_CONST( IND_FRAGMENT = 3 ); - STATIC_CONST( IND_OP_RECS = 4 ); - STATIC_CONST( IND_OVERFLOW_RECS = 5 ); - STATIC_CONST( IND_PAGE8 = 6 ); - STATIC_CONST( IND_ROOT_FRAG = 7 ); - STATIC_CONST( IND_TABLE = 8 ); - STATIC_CONST( IND_SCAN = 9 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[10]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AlterIndx.hpp b/ndb/include/kernel/signaldata/AlterIndx.hpp deleted file mode 100644 index f5ad835b6f3..00000000000 --- a/ndb/include/kernel/signaldata/AlterIndx.hpp +++ /dev/null @@ -1,271 +0,0 @@ -/* 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 ALTER_INDX_HPP -#define ALTER_INDX_HPP - -#include "SignalData.hpp" -#include <Bitmask.hpp> -#include <trigger_definitions.h> - -/** - * AlterIndxReq. - */ -class AlterIndxReq { - friend bool printALTER_INDX_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_CREATE_INDEX = 2, - RT_DROP_INDEX = 3, - RT_SYSTEMRESTART = 4, - RT_NODERESTART = 5, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_TC = 5 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TC = 5 << 8, - RT_TUX = 8 << 8 - }; - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; // only set by DICT - Uint32 m_indexVersion; - Uint32 m_online; // new state 0-offline 1-online - // extra - Uint32 m_opKey; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - AlterIndxReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (AlterIndxReq::RequestType)val; - } - void setRequestType(AlterIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } - Uint32 getOnline() const { - return m_online; - } - void setOnline(Uint32 val) { - m_online = val; - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * AlterIndxConf. - */ -class AlterIndxConf { - friend bool printALTER_INDX_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; - Uint32 m_indexVersion; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - AlterIndxReq::RequestType getRequestType() const { - return (AlterIndxReq::RequestType)m_requestInfo; - } - void setRequestType(AlterIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } -}; - -/** - * AlterIndxRef. - */ -class AlterIndxRef { - friend bool printALTER_INDX_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - Busy = 701, - NotMaster = 702, - IndexNotFound = 4243, - IndexExists = 4244, - BadRequestType = 4247, - NotAnIndex = 4254, - BadState = 4347, - Inconsistency = 4348 - }; - STATIC_CONST( SignalLength = AlterIndxConf::SignalLength + 3 ); - -private: - AlterIndxConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexId; - //Uint32 m_indexVersion; - Uint32 m_errorCode; - Uint32 m_errorLine; - union { - Uint32 m_errorNode; - Uint32 masterNodeId; // if NotMaster - }; -public: - AlterIndxConf* getConf() { - return &m_conf; - } - const AlterIndxConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - AlterIndxReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(AlterIndxReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - Uint32 getIndexVersion() const { - return m_conf.getIndexVersion(); - } - void setIndexVersion(Uint32 val) { - m_conf.setIndexVersion(val); - } - AlterIndxRef::ErrorCode getErrorCode() const { - return (AlterIndxRef::ErrorCode)m_errorCode; - } - void setErrorCode(AlterIndxRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AlterTab.hpp b/ndb/include/kernel/signaldata/AlterTab.hpp deleted file mode 100644 index 02d4eb95d2e..00000000000 --- a/ndb/include/kernel/signaldata/AlterTab.hpp +++ /dev/null @@ -1,125 +0,0 @@ -/* 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 ALTER_TAB_HPP -#define ALTER_TAB_HPP - -#include "SignalData.hpp" -#include "GlobalSignalNumbers.h" - -/** - * AlterTab - * - * Implemenatation of AlterTable - */ -class AlterTabReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - friend class Dbdih; - friend class Dbtc; - friend class Dblqh; - - /** - * For printing - */ - friend bool printALTER_TAB_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 9 ); - - enum RequestType { - AlterTablePrepare = 0, // Prepare alter table - AlterTableCommit = 1, // Commit alter table - AlterTableRevert = 2 // Prepare failed, revert instead - }; -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 clientRef; - Uint32 clientData; - - Uint32 changeMask; - Uint32 tableId; - Uint32 tableVersion; - Uint32 gci; - Uint32 requestType; - - SECTION( DICT_TAB_INFO = 0 ); -}; - -struct AlterTabRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - friend class Dbdih; - friend class Dbtc; - friend class Dblqh; - friend class Dbtup; - friend class SafeCounter; - - /** - * For printing - */ - friend bool printALTER_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16); - - STATIC_CONST( SignalLength = 7 ); - STATIC_CONST( GSN = GSN_ALTER_TAB_REF ); - - enum ErrorCode { - NF_FakeErrorREF = 255 - }; - - Uint32 senderRef; - Uint32 senderData; - Uint32 errorCode; - Uint32 errorLine; - Uint32 errorKey; - Uint32 errorStatus; - Uint32 requestType; -}; - -class AlterTabConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - friend class Dbdih; - friend class Dbtc; - friend class Dblqh; - friend class Dbtup; - - /** - * For printing - */ - friend bool printALTER_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 changeMask; - Uint32 tableId; - Uint32 tableVersion; - Uint32 gci; - Uint32 requestType; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AlterTable.hpp b/ndb/include/kernel/signaldata/AlterTable.hpp deleted file mode 100644 index 30f8727551d..00000000000 --- a/ndb/include/kernel/signaldata/AlterTable.hpp +++ /dev/null @@ -1,179 +0,0 @@ -/* 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 ALTER_TABLE_HPP -#define ALTER_TABLE_HPP - -#include "SignalData.hpp" - -/** - * AlterTable - * - * This signal is sent by API to DICT/TRIX - * as a request to alter a secondary index - * and then from TRIX to TRIX(n) and TRIX to TC. - */ -class AlterTableReq { - /** - * Sender(s) - */ - // API - - /** - * Sender(s) / Reciver(s) - */ - friend class NdbTableImpl; - friend class NdbDictInterface; - friend class Dbdict; - - /** - * For printing - */ - friend bool printALTER_TABLE_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 changeMask; - Uint32 tableId; - Uint32 tableVersion; - - SECTION( DICT_TAB_INFO = 0 ); - -/** - * ChangeMask - */ - -/* - n = Changed name - - 1111111111222222222233 - 01234567890123456789012345678901 - n------------------------------- -*/ -#define NAME_SHIFT (0) - - /** - * Getters and setters - */ - static Uint8 getNameFlag(const UintR & changeMask); - static void setNameFlag(UintR & changeMask, Uint32 nameFlg); -}; - -inline -Uint8 -AlterTableReq::getNameFlag(const UintR & changeMask){ - return (Uint8)((changeMask >> NAME_SHIFT) & 1); -} - -inline -void -AlterTableReq::setNameFlag(UintR & changeMask, Uint32 nameFlg){ - changeMask |= (nameFlg << NAME_SHIFT); -} - - -class AlterTableRef { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend class NdbDictInterface; - - /** - * For printing - */ - friend bool printALTER_TABLE_REF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - - enum ErrorCode { - NoError = 0, - InvalidTableVersion = 241, - DropInProgress = 283, - Busy = 701, - NotMaster = 702, - InvalidFormat = 703, - AttributeNameTooLong = 704, - TableNameTooLong = 705, - Inconsistency = 706, - NoMoreTableRecords = 707, - NoMoreAttributeRecords = 708, - NoSuchTable = 709, - AttributeNameTwice = 720, - TableAlreadyExist = 721, - ArraySizeTooBig = 737, - RecordTooBig = 738, - InvalidPrimaryKeySize = 739, - NullablePrimaryKey = 740, - UnsupportedChange = 741 - }; - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 masterNodeId; - Uint32 errorCode; - Uint32 errorLine; - Uint32 errorKey; - Uint32 status; - -public: - Uint32 getErrorCode() const { - return errorCode; - } - Uint32 getErrorLine() const { - return errorLine; - } -}; - -class AlterTableConf { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend class NdbDictInterface; - - /** - * For printing - */ - friend bool printALTER_TABLE_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 tableVersion; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AlterTrig.hpp b/ndb/include/kernel/signaldata/AlterTrig.hpp deleted file mode 100644 index a97c1fd0196..00000000000 --- a/ndb/include/kernel/signaldata/AlterTrig.hpp +++ /dev/null @@ -1,288 +0,0 @@ -/* 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 ALTER_TRIG_HPP -#define ALTER_TRIG_HPP - -#include "SignalData.hpp" -#include <Bitmask.hpp> -#include <trigger_definitions.h> - -/** - * AlterTrigReq. - */ -class AlterTrigReq { - friend bool printALTER_TRIG_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_CREATE_TRIGGER = 2, - RT_DROP_TRIGGER = 3, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_TC = 5 << 4, - RT_DICT_LQH = 6 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4 - }; - STATIC_CONST( SignalLength = 8 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_triggerId; - Uint32 m_triggerInfo; - Uint32 m_online; // new state 0-offline 1-online - Uint32 m_receiverRef; // receiver for subscription trigger - // extra - Uint32 m_opKey; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - AlterTrigReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (AlterTrigReq::RequestType)val; - } - void setRequestType(AlterTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } - Uint32 getTriggerInfo() const { - return m_triggerInfo; - } - void setTriggerInfo(Uint32 val) { - m_triggerInfo = val; - } - TriggerType::Value getTriggerType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 0, 8); - return (TriggerType::Value)val; - } - void setTriggerType(TriggerType::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 0, 8, (Uint32)val); - } - TriggerActionTime::Value getTriggerActionTime() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 8, 8); - return (TriggerActionTime::Value)val; - } - void setTriggerActionTime(TriggerActionTime::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 8, 8, (Uint32)val); - } - TriggerEvent::Value getTriggerEvent() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 16, 8); - return (TriggerEvent::Value)val; - } - void setTriggerEvent(TriggerEvent::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 16, 8, (Uint32)val); - } - bool getMonitorReplicas() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 24, 1); - } - void setMonitorReplicas(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 24, 1, val); - } - bool getMonitorAllAttributes() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 25, 1); - } - void setMonitorAllAttributes(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 25, 1, val); - } - Uint32 getOnline() const { - return m_online; - } - void setOnline(Uint32 val) { - m_online = val; - } - Uint32 getReceiverRef() const { - return m_receiverRef; - } - void setReceiverRef(Uint32 val) { - m_receiverRef = val; - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * AlterTrigConf. - */ -class AlterTrigConf { - friend bool printALTER_TRIG_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_triggerId; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - AlterTrigReq::RequestType getRequestType() const { - return (AlterTrigReq::RequestType)m_requestInfo; - } - void setRequestType(AlterTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } -}; - -/** - * AlterTrigRef. - */ -class AlterTrigRef { - friend bool printALTER_TRIG_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - Busy = 701, - TriggerNotFound = 4238, - TriggerExists = 4239, - BadRequestType = 4247 - }; - STATIC_CONST( SignalLength = AlterTrigConf::SignalLength + 3 ); - -private: - AlterTrigConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_triggerId; - Uint32 m_errorCode; - Uint32 m_errorLine; - Uint32 m_errorNode; - -public: - AlterTrigConf* getConf() { - return &m_conf; - } - const AlterTrigConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - AlterTrigReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(AlterTrigReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getTriggerId() const { - return m_conf.getTriggerId(); - } - void setTriggerId(Uint32 val) { - m_conf.setTriggerId(val); - } - ErrorCode getErrorCode() const { - return (ErrorCode)m_errorCode; - } - void setErrorCode(ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ApiRegSignalData.hpp b/ndb/include/kernel/signaldata/ApiRegSignalData.hpp deleted file mode 100644 index 84dca8fb260..00000000000 --- a/ndb/include/kernel/signaldata/ApiRegSignalData.hpp +++ /dev/null @@ -1,92 +0,0 @@ -/* 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 API_REGCONF_HPP -#define API_REGCONF_HPP - -#include <NodeState.hpp> - -class ApiRegReq { - /** - * Sender(s) - */ - friend class ClusterMgr; - - /** - * Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 ref; - Uint32 version; // Version of API node -}; - -/** - * - */ -class ApiRegRef { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Reciver(s) - */ - friend class ClusterMgr; - -public: - STATIC_CONST( SignalLength = 3 ); - - enum ErrorCode { - WrongType = 1, - UnsupportedVersion = 2 - }; -private: - Uint32 ref; // Qmgr ref - Uint32 version; // Version of NDB node - Uint32 errorCode; -}; - -/** - * - */ -class ApiRegConf { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Reciver(s) - */ - friend class ClusterMgr; - -public: - STATIC_CONST( SignalLength = 3 + NodeState::DataLength ); -private: - - Uint32 qmgrRef; - Uint32 version; // Version of NDB node - Uint32 apiHeartbeatFrequency; - NodeState nodeState; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ApiVersion.hpp b/ndb/include/kernel/signaldata/ApiVersion.hpp deleted file mode 100644 index 28281e7d186..00000000000 --- a/ndb/include/kernel/signaldata/ApiVersion.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* 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 API_VERSION_HPP -#define API_VERSION_HPP - -class ApiVersionReq { -/** - * Sender(s) - */ - friend class MgmtSrv; - - /** - * Reciver(s) - */ - friend class Qmgr; -public: - STATIC_CONST( SignalLength = 3 ); - Uint32 senderRef; - Uint32 nodeId; //api node id - Uint32 version; // Version of API node - - -}; - - - -class ApiVersionConf { -/** - * Sender(s) - */ - friend class Qmgr; - - /** - * Reciver(s) - */ - friend class MgmtSrv; -public: - STATIC_CONST( SignalLength = 3 ); - Uint32 senderRef; - Uint32 nodeId; //api node id - Uint32 version; // Version of API node - - -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ArbitSignalData.hpp b/ndb/include/kernel/signaldata/ArbitSignalData.hpp deleted file mode 100644 index 34b73644a13..00000000000 --- a/ndb/include/kernel/signaldata/ArbitSignalData.hpp +++ /dev/null @@ -1,155 +0,0 @@ -/* 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 ARBIT_SIGNAL_DATA_H -#define ARBIT_SIGNAL_DATA_H - -#include <string.h> -#include <NodeBitmask.hpp> -#include <NdbTick.h> -#include <NdbHost.h> -#include "SignalData.hpp" -#include "SignalDataPrint.hpp" - -/** - * The ticket. - */ -class ArbitTicket { -private: - Uint32 data[2]; - -public: - STATIC_CONST( DataLength = 2 ); - STATIC_CONST( TextLength = DataLength * 8 ); // hex digits - - inline void clear() { - data[0] = 0; - data[1] = 0; - } - - inline void update() { - Uint16 cnt = data[0] & 0xFFFF; // previous count - Uint16 pid = NdbHost_GetProcessId(); - data[0] = (pid << 16) | (cnt + 1); - data[1] = NdbTick_CurrentMillisecond(); - } - - inline bool match(ArbitTicket& aTicket) const { - return - data[0] == aTicket.data[0] && - data[1] == aTicket.data[1]; - } - - inline void getText(char *buf, size_t buf_len) const { - BaseString::snprintf(buf, buf_len, "%08x%08x", data[0], data[1]); - } - -/* inline char* getText() const { - static char buf[TextLength + 1]; - getText(buf, sizeof(buf)); - return buf; - } */ -}; - -/** - * Result codes. Part of signal data. Each signal uses only - * a subset but a common namespace is convenient. - */ -class ArbitCode { -public: - STATIC_CONST( ErrTextLength = 80 ); - - enum { - NoInfo = 0, - - // CFG signals - CfgRank1 = 1, // these have to be 1 and 2 - CfgRank2 = 2, - - // QMGR continueB thread state - ThreadStart = 11, // continueB thread started - - // PREP signals - PrepPart1 = 21, // zero old ticket - PrepPart2 = 22, // get new ticket - PrepAtrun = 23, // late joiner gets ticket at RUN time - - // arbitrator state - ApiStart = 31, // arbitrator thread started - ApiFail = 32, // arbitrator died - ApiExit = 33, // arbitrator reported it will exit - - // arbitration result - LoseNodes = 41, // lose on ndb node count - WinNodes = 42, // win on ndb node count - WinGroups = 43, // we win, no need for arbitration - LoseGroups = 44, // we lose, missing node group - Partitioning = 45, // possible network partitioning - WinChoose = 46, // positive reply - LoseChoose = 47, // negative reply - LoseNorun = 48, // arbitrator required but not running - LoseNocfg = 49, // arbitrator required but none configured - - // general error codes - ErrTicket = 91, // invalid arbitrator-ticket - ErrToomany = 92, // too many requests - ErrState = 93, // invalid state - ErrTimeout = 94, // timeout waiting for signals - ErrUnknown = 95 // unknown error - }; - - static inline void getErrText(Uint32 code, char* buf, size_t buf_len) { - switch (code) { - case ErrTicket: - BaseString::snprintf(buf, buf_len, "invalid arbitrator-ticket"); - break; - case ErrToomany: - BaseString::snprintf(buf, buf_len, "too many requests"); - break; - case ErrState: - BaseString::snprintf(buf, buf_len, "invalid state"); - break; - case ErrTimeout: - BaseString::snprintf(buf, buf_len, "timeout"); - break; - default: - BaseString::snprintf(buf, buf_len, "unknown error [code=%u]", code); - break; - } - } -}; - -/** - * Common class for arbitration signal data. - */ -class ArbitSignalData { -public: - Uint32 sender; // sender's node id (must be word 0) - Uint32 code; // result code or other info - Uint32 node; // arbitrator node id - ArbitTicket ticket; // ticket - NodeBitmask mask; // set of nodes - - STATIC_CONST( SignalLength = 3 + ArbitTicket::DataLength + NodeBitmask::Size ); - - inline bool match(ArbitSignalData& aData) const { - return - node == aData.node && - ticket.match(aData.ticket); - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/AttrInfo.hpp b/ndb/include/kernel/signaldata/AttrInfo.hpp deleted file mode 100644 index c87470db8b0..00000000000 --- a/ndb/include/kernel/signaldata/AttrInfo.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 ATTRINFO_HPP -#define ATTRINFO_HPP - -#include "SignalData.hpp" - -class AttrInfo { - /** - * Sender(s) - */ - friend class DbUtil; - - /** - * Receiver(s) - */ - friend class Dbtup; - - /** - * Sender(s) / Receiver(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class NdbScanOperation; - - friend bool printATTRINFO(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 22 ); - STATIC_CONST( MaxSignalLength = HeaderLength + DataLength ); - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 attrData[DataLength]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/BackupContinueB.hpp b/ndb/include/kernel/signaldata/BackupContinueB.hpp deleted file mode 100644 index d3d3f79f310..00000000000 --- a/ndb/include/kernel/signaldata/BackupContinueB.hpp +++ /dev/null @@ -1,38 +0,0 @@ -/* 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 BACKUP_CONTINUEB_H -#define BACKUP_CONTINUEB_H - -#include "SignalData.hpp" - -class BackupContinueB { - /** - * Sender(s)/Reciver(s) - */ - friend class Backup; - friend bool printCONTINUEB_BACKUP(FILE * output, const Uint32 * theData, Uint32 len); -private: - enum { - START_FILE_THREAD = 0, - BUFFER_UNDERFLOW = 1, - BUFFER_FULL_SCAN = 2, - BUFFER_FULL_FRAG_COMPLETE = 3, - BUFFER_FULL_META = 4 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/BackupImpl.hpp b/ndb/include/kernel/signaldata/BackupImpl.hpp deleted file mode 100644 index 2ac91570aad..00000000000 --- a/ndb/include/kernel/signaldata/BackupImpl.hpp +++ /dev/null @@ -1,366 +0,0 @@ -/* 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 BACKUP_IMPL_HPP -#define BACKUP_IMPL_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -class DefineBackupReq { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printDEFINE_BACKUP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 8 + NdbNodeBitmask::Size); - -private: - /** - * i - value of backup object - */ - Uint32 backupPtr; - - Uint32 backupId; - Uint32 clientRef; - Uint32 clientData; - Uint32 senderRef; - - /** - * Which node(s) is participating in the backup - */ - NdbNodeBitmask nodes; - - /** - * Generated random number - */ - Uint32 backupKey[2]; - - /** - * Length of backup data - */ - Uint32 backupDataLen; -}; - -class DefineBackupRef { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printDEFINE_BACKUP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - enum ErrorCode { - Undefined = 1340, - FailedToAllocateBuffers = 1342, - FailedToSetupFsBuffers = 1343, - FailedToAllocateTables = 1344, - FailedInsertFileHeader = 1345, - FailedInsertTableList = 1346, - FailedAllocateTableMem = 1347, - FailedToAllocateFileRecord = 1348, - FailedToAllocateAttributeRecord = 1349 - }; -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 errorCode; -}; - -class DefineBackupConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printDEFINE_BACKUP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 backupId; - Uint32 backupPtr; -}; - -class StartBackupReq { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printSTART_BACKUP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - - STATIC_CONST( MaxTableTriggers = 4 ); - STATIC_CONST( HeaderLength = 5 ); - STATIC_CONST( TableTriggerLength = 4); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 signalNo; - Uint32 noOfSignals; - Uint32 noOfTableTriggers; - - struct TableTriggers { - Uint32 tableId; - Uint32 triggerIds[3]; - } tableTriggers[MaxTableTriggers]; -}; - -class StartBackupRef { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printSTART_BACKUP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - FailedToAllocateTriggerRecord = 1 - }; -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 signalNo; - Uint32 errorCode; -}; - -class StartBackupConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printSTART_BACKUP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 signalNo; -}; - -class BackupFragmentReq { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printBACKUP_FRAGMENT_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 tableId; - Uint32 fragmentNo; - Uint32 count; -}; - -class BackupFragmentRef { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printBACKUP_FRAGMENT_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 tableId; - Uint32 fragmentNo; - Uint32 errorCode; -}; - -class BackupFragmentConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printBACKUP_FRAGMENT_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 tableId; - Uint32 fragmentNo; - Uint32 noOfRecords; - Uint32 noOfBytes; -}; - -class StopBackupReq { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printSTOP_BACKUP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 startGCP; - Uint32 stopGCP; -}; - -class StopBackupRef { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printSTOP_BACKUP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 errorCode; -}; - -class StopBackupConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printSTOP_BACKUP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 backupId; - Uint32 backupPtr; - Uint32 noOfLogBytes; - Uint32 noOfLogRecords; -}; - -class BackupStatusReq { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printBACKUP_STATUS_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); - -private: -}; - -class BackupStatusConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class BackupMaster; - - friend bool printBACKUP_STATUS_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); - -private: -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/BackupSignalData.hpp b/ndb/include/kernel/signaldata/BackupSignalData.hpp deleted file mode 100644 index fb018026a49..00000000000 --- a/ndb/include/kernel/signaldata/BackupSignalData.hpp +++ /dev/null @@ -1,253 +0,0 @@ -/* 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 BACKUP_HPP -#define BACKUP_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -/** - * Request to start a backup - */ -class BackupReq { - /** - * Sender(s) - */ - friend class MgmtSrvr; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printBACKUP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 backupDataLen; -}; - -class BackupData { - /** - * Sender(s) - */ - friend class BackupMaster; - - /** - * Reciver(s) - */ - friend class Backup; - - friend bool printBACKUP_DATA(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 25 ); - - enum KeyValues { - /** - * Buffer(s) and stuff - */ - BufferSize = 1, // In MB - BlockSize = 2, // Write in chunks of this (in bytes) - MinWrite = 3, // Minimum write as multiple of blocksize - MaxWrite = 4, // Maximum write as multiple of blocksize - - // Max throughput - // Parallell files - - NoOfTables = 1000, - TableName = 1001 // char* - }; -private: - enum RequestType { - ClientToMaster = 1, - MasterToSlave = 2 - }; - Uint32 requestType; - - union { - Uint32 backupPtr; - Uint32 senderData; - }; - Uint32 backupId; - - /** - * totalLen = totalLen_offset >> 16 - * offset = totalLen_offset & 0xFFFF - */ - Uint32 totalLen_offset; - - /** - * Length in this = signal->length() - 3 - * Sender block ref = signal->senderBlockRef() - */ - Uint32 backupData[21]; -}; - -/** - * The request to start a backup was refused - */ -class BackupRef { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - friend bool printBACKUP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - enum ErrorCodes { - Undefined = 1300, - IAmNotMaster = 1301, - OutOfBackupRecord = 1302, - OutOfResources = 1303, - SequenceFailure = 1304, - BackupDefinitionNotImplemented = 1305, - CannotBackupDiskless = 1306 - }; - Uint32 senderData; - Uint32 errorCode; - union { - Uint32 masterRef; - }; -}; - -/** - * The backup has started - */ -class BackupConf { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - friend bool printBACKUP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 + NdbNodeBitmask::Size ); - -private: - Uint32 senderData; - Uint32 backupId; - NdbNodeBitmask nodes; -}; - -/** - * A backup has been aborted - */ -class BackupAbortRep { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - friend bool printBACKUP_ABORT_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderData; - Uint32 backupId; - Uint32 reason; -}; - -/** - * A backup has been completed - */ -class BackupCompleteRep { - /** - * Sender(s) - */ - friend class Backup; - - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - friend bool printBACKUP_COMPLETE_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 8 + NdbNodeBitmask::Size ); -private: - Uint32 senderData; - Uint32 backupId; - Uint32 startGCP; - Uint32 stopGCP; - Uint32 noOfBytes; - Uint32 noOfRecords; - Uint32 noOfLogBytes; - Uint32 noOfLogRecords; - NdbNodeBitmask nodes; -}; - -/** - * A master has finished taking-over backup responsiblility - */ -class BackupNFCompleteRep { - friend bool printBACKUP_NF_COMPLETE_REP(FILE*, const Uint32*, Uint32, Uint16); -}; - -/** - * Abort of backup - */ -class AbortBackupOrd { - /** - * Sender / Reciver - */ - friend class Backup; - friend class MgmtSrvr; - - friend bool printABORT_BACKUP_ORD(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - enum RequestType { - ClientAbort = 1321, - BackupComplete = 1322, - BackupFailure = 1323, // General backup failure coordinator -> slave - LogBufferFull = 1324, // slave -> coordinator - FileOrScanError = 1325, // slave -> coordinator - BackupFailureDueToNodeFail = 1326, // slave -> slave - OkToClean = 1327 // master -> slave - }; -private: - Uint32 requestType; - Uint32 backupId; - union { - Uint32 backupPtr; - Uint32 senderData; - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/BlockCommitOrd.hpp b/ndb/include/kernel/signaldata/BlockCommitOrd.hpp deleted file mode 100644 index 3b33dceb758..00000000000 --- a/ndb/include/kernel/signaldata/BlockCommitOrd.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* 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_COMMIT_ORD_HPP -#define BLOCK_COMMIT_ORD_HPP - -/** - * These two signals are sent via EXECUTE_DIRECT - * to DBDIH from QMGR - * - * Block make sure that no commit is performed - * Unblock turns on commit again - */ - -class BlockCommitOrd { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Reciver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 failNo; // As used by Qmgr -}; - -class UnblockCommitOrd { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Reciver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 failNo; // As used by Qmgr -}; - -#endif diff --git a/ndb/include/kernel/signaldata/BuildIndx.hpp b/ndb/include/kernel/signaldata/BuildIndx.hpp deleted file mode 100644 index a6ea84c5ea0..00000000000 --- a/ndb/include/kernel/signaldata/BuildIndx.hpp +++ /dev/null @@ -1,308 +0,0 @@ -/* 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 BUILD_INDX_HPP -#define BUILD_INDX_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <signaldata/DictTabInfo.hpp> - -/** - * BuildIndxReq - * - * This signal is sent by DICT to TRIX(n) - * as a request to build a secondary index - */ -class BuildIndxReq { - friend bool printBUILD_INDX_REQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_ALTER_INDEX = 2, - RT_SYSTEMRESTART = 3, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_TC = 5 << 4, - RT_DICT_TRIX = 7 << 4, - RT_DICT_TUX = 8 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TRIX = 7 << 8 - }; - STATIC_CONST( SignalLength = 9 ); - STATIC_CONST( INDEX_COLUMNS = 0 ); - STATIC_CONST( KEY_COLUMNS = 1 ); - STATIC_CONST( NoOfSections = 2 ); - -private: - Uint32 m_userRef; // user block reference - Uint32 m_connectionPtr; // user "schema connection" - Uint32 m_requestInfo; - Uint32 m_buildId; // Suma subscription id - Uint32 m_buildKey; // Suma subscription key - Uint32 m_tableId; // table being indexed - Uint32 m_indexType; // from DictTabInfo::TableType - Uint32 m_indexId; // table storing index - Uint32 m_parallelism; // number of parallel insert transactions - // extra - Uint32 m_opKey; - // Sent data ends here - Uint32 m_slack[25 - SignalLength - 1]; - Uint32 m_sectionBuffer[MAX_ATTRIBUTES_IN_TABLE * 2]; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - BuildIndxReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (BuildIndxReq::RequestType)val; - } - void setRequestType(BuildIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - return (BuildIndxReq::RequestType)val; - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getBuildId() const { - return m_buildId; - } - void setBuildId(Uint32 val) { - m_buildId = val; - } - Uint32 getBuildKey() const { - return m_buildKey; - } - void setBuildKey(Uint32 val) { - m_buildKey = val; - } - Uint32 getIndexType() const { - return m_indexType; - } - void setIndexType(Uint32 val) { - m_indexType = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getParallelism() const { - return m_parallelism; - } - void setParallelism(Uint32 val) { - m_parallelism = val; - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } - // Column order - void setColumnOrder(Uint32* indexBuf, Uint32 indexLen, - Uint32* keyBuf, Uint32 keyLen, - struct LinearSectionPtr orderPtr[]); -}; - -inline -void BuildIndxReq::setColumnOrder(Uint32* indexBuf, Uint32 indexLen, - Uint32* keyBuf, Uint32 keyLen, - struct LinearSectionPtr orderPtr[]) - -{ - printf("BuildIndxReq::setColumnOrder: indexLen %u, keyLen %u\n", indexLen, keyLen); - // Copy buffers - MEMCOPY_NO_WORDS(m_sectionBuffer, indexBuf, indexLen); - MEMCOPY_NO_WORDS(m_sectionBuffer + indexLen, keyBuf, keyLen); - orderPtr[INDEX_COLUMNS].p = m_sectionBuffer; - orderPtr[INDEX_COLUMNS].sz = indexLen; - orderPtr[KEY_COLUMNS].p = m_sectionBuffer + indexLen; - orderPtr[KEY_COLUMNS].sz = keyLen; -} - -/** - * BuildIndxConf - * - * This signal is sent back to DICT from TRIX - * as confirmation of succesfull index build - * (BuildIndxReq). - */ -class BuildIndxConf { - friend bool printBUILD_INDX_CONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 6 ); - -private: - friend class BuildIndxRef; - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexType; - Uint32 m_indexId; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - BuildIndxReq::RequestType getRequestType() const { - return (BuildIndxReq::RequestType)m_requestInfo; - } - void setRequestType(BuildIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexType() const { - return m_indexType; - } - void setIndexType(Uint32 val) { - m_indexType = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } -}; - -/** - * BuildIndxRef - * - * This signal is sent back to API from DICT/TRIX - * as refusal of a failed index creation - * (BuildIndxReq). It is also sent as refusal - * from TC to TRIX and TRIX to DICT. - */ -class BuildIndxRef { - friend bool printBUILD_INDX_REF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - enum ErrorCode { - NoError = 0, - Busy = 701, - NotMaster = 702, - BadRequestType = 4247, - InvalidPrimaryTable = 4249, - InvalidIndexType = 4250, - IndexNotUnique = 4251, - AllocationFailure = 4252, - InternalError = 4346 - }; - STATIC_CONST( SignalLength = BuildIndxConf::SignalLength + 2 ); - - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexType; - //Uint32 m_indexId; - BuildIndxConf m_conf; - Uint32 m_errorCode; - Uint32 masterNodeId; - -public: - BuildIndxConf* getConf() { - return &m_conf; - } - const BuildIndxConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - BuildIndxReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(BuildIndxReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getIndexType() const { - return m_conf.getIndexType(); - } - void setIndexType(Uint32 val) { - m_conf.setIndexType(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - BuildIndxRef::ErrorCode getErrorCode() const { - return (BuildIndxRef::ErrorCode)m_errorCode; - } - void setErrorCode(BuildIndxRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CheckNodeGroups.hpp b/ndb/include/kernel/signaldata/CheckNodeGroups.hpp deleted file mode 100644 index b3e79949c68..00000000000 --- a/ndb/include/kernel/signaldata/CheckNodeGroups.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* 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 CHECKNODEGROUPS_H -#define CHECKNODEGROUPS_H - -#include <string.h> -#include <NodeBitmask.hpp> -#include "SignalData.hpp" -#include "SignalDataPrint.hpp" - -/** - * Ask DIH to check if a node set can survive i.e. if it - * has at least one node in every node group. Returns one - * of Win, Lose, Partitioning. - * - * Same class is used for REQ and CONF. The REQ can also - * be executed as a direct signal. - */ -class CheckNodeGroups { -public: - Uint32 blockRef; // sender's node id - union { - Uint32 requestType; // direct flag, output code - Uint32 output; - }; - - Uint32 nodeId; // nodeId input for GetNodeGroupMembers - NodeBitmask mask; /* set of NDB nodes, input for ArbitCheck, - * output for GetNodeGroupMembers - */ - enum RequestType { - Direct = 0x1, - ArbitCheck = 0x2, - GetNodeGroup = 0x4, - GetNodeGroupMembers = 0x8 - }; - - enum Output { - Lose = 1, // we cannot survive - Win = 2, // we and only we can survive - Partitioning = 3 // possible network partitioning - }; - - STATIC_CONST( SignalLength = 3 + NodeBitmask::Size ); -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CloseComReqConf.hpp b/ndb/include/kernel/signaldata/CloseComReqConf.hpp deleted file mode 100644 index 3d3dc54ba64..00000000000 --- a/ndb/include/kernel/signaldata/CloseComReqConf.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 CLOSE_COMREQCONF_HPP -#define CLOSE_COMREQCONF_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -/** - * The Req signal is sent by Qmgr to Cmvmi - * and the Conf signal is sent back - * - * NOTE that the signals are identical - */ -class CloseComReqConf { - - /** - * Sender(s) / Reciver(s) - */ - friend class Qmgr; - friend class Cmvmi; - - /** - * For printing - */ - friend bool printCLOSECOMREQCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 3 + NodeBitmask::Size ); -private: - - Uint32 xxxBlockRef; - Uint32 failNo; - - Uint32 noOfNodes; - Uint32 theNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CmInit.hpp b/ndb/include/kernel/signaldata/CmInit.hpp deleted file mode 100644 index b59547b767b..00000000000 --- a/ndb/include/kernel/signaldata/CmInit.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* 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 CM_INIT_HPP -#define CM_INIT_HPP - -#include <NodeBitmask.hpp> - -/** - * - */ -class CmInit { - /** - * Sender(s) - */ - friend class Cmvmi; - - /** - * Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 4 + NodeBitmask::Size ); -private: - - Uint32 heartbeatDbDb; - Uint32 heartbeatDbApi; - Uint32 inactiveTransactionCheck; - Uint32 arbitTimeout; - - Uint32 allNdbNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CmRegSignalData.hpp b/ndb/include/kernel/signaldata/CmRegSignalData.hpp deleted file mode 100644 index f33c991249f..00000000000 --- a/ndb/include/kernel/signaldata/CmRegSignalData.hpp +++ /dev/null @@ -1,192 +0,0 @@ -/* 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 CM_REG_HPP -#define CM_REG_HPP - -#include <NodeBitmask.hpp> - -/** - * This is the first distributed signal - * (the node tries to register in the cluster) - */ -class CmRegReq { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 blockRef; - Uint32 nodeId; - Uint32 version; // See ndb_version.h -}; - -/** - * The node receving this signal has been accepted into the cluster - */ -class CmRegConf { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 4 + NdbNodeBitmask::Size ); -private: - - Uint32 presidentBlockRef; - Uint32 presidentNodeId; - Uint32 presidentVersion; - - /** - * The dynamic id that the node reciving this signal has - */ - Uint32 dynamicId; - - Uint32 allNdbNodes[NdbNodeBitmask::Size]; -}; - -/** - * - */ -class CmRegRef { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - ZBUSY = 0, /* Only the president can send this */ - ZBUSY_PRESIDENT = 1,/* Only the president can send this */ - ZBUSY_TO_PRES = 2, /* Only the president can send this */ - ZNOT_IN_CFG = 3, /* Only the president can send this */ - ZELECTION = 4, /* Receiver is definitely not president, - * but we are not sure if sender ends up - * as president. */ - ZNOT_PRESIDENT = 5, /* We are not president */ - ZNOT_DEAD = 6, /* We are not dead when we are starting */ - ZINCOMPATIBLE_VERSION = 7 - }; -private: - - Uint32 blockRef; - Uint32 nodeId; - Uint32 errorCode; - Uint32 presidentCandidate; -}; - -class CmAdd { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); - -private: - enum RequestType { - Prepare = 0, - AddCommit = 1, - CommitNew = 2 - }; - - Uint32 requestType; - Uint32 startingNodeId; - Uint32 startingVersion; -}; - -class CmAckAdd { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderNodeId; - Uint32 requestType; // see CmAdd::RequestType - Uint32 startingNodeId; -}; - -class CmNodeInfoReq { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); - -private: - /** - * This is information for sending node (starting node) - */ - Uint32 nodeId; - Uint32 dynamicId; - Uint32 version; -}; - -class CmNodeInfoRef { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); - - enum ErrorCode { - NotRunning = 1 - }; - -private: - Uint32 nodeId; - Uint32 errorCode; -}; - -class CmNodeInfoConf { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 nodeId; - Uint32 dynamicId; - Uint32 version; -}; - -#endif - - - - - - - diff --git a/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp b/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp deleted file mode 100644 index 12b785723d9..00000000000 --- a/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* 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 CMVMI_CFGCONF_H -#define CMVMI_CFGCONF_H - -#include "SignalData.hpp" - -/** - * This signal is used for transfering the - * ISP_X Data - * - * I.e. Configuration data which is sent in a specific start phase - * - */ -class CmvmiCfgConf { - /** - * Sender(s) - */ - friend class Cmvmi; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - -public: - STATIC_CONST( NO_OF_WORDS = 16 ); - STATIC_CONST( LENGTH = 17 ); -private: - - Uint32 startPhase; - Uint32 theData[NO_OF_WORDS]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CntrMasterConf.hpp b/ndb/include/kernel/signaldata/CntrMasterConf.hpp deleted file mode 100644 index e6bf363ea68..00000000000 --- a/ndb/include/kernel/signaldata/CntrMasterConf.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* 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 CNTR_MASTERCONF_HPP -#define CNTR_MASTERCONF_HPP - -#include <NodeBitmask.hpp> - -/** - * This signals is sent by NdbCntr-Master to NdbCntr - */ -class CntrMasterConf { - /** - * Sender(s) - */ - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - - /** - * Reciver(s) - */ - -public: - STATIC_CONST( SignalLength = 1 + NodeBitmask::Size ); -private: - - Uint32 noStartNodes; - Uint32 theNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CntrMasterReq.hpp b/ndb/include/kernel/signaldata/CntrMasterReq.hpp deleted file mode 100644 index caf9efb1243..00000000000 --- a/ndb/include/kernel/signaldata/CntrMasterReq.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* 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 CNTR_MASTERREQ_HPP -#define CNTR_MASTERREQ_HPP - -#include <NodeBitmask.hpp> - -/** - * This signals is sent by NdbCntr-Master to NdbCntr - */ -class CntrMasterReq { - /** - * Sender(s) - */ - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - - /** - * Reciver(s) - */ - -public: - STATIC_CONST( SignalLength = 4 + NodeBitmask::Size ); -private: - - Uint32 userBlockRef; - Uint32 userNodeId; - Uint32 typeOfStart; - Uint32 noRestartNodes; - Uint32 theNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CntrStart.hpp b/ndb/include/kernel/signaldata/CntrStart.hpp deleted file mode 100644 index abdd1003c0f..00000000000 --- a/ndb/include/kernel/signaldata/CntrStart.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef CNTR_START_HPP -#define CNTR_START_HPP - -#include <NodeBitmask.hpp> - -/** - * - */ -class CntrStartReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - - friend bool printCNTR_START_REQ(FILE*, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 nodeId; - Uint32 startType; - Uint32 lastGci; -}; - -class CntrStartRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - - friend bool printCNTR_START_REF(FILE*, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - OK = 0, - NotMaster = 1, - StopInProgress = 2 - }; -private: - - Uint32 errorCode; - Uint32 masterNodeId; -}; - -class CntrStartConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend struct UpgradeStartup; - - friend bool printCNTR_START_CONF(FILE*, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 + 2 * NdbNodeBitmask::Size ); - -private: - - Uint32 startType; - Uint32 startGci; - Uint32 masterNodeId; - Uint32 noStartNodes; - Uint32 startedNodes[NdbNodeBitmask::Size]; - Uint32 startingNodes[NdbNodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ConfigParamId.hpp b/ndb/include/kernel/signaldata/ConfigParamId.hpp deleted file mode 100644 index 9d9e04957ab..00000000000 --- a/ndb/include/kernel/signaldata/ConfigParamId.hpp +++ /dev/null @@ -1,71 +0,0 @@ -/* 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 ConfigParamId_H -#define ConfigParamId_H - - enum ConfigParamId { - - Id, - ExecuteOnComputer, - MaxNoOfSavedMessages, - ShmKey, - - LockPagesInMainMemory, - TimeBetweenWatchDogCheck, - StopOnError, - - MaxNoOfConcurrentOperations, - MaxNoOfConcurrentTransactions, - MemorySpaceIndexes, - MemorySpaceTuples, - MemoryDiskPages, - NoOfFreeDiskClusters, - NoOfDiskClusters, - - TimeToWaitAlive, - HeartbeatIntervalDbDb, - HeartbeatIntervalDbApi, - ArbitTimeout, - - TimeBetweenLocalCheckpoints, - TimeBetweenGlobalCheckpoints, - NoOfFragmentLogFiles, - NoOfConcurrentCheckpointsDuringRestart, - TransactionDeadlockDetectionTimeout, - TransactionInactiveTime, - NoOfConcurrentProcessesHandleTakeover, - - NoOfConcurrentCheckpointsAfterRestart, - - NoOfDiskPagesToDiskDuringRestartTUP, - NoOfDiskPagesToDiskAfterRestartTUP, - NoOfDiskPagesToDiskDuringRestartACC, - NoOfDiskPagesToDiskAfterRestartACC, - - NoOfDiskClustersPerDiskFile, - NoOfDiskFiles, - - MaxNoOfSavedEvents - }; - -#endif // ConfigParamId_H - - - - - - diff --git a/ndb/include/kernel/signaldata/ContinueFragmented.hpp b/ndb/include/kernel/signaldata/ContinueFragmented.hpp deleted file mode 100644 index 3d12b9e51eb..00000000000 --- a/ndb/include/kernel/signaldata/ContinueFragmented.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* 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 CONTINUE_FRAGMENTED_HPP -#define CONTINUE_FRAGMENTED_HPP - -#include "SignalData.hpp" - -class ContinueFragmented { - - /** - * Sender/Reciver(s) - */ - friend class SimulatedBlock; - - friend bool printCONTINUE_FRAGMENTED(FILE *,const Uint32 *, Uint32, Uint16); -public: - -private: - Uint32 line; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CopyActive.hpp b/ndb/include/kernel/signaldata/CopyActive.hpp deleted file mode 100644 index 19b05bda072..00000000000 --- a/ndb/include/kernel/signaldata/CopyActive.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* 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 COPY_ACTIVE_HPP -#define COPY_ACTIVE_HPP - -#include "SignalData.hpp" - -class CopyActiveReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 tableId; - Uint32 fragId; - Uint32 distributionKey; -}; - -class CopyActiveConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 userPtr; - Uint32 startingNodeId; - Uint32 tableId; - Uint32 fragId; - Uint32 startGci; -}; -class CopyActiveRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 userPtr; - Uint32 startingNodeId; - Uint32 tableId; - Uint32 fragId; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CopyFrag.hpp b/ndb/include/kernel/signaldata/CopyFrag.hpp deleted file mode 100644 index 67b935dda64..00000000000 --- a/ndb/include/kernel/signaldata/CopyFrag.hpp +++ /dev/null @@ -1,87 +0,0 @@ -/* 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 COPY_FRAG_HPP -#define COPY_FRAG_HPP - -#include "SignalData.hpp" - -class CopyFragReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 tableId; - Uint32 fragId; - Uint32 nodeId; - Uint32 schemaVersion; - Uint32 distributionKey; -}; - -class CopyFragConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 userPtr; - Uint32 sendingNodeId; - Uint32 startingNodeId; - Uint32 tableId; - Uint32 fragId; -}; -class CopyFragRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 userPtr; - Uint32 sendingNodeId; - Uint32 startingNodeId; - Uint32 tableId; - Uint32 fragId; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CopyGCIReq.hpp b/ndb/include/kernel/signaldata/CopyGCIReq.hpp deleted file mode 100644 index 4b401654de3..00000000000 --- a/ndb/include/kernel/signaldata/CopyGCIReq.hpp +++ /dev/null @@ -1,63 +0,0 @@ -/* 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 COPY_GCI_REQ_HPP -#define COPY_GCI_REQ_HPP - -#include "SignalData.hpp" - -/** - * This signal is used for transfering the sysfile - * between Dih on different nodes. - * - * The master will distributes the file to the other nodes - * - * Since the Sysfile can be larger than on StartMeConf signal, - * there might be more than on of these signals sent before - * the entire sysfile is transfered - - */ -class CopyGCIReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - friend bool printCOPY_GCI_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - enum CopyReason { - IDLE = 0, - LOCAL_CHECKPOINT = 1, - RESTART = 2, - GLOBAL_CHECKPOINT = 3, - INITIAL_START_COMPLETED = 4 - }; - -private: - - Uint32 anyData; - Uint32 copyReason; - Uint32 startWord; - - /** - * No of free words to carry data - */ - STATIC_CONST( DATA_SIZE = 22 ); - - Uint32 data[DATA_SIZE]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CreateEvnt.hpp b/ndb/include/kernel/signaldata/CreateEvnt.hpp deleted file mode 100644 index 8712ce8890c..00000000000 --- a/ndb/include/kernel/signaldata/CreateEvnt.hpp +++ /dev/null @@ -1,487 +0,0 @@ -/* 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 CREATE_EVNT_HPP -#define CREATE_EVNT_HPP - -#include <ndberror.h> -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <signaldata/DictTabInfo.hpp> - -/** - * DropEvntReq. - */ -class DropEvntReq { - friend bool printDROP_EVNT_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - SECTION( EVENT_NAME_SECTION = 0 ); - - union { // user block reference - Uint32 senderRef; - Uint32 m_userRef; - }; - union { - Uint32 senderData; - Uint32 m_userData; // user - }; - - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } -}; - -/** - * DropEvntConf. - */ -class DropEvntConf { - friend bool printDROP_EVNT_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - - union { // user block reference - Uint32 senderRef; - Uint32 m_userRef; - }; - union { - Uint32 senderData; - Uint32 m_userData; // user - }; - - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } -}; - -/** - * DropEvntRef. - */ -class DropEvntRef { - friend bool printDROP_EVNT_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - Undefined = 1, - UndefinedTCError = 2, - NF_FakeErrorREF = 11, - Busy = 701, - NotMaster = 702, - SeizeError = 703, - EventNotFound = 4710, - EventNameTooLong = 4241, - TooManyEvents = 4242, - BadRequestType = 4247, - InvalidName = 4248, - InvalidPrimaryTable = 4249, - InvalidEventType = 4250, - NotUnique = 4251, - AllocationError = 4252, - CreateEventTableFailed = 4253, - InvalidAttributeOrder = 4255, - Temporary = 0x1 << 16 - }; - - STATIC_CONST( SignalLength = 5 ); - - union { // user block reference - Uint32 senderRef; - Uint32 m_userRef; - }; - union { - Uint32 senderData; - Uint32 m_userData; // user - }; - union { - Uint32 errorCode; - Uint32 m_errorCode; - }; - Uint32 m_errorLine; - Uint32 m_errorNode; - - bool isTemporary() const - { return (errorCode & Temporary) > 0; } - - void setTemporary() - { errorCode |= Temporary; } - - ErrorCode setTemporary(ErrorCode ec) - { return (ErrorCode) (errorCode = ((Uint32) ec | (Uint32)Temporary)); } - - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } - DropEvntRef::ErrorCode getErrorCode() const { - return (DropEvntRef::ErrorCode)m_errorCode; - } - void setErrorCode(DropEvntRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -/** - * CreateEvntReq. - */ -struct CreateEvntReq { - friend bool printCREATE_EVNT_REQ(FILE*, const Uint32*, Uint32, Uint16); - - enum RequestType { - RT_UNDEFINED = 0, - RT_USER_CREATE = 1, - RT_USER_GET = 2, - - RT_DICT_AFTER_GET = 0x1 << 4 - // RT_DICT_MASTER = 0x2 << 4, - - // RT_DICT_COMMIT = 0xC << 4, - // RT_DICT_ABORT = 0xF << 4, - // RT_TC = 5 << 8 - }; - STATIC_CONST( SignalLengthGet = 3 ); - STATIC_CONST( SignalLengthCreate = 5+MAXNROFATTRIBUTESINWORDS ); - STATIC_CONST( SignalLength = 7+MAXNROFATTRIBUTESINWORDS ); - // SECTION( ATTRIBUTE_LIST_SECTION = 0 ); - SECTION( EVENT_NAME_SECTION = 0 ); - - union { - Uint32 m_userRef; // user block reference - Uint32 senderRef; // user block reference - }; - union { - Uint32 m_userData; // user - Uint32 senderData; // user - }; - Uint32 m_requestInfo; - Uint32 m_tableId; // table to event - AttributeMask::Data m_attrListBitmask; - Uint32 m_eventType; // from DictTabInfo::TableType - Uint32 m_eventId; // event table id set by DICT/SUMA - Uint32 m_eventKey; // event table key set by DICT/SUMA - - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } - CreateEvntReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (CreateEvntReq::RequestType)val; - } - void setRequestType(CreateEvntReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - AttributeMask getAttrListBitmask() const { - AttributeMask tmp; - tmp.assign(m_attrListBitmask); - return tmp; - } - void setAttrListBitmask(const AttributeMask & val) { - AttributeMask::assign(m_attrListBitmask.data, val); - } - Uint32 getEventType() const { - return m_eventType; - } - void setEventType(Uint32 val) { - m_eventType = (Uint32)val; - } - Uint32 getEventId() const { - return m_eventId; - } - void setEventId(Uint32 val) { - m_eventId = val; - } - Uint32 getEventKey() const { - return m_eventKey; - } - void setEventKey(Uint32 val) { - m_eventKey = val; - } -}; - -/** - * CreateEvntConf. - */ -class CreateEvntConf { - friend bool printCREATE_EVNT_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - // STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 7+MAXNROFATTRIBUTESINWORDS ); - - union { - Uint32 m_userRef; // user block reference - Uint32 senderRef; // user block reference - }; - union { - Uint32 m_userData; // user - Uint32 senderData; // user - }; - Uint32 m_requestInfo; - Uint32 m_tableId; - AttributeMask m_attrListBitmask; - Uint32 m_eventType; - Uint32 m_eventId; - Uint32 m_eventKey; - - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } - CreateEvntReq::RequestType getRequestType() const { - return (CreateEvntReq::RequestType)m_requestInfo; - } - void setRequestType(CreateEvntReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - AttributeMask getAttrListBitmask() const { - return m_attrListBitmask; - } - void setAttrListBitmask(const AttributeMask & val) { - m_attrListBitmask = val; - } - Uint32 getEventType() const { - return m_eventType; - } - void setEventType(Uint32 val) { - m_eventType = (Uint32)val; - } - Uint32 getEventId() const { - return m_eventId; - } - void setEventId(Uint32 val) { - m_eventId = val; - } - Uint32 getEventKey() const { - return m_eventKey; - } - void setEventKey(Uint32 val) { - m_eventKey = val; - } -}; - -/** - * CreateEvntRef. - */ -struct CreateEvntRef { - friend class SafeCounter; - friend bool printCREATE_EVNT_REF(FILE*, const Uint32*, Uint32, Uint16); - - STATIC_CONST( SignalLength = 10 ); - enum ErrorCode { - NoError = 0, - Undefined = 1, - UndefinedTCError = 2, - NF_FakeErrorREF = 11, - Busy = 701, - NotMaster = 702, - SeizeError = 703, - TooManyEvents = 4707, - EventNameTooLong = 4708, - EventNameExists = 746, - EventNotFound = 4731, - AttributeNullable = 4246, - BadRequestType = 4247, - InvalidName = 4248, - InvalidPrimaryTable = 4249, - InvalidEventType = 4250, - NotUnique = 4251, - AllocationError = 4252, - CreateEventTableFailed = 4711, - InvalidAttributeOrder = 4255, - Temporary = 0x1 << 16 - }; - bool isTemporary() const; - void setTemporary(); - ErrorCode setTemporary(ErrorCode ec); - static ErrorCode makeTemporary(ErrorCode ec); - - union { - Uint32 m_userRef; // user block reference - Uint32 senderRef; // user block reference - }; - union { - Uint32 m_userData; // user - Uint32 senderData; // user - }; - - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_eventType; - Uint32 m_eventId; - Uint32 m_eventKey; - Uint32 errorCode; - Uint32 m_errorLine; - Uint32 m_errorNode; - -#if 0 - CreateEvntConf* getConf() { - return &m_conf; - } - const CreateEvntConf* getConf() const { - return &m_conf; - } -#endif - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getUserData() const { - return m_userData; - } - void setUserData(Uint32 val) { - m_userData = val; - } - CreateEvntReq::RequestType getRequestType() const { - return (CreateEvntReq::RequestType)m_requestInfo; - } - void setRequestType(CreateEvntReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - - Uint32 getEventType() const { - return m_eventType; - } - void setEventType(Uint32 val) { - m_eventType = (Uint32)val; - } - Uint32 getEventId() const { - return m_eventId; - } - void setEventId(Uint32 val) { - m_eventId = val; - } - Uint32 getEventKey() const { - return m_eventKey; - } - void setEventKey(Uint32 val) { - m_eventKey = val; - } - - CreateEvntRef::ErrorCode getErrorCode() const { - return (CreateEvntRef::ErrorCode)errorCode; - } - void setErrorCode(CreateEvntRef::ErrorCode val) { - errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; -inline bool CreateEvntRef::isTemporary() const -{ return (errorCode & CreateEvntRef::Temporary) > 0; } -inline void CreateEvntRef::setTemporary() -{ errorCode |= CreateEvntRef::Temporary; } -inline CreateEvntRef::ErrorCode CreateEvntRef::setTemporary(ErrorCode ec) -{ return (CreateEvntRef::ErrorCode) - (errorCode = ((Uint32) ec | (Uint32)CreateEvntRef::Temporary)); } -inline CreateEvntRef::ErrorCode CreateEvntRef::makeTemporary(ErrorCode ec) -{ return (CreateEvntRef::ErrorCode) - ( (Uint32) ec | (Uint32)CreateEvntRef::Temporary ); } - -#endif diff --git a/ndb/include/kernel/signaldata/CreateFrag.hpp b/ndb/include/kernel/signaldata/CreateFrag.hpp deleted file mode 100644 index a7b3f836353..00000000000 --- a/ndb/include/kernel/signaldata/CreateFrag.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* 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 CREATE_FRAG_HPP -#define CREATE_FRAG_HPP - -class CreateFragReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 8 ); - - enum ReplicaType { - STORED = 7, - COMMIT_STORED = 9 - }; -private: - - Uint32 userPtr; - BlockReference userRef; - Uint32 tableId; - Uint32 fragId; - Uint32 startingNodeId; - Uint32 copyNodeId; - Uint32 startGci; - Uint32 replicaType; -}; - -class CreateFragConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 5 ); -private: - - Uint32 userPtr; - Uint32 tableId; - Uint32 fragId; - Uint32 sendingNodeId; - Uint32 startingNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/CreateFragmentation.hpp b/ndb/include/kernel/signaldata/CreateFragmentation.hpp deleted file mode 100644 index 7d53dd91154..00000000000 --- a/ndb/include/kernel/signaldata/CreateFragmentation.hpp +++ /dev/null @@ -1,101 +0,0 @@ -/* 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 CREATE_FRAGMENTATION_REQ_HPP -#define CREATE_FRAGMENTATION_REQ_HPP - -#include "SignalData.hpp" - -class CreateFragmentationReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; - - friend bool printCREATE_FRAGMENTATION_REQ(FILE *, - const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 fragmentationType; - Uint32 noOfFragments; - Uint32 fragmentNode; - Uint32 primaryTableId; // use same fragmentation as this table if not RNIL -}; - -class CreateFragmentationRef { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printCREATE_FRAGMENTATION_REF(FILE *, - const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - enum ErrorCode { - OK = 0 - ,InvalidFragmentationType = 1 - ,InvalidNodeId = 2 - ,InvalidNodeType = 3 - ,InvalidPrimaryTable = 4 - }; - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 errorCode; -}; - -class CreateFragmentationConf { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printCREATE_FRAGMENTATION_CONF(FILE *, - const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - SECTION( FRAGMENTS = 0 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 noOfReplicas; - Uint32 noOfFragments; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CreateIndx.hpp b/ndb/include/kernel/signaldata/CreateIndx.hpp deleted file mode 100644 index a9dc653f349..00000000000 --- a/ndb/include/kernel/signaldata/CreateIndx.hpp +++ /dev/null @@ -1,295 +0,0 @@ -/* 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 CREATE_INDX_HPP -#define CREATE_INDX_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <signaldata/DictTabInfo.hpp> - -/** - * CreateIndxReq. - */ -class CreateIndxReq { - friend bool printCREATE_INDX_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TC = 5 << 8 - }; - STATIC_CONST( SignalLength = 8 ); - SECTION( ATTRIBUTE_LIST_SECTION = 0 ); - SECTION( INDEX_NAME_SECTION = 1 ); - -private: - Uint32 m_connectionPtr; // user "schema connection" - Uint32 m_userRef; // user block reference - Uint32 m_requestInfo; - Uint32 m_tableId; // table to index - Uint32 m_indexType; // from DictTabInfo::TableType - Uint32 m_indexId; // index table id set by DICT - Uint32 m_indexVersion; // index table version set by DICT - Uint32 m_online; // alter online - // extra - Uint32 m_opKey; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - CreateIndxReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (CreateIndxReq::RequestType)val; - } - void setRequestType(CreateIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - DictTabInfo::TableType getIndexType() const { - return (DictTabInfo::TableType)m_indexType; - } - void setIndexType(DictTabInfo::TableType val) { - m_indexType = (Uint32)val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getOnline() const { - return m_online; - } - void setOnline(Uint32 val) { - m_online = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * CreateIndxConf. - */ -class CreateIndxConf { - friend bool printCREATE_INDX_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 m_connectionPtr; - Uint32 m_userRef; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexType; - Uint32 m_indexId; - Uint32 m_indexVersion; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - CreateIndxReq::RequestType getRequestType() const { - return (CreateIndxReq::RequestType)m_requestInfo; - } - void setRequestType(CreateIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - DictTabInfo::TableType getIndexType() const { - return (DictTabInfo::TableType)m_indexType; - } - void setIndexType(DictTabInfo::TableType val) { - m_indexType = (Uint32)val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } -}; - -/** - * CreateIndxRef. - */ -struct CreateIndxRef { - friend bool printCREATE_INDX_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = CreateIndxReq::SignalLength + 3 ); - enum ErrorCode { - NoError = 0, - Busy = 701, - NotMaster = 702, - TriggerNotFound = 4238, - TriggerExists = 4239, - IndexNameTooLong = 4241, - TooManyIndexes = 4242, - IndexExists = 4244, - AttributeNullable = 4246, - BadRequestType = 4247, - InvalidName = 4248, - InvalidPrimaryTable = 4249, - InvalidIndexType = 4250, - NotUnique = 4251, - AllocationError = 4252, - CreateIndexTableFailed = 4253, - DuplicateAttributes = 4258 - }; - - CreateIndxConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexType; - //Uint32 m_indexId; - //Uint32 m_indexVersion; - Uint32 m_errorCode; - Uint32 m_errorLine; - union { - Uint32 m_errorNode; - Uint32 masterNodeId; // If NotMaster - }; -public: - CreateIndxConf* getConf() { - return &m_conf; - } - const CreateIndxConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - CreateIndxReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(CreateIndxReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - DictTabInfo::TableType getIndexType() const { - return m_conf.getIndexType(); - } - void setIndexType(DictTabInfo::TableType val) { - m_conf.setIndexType(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - Uint32 getIndexVersion() const { - return m_conf.getIndexVersion(); - } - void setIndexVersion(Uint32 val) { - m_conf.setIndexVersion(val); - } - CreateIndxRef::ErrorCode getErrorCode() const { - return (CreateIndxRef::ErrorCode)m_errorCode; - } - void setErrorCode(CreateIndxRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CreateTab.hpp b/ndb/include/kernel/signaldata/CreateTab.hpp deleted file mode 100644 index b2ef52a6bf7..00000000000 --- a/ndb/include/kernel/signaldata/CreateTab.hpp +++ /dev/null @@ -1,108 +0,0 @@ -/* 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 CREATE_TAB_HPP -#define CREATE_TAB_HPP - -#include "SignalData.hpp" - -/** - * CreateTab - * - * Implemenatation of CreateTable - */ -class CreateTabReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - - /** - * For printing - */ - friend bool printCREATE_TAB_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 8 ); - - enum RequestType { - CreateTablePrepare = 0, // Prepare create table - CreateTableCommit = 1, // Commit create table - CreateTableDrop = 2 // Prepare failed, drop instead - }; -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 clientRef; - Uint32 clientData; - - Uint32 tableId; - Uint32 tableVersion; - Uint32 gci; - Uint32 requestType; - - SECTION( DICT_TAB_INFO = 0 ); - SECTION( FRAGMENTATION = 1 ); -}; - -struct CreateTabRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - friend class SafeCounter; - - /** - * For printing - */ - friend bool printCREATE_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16); - - STATIC_CONST( SignalLength = 6 ); - STATIC_CONST( GSN = GSN_CREATE_TAB_REF ); - - enum ErrorCode { - NF_FakeErrorREF = 255 - }; - - - Uint32 senderRef; - Uint32 senderData; - Uint32 errorCode; - Uint32 errorLine; - Uint32 errorKey; - Uint32 errorStatus; -}; - -class CreateTabConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - - /** - * For printing - */ - friend bool printCREATE_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderRef; - Uint32 senderData; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CreateTable.hpp b/ndb/include/kernel/signaldata/CreateTable.hpp deleted file mode 100644 index 481b323fdb0..00000000000 --- a/ndb/include/kernel/signaldata/CreateTable.hpp +++ /dev/null @@ -1,142 +0,0 @@ -/* 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 CREATE_TABLE_HPP -#define CREATE_TABLE_HPP - -#include "SignalData.hpp" - -/** - * CreateTable - * - * This signal is sent by API to DICT/TRIX - * as a request to create a secondary index - * and then from TRIX to TRIX(n) and TRIX to TC. - */ -class CreateTableReq { - /** - * Sender(s) - */ - // API - - /** - * Sender(s) / Reciver(s) - */ - friend class NdbDictInterface; - friend class Dbdict; - friend class Ndbcntr; - - /** - * For printing - */ - friend bool printCREATE_TABLE_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 senderRef; - - SECTION( DICT_TAB_INFO = 0 ); -}; - -class CreateTableRef { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend class NdbDictInterface; - - /** - * For printing - */ - friend bool printCREATE_TABLE_REF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - - enum ErrorCode { - NoError = 0, - Busy = 701, - NotMaster = 702, - InvalidFormat = 703, - AttributeNameTooLong = 704, - TableNameTooLong = 705, - Inconsistency = 706, - NoMoreTableRecords = 707, - NoMoreAttributeRecords = 708, - AttributeNameTwice = 720, - TableAlreadyExist = 721, - InvalidArraySize = 736, - ArraySizeTooBig = 737, - RecordTooBig = 738, - InvalidPrimaryKeySize = 739, - NullablePrimaryKey = 740, - InvalidCharset = 743 - }; - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 masterNodeId; - Uint32 errorCode; - Uint32 errorLine; - Uint32 errorKey; - Uint32 status; - -public: - Uint32 getErrorCode() const { - return errorCode; - } - Uint32 getErrorLine() const { - return errorLine; - } -}; - -class CreateTableConf { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend class NdbDictInterface; - - /** - * For printing - */ - friend bool printCREATE_TABLE_REF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 tableVersion; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/CreateTrig.hpp b/ndb/include/kernel/signaldata/CreateTrig.hpp deleted file mode 100644 index 62627256dcf..00000000000 --- a/ndb/include/kernel/signaldata/CreateTrig.hpp +++ /dev/null @@ -1,417 +0,0 @@ -/* 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 CREATE_TRIG_HPP -#define CREATE_TRIG_HPP - -#include "SignalData.hpp" -#include <Bitmask.hpp> -#include <trigger_definitions.h> -#include <AttributeList.hpp> - -/** - * CreateTrigReq. - */ -class CreateTrigReq { - friend bool printCREATE_TRIG_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_ALTER_INDEX = 2, - RT_BUILD_INDEX = 3, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_CREATE = 2 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TC = 5 << 8, - RT_LQH = 6 << 8 - }; - STATIC_CONST( SignalLength = 9 + MAXNROFATTRIBUTESINWORDS); - SECTION( TRIGGER_NAME_SECTION = 0 ); - SECTION( ATTRIBUTE_MASK_SECTION = 1 ); // not yet in use - enum KeyValues { - TriggerNameKey = 0xa1 - }; - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; // only for index trigger - Uint32 m_triggerId; // only set by DICT - Uint32 m_triggerInfo; // flags | event | timing | type - Uint32 m_online; // alter online (not normally for subscription) - Uint32 m_receiverRef; // receiver for subscription trigger - AttributeMask m_attributeMask; - // extra - Uint32 m_opKey; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - CreateTrigReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (CreateTrigReq::RequestType)val; - } - void setRequestType(CreateTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } - Uint32 getTriggerInfo() const { - return m_triggerInfo; - } - void setTriggerInfo(Uint32 val) { - m_triggerInfo = val; - } - TriggerType::Value getTriggerType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 0, 8); - return (TriggerType::Value)val; - } - void setTriggerType(TriggerType::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 0, 8, (Uint32)val); - } - TriggerActionTime::Value getTriggerActionTime() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 8, 8); - return (TriggerActionTime::Value)val; - } - void setTriggerActionTime(TriggerActionTime::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 8, 8, (Uint32)val); - } - TriggerEvent::Value getTriggerEvent() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 16, 8); - return (TriggerEvent::Value)val; - } - void setTriggerEvent(TriggerEvent::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 16, 8, (Uint32)val); - } - bool getMonitorReplicas() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 24, 1); - } - void setMonitorReplicas(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 24, 1, val); - } - bool getMonitorAllAttributes() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 25, 1); - } - void setMonitorAllAttributes(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 25, 1, val); - } - Uint32 getOnline() const { - return m_online; - } - void setOnline(Uint32 val) { - m_online = val; - } - Uint32 getReceiverRef() const { - return m_receiverRef; - } - void setReceiverRef(Uint32 val) { - m_receiverRef = val; - } - AttributeMask& getAttributeMask() { - return m_attributeMask; - } - const AttributeMask& getAttributeMask() const { - return m_attributeMask; - } - void clearAttributeMask() { - m_attributeMask.clear(); - } - void setAttributeMask(const AttributeMask& val) { - m_attributeMask = val; - } - void setAttributeMask(Uint16 val) { - m_attributeMask.set(val); - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * CreateTrigConf. - */ -class CreateTrigConf { - friend bool printCREATE_TRIG_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; - Uint32 m_triggerId; - Uint32 m_triggerInfo; // BACKUP wants this - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - CreateTrigReq::RequestType getRequestType() const { - return (CreateTrigReq::RequestType)m_requestInfo; - } - void setRequestType(CreateTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } - Uint32 getTriggerInfo() const { - return m_triggerInfo; - } - void setTriggerInfo(Uint32 val) { - m_triggerInfo = val; - } - TriggerType::Value getTriggerType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 0, 8); - return (TriggerType::Value)val; - } - void setTriggerType(TriggerType::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 0, 8, (Uint32)val); - } - TriggerActionTime::Value getTriggerActionTime() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 8, 8); - return (TriggerActionTime::Value)val; - } - void setTriggerActionTime(TriggerActionTime::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 8, 8, (Uint32)val); - } - TriggerEvent::Value getTriggerEvent() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 16, 8); - return (TriggerEvent::Value)val; - } - void setTriggerEvent(TriggerEvent::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 16, 8, (Uint32)val); - } - bool getMonitorReplicas() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 24, 1); - } - void setMonitorReplicas(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 24, 1, val); - } - bool getMonitorAllAttributes() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 25, 1); - } - void setMonitorAllAttributes(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 25, 1, val); - } -}; - -/** - * CreateTrigRef. - */ -class CreateTrigRef { - friend bool printCREATE_TRIG_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - Busy = 701, - NotMaster = 702, - TriggerNameTooLong = 4236, - TooManyTriggers = 4237, - TriggerNotFound = 4238, - TriggerExists = 4239, - UnsupportedTriggerType = 4240, - BadRequestType = 4247, - InvalidName = 4248, - InvalidTable = 4249 - }; - STATIC_CONST( SignalLength = CreateTrigConf::SignalLength + 3 ); - -private: - CreateTrigConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexId; - //Uint32 m_triggerId; - //Uint32 m_triggerInfo; - Uint32 m_errorCode; - Uint32 m_errorLine; - union { - Uint32 m_errorNode; - Uint32 masterNodeId; // When NotMaster - }; -public: - CreateTrigConf* getConf() { - return &m_conf; - } - const CreateTrigConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - CreateTrigReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(CreateTrigReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - Uint32 getTriggerId() const { - return m_conf.getTriggerId(); - } - void setTriggerId(Uint32 val) { - m_conf.setTriggerId(val); - } - Uint32 getTriggerInfo() const { - return m_conf.getTriggerInfo(); - } - void setTriggerInfo(Uint32 val) { - m_conf.setTriggerInfo(val); - } - TriggerType::Value getTriggerType() const { - return m_conf.getTriggerType(); - } - void setTriggerType(TriggerType::Value val) { - m_conf.setTriggerType(val); - } - TriggerActionTime::Value getTriggerActionTime() const { - return m_conf.getTriggerActionTime(); - } - void setTriggerActionTime(TriggerActionTime::Value val) { - m_conf.setTriggerActionTime(val); - } - TriggerEvent::Value getTriggerEvent() const { - return m_conf.getTriggerEvent(); - } - void setTriggerEvent(TriggerEvent::Value val) { - m_conf.setTriggerEvent(val); - } - bool getMonitorReplicas() const { - return m_conf.getMonitorReplicas(); - } - void setMonitorReplicas(bool val) { - m_conf.setMonitorReplicas(val); - } - bool getMonitorAllAttributes() const { - return m_conf.getMonitorAllAttributes(); - } - void setMonitorAllAttributes(bool val) { - m_conf.setMonitorAllAttributes(val); - } - CreateTrigRef::ErrorCode getErrorCode() const { - return (CreateTrigRef::ErrorCode)m_errorCode; - } - void setErrorCode(CreateTrigRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DiAddTab.hpp b/ndb/include/kernel/signaldata/DiAddTab.hpp deleted file mode 100644 index 6b17515eb6f..00000000000 --- a/ndb/include/kernel/signaldata/DiAddTab.hpp +++ /dev/null @@ -1,90 +0,0 @@ -/* 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 DIADDTABREQ_HPP -#define DIADDTABREQ_HPP - -#include "SignalData.hpp" - -class DiAddTabReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 9 ); - SECTION( FRAGMENTATION = 0 ); - -private: - Uint32 connectPtr; - Uint32 tableId; - Uint32 fragType; - Uint32 kValue; - Uint32 noOfReplicas; //Currently not used - Uint32 storedTable; - Uint32 tableType; - Uint32 schemaVersion; - Uint32 primaryTableId; -}; - -class DiAddTabRef { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; -public: - STATIC_CONST( SignalLength = 2 ); - -private: - union { - Uint32 connectPtr; - Uint32 senderData; - }; - Uint32 errorCode; -}; - -class DiAddTabConf { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; -public: - STATIC_CONST( SignalLength = 1 ); - -private: - union { - Uint32 connectPtr; - Uint32 senderData; - }; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/DiGetNodes.hpp b/ndb/include/kernel/signaldata/DiGetNodes.hpp deleted file mode 100644 index 05ab6bfebb3..00000000000 --- a/ndb/include/kernel/signaldata/DiGetNodes.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* 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 DIGETNODES_HPP -#define DIGETNODES_HPP - -#include <NodeBitmask.hpp> -#include <ndb_limits.h> - -/** - * - */ -class DiGetNodesConf { - /** - * Receiver(s) - */ - friend class Dbtc; - /** - * Sender(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 3 + MAX_REPLICAS ); -private: - Uint32 zero; - Uint32 fragId; - Uint32 reqinfo; - Uint32 nodes[MAX_REPLICAS]; -}; -/** - * - */ -class DiGetNodesReq { - /** - * Sender(s) - */ - friend class Dbtc; - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( SignalLength = 3 ); -private: - Uint32 notUsed; - Uint32 tableId; - Uint32 hashValue; -}; -#endif diff --git a/ndb/include/kernel/signaldata/DictSchemaInfo.hpp b/ndb/include/kernel/signaldata/DictSchemaInfo.hpp deleted file mode 100644 index c15dcf2fd7a..00000000000 --- a/ndb/include/kernel/signaldata/DictSchemaInfo.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* 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 DICT_SCHEMA_INFO_HPP -#define DICT_SCHEMA_INFO_HPP - -#include "SignalData.hpp" - -class DictSchemaInfo { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 22 ); - -private: - Uint32 senderRef; - Uint32 offset; - Uint32 totalLen; - - /** - * Length in this = signal->length() - 3 - * Sender block ref = signal->senderBlockRef() - */ - - Uint32 schemaInfoData[22]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DictSizeAltReq.hpp b/ndb/include/kernel/signaldata/DictSizeAltReq.hpp deleted file mode 100644 index b40f0c8c1af..00000000000 --- a/ndb/include/kernel/signaldata/DictSizeAltReq.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* 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 DICT_SIZE_ALT_REQ_H -#define DICT_SIZE_ALT_REQ_H - - - -#include "SignalData.hpp" - -class DictSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dbdict; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_ATTRIBUTE = 1 ); - STATIC_CONST( IND_CONNECT = 2 ); - STATIC_CONST( IND_FRAG_CONNECT = 3 ); - STATIC_CONST( IND_TABLE = 4 ); - STATIC_CONST( IND_TC_CONNECT = 5 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[6]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DictStart.hpp b/ndb/include/kernel/signaldata/DictStart.hpp deleted file mode 100644 index 59310601f48..00000000000 --- a/ndb/include/kernel/signaldata/DictStart.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* 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 DICT_START_HPP -#define DICT_START_HPP - -class DictStartReq { - /** - * Sender(s) - */ - friend class Dbdih; - /** - * Receiver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - - Uint32 restartGci; - Uint32 senderRef; -}; - -class DictStartConf { - /** - * Sender(s) - */ - friend class Dbdict; - /** - * Receiver(s) - */ - friend class Dbdih; - -public: -private: - - Uint32 startingNodeId; - Uint32 startWord; -}; -#endif diff --git a/ndb/include/kernel/signaldata/DictTabInfo.hpp b/ndb/include/kernel/signaldata/DictTabInfo.hpp deleted file mode 100644 index 09b00cf8993..00000000000 --- a/ndb/include/kernel/signaldata/DictTabInfo.hpp +++ /dev/null @@ -1,515 +0,0 @@ -/* 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 DICT_TAB_INFO_HPP -#define DICT_TAB_INFO_HPP - -#include "SignalData.hpp" -#include <AttributeDescriptor.hpp> -#include <SimpleProperties.hpp> -#include <ndb_limits.h> -#include <trigger_definitions.h> -#include <NdbSqlUtil.hpp> - -#ifndef my_decimal_h - -// sql/my_decimal.h requires many more sql/*.h new to ndb -// for now, copy the bit we need TODO proper fix - -#define DECIMAL_MAX_LENGTH ((8 * 9) - 8) - -#ifndef NOT_FIXED_DEC -#define NOT_FIXED_DEC 31 -#endif - -C_MODE_START -extern int decimal_bin_size(int, int); -C_MODE_END - -inline int my_decimal_get_binary_size(uint precision, uint scale) -{ - return decimal_bin_size((int)precision, (int)scale); -} - -#endif - -#define DTIMAP(x, y, z) \ - { DictTabInfo::y, offsetof(x, z), SimpleProperties::Uint32Value, 0, (~0), 0 } - -#define DTIMAP2(x, y, z, u, v) \ - { DictTabInfo::y, offsetof(x, z), SimpleProperties::Uint32Value, u, v, 0 } - -#define DTIMAPS(x, y, z, u, v) \ - { DictTabInfo::y, offsetof(x, z), SimpleProperties::StringValue, u, v, 0 } - -#define DTIMAPB(x, y, z, u, v, l) \ - { DictTabInfo::y, offsetof(x, z), SimpleProperties::BinaryValue, u, v, \ - offsetof(x, l) } - -#define DTIBREAK(x) \ - { DictTabInfo::x, 0, SimpleProperties::InvalidValue, 0, 0, 0 } - -class DictTabInfo { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Backup; - friend class Dbdict; - friend class Ndbcntr; - friend class Trix; - friend class DbUtil; - // API - friend class NdbSchemaOp; - - /** - * For printing - */ - friend bool printDICTTABINFO(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - -public: - enum RequestType { - CreateTableFromAPI = 1, - AddTableFromDict = 2, // Between DICT's - CopyTable = 3, // Between DICT's - ReadTableFromDiskSR = 4, // Local in DICT - GetTabInfoConf = 5, - AlterTableFromAPI = 6 - }; - - enum KeyValues { - TableName = 1, // String, Mandatory - TableId = 2, //Mandatory between DICT's otherwise not allowed - TableVersion = 3, //Mandatory between DICT's otherwise not allowed - TableLoggedFlag = 4, //Default Logged - NoOfKeyAttr = 5, //Default 1 - NoOfAttributes = 6, //Mandatory - NoOfNullable = 7, //Deafult 0 - NoOfVariable = 8, //Default 0 - TableKValue = 9, //Default 6 - MinLoadFactor = 10, //Default 70 - MaxLoadFactor = 11, //Default 80 - KeyLength = 12, //Default 1 (No of words in primary key) - FragmentTypeVal = 13, //Default AllNodesSmallTable - TableTypeVal = 18, //Default TableType::UserTable - PrimaryTable = 19, //Mandatory for index otherwise RNIL - PrimaryTableId = 20, //ditto - IndexState = 21, - InsertTriggerId = 22, - UpdateTriggerId = 23, - DeleteTriggerId = 24, - CustomTriggerId = 25, - FrmLen = 26, - FrmData = 27, - FragmentCount = 128, // No of fragments in table (!fragment replicas) - FragmentDataLen = 129, - FragmentData = 130, // CREATE_FRAGMENTATION reply - TableEnd = 999, - - AttributeName = 1000, // String, Mandatory - AttributeId = 1001, //Mandatory between DICT's otherwise not allowed - AttributeType = 1002, //for osu 4.1->5.0.x - AttributeSize = 1003, //Default DictTabInfo::a32Bit - AttributeArraySize = 1005, //Default 1 - AttributeKeyFlag = 1006, //Default noKey - AttributeStorage = 1007, //Default MainMemory - AttributeNullableFlag = 1008, //Default NotNullable - AttributeDKey = 1010, //Default NotDKey - AttributeExtType = 1013, //Default ExtUnsigned - AttributeExtPrecision = 1014, //Default 0 - AttributeExtScale = 1015, //Default 0 - AttributeExtLength = 1016, //Default 0 - AttributeAutoIncrement = 1017, //Default false - AttributeDefaultValue = 1018, //Default value (printable string) - AttributeEnd = 1999 // - }; - // ---------------------------------------------------------------------- - // Part of the protocol is that we only transfer parameters which do not - // have a default value. Thus the default values are part of the protocol. - // ---------------------------------------------------------------------- - - - - // FragmentType constants - enum FragmentType { - AllNodesSmallTable = 0, - AllNodesMediumTable = 1, - AllNodesLargeTable = 2, - SingleFragment = 3 - }; - - // TableType constants + objects - enum TableType { - UndefTableType = 0, - SystemTable = 1, - UserTable = 2, - UniqueHashIndex = 3, - HashIndex = 4, - UniqueOrderedIndex = 5, - OrderedIndex = 6, - // constant 10 hardcoded in Dbdict.cpp - HashIndexTrigger = 10 + TriggerType::SECONDARY_INDEX, - SubscriptionTrigger = 10 + TriggerType::SUBSCRIPTION, - ReadOnlyConstraint = 10 + TriggerType::READ_ONLY_CONSTRAINT, - IndexTrigger = 10 + TriggerType::ORDERED_INDEX - }; - static inline bool - isTable(int tableType) { - return - tableType == SystemTable || - tableType == UserTable; - } - static inline bool - isIndex(int tableType) { - return - tableType == UniqueHashIndex || - tableType == HashIndex || - tableType == UniqueOrderedIndex || - tableType == OrderedIndex; - } - static inline bool - isUniqueIndex(int tableType) { - return - tableType == UniqueHashIndex || - tableType == UniqueOrderedIndex; - } - static inline bool - isNonUniqueIndex(int tableType) { - return - tableType == HashIndex || - tableType == OrderedIndex; - } - static inline bool - isHashIndex(int tableType) { - return - tableType == UniqueHashIndex || - tableType == HashIndex; - } - static inline bool - isOrderedIndex(int tableType) { - return - tableType == UniqueOrderedIndex || - tableType == OrderedIndex; - } - - // Object state for translating from/to API - enum ObjectState { - StateUndefined = 0, - StateOffline = 1, - StateBuilding = 2, - StateDropping = 3, - StateOnline = 4, - StateBroken = 9 - }; - - // Object store for translating from/to API - enum ObjectStore { - StoreUndefined = 0, - StoreTemporary = 1, - StorePermanent = 2 - }; - - // AttributeSize constants - STATIC_CONST( aBit = 0 ); - STATIC_CONST( an8Bit = 3 ); - STATIC_CONST( a16Bit = 4 ); - STATIC_CONST( a32Bit = 5 ); - STATIC_CONST( a64Bit = 6 ); - STATIC_CONST( a128Bit = 7 ); - - // Table data interpretation - struct Table { - char TableName[MAX_TAB_NAME_SIZE]; - Uint32 TableId; - char PrimaryTable[MAX_TAB_NAME_SIZE]; // Only used when "index" - Uint32 PrimaryTableId; - Uint32 TableLoggedFlag; - Uint32 NoOfKeyAttr; - Uint32 NoOfAttributes; - Uint32 NoOfNullable; - Uint32 NoOfVariable; - Uint32 TableKValue; - Uint32 MinLoadFactor; - Uint32 MaxLoadFactor; - Uint32 KeyLength; - Uint32 FragmentType; - Uint32 TableStorage; - Uint32 TableType; - Uint32 TableVersion; - Uint32 IndexState; - Uint32 InsertTriggerId; - Uint32 UpdateTriggerId; - Uint32 DeleteTriggerId; - Uint32 CustomTriggerId; - Uint32 FrmLen; - char FrmData[MAX_FRM_DATA_SIZE]; - Uint32 FragmentCount; - Uint32 FragmentDataLen; - Uint16 FragmentData[(MAX_FRAGMENT_DATA_BYTES+1)/2]; - - void init(); - }; - - static const - SimpleProperties::SP2StructMapping TableMapping[]; - - static const Uint32 TableMappingSize; - - // AttributeExtType values - enum ExtType { - ExtUndefined = NdbSqlUtil::Type::Undefined, - ExtTinyint = NdbSqlUtil::Type::Tinyint, - ExtTinyunsigned = NdbSqlUtil::Type::Tinyunsigned, - ExtSmallint = NdbSqlUtil::Type::Smallint, - ExtSmallunsigned = NdbSqlUtil::Type::Smallunsigned, - ExtMediumint = NdbSqlUtil::Type::Mediumint, - ExtMediumunsigned = NdbSqlUtil::Type::Mediumunsigned, - ExtInt = NdbSqlUtil::Type::Int, - ExtUnsigned = NdbSqlUtil::Type::Unsigned, - ExtBigint = NdbSqlUtil::Type::Bigint, - ExtBigunsigned = NdbSqlUtil::Type::Bigunsigned, - ExtFloat = NdbSqlUtil::Type::Float, - ExtDouble = NdbSqlUtil::Type::Double, - ExtOlddecimal = NdbSqlUtil::Type::Olddecimal, - ExtOlddecimalunsigned = NdbSqlUtil::Type::Olddecimalunsigned, - ExtDecimal = NdbSqlUtil::Type::Decimal, - ExtDecimalunsigned = NdbSqlUtil::Type::Decimalunsigned, - ExtChar = NdbSqlUtil::Type::Char, - ExtVarchar = NdbSqlUtil::Type::Varchar, - ExtBinary = NdbSqlUtil::Type::Binary, - ExtVarbinary = NdbSqlUtil::Type::Varbinary, - ExtDatetime = NdbSqlUtil::Type::Datetime, - ExtDate = NdbSqlUtil::Type::Date, - ExtBlob = NdbSqlUtil::Type::Blob, - ExtText = NdbSqlUtil::Type::Text, - ExtBit = NdbSqlUtil::Type::Bit, - ExtLongvarchar = NdbSqlUtil::Type::Longvarchar, - ExtLongvarbinary = NdbSqlUtil::Type::Longvarbinary, - ExtTime = NdbSqlUtil::Type::Time, - ExtYear = NdbSqlUtil::Type::Year, - ExtTimestamp = NdbSqlUtil::Type::Timestamp - }; - - // Attribute data interpretation - struct Attribute { - char AttributeName[MAX_TAB_NAME_SIZE]; - Uint32 AttributeId; - Uint32 AttributeType; // for osu 4.1->5.0.x - Uint32 AttributeSize; - Uint32 AttributeArraySize; - Uint32 AttributeKeyFlag; - Uint32 AttributeNullableFlag; - Uint32 AttributeDKey; - Uint32 AttributeExtType; - Uint32 AttributeExtPrecision; - Uint32 AttributeExtScale; - Uint32 AttributeExtLength; - Uint32 AttributeAutoIncrement; - char AttributeDefaultValue[MAX_ATTR_DEFAULT_VALUE_SIZE]; - - void init(); - - inline - Uint32 sizeInWords() - { - return ((1 << AttributeSize) * AttributeArraySize + 31) >> 5; - } - - // compute old-sty|e attribute size and array size - inline bool - translateExtType() { - switch (AttributeExtType) { - case DictTabInfo::ExtUndefined: - return false; - case DictTabInfo::ExtTinyint: - case DictTabInfo::ExtTinyunsigned: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtSmallint: - case DictTabInfo::ExtSmallunsigned: - AttributeSize = DictTabInfo::a16Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtMediumint: - case DictTabInfo::ExtMediumunsigned: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 3 * AttributeExtLength; - break; - case DictTabInfo::ExtInt: - case DictTabInfo::ExtUnsigned: - AttributeSize = DictTabInfo::a32Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtBigint: - case DictTabInfo::ExtBigunsigned: - AttributeSize = DictTabInfo::a64Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtFloat: - AttributeSize = DictTabInfo::a32Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtDouble: - AttributeSize = DictTabInfo::a64Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtOlddecimal: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = - (1 + AttributeExtPrecision + (int(AttributeExtScale) > 0)) * - AttributeExtLength; - break; - case DictTabInfo::ExtOlddecimalunsigned: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = - (0 + AttributeExtPrecision + (int(AttributeExtScale) > 0)) * - AttributeExtLength; - break; - case DictTabInfo::ExtDecimal: - case DictTabInfo::ExtDecimalunsigned: - { - // copy from Field_new_decimal ctor - uint precision = AttributeExtPrecision; - uint scale = AttributeExtScale; - if (precision > DECIMAL_MAX_LENGTH || scale >= NOT_FIXED_DEC) - precision = DECIMAL_MAX_LENGTH; - uint bin_size = my_decimal_get_binary_size(precision, scale); - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = bin_size * AttributeExtLength; - } - break; - case DictTabInfo::ExtChar: - case DictTabInfo::ExtBinary: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtVarchar: - case DictTabInfo::ExtVarbinary: - if (AttributeExtLength > 0xff) - return false; - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = AttributeExtLength + 1; - break; - case DictTabInfo::ExtDatetime: - // to fix - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 8 * AttributeExtLength; - break; - case DictTabInfo::ExtDate: - // to fix - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 3 * AttributeExtLength; - break; - case DictTabInfo::ExtBlob: - case DictTabInfo::ExtText: - AttributeSize = DictTabInfo::an8Bit; - // head + inline part (length in precision lower half) - AttributeArraySize = (NDB_BLOB_HEAD_SIZE << 2) + (AttributeExtPrecision & 0xFFFF); - break; - case DictTabInfo::ExtBit: - AttributeSize = DictTabInfo::aBit; - AttributeArraySize = AttributeExtLength; - break; - case DictTabInfo::ExtLongvarchar: - case DictTabInfo::ExtLongvarbinary: - if (AttributeExtLength > 0xffff) - return false; - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = AttributeExtLength + 2; - break; - case DictTabInfo::ExtTime: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 3 * AttributeExtLength; - break; - case DictTabInfo::ExtYear: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 1 * AttributeExtLength; - break; - case DictTabInfo::ExtTimestamp: - AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 4 * AttributeExtLength; - break; - default: - return false; - }; - return true; - } - - inline void print(FILE *out) { - fprintf(out, "AttributeId = %d\n", AttributeId); - fprintf(out, "AttributeType = %d\n", AttributeType); - fprintf(out, "AttributeSize = %d\n", AttributeSize); - fprintf(out, "AttributeArraySize = %d\n", AttributeArraySize); - fprintf(out, "AttributeKeyFlag = %d\n", AttributeKeyFlag); - fprintf(out, "AttributeStorage = %d\n", AttributeStorage); - fprintf(out, "AttributeNullableFlag = %d\n", AttributeNullableFlag); - fprintf(out, "AttributeDKey = %d\n", AttributeDKey); - fprintf(out, "AttributeGroup = %d\n", AttributeGroup); - fprintf(out, "AttributeAutoIncrement = %d\n", AttributeAutoIncrement); - fprintf(out, "AttributeExtType = %d\n", AttributeExtType); - fprintf(out, "AttributeExtPrecision = %d\n", AttributeExtPrecision); - fprintf(out, "AttributeExtScale = %d\n", AttributeExtScale); - fprintf(out, "AttributeExtLength = %d\n", AttributeExtLength); - fprintf(out, "AttributeDefaultValue = \"%s\"\n", - AttributeDefaultValue ? AttributeDefaultValue : ""); - } - }; - - static const - SimpleProperties::SP2StructMapping AttributeMapping[]; - - static const Uint32 AttributeMappingSize; - - // Signal constants - STATIC_CONST( DataLength = 20 ); - STATIC_CONST( HeaderLength = 5 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 requestType; - Uint32 totalLen; - Uint32 offset; - - /** - * Length of this data = signal->length() - HeaderLength - * Sender block ref = signal->senderBlockRef() - */ - - Uint32 tabInfoData[DataLength]; - -public: - enum Depricated - { - AttributeDGroup = 1009, //Default NotDGroup - AttributeStoredInd = 1011, //Default NotStored - SecondTableId = 17, //Mandatory between DICT's otherwise not allowed - FragmentKeyTypeVal = 16 //Default PrimaryKey - }; - - enum Unimplemented - { - TableStorageVal = 14, //Default StorageType::MainMemory - ScanOptimised = 15, //Default updateOptimised - AttributeGroup = 1012 //Default 0 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DihAddFrag.hpp b/ndb/include/kernel/signaldata/DihAddFrag.hpp deleted file mode 100644 index 6e5a24ee413..00000000000 --- a/ndb/include/kernel/signaldata/DihAddFrag.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* 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 DIHADDFRAG_HPP -#define DIHADDFRAG_HPP - -#include <NodeBitmask.hpp> -#include <ndb_limits.h> - -/** - * - */ -class DihAddFragConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 senderNodeId; - Uint32 tableId; -}; -/** - * - */ -class DihAddFragReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 10 + MAX_REPLICAS ); -private: - Uint32 masterRef; - Uint32 tableId; - Uint32 fragId; - Uint32 kValue; - Uint32 method; - Uint32 mask; - Uint32 hashPointer; - Uint32 noOfFragments; - Uint32 noOfBackups; - Uint32 storedTable; - Uint32 nodes[MAX_REPLICAS]; -}; -#endif diff --git a/ndb/include/kernel/signaldata/DihContinueB.hpp b/ndb/include/kernel/signaldata/DihContinueB.hpp deleted file mode 100644 index 77ecf360601..00000000000 --- a/ndb/include/kernel/signaldata/DihContinueB.hpp +++ /dev/null @@ -1,76 +0,0 @@ -/* 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 DIH_CONTINUEB_H -#define DIH_CONTINUEB_H - -#include "SignalData.hpp" - -class DihContinueB { - /** - * Sender(s)/Reciver(s) - */ - friend class Dbdih; - friend bool printCONTINUEB_DBDIH(FILE * output, const Uint32 * theData, - Uint32 len, Uint16); -private: - enum Type { - ZPACK_TABLE_INTO_PAGES = 1, - ZPACK_FRAG_INTO_PAGES = 2, - ZREAD_PAGES_INTO_TABLE = 3, - ZREAD_PAGES_INTO_FRAG = 4, - //ZREAD_TAB_DESCRIPTION = 5, - ZCOPY_TABLE = 6, - ZCOPY_TABLE_NODE = 7, - ZSTART_FRAGMENT = 8, - ZCOMPLETE_RESTART = 9, - ZREAD_TABLE_FROM_PAGES = 10, - ZSR_PHASE2_READ_TABLE = 11, - ZCHECK_TC_COUNTER = 12, - ZCALCULATE_KEEP_GCI = 13, - ZSTORE_NEW_LCP_ID = 14, - ZTABLE_UPDATE = 15, - ZCHECK_LCP_COMPLETED = 16, - ZINIT_LCP = 17, - ZADD_TABLE_MASTER_PAGES = 19, - ZDIH_ADD_TABLE_MASTER = 20, - ZADD_TABLE_SLAVE_PAGES = 21, - ZDIH_ADD_TABLE_SLAVE = 22, - ZSTART_GCP = 23, - ZCOPY_GCI = 24, - ZEMPTY_VERIFY_QUEUE = 25, - ZCHECK_GCP_STOP = 26, - ZREMOVE_NODE_FROM_TABLE = 27, - ZCOPY_NODE = 28, - ZSTART_TAKE_OVER = 29, - ZCHECK_START_TAKE_OVER = 30, - ZTO_START_COPY_FRAG = 31, - ZINITIALISE_RECORDS = 33, - ZINVALIDATE_NODE_LCP = 34, - ZSTART_PERMREQ_AGAIN = 35, - SwitchReplica = 36, - ZSEND_START_TO = 37, - ZSEND_ADD_FRAG = 38, - ZSEND_CREATE_FRAG = 39, - ZSEND_UPDATE_TO = 40, - ZSEND_END_TO = 41, - - WAIT_DROP_TAB_WRITING_TO_FILE = 42, - CHECK_WAIT_DROP_TAB_FAILED_LQH = 43 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DihSizeAltReq.hpp b/ndb/include/kernel/signaldata/DihSizeAltReq.hpp deleted file mode 100644 index 73279447859..00000000000 --- a/ndb/include/kernel/signaldata/DihSizeAltReq.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* 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 DIH_SIZE_ALT_REQ_H -#define DIH_SIZE_ALT_REQ_H - -#include "SignalData.hpp" - -class DihSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dbdih; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_API_CONNECT = 1 ); - STATIC_CONST( IND_CONNECT = 2 ); - STATIC_CONST( IND_FRAG_CONNECT = 3 ); - STATIC_CONST( IND_MORE_NODES = 4 ); - STATIC_CONST( IND_REPLICAS = 5 ); - STATIC_CONST( IND_TABLE = 6 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[7]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DihStartTab.hpp b/ndb/include/kernel/signaldata/DihStartTab.hpp deleted file mode 100644 index 75443e6070e..00000000000 --- a/ndb/include/kernel/signaldata/DihStartTab.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* 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 DIH_STARTTAB__HPP -#define DIH_STARTTAB__HPP - -#include "SignalData.hpp" - -class DihStartTabReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; -public: - STATIC_CONST( HeaderLength = 3 ); - -private: - - Uint32 senderRef; - Uint32 senderData; - Uint32 noOfTables; - - struct { - Uint32 tableId; - Uint32 schemaVersion; - } tables[10]; -}; - -class DihStartTabConf { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderRef; - Uint32 senderData; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DihSwitchReplica.hpp b/ndb/include/kernel/signaldata/DihSwitchReplica.hpp deleted file mode 100644 index d4212f510f3..00000000000 --- a/ndb/include/kernel/signaldata/DihSwitchReplica.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/* 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 DIH_SWITCH_REPLICA_HPP -#define DIH_SWITCH_REPLICA_HPP - -/** - * This signal is sent from master DIH to all DIH's - * switches primary / backup nodes for replica(s) - * - */ -class DihSwitchReplicaReq { - /** - * Sender/Reciver - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 4 + MAX_REPLICAS ); - -private: - /** - * Request Info - * - */ - Uint32 senderRef; - Uint32 tableId; - Uint32 fragNo; - Uint32 noOfReplicas; - Uint32 newNodeOrder[MAX_REPLICAS]; -}; - -class DihSwitchReplicaRef { - /** - * Sender/Reciver - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderNode; - Uint32 errorCode; // See StopPermRef::ErrorCode -}; - -class DihSwitchReplicaConf { - /** - * Sender/Reciver - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 senderNode; -}; -#endif diff --git a/ndb/include/kernel/signaldata/DisconnectRep.hpp b/ndb/include/kernel/signaldata/DisconnectRep.hpp deleted file mode 100644 index d7fcdc4fb35..00000000000 --- a/ndb/include/kernel/signaldata/DisconnectRep.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* 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 DISCONNECT_REP_HPP -#define DISCONNECT_REP_HPP - -#include "SignalData.hpp" - -/** - * - */ -class DisconnectRep { - /** - * Receiver(s) - */ - friend class Qmgr; - friend class Cmvmi; // Cmvmi - - /** - * Senders - */ - friend class Dbtc; - friend void reportDisconnect(void * , NodeId, Uint32); // TransporterCallback - - /** - * For printing - */ - friend bool printDISCONNECT_REP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrCode { - // ErrorCodes come from different sources - // for example TransporterCallback.hpp - // or inet errno - // This one is selected not to conflict with any of them - TcReportNodeFailed = 0xFF000001 - }; - -private: - - Uint32 nodeId; - Uint32 err; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/DropIndx.hpp b/ndb/include/kernel/signaldata/DropIndx.hpp deleted file mode 100644 index fd2ea7f0b7b..00000000000 --- a/ndb/include/kernel/signaldata/DropIndx.hpp +++ /dev/null @@ -1,255 +0,0 @@ -/* 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 DROP_INDX_HPP -#define DROP_INDX_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -/** - * DropIndxReq. - */ -class DropIndxReq { - friend bool printDROP_INDX_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TC = 5 << 8 - }; - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 m_connectionPtr; - Uint32 m_userRef; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; - Uint32 m_indexVersion; - // extra - Uint32 m_opKey; - -public: - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - DropIndxReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (DropIndxReq::RequestType)val; - } - void setRequestType(DropIndxReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * DropIndxConf. - */ -class DropIndxConf { - friend bool printDROP_INDX_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 m_connectionPtr; - Uint32 m_userRef; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; - Uint32 m_indexVersion; - -public: - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - DropIndxReq::RequestType getRequestType() const { - return (DropIndxReq::RequestType)m_requestInfo; - } - void setRequestType(DropIndxReq::RequestType val) { - m_requestInfo = val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getIndexVersion() const { - return m_indexVersion; - } - void setIndexVersion(Uint32 val) { - m_indexVersion = val; - } -}; - -/** - * DropIndxRef. - */ -struct DropIndxRef { - friend bool printDROP_INDX_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - InvalidIndexVersion = 241, - Busy = 701, - NotMaster = 702, - IndexNotFound = 4243, - BadRequestType = 4247, - InvalidName = 4248, - NotAnIndex = 4254 - }; - STATIC_CONST( SignalLength = DropIndxConf::SignalLength + 3 ); - - DropIndxConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexId; - //Uint32 m_indexVersion; - Uint32 m_errorCode; - Uint32 m_errorLine; - union { - Uint32 m_errorNode; - Uint32 masterNodeId; - }; -public: - DropIndxConf* getConf() { - return &m_conf; - } - const DropIndxConf* getConf() const { - return &m_conf; - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - DropIndxReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(DropIndxReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - Uint32 getIndexVersion() const { - return m_conf.getIndexVersion(); - } - void setIndexVersion(Uint32 val) { - m_conf.setIndexVersion(val); - } - DropIndxRef::ErrorCode getErrorCode() const { - return (DropIndxRef::ErrorCode)m_errorCode; - } - void setErrorCode(DropIndxRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DropTab.hpp b/ndb/include/kernel/signaldata/DropTab.hpp deleted file mode 100644 index dd3946d8cc0..00000000000 --- a/ndb/include/kernel/signaldata/DropTab.hpp +++ /dev/null @@ -1,115 +0,0 @@ -/* 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 DROP_TAB_HPP -#define DROP_TAB_HPP - -#include "SignalData.hpp" - -class DropTabReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbacc; - friend class Dbtup; - friend class Dbtux; - friend class Dbdih; - - friend bool printDROP_TAB_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum RequestType { - OnlineDropTab = 0, - CreateTabDrop = 1, - RestartDropTab = 2 - }; -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; - Uint32 requestType; -}; - -class DropTabConf { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbacc; - friend class Dbtup; - friend class Dbtux; - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printDROP_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; -}; - -class DropTabRef { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbacc; - friend class Dbtup; - friend class Dbtux; - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printDROP_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - NoSuchTable = 1, - DropWoPrep = 2, // Calling Drop with first calling PrepDrop - PrepDropInProgress = 3, - DropInProgress = 4, - NF_FakeErrorREF = 5 - }; - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DropTabFile.hpp b/ndb/include/kernel/signaldata/DropTabFile.hpp deleted file mode 100644 index 9ae4dae41c1..00000000000 --- a/ndb/include/kernel/signaldata/DropTabFile.hpp +++ /dev/null @@ -1,64 +0,0 @@ -/* 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 DROP_TABFILE_HPP -#define DROP_TABFILE_HPP - -#include "SignalData.hpp" - -class DropTabFileReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; - friend class Dbacc; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 primaryTableId; - Uint32 secondaryTableId; -}; -class DropTabFileConf { - /** - * Receiver(s) - */ - friend class Dbdict; - - /** - * Sender(s) - */ - friend class Dbdih; - friend class Dbacc; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 userPtr; - Uint32 senderRef; - Uint32 nodeId; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DropTable.hpp b/ndb/include/kernel/signaldata/DropTable.hpp deleted file mode 100644 index 7a5b96e4cd1..00000000000 --- a/ndb/include/kernel/signaldata/DropTable.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* 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 DROP_TABLE_HPP -#define DROP_TABLE_HPP - -#include "SignalData.hpp" - -class DropTableReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 4 ); -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 tableVersion; -}; - -class DropTableRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 6 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 tableVersion; - Uint32 errorCode; - Uint32 masterNodeId; - - enum ErrorCode { - Busy = 701, - NotMaster = 702, - NoSuchTable = 709, - InvalidTableVersion = 241, - DropInProgress = 283, - NoDropTableRecordAvailable = 1229 - }; -}; - -class DropTableConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 tableVersion; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DropTrig.hpp b/ndb/include/kernel/signaldata/DropTrig.hpp deleted file mode 100644 index 7c5049f3de8..00000000000 --- a/ndb/include/kernel/signaldata/DropTrig.hpp +++ /dev/null @@ -1,300 +0,0 @@ -/* 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 DROP_TRIG_HPP -#define DROP_TRIG_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <trigger_definitions.h> - -/** - * DropTrigReq. - */ -class DropTrigReq { - friend bool printDROP_TRIG_REQ(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum RequestType { - RT_UNDEFINED = 0, - RT_USER = 1, - RT_ALTER_INDEX = 2, - RT_BUILD_INDEX = 3, - RT_DICT_PREPARE = 1 << 4, - RT_DICT_COMMIT = 0xC << 4, - RT_DICT_ABORT = 0xF << 4, - RT_TC = 5 << 8, - RT_LQH = 6 << 8 - }; - STATIC_CONST( SignalLength = 7 ); - SECTION( TRIGGER_NAME_SECTION = 0 ); // optional - enum KeyValues { - TriggerNameKey = 0xa1 - }; - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; // set by DICT if index trigger - Uint32 m_triggerId; // set by DICT based on name - Uint32 m_triggerInfo; // only for TUP - // extra - Uint32 m_opKey; - -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - DropTrigReq::RequestType getRequestType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16); - return (DropTrigReq::RequestType)val; - } - void setRequestType(DropTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getRequestFlag() const { - return BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - }; - void addRequestFlag(Uint32 val) { - val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16); - BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val); - }; - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } - Uint32 getTriggerInfo() const { - return m_triggerInfo; - } - void setTriggerInfo(Uint32 val) { - m_triggerInfo = val; - } - TriggerType::Value getTriggerType() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 0, 8); - return (TriggerType::Value)val; - } - void setTriggerType(TriggerType::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 0, 8, (Uint32)val); - } - TriggerActionTime::Value getTriggerActionTime() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 8, 8); - return (TriggerActionTime::Value)val; - } - void setTriggerActionTime(TriggerActionTime::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 8, 8, (Uint32)val); - } - TriggerEvent::Value getTriggerEvent() const { - const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 16, 8); - return (TriggerEvent::Value)val; - } - void setTriggerEvent(TriggerEvent::Value val) { - BitmaskImpl::setField(1, &m_triggerInfo, 16, 8, (Uint32)val); - } - bool getMonitorReplicas() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 24, 1); - } - void setMonitorReplicas(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 24, 1, val); - } - bool getMonitorAllAttributes() const { - return BitmaskImpl::getField(1, &m_triggerInfo, 25, 1); - } - void setMonitorAllAttributes(bool val) { - BitmaskImpl::setField(1, &m_triggerInfo, 25, 1, val); - } - Uint32 getOpKey() const { - return m_opKey; - } - void setOpKey(Uint32 val) { - m_opKey = val; - } -}; - -/** - * DropTrigConf. - */ -class DropTrigConf { - friend bool printDROP_TRIG_CONF(FILE*, const Uint32*, Uint32, Uint16); - -public: - STATIC_CONST( InternalLength = 3 ); - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 m_userRef; - Uint32 m_connectionPtr; - Uint32 m_requestInfo; - Uint32 m_tableId; - Uint32 m_indexId; - Uint32 m_triggerId; - - // Public methods -public: - Uint32 getUserRef() const { - return m_userRef; - } - void setUserRef(Uint32 val) { - m_userRef = val; - } - Uint32 getConnectionPtr() const { - return m_connectionPtr; - } - void setConnectionPtr(Uint32 val) { - m_connectionPtr = val; - } - DropTrigReq::RequestType getRequestType() const { - return (DropTrigReq::RequestType)m_requestInfo; - } - void setRequestType(DropTrigReq::RequestType val) { - m_requestInfo = (Uint32)val; - } - Uint32 getTableId() const { - return m_tableId; - } - void setTableId(Uint32 val) { - m_tableId = val; - } - Uint32 getIndexId() const { - return m_indexId; - } - void setIndexId(Uint32 val) { - m_indexId = val; - } - Uint32 getTriggerId() const { - return m_triggerId; - } - void setTriggerId(Uint32 val) { - m_triggerId = val; - } -}; - -/** - * DropTrigRef. - */ -class DropTrigRef { - friend bool printDROP_TRIG_REF(FILE*, const Uint32*, Uint32, Uint16); - -public: - enum ErrorCode { - NoError = 0, - Busy = 701, - TriggerNotFound = 4238, - BadRequestType = 4247, - InvalidName = 4248 - }; - STATIC_CONST( SignalLength = DropTrigConf::SignalLength + 3 ); - -private: - DropTrigConf m_conf; - //Uint32 m_userRef; - //Uint32 m_connectionPtr; - //Uint32 m_requestInfo; - //Uint32 m_tableId; - //Uint32 m_indexId; - //Uint32 m_triggerId; - Uint32 m_errorCode; - Uint32 m_errorLine; - Uint32 m_errorNode; - -public: - DropTrigConf* getConf() { - return &m_conf; - } - const DropTrigConf* getConf() const { - return &m_conf; - } - Uint32 getUserRef() const { - return m_conf.getUserRef(); - } - void setUserRef(Uint32 val) { - m_conf.setUserRef(val); - } - Uint32 getConnectionPtr() const { - return m_conf.getConnectionPtr(); - } - void setConnectionPtr(Uint32 val) { - m_conf.setConnectionPtr(val); - } - DropTrigReq::RequestType getRequestType() const { - return m_conf.getRequestType(); - } - void setRequestType(DropTrigReq::RequestType val) { - m_conf.setRequestType(val); - } - Uint32 getTableId() const { - return m_conf.getTableId(); - } - void setTableId(Uint32 val) { - m_conf.setTableId(val); - } - Uint32 getIndexId() const { - return m_conf.getIndexId(); - } - void setIndexId(Uint32 val) { - m_conf.setIndexId(val); - } - Uint32 getTriggerId() const { - return m_conf.getTriggerId(); - } - void setTriggerId(Uint32 val) { - m_conf.setTriggerId(val); - } - DropTrigRef::ErrorCode getErrorCode() const { - return (DropTrigRef::ErrorCode)m_errorCode; - } - void setErrorCode(DropTrigRef::ErrorCode val) { - m_errorCode = (Uint32)val; - } - Uint32 getErrorLine() const { - return m_errorLine; - } - void setErrorLine(Uint32 val) { - m_errorLine = val; - } - Uint32 getErrorNode() const { - return m_errorNode; - } - void setErrorNode(Uint32 val) { - m_errorNode = val; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/DumpStateOrd.hpp b/ndb/include/kernel/signaldata/DumpStateOrd.hpp deleted file mode 100644 index 7368a0ec40d..00000000000 --- a/ndb/include/kernel/signaldata/DumpStateOrd.hpp +++ /dev/null @@ -1,138 +0,0 @@ -/* 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 DUMP_STATE_ORD_HPP -#define DUMP_STATE_ORD_HPP - -#include "SignalData.hpp" - -/** - * DumpStateOrd is sent by the mgmtsrvr to CMVMI. - * CMVMI the redirect the signal to all blocks. - * - * The implementation of the DumpStateOrd should dump state information - * (typically using the infoEvent-function) - */ -class DumpStateOrd { - /** - * Sender/Reciver - */ - friend class Cmvmi; - - /** - * Sender(s) - */ - friend class MgmtSrvr; - - /** - * Reciver(s) - */ - friend class Dbacc; - friend class Dblqh; - friend class Dbtup; - friend class Dbtc; - friend class Ndbcntr; - friend class Qmgr; - friend class Dbdih; - friend class Dbdict; - friend class Ndbfs; - -public: - enum DumpStateType { - // 1 QMGR Dump information about phase 1 variables - // 13 CMVMI Dump signal counter - // 13 NDBCNTR Dump start phase information - // 13 NDBCNTR_REF Dump start phase information - CommitAckMarkersSize = 14, // TC+LQH Dump free size in commitAckMarkerP - CommitAckMarkersDump = 15, // TC+LQH Dump info in commitAckMarkerPool - DihDumpNodeRestartInfo = 16, // 16 DIH Dump node restart info - DihDumpNodeStatusInfo = 17,// 17 DIH Dump node status info - DihPrintFragmentation = 18,// 18 DIH Print fragmentation - // 19 NDBFS Fipple with O_SYNC, O_CREATE etc. - // 20-24 BACKUP - NdbcntrTestStopOnError = 25, - // 100-105 TUP and ACC - // 200-240 UTIL - // 300-305 TRIX - NdbfsDumpFileStat = 400, - NdbfsDumpAllFiles = 401, - NdbfsDumpOpenFiles = 402, - NdbfsDumpIdleFiles = 403, - // 1222-1225 DICT - LqhDumpAllDefinedTabs = 1332, - LqhDumpNoLogPages = 1333, - LqhDumpOneScanRec = 2300, - LqhDumpAllScanRec = 2301, - LqhDumpAllActiveScanRec = 2302, - LqhDumpLcpState = 2303, - AccDumpOneScanRec = 2400, - AccDumpAllScanRec = 2401, - AccDumpAllActiveScanRec = 2402, - AccDumpOneOperationRec = 2403, - AccDumpNumOpRecs = 2404, - AccDumpFreeOpRecs = 2405, - AccDumpNotFreeOpRecs = 2406, - DumpPageMemory = 1000, // Acc & TUP - TcDumpAllScanFragRec = 2500, - TcDumpOneScanFragRec = 2501, - TcDumpAllScanRec = 2502, - TcDumpAllActiveScanRec = 2503, - TcDumpOneScanRec = 2504, - TcDumpOneApiConnectRec = 2505, - TcDumpAllApiConnectRec = 2506, - TcSetTransactionTimeout = 2507, - TcSetApplTransactionTimeout = 2508, - StartTcTimer = 2509, - StopTcTimer = 2510, - StartPeriodicTcTimer = 2511, - CmvmiDumpConnections = 2600, - CmvmiDumpLongSignalMemory = 2601, - CmvmiSetRestartOnErrorInsert = 2602, - CmvmiTestLongSigWithDelay = 2603, - // 7000 DIH - // 7001 DIH - // 7002 DIH - // 7003 DIH - // 7004 DIH - // 7005 DIH - // 7006 DIH - // 7006 DIH - // 7007 DIH - // 7008 DIH - // 7009 DIH - // 7010 DIH - // 7011 DIH - // 7012 DIH - DihDumpLCPState= 7013, - DihDumpLCPMasterTakeOver = 7014, - // 7015 DIH - DihAllAllowNodeStart = 7016, - DihMinTimeBetweenLCP = 7017, - DihMaxTimeBetweenLCP = 7018, - EnableUndoDelayDataWrite = 7080, // DIH+ACC+TUP - DihStartLcpImmediately = 7099, - // 8000 Suma - // 12000 Tux - TuxLogToFile = 12001, - TuxSetLogFlags = 12002, - TuxMetaDataJunk = 12009 - }; -public: - - Uint32 args[25]; // Generic argument -}; - -#endif diff --git a/ndb/include/kernel/signaldata/EmptyLcp.hpp b/ndb/include/kernel/signaldata/EmptyLcp.hpp deleted file mode 100644 index 32ea6c13231..00000000000 --- a/ndb/include/kernel/signaldata/EmptyLcp.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* 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 EMPTY_LCPREQ_HPP -#define EMPTY_LCPREQ_HPP - -/** - * This signals is sent by Dbdih-Master to Dblqh - * as part of master take over after node crash - */ -class EmptyLcpReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Sender(s) / Receiver(s) - */ - - /** - * Receiver(s) - */ - friend class Dblqh; - -public: - STATIC_CONST( SignalLength = 1 ); -private: - - Uint32 senderRef; -}; - -/** - * This signals is sent by Dblqh to Dbdih - * as part of master take over after node crash - */ -class EmptyLcpConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Sender(s) / Receiver(s) - */ - - /** - * Receiver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 6 ); -private: - - Uint32 senderNodeId; - Uint32 tableId; - Uint32 fragmentId; - Uint32 lcpNo; - Uint32 lcpId; - Uint32 idle; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/EndTo.hpp b/ndb/include/kernel/signaldata/EndTo.hpp deleted file mode 100644 index 944cca3ca98..00000000000 --- a/ndb/include/kernel/signaldata/EndTo.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* 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 END_TO_HPP -#define END_TO_HPP - -class EndToReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 4 ); -private: - Uint32 userPtr; - BlockReference userRef; - Uint32 startingNodeId; - Uint32 nodeTakenOver; -}; - -class EndToConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 userPtr; - Uint32 sendingNodeId; - Uint32 startingNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/EventReport.hpp b/ndb/include/kernel/signaldata/EventReport.hpp deleted file mode 100644 index 9822a0539cf..00000000000 --- a/ndb/include/kernel/signaldata/EventReport.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/* 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 SD_EVENT_REPORT_H -#define SD_EVENT_REPORT_H - -#include <ndb_logevent.h> -#include "SignalData.hpp" - -/** - * Send by different block to report that a event has taken place - * - * SENDER: *Block* - * RECIVER: SimBlockCMCtrBlck - */ -class EventReport { - friend class SimulatedBlock; - friend class Cmvmi; - friend class SimblockMissra; - friend class Dbacc; - friend class Dblqh; - friend class Dbtup; - friend class Dbtc; - friend class Ndbcntr; - friend class Qmgr; - friend class Dbdih; - friend class Dbdict; - friend class MgmtSrvr; - friend class Grep; -public: - /* - EventType defines what event reports to send. - - The ORDER is NOT important anymore. //ejonore 2003-07-24 15:03 - - HOW TO ADD A NEW EVENT - -------------------- - 1) Add SentHeartbeat EventType in the category where it belongs. - ... - // INFO - SentHeartbeat, - InfoEvent - ... - - 2) remeber to update # of events below. Just to keep count... - Number of event types = 53 - - 3) Add a new SentHeartBeat entry to EventLogger::matrix[]. - ... - // INFO - { EventReport::SentHeartbeat, LogLevel::llInfo, 11, INFO }, - { EventReport::InfoEvent, LogLevel::llInfo, 2, INFO } - ... - - 4) Add SentHeartbeat in EventLogger::getText() - - */ - void setEventType(Ndb_logevent_type type); - Ndb_logevent_type getEventType() const; - UintR eventType; // DATA 0 -}; - -inline -void -EventReport::setEventType(Ndb_logevent_type type){ - eventType = (UintR) type; -} - -inline -Ndb_logevent_type -EventReport::getEventType() const { - return (Ndb_logevent_type)eventType; -} - -#endif diff --git a/ndb/include/kernel/signaldata/EventSubscribeReq.hpp b/ndb/include/kernel/signaldata/EventSubscribeReq.hpp deleted file mode 100644 index 84a1717b1de..00000000000 --- a/ndb/include/kernel/signaldata/EventSubscribeReq.hpp +++ /dev/null @@ -1,66 +0,0 @@ -/* 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 SD_EVENT_SUB_REQ_H -#define SD_EVENT_SUB_REQ_H - -#include "SignalData.hpp" - -/** - * Requests change (new, update, delete) of event subscription, - * i.e. forwarding of events. - * - * SENDER: Mgm server - * RECIVER: SimBlockCMCtrBlck - */ - -struct EventSubscribeReq { - /** - * Receiver(s) - */ - friend class Cmvmi; - - /** - * Sender(s) - */ - friend class MgmtSrvr; - - STATIC_CONST( SignalLength = 2 + LogLevel::LOGLEVEL_CATEGORIES ); - - /** - * Note: If you use the same blockRef as you have used earlier, - * you update your ongoing subscription - */ - Uint32 blockRef; - - /** - * If you specify 0 entries, it's the same as cancelling an - * subscription - */ - Uint32 noOfEntries; - - Uint32 theData[LogLevel::LOGLEVEL_CATEGORIES]; - - EventSubscribeReq& operator= (const LogLevel& ll){ - noOfEntries = LogLevel::LOGLEVEL_CATEGORIES; - for(size_t i = 0; i<noOfEntries; i++){ - theData[i] = (i << 16) | ll.getLogLevel((LogLevel::EventCategory)i); - } - return * this; - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ExecFragReq.hpp b/ndb/include/kernel/signaldata/ExecFragReq.hpp deleted file mode 100644 index e40213d6e29..00000000000 --- a/ndb/include/kernel/signaldata/ExecFragReq.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* 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 EXEC_FRAGREQ_HPP -#define EXEC_FRAGREQ_HPP - -#include "SignalData.hpp" - -class ExecFragReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 6 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 tableId; - Uint32 fragId; - Uint32 startGci; - Uint32 lastGci; -}; -#endif diff --git a/ndb/include/kernel/signaldata/FailRep.hpp b/ndb/include/kernel/signaldata/FailRep.hpp deleted file mode 100644 index 44577f07fdc..00000000000 --- a/ndb/include/kernel/signaldata/FailRep.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* 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 FAIL_REP_HPP -#define FAIL_REP_HPP - -#include "SignalData.hpp" - -/** - * - */ -class FailRep { - /** - * Sender(s) & Reciver(s) - */ - friend class Qmgr; - - /** - * For printing - */ - friend bool printFAIL_REP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 2 ); - - enum FailCause { - ZOWN_FAILURE=0, - ZOTHER_NODE_WHEN_WE_START=1, - ZIN_PREP_FAIL_REQ=2, - ZSTART_IN_REGREQ=3, - ZHEARTBEAT_FAILURE=4, - ZLINK_FAILURE=5, - ZOTHERNODE_FAILED_DURING_START=6 - }; - -private: - - Uint32 failNodeId; - Uint32 failCause; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/FireTrigOrd.hpp b/ndb/include/kernel/signaldata/FireTrigOrd.hpp deleted file mode 100644 index 20a0a863094..00000000000 --- a/ndb/include/kernel/signaldata/FireTrigOrd.hpp +++ /dev/null @@ -1,200 +0,0 @@ -/* 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 FIRE_TRIG_ORD_HPP -#define FIRE_TRIG_ORD_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <trigger_definitions.h> -#include <string.h> - -/** - * FireTrigOrd - * - * This signal is sent by TUP to signal - * that a trigger has fired - */ -class FireTrigOrd { - /** - * Sender(s) - */ - // API - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbtup; - - /** - * Reciver(s) - */ - friend class Dbtc; - friend class Backup; - friend class SumaParticipant; - - /** - * For printing - */ - friend bool printFIRE_TRIG_ORD(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 7 ); - STATIC_CONST( SignalWithGCILength = 8 ); - STATIC_CONST( SignalWithHashValueLength = 9 ); - -private: - Uint32 m_connectionPtr; - Uint32 m_userRef; - Uint32 m_triggerId; - TriggerEvent::Value m_triggerEvent; - Uint32 m_noPrimKeyWords; - Uint32 m_noBeforeValueWords; - Uint32 m_noAfterValueWords; - Uint32 m_gci; - Uint32 m_hashValue; - // Public methods -public: - Uint32 getConnectionPtr() const; - void setConnectionPtr(Uint32); - Uint32 getUserRef() const; - void setUserRef(Uint32); - Uint32 getTriggerId() const; - void setTriggerId(Uint32 anIndxId); - TriggerEvent::Value getTriggerEvent() const; - void setTriggerEvent(TriggerEvent::Value); - Uint32 getNoOfPrimaryKeyWords() const; - void setNoOfPrimaryKeyWords(Uint32); - Uint32 getNoOfBeforeValueWords() const; - void setNoOfBeforeValueWords(Uint32); - Uint32 getNoOfAfterValueWords() const; - void setNoOfAfterValueWords(Uint32); - Uint32 getGCI() const; - void setGCI(Uint32); - Uint32 getHashValue() const; - void setHashValue(Uint32); -}; - -inline -Uint32 FireTrigOrd::getConnectionPtr() const -{ - return m_connectionPtr; -} - -inline -void FireTrigOrd::setConnectionPtr(Uint32 aConnectionPtr) -{ - m_connectionPtr = aConnectionPtr; -} - -inline -Uint32 FireTrigOrd::getUserRef() const -{ - return m_userRef; -} - -inline -void FireTrigOrd::setUserRef(Uint32 aUserRef) -{ - m_userRef = aUserRef; -} - -inline -Uint32 FireTrigOrd::getTriggerId() const -{ - return m_triggerId; -} - -inline -void FireTrigOrd::setTriggerId(Uint32 aTriggerId) -{ - m_triggerId = aTriggerId; -} - -inline -TriggerEvent::Value FireTrigOrd::getTriggerEvent() const -{ - return m_triggerEvent; -} - -inline -void FireTrigOrd::setTriggerEvent(TriggerEvent::Value aTriggerEvent) -{ - m_triggerEvent = aTriggerEvent; -} - -inline -Uint32 FireTrigOrd::getNoOfPrimaryKeyWords() const -{ - return m_noPrimKeyWords; -} - -inline -void FireTrigOrd::setNoOfPrimaryKeyWords(Uint32 noPrim) -{ - m_noPrimKeyWords = noPrim; -} - -inline -Uint32 FireTrigOrd::getNoOfBeforeValueWords() const -{ - return m_noBeforeValueWords; -} - -inline -void FireTrigOrd::setNoOfBeforeValueWords(Uint32 noBefore) -{ - m_noBeforeValueWords = noBefore; -} - -inline -Uint32 FireTrigOrd::getNoOfAfterValueWords() const -{ - return m_noAfterValueWords; -} - -inline -void FireTrigOrd::setNoOfAfterValueWords(Uint32 noAfter) -{ - m_noAfterValueWords = noAfter; -} - -inline -Uint32 FireTrigOrd::getGCI() const -{ - return m_gci; -} - -inline -void FireTrigOrd::setGCI(Uint32 aGCI) -{ - m_gci = aGCI; -} - -inline -Uint32 FireTrigOrd::getHashValue() const -{ - return m_hashValue; -} - -inline -void FireTrigOrd::setHashValue(Uint32 flag) -{ - m_hashValue = flag; -} - - -#endif diff --git a/ndb/include/kernel/signaldata/FsAppendReq.hpp b/ndb/include/kernel/signaldata/FsAppendReq.hpp deleted file mode 100644 index e2fd61f8a11..00000000000 --- a/ndb/include/kernel/signaldata/FsAppendReq.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* 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 FS_APPENDREQ_H -#define FS_APPENDREQ_H - -#include "SignalData.hpp" - -/** - * - * SENDER: - * RECIVER: Ndbfs - */ -class FsAppendReq { - /** - * Reciver(s) - */ - friend class Ndbfs; - friend class VoidFs; - - /** - * Sender(s) - */ - friend class Backup; - - friend bool printFSAPPENDREQ(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 6 ); - -private: - - /** - * DATA VARIABLES - */ - UintR filePointer; // DATA 0 - UintR userReference; // DATA 1 - UintR userPointer; // DATA 2 - UintR varIndex; // DATA 3 - UintR offset; // DATA 4 - UintR size; // DATA 5 -}; - -#endif diff --git a/ndb/include/kernel/signaldata/FsCloseReq.hpp b/ndb/include/kernel/signaldata/FsCloseReq.hpp deleted file mode 100644 index 10d094fb30b..00000000000 --- a/ndb/include/kernel/signaldata/FsCloseReq.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* 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 FS_CLOSE_REQ_H -#define FS_CLOSE_REQ_H - -#include "SignalData.hpp" - -/** - * - * SENDER: - * RECIVER: Ndbfs - */ -class FsCloseReq { - /** - * Reciver(s) - */ - friend class Ndbfs; // Reciver - friend class VoidFs; - - /** - * Sender(s) - */ - friend class Backup; - friend class Dbdict; - - /** - * For printing - */ - friend bool printFSCLOSEREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 4 ); - -private: - - /** - * DATA VARIABLES - */ - - UintR filePointer; // DATA 0 - UintR userReference; // DATA 1 - UintR userPointer; // DATA 2 - UintR fileFlag; // DATA 3 - - static bool getRemoveFileFlag(const UintR & fileflag); - static void setRemoveFileFlag(UintR & fileflag, bool removefile); - -}; - - -inline -bool -FsCloseReq::getRemoveFileFlag(const UintR & fileflag){ - return (fileflag == 1); -} - -inline -void -FsCloseReq::setRemoveFileFlag(UintR & fileflag, bool removefile){ -// ASSERT_BOOL(removefile, "FsCloseReq::setRemoveFileFlag"); - if (removefile) - fileflag = 1; - else - fileflag = 0; -} - - -#endif diff --git a/ndb/include/kernel/signaldata/FsConf.hpp b/ndb/include/kernel/signaldata/FsConf.hpp deleted file mode 100644 index f66d9feea49..00000000000 --- a/ndb/include/kernel/signaldata/FsConf.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* 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 FS_CONF_H -#define FS_CONF_H - -#include "SignalData.hpp" - -/** - * FsConf - Common signal class for all CONF signals sent from Ndbfs - * GSN_FSCLOSECONF, GSN_FSOPENCONF, GSN_FSWRITECONF, GSN_FSREADCONF, - * GSN_FSSYNCCONF, GSN_FSREMOVECONF - */ - -/** - * - * SENDER: Ndbfs - * RECIVER: - */ -class FsConf { - /** - * Reciver(s) - */ - friend class Backup; - friend class Dbacc; - friend class Dbtup; - friend class Dbdict; - - /** - * Sender(s) - */ - friend class Ndbfs; - friend class VoidFs; - - /** - * For printing - */ - friend bool printFSCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - /** - * FSOPENCONF: static const UintR SignalLength = 2; - * FSCLOSECONF, FSREADCONF, FSWRITECONF, FSSYNCCONF: static const UintR SignalLength = 2; - */ - -private: - - /** - * DATA VARIABLES - */ - UintR userPointer; // DATA 0 - - /** - * Only used if FSOPENCONF - */ - UintR filePointer; // DATA 1 -}; - - - -#endif diff --git a/ndb/include/kernel/signaldata/FsOpenReq.hpp b/ndb/include/kernel/signaldata/FsOpenReq.hpp deleted file mode 100644 index 906bb947128..00000000000 --- a/ndb/include/kernel/signaldata/FsOpenReq.hpp +++ /dev/null @@ -1,267 +0,0 @@ -/* 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 FS_OPEN_REQ_H -#define FS_OPEN_REQ_H - -#include "SignalData.hpp" - -/** - * - * SENDER: - * RECIVER: Ndbfs - */ -class FsOpenReq { - /** - * Reciver(s) - */ - friend class Ndbfs; // Reciver - friend class AsyncFile; // Uses FsOpenReq to decode file open flags - friend class Filename; - friend class VoidFs; - - /** - * Sender(s) - */ - friend class Backup; - friend class Dbdict; - friend class Ndbcntr; // For initial start... - friend class Dbdih; - - /** - * For printing - */ - friend bool printFSOPENREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 7 ); - -private: - - /** - * DATA VARIABLES - */ - - UintR userReference; // DATA 0 - UintR userPointer; // DATA 1 - UintR fileNumber[4]; // DATA 2 - 5 - UintR fileFlags; // DATA 6 - - STATIC_CONST( OM_READONLY = 0 ); - STATIC_CONST( OM_WRITEONLY = 1 ); - STATIC_CONST( OM_READWRITE = 2 ); - - STATIC_CONST( OM_APPEND = 0x8 ); // Not Implemented on W2k - STATIC_CONST( OM_SYNC = 0x10 ); - STATIC_CONST( OM_CREATE = 0x100 ); - STATIC_CONST( OM_TRUNCATE = 0x200 ); - - enum Suffixes { - S_DATA = 0, - S_FRAGLOG = 1, - S_LOGLOG = 2, - S_FRAGLIST = 3, - S_TABLELIST = 4, - S_SCHEMALOG = 5, - S_SYSFILE = 6, - S_LOG = 7, - S_CTL = 8 - }; - - static Uint32 getVersion(const Uint32 fileNumber[]); - static Uint32 getSuffix(const Uint32 fileNumber[]); - - static void setVersion(Uint32 fileNumber[], Uint8 val); - static void setSuffix(Uint32 fileNumber[], Uint8 val); - - /** - * V1 - */ - static Uint32 v1_getDisk(const Uint32 fileNumber[]); - static Uint32 v1_getTable(const Uint32 fileNumber[]); - static Uint32 v1_getFragment(const Uint32 fileNumber[]); - static Uint32 v1_getS(const Uint32 fileNumber[]); - static Uint32 v1_getP(const Uint32 fileNumber[]); - - static void v1_setDisk(Uint32 fileNumber[], Uint8 val); - static void v1_setTable(Uint32 fileNumber[], Uint32 val); - static void v1_setFragment(Uint32 fileNumber[], Uint32 val); - static void v1_setS(Uint32 fileNumber[], Uint32 val); - static void v1_setP(Uint32 fileNumber[], Uint8 val); - - /** - * V2 - Backup - */ - static Uint32 v2_getSequence(const Uint32 fileNumber[]); - static Uint32 v2_getNodeId(const Uint32 fileNumber[]); - static Uint32 v2_getCount(const Uint32 fileNumber[]); - - static void v2_setSequence(Uint32 fileNumber[], Uint32 no); - static void v2_setNodeId(Uint32 fileNumber[], Uint32 no); - static void v2_setCount(Uint32 fileNumber[], Uint32 no); -}; - -/** - * File flags (set according to solaris standard) - * - o = Open mode - 2 Bits -> max 3 - c = create new file - 1 Bit - t = truncate existing - 1 Bit - - 1111111111222222222233 - 01234567890123456789012345678901 - oo ct -*/ - - -/** - * -- v1 -- - * File number[0] = Table - * File number[1] = Fragment - * File number[2] = S-value - * File number[3] = - * p = v1_P 0 - 7 - * d = v1_disk 8 - 15 - * s = v1_suffix 16 - 23 - * v = version 24 - 31 - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * ppppppppddddddddssssssssvvvvvvvv - * - * -- v2 -- - * File number[0] = Backup Sequence Number - * File number[1] = Node Id - * File number[3] = - * v = version 24 - 31 - * s = v1_suffix 16 - 23 - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * ppppppppddddddddssssssssvvvvvvvv - * - */ -inline -Uint32 FsOpenReq::getVersion(const Uint32 fileNumber[]){ - return (fileNumber[3] >> 24) & 0xff; -} - -inline -void FsOpenReq::setVersion(Uint32 fileNumber[], Uint8 val){ - const Uint32 t = fileNumber[3]; - fileNumber[3] = t & 0x00FFFFFF | (((Uint32)val) << 24); -} - -inline -Uint32 FsOpenReq::getSuffix(const Uint32 fileNumber[]){ - return (fileNumber[3] >> 16)& 0xff; -} - -inline -void FsOpenReq::setSuffix(Uint32 fileNumber[], Uint8 val){ - const Uint32 t = fileNumber[3]; - fileNumber[3] = t & 0xFF00FFFF | (((Uint32)val) << 16); -} - -inline -Uint32 FsOpenReq::v1_getDisk(const Uint32 fileNumber[]){ - return (fileNumber[3]>>8) & 0xff; -} - -inline -void FsOpenReq::v1_setDisk(Uint32 fileNumber[], Uint8 val){ - const Uint32 t = fileNumber[3]; - fileNumber[3] = t & 0xFFFF00FF | (((Uint32)val) << 8); -} - -inline -Uint32 FsOpenReq::v1_getTable(const Uint32 fileNumber[]){ - return fileNumber[0]; -} - -inline -void FsOpenReq::v1_setTable(Uint32 fileNumber[], Uint32 val){ - fileNumber[0] = val; -} - -inline -Uint32 FsOpenReq::v1_getFragment(const Uint32 fileNumber[]){ - return fileNumber[1]; -} - -inline -void FsOpenReq::v1_setFragment(Uint32 fileNumber[], Uint32 val){ - fileNumber[1] = val; -} - -inline -Uint32 FsOpenReq::v1_getS(const Uint32 fileNumber[]){ - return fileNumber[2]; -} - -inline -void FsOpenReq::v1_setS(Uint32 fileNumber[], Uint32 val){ - fileNumber[2] = val; -} - -inline -Uint32 FsOpenReq::v1_getP(const Uint32 fileNumber[]){ - return fileNumber[3] & 0xff; -} - -inline -void FsOpenReq::v1_setP(Uint32 fileNumber[], Uint8 val){ - const Uint32 t = fileNumber[3]; - fileNumber[3] = t & 0xFFFFFF00 | val; -} - -/****************/ -inline -Uint32 FsOpenReq::v2_getSequence(const Uint32 fileNumber[]){ - return fileNumber[0]; -} - -inline -void FsOpenReq::v2_setSequence(Uint32 fileNumber[], Uint32 val){ - fileNumber[0] = val; -} - -inline -Uint32 FsOpenReq::v2_getNodeId(const Uint32 fileNumber[]){ - return fileNumber[1]; -} - -inline -void FsOpenReq::v2_setNodeId(Uint32 fileNumber[], Uint32 val){ - fileNumber[1] = val; -} - -inline -Uint32 FsOpenReq::v2_getCount(const Uint32 fileNumber[]){ - return fileNumber[2]; -} - -inline -void FsOpenReq::v2_setCount(Uint32 fileNumber[], Uint32 val){ - fileNumber[2] = val; -} - - -#endif - diff --git a/ndb/include/kernel/signaldata/FsReadWriteReq.hpp b/ndb/include/kernel/signaldata/FsReadWriteReq.hpp deleted file mode 100644 index 6e4fa4d260e..00000000000 --- a/ndb/include/kernel/signaldata/FsReadWriteReq.hpp +++ /dev/null @@ -1,152 +0,0 @@ -/* 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 FS_READWRITEREQ_H -#define FS_READWRITEREQ_H - -#include "SignalData.hpp" - -/** - * FsReadWriteReq - Common signal class for FSWRITEREQ and FSREADREQ - * - */ - -/** - * - * SENDER: - * RECIVER: Ndbfs - */ -class FsReadWriteReq { - /** - * Reciver(s) - */ - friend class Ndbfs; - friend class VoidFs; - - /** - * Sender(s) - */ - friend class Dbdict; - - - /** - * For printing - */ - friend bool printFSREADWRITEREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Enum type for errorCode - */ - enum NdbfsFormatType { - fsFormatListOfPairs=0, - fsFormatArrayOfPages=1, - fsFormatListOfMemPages=2, - fsFormatMax - }; - - /** - * Length of signal - */ - -private: - - /** - * DATA VARIABLES - */ - UintR filePointer; // DATA 0 - UintR userReference; // DATA 1 - UintR userPointer; // DATA 2 - UintR operationFlag; // DATA 3 - UintR varIndex; // DATA 4 - UintR numberOfPages; // DATA 5 - -//------------------------------------------------------------- -// Variable sized part. Those will contain -// info about memory/file pages to read/write -//------------------------------------------------------------- - union { - UintR pageData[16]; // DATA 6 - 21 - struct { - Uint32 varIndex; // In unit cluster size - Uint32 fileOffset; // In unit page size - } listOfPair[8]; - struct { - Uint32 varIndex; - Uint32 fileOffset; - } arrayOfPages; - struct { - Uint32 varIndex[1]; // Size = numberOfPages - Uint32 fileOffset; - } listOfMemPages; - } data; - - static Uint8 getSyncFlag(const UintR & opFlag); - static void setSyncFlag(UintR & opFlag, Uint8 flag); - - static NdbfsFormatType getFormatFlag(const UintR & opFlag); - static void setFormatFlag(UintR & opFlag, Uint8 flag); - -}; - -/** - * Operation flag - * - f = Format of pageData - 4 Bits -> max 15 - s = sync after write flag - 1 Bit - - 1111111111222222222233 - 01234567890123456789012345678901 - ffffs -*/ - -#define SYNC_SHIFT (4) -#define SYNC_MASK (0x01) - -#define FORMAT_MASK (0x0F) - - -inline -Uint8 -FsReadWriteReq::getSyncFlag(const UintR & opFlag){ - return (Uint8)((opFlag >> SYNC_SHIFT) & SYNC_MASK); -} - -inline -FsReadWriteReq::NdbfsFormatType -FsReadWriteReq::getFormatFlag(const UintR & opFlag){ - return (NdbfsFormatType)(opFlag & FORMAT_MASK); -} - -inline -void -FsReadWriteReq::setSyncFlag(UintR & opFlag, Uint8 flag){ - ASSERT_BOOL(flag, "FsReadWriteReq::setSyncFlag"); - opFlag |= (flag << SYNC_SHIFT); -} - -inline -void -FsReadWriteReq::setFormatFlag(UintR & opFlag, Uint8 flag){ - ASSERT_MAX(flag, fsFormatMax, "FsReadWriteReq::setSyncFlag"); - opFlag |= flag; -} - - - - - -#endif diff --git a/ndb/include/kernel/signaldata/FsRef.hpp b/ndb/include/kernel/signaldata/FsRef.hpp deleted file mode 100644 index 650f6520fb5..00000000000 --- a/ndb/include/kernel/signaldata/FsRef.hpp +++ /dev/null @@ -1,116 +0,0 @@ -/* 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 FS_REF_H -#define FS_REF_H - -#include "SignalData.hpp" - -/** - * FsRef - Common signal class for all REF signals sent from Ndbfs - * GSN_FSCLOSEREF, GSN_FSOPENREF, GSN_FSWRITEREF, GSN_FSREADREF, - * GSN_FSSYNCREF - */ - - -/** - * - * SENDER: Ndbfs - * RECIVER: - */ -class FsRef { - /** - * Reciver(s) - */ - friend class Dbdict; - friend class Backup; - - /** - * Sender(s) - */ - friend class Ndbfs; - friend class VoidFs; - - /** - * For printing - */ - friend bool printFSREF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Enum type for errorCode - */ - enum NdbfsErrorCodeType { - fsErrNone=0, - fsErrHardwareFailed=1, - fsErrUserError=2, - fsErrEnvironmentError=3, - fsErrTemporaryNotAccessible=4, - fsErrNoSpaceLeftOnDevice=5, - fsErrPermissionDenied=6, - fsErrInvalidParameters=7, - fsErrUnknown=8, - fsErrNoMoreResources=9, - fsErrFileDoesNotExist=10, - fsErrReadUnderflow = 11, - fsErrMax - }; - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 4 ); - -private: - - /** - * DATA VARIABLES - */ - UintR userPointer; // DATA 0 - UintR errorCode; // DATA 1 - UintR osErrorCode; // DATA 2 - UintR senderData; - - static NdbfsErrorCodeType getErrorCode(const UintR & errorcode); - static void setErrorCode(UintR & errorcode, NdbfsErrorCodeType errorcodetype); - static void setErrorCode(UintR & errorcode, UintR errorcodetype); - -}; - - -inline -FsRef::NdbfsErrorCodeType -FsRef::getErrorCode(const UintR & errorcode){ - return (NdbfsErrorCodeType)errorcode; -} - -inline -void -FsRef::setErrorCode(UintR & errorcode, NdbfsErrorCodeType errorcodetype){ - ASSERT_MAX(errorcodetype, fsErrMax, "FsRef::setErrorCode"); - errorcode = (UintR)errorcodetype; -} - -inline -void -FsRef::setErrorCode(UintR & errorcode, UintR errorcodetype){ - ASSERT_MAX(errorcodetype, fsErrMax, "FsRef::setErrorCode"); - errorcode = errorcodetype; -} - - - - -#endif diff --git a/ndb/include/kernel/signaldata/FsRemoveReq.hpp b/ndb/include/kernel/signaldata/FsRemoveReq.hpp deleted file mode 100644 index efb566d883a..00000000000 --- a/ndb/include/kernel/signaldata/FsRemoveReq.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/* 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 FS_REMOVE_REQ_H -#define FS_REMOVE_REQ_H - -#include "SignalData.hpp" -#include "FsOpenReq.hpp" - -/** - * - * SENDER: - * RECIVER: Ndbfs - */ -class FsRemoveReq { - /** - * Reciver(s) - */ - friend class Ndbfs; // Reciver - friend class AsyncFile; // Uses FsOpenReq to decode file open flags - friend class Filename; - friend class VoidFs; - - /** - * Sender(s) - */ - friend class Backup; - friend class Dbdict; - friend class Dbacc; - friend class Dbtup; - friend class Ndbcntr; // For initial start... - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 8 ); - -private: - - /** - * DATA VARIABLES - */ - - UintR userReference; // DATA 0 - UintR userPointer; // DATA 1 - UintR fileNumber[4]; // DATA 2 - 5 // See FsOpen for interpretation - - /** - * 0 = File -> rm file - * 1 = Directory -> rm -r path - */ - UintR directory; - - /** - * If directory = 1 - * - * 0 = remove only files/direcories in directory specified in fileNumber - * 1 = remove directory specified in fileNumber - */ - UintR ownDirectory; -}; - -#endif - diff --git a/ndb/include/kernel/signaldata/GCPSave.hpp b/ndb/include/kernel/signaldata/GCPSave.hpp deleted file mode 100644 index 2b4a25e6bb2..00000000000 --- a/ndb/include/kernel/signaldata/GCPSave.hpp +++ /dev/null @@ -1,98 +0,0 @@ -/* 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 GCP_SAVE_HPP -#define GCP_SAVE_HPP - -#include "SignalData.hpp" - -/** - * GCPSaveReq / (Ref/Conf) is sent as part of GCP - */ -class GCPSaveReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Dblqh; - - friend bool printGCPSaveReq(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 dihBlockRef; - Uint32 dihPtr; - Uint32 gci; -}; - -class GCPSaveRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Dbdih; - - friend bool printGCPSaveRef(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - NodeShutdownInProgress = 1, - FakedSignalDueToNodeFailure = 2, - NodeRestartInProgress = 3 - }; - -private: - Uint32 dihPtr; - Uint32 nodeId; - Uint32 gci; - Uint32 errorCode; -}; - -class GCPSaveConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Dbdih; - - friend bool printGCPSaveConf(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 dihPtr; - Uint32 nodeId; - Uint32 gci; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/GetTabInfo.hpp b/ndb/include/kernel/signaldata/GetTabInfo.hpp deleted file mode 100644 index cb6e38872d3..00000000000 --- a/ndb/include/kernel/signaldata/GetTabInfo.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/* 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 GET_INFO_TAB_HPP -#define GET_INFO_TAB_HPP - -#include "SignalData.hpp" - -/** - * GetTabInfo - Get table info from DICT - * - * Successfull return = series of DICTTABINFO-signals - */ -class GetTabInfoReq { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class Backup; - friend class Trix; - friend class DbUtil; - // API - friend class Table; - - friend bool printGET_TABINFO_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - // STATIC_CONST( MaxTableNameLengthInWords = 20 ); -public: - Uint32 senderData; - Uint32 senderRef; - - /** - * 0 = request by id, 1 = request by name - */ - Uint32 requestType; - - union { - Uint32 tableId; - Uint32 tableNameLen; - }; - Uint32 unused; // This is located here so that Req & Ref have the same format - // Uint32 tableName[MaxTableNameLengthInWords]; - - enum RequestType { - RequestById = 0, - RequestByName = 1, - LongSignalConf = 2 - }; - SECTION( TABLE_NAME = 0 ); -}; - -class GetTabInfoRef { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class Backup; - friend class Trix; - friend class DbUtil; - // API - friend class Table; - - friend bool printGET_TABINFO_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 requestType; // 0 = request by id, 1 = request by name - union { - Uint32 tableId; - Uint32 tableNameLen; - }; - Uint32 errorCode; - - enum ErrorCode { - InvalidTableId = 709, - TableNotDefined = 723, - TableNameTooLong = 702, - Busy = 701 - }; -}; - -class GetTabInfoConf { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class Backup; - friend class Trix; - friend class DbUtil; - friend class Suma; - // API - friend class Table; - - friend bool printGET_TABINFO_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - SECTION( DICT_TAB_INFO = 0 ); -public: - Uint32 senderData; - Uint32 tableId; - Uint32 gci; // For table - Uint32 totalLen; // In words -}; - -#endif diff --git a/ndb/include/kernel/signaldata/GetTableId.hpp b/ndb/include/kernel/signaldata/GetTableId.hpp deleted file mode 100644 index fb91c2e10d7..00000000000 --- a/ndb/include/kernel/signaldata/GetTableId.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/* 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 GET_TABLEID_HPP -#define GET_TABLEID_HPP - -#include "SignalData.hpp" - -/** - * Convert tabname to table id - */ -class GetTableIdReq { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class SumaParticipant; - - friend bool printGET_TABLEID_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 len; - SECTION( TABLE_NAME = 0 ); -}; - - -/** - * Convert tabname to table id - */ -class GetTableIdRef { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class SumaParticipant; - friend bool printGET_TABLEID_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 err; - - enum ErrorCode { - InvalidTableId = 709, - TableNotDefined = 723, - TableNameTooLong = 702, - EmptyTable = 1111 - }; -}; - - -/** - * Convert tabname to table id - */ -class GetTableIdConf { - /** - * Sender(s) / Reciver(s) - */ - // Blocks - friend class Dbdict; - friend class SumaParticipant; - friend bool printGET_TABLEID_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 tableId; - Uint32 schemaVersion; - -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/GrepImpl.hpp b/ndb/include/kernel/signaldata/GrepImpl.hpp deleted file mode 100644 index 95b93df0a58..00000000000 --- a/ndb/include/kernel/signaldata/GrepImpl.hpp +++ /dev/null @@ -1,891 +0,0 @@ -/* 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 GREP_IMPL_HPP -#define GREP_IMPL_HPP - -#include "SignalData.hpp" -#include <GrepError.hpp> -#include <NodeBitmask.hpp> - - - -/***************************************************************************** - * GREP REQ Request a Global Replication (between SS and PS) - *****************************************************************************/ -/** - * @class GrepReq - * @brief - */ -class GrepReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - -public: - enum Request { - START = 0, ///< Start Global Replication (all phases) - SLOWSTOP = 1, ///< Stop after finishing applying current GCI epoch - FASTSTOP = 2, ///< Stop after finishing applying all PS GCI epochs - STATUS = 3, ///< Status - REMOVE_BUFFERS = 4, ///< Remove buffers from PS and SS - - START_SUBSCR = 5, - START_METALOG = 6, ///< Start Global Replication Logging of Metadata - START_METASCAN = 7, ///< Start Global Replication Scanning of Metadata - START_DATALOG = 8, ///< Start Global Replication Logging of table data - START_DATASCAN = 9, ///< Start Global Replication Scanning of table data - START_REQUESTOR = 10, ///< Start Global Replication Requestor - START_TRANSFER = 11, ///< Start SS-PS transfer - START_APPLY = 12, ///< Start applying GCI epochs in SS - START_DELETE = 13, ///< Start deleting buffers at PS/SS REP automatic. - - STOP_SUBSCR = 14, ///< Remove subscription - STOP_METALOG = 15, ///< Stop Global Replication Logging of Metadata - STOP_METASCAN = 16, ///< Stop Global Replication Scanning of Metadata - STOP_DATALOG = 17, ///< Stop Global Replication Logging of table data - STOP_DATASCAN = 18, ///< Stop Global Replication Scanning of table data - STOP_REQUESTOR = 19, ///< Stop Global Replication Requestor - STOP_TRANSFER = 20, ///< Stop SS-PS transfer - STOP_APPLY = 21, ///< Stop applying GCI epochs in SS - STOP_DELETE = 22, ///< Stop deleting buffers at PS/SS REP automatically - CREATE_SUBSCR = 23, ///< Create subscription ID in SUMA - DROP_TABLE = 24, ///< Create subscription ID in SUMA - STOP = 25, - - NO_REQUEST = 0xffffffff - }; - - STATIC_CONST( SignalLength = 2 ); - - Uint32 senderRef; - Uint32 request; -}; - - -/***************************************************************************** - * CREATE Between SS and PS (DB and REP nodes) - *****************************************************************************/ -/** - * @class GrepSubCreateReq - * @brief - */ -class GrepSubCreateReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_CREATE_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - Uint32 senderRef; - Uint32 senderData; - SECTION( TABLE_LIST = 0 ); -}; - -/** - * @class GrepSubCreateReq - * @brief - */ -class GrepSubCreateRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_CREATE_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - Uint32 err; - Uint32 senderRef; - Uint32 senderData; -}; - - -/** - * @class GrepSubCreateConf - * @brief - */ -class GrepSubCreateConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_CREATE_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - Uint32 senderRef; - Uint32 senderData; - Uint32 noOfNodeGroups; -}; - - - -/***************************************************************************** - * CREATE Internal between PS DB nodes - *****************************************************************************/ - -/** - * @class GrepCreateReq - * @brief - */ -class GrepCreateReq { - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_CREATE_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 8 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriberData; - Uint32 subscriberRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - SECTION( TABLE_LIST = 0 ); -}; - - -/** - * @class GrepCreateRef - * @brief - */ -class GrepCreateRef { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_CREATE_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - enum ErrorCode { - NF_FakeErrorREF = GrepError::NF_FakeErrorREF - }; - STATIC_CONST( SignalLength = 6 ); - Uint32 senderRef; - Uint32 senderData; - union { - Uint32 err; - Uint32 errorCode; - }; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; -}; - - -/** - * @class GrepCreateConf - * @brief - */ -class GrepCreateConf { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_CREATE_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 senderNodeId; - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; -}; - - -/***************************************************************************** - * START Between SS and PS (DB and REP nodes) - *****************************************************************************/ - -/** - * @class GrepSubStartReq - * @brief - */ -class GrepSubStartReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_START_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderRef; - Uint32 senderData; - Uint32 part; -}; - -/** - * @class GrepSubStartRef - * @brief - */ -class GrepSubStartRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_START_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 err; - Uint32 senderRef; - Uint32 senderData; - Uint32 part; -}; - - - -/** - * @class GrepSubStartConf - * @brief - */ -class GrepSubStartConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_START_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 firstGCI; -}; - - -/***************************************************************************** - * START Internal between PS DB nodes - *****************************************************************************/ - -/** - * @class GrepStartReq - * @brief - */ -class GrepStartReq { - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_START_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - - -/** - * @class GrepStartRef - * @brief - */ -class GrepStartRef { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_START_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - enum ErrorCode { - NF_FakeErrorREF = GrepError::NF_FakeErrorREF - }; - STATIC_CONST( SignalLength = 6 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { - Uint32 err; - Uint32 errorCode; - }; -}; - - -/** - * @class GrepStartConf - * @brief - */ -class GrepStartConf { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_START_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); - public: - STATIC_CONST( SignalLength = 7 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 firstGCI; - Uint32 senderNodeId; - }; - - -/***************************************************************************** - * SCAN (SYNC) Between SS and PS (REP and DB nodes) - *****************************************************************************/ - -/** - * @class GrepSubSyncReq - * @brief - */ -class GrepSubSyncReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_SYNC_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderRef; - Uint32 senderData; - Uint32 part; -}; - - -/** - * @class GrepSubSyncRef - * @brief - */ -class GrepSubSyncRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_SYNC_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderRef; - Uint32 err; - Uint32 senderData; - Uint32 part; -}; - - -/** - * @class GrepSubSyncConf - * @brief - */ -class GrepSubSyncConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_SYNC_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); - public: - STATIC_CONST( SignalLength = 7 ); - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 firstGCI; - Uint32 lastGCI; -}; - - - -/***************************************************************************** - * SCAN (SYNC) Internal between PS DB nodes - *****************************************************************************/ - -/** - * @class GrepSyncReq - * @brief - */ -class GrepSyncReq { - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_SYNC_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - - -/** - * @class GrepSyncRef - * @brief - */ -class GrepSyncRef { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_SYNC_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - enum ErrorCode { - NF_FakeErrorREF = GrepError::NF_FakeErrorREF - }; - STATIC_CONST( SignalLength = 6 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { - Uint32 err; - Uint32 errorCode; - }; -}; - - -/** - * @class GrepSyncConf - * @brief - */ -class GrepSyncConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_SYNC_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 8 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 part; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; - Uint32 firstGCI; - Uint32 lastGCI; -}; - -/***************************************************************************** - * ABORT - remove subscription - *****************************************************************************/ - -/** - * @class GrepSubRemoveReq - * @brief Between PS and SS - */ -class GrepSubRemoveReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_REMOVE_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - - -/** - * @class GrepSubRemoveRef - * @brief Between PS and SS - */ -class GrepSubRemoveRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_REMOVE_REF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 err; -}; - - -/** - * @class - * @brief - */ -class GrepSubRemoveConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printGREP_SUB_REMOVE_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - - -/** - * @class - * @brief - */ -class GrepRemoveReq { - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_REMOVE_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - - -/** - * @class - * @brief - */ -class GrepRemoveRef { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_REMOVE_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - enum ErrorCode { - NF_FakeErrorREF = GrepError::NF_FakeErrorREF - }; - STATIC_CONST( SignalLength = 5 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { - Uint32 err; - Uint32 errorCode; - }; -}; - - -/** - * @class - * @brief - */ -class GrepRemoveConf { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_REMOVE_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; -}; - - -/***************************************************************************** - * WAIT FOR CGP - *****************************************************************************/ - -/** - * @class GrepWaitGcpReq - * @brief - */ -class GrepWaitGcpReq { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_WAITGCP_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - - Uint32 senderData; - Uint32 gcp; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; -}; - -/** - * @class GrepWaitGcpConf - * @brief - */ -class GrepWaitGcpConf { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_WAITGCP_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; -}; - - - -class GrepCreateSubscriptionIdConf { - friend class Grep; - - friend bool printGREP_CREATE_SUBSCRIPTION_ID_CONF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; -}; - - - -class GrepStartMe { - friend class Grep; - friend bool printGREP_START_ME(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); - Uint32 senderRef; -}; - - - - -/** - * @class GrepAddSubReq - * @brief - */ -class GrepAddSubReq { - /** - * Sender(s)/Reciver(s) - */ - friend class GrepParticipant; - - friend bool printGREP_ADD_SUB_REQ(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriberData; - Uint32 subscriberRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; -}; - - -/** - * @class GrepAddSubRef - * @brief - */ -class GrepAddSubRef { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_CREATE_REF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 err; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; -}; - - -/** - * @class GrepAddSubConf - * @brief - */ -class GrepAddSubConf { - /** - * Sender(s)/Reciver(s) - */ - - friend class GrepParticipant; - - friend bool printGREP_CREATE_CONF(FILE *, - const Uint32 *, - Uint32, - Uint16); -public: - STATIC_CONST( SignalLength = 1 ); - Uint32 noOfSub; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/HotSpareRep.hpp b/ndb/include/kernel/signaldata/HotSpareRep.hpp deleted file mode 100644 index fb9d338be1b..00000000000 --- a/ndb/include/kernel/signaldata/HotSpareRep.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* 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 HOT_SPAREREP_HPP -#define HOT_SPAREREP_HPP - -#include <NodeBitmask.hpp> - -/** - * This signals is sent by Dbdih to Dbdict - */ -class HotSpareRep { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Sender(s) / Reciver(s) - */ - - /** - * Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 1 + NodeBitmask::Size ); -private: - - Uint32 noHotSpareNodes; - Uint32 theHotSpareNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/IndxAttrInfo.hpp b/ndb/include/kernel/signaldata/IndxAttrInfo.hpp deleted file mode 100755 index ec5790d84f3..00000000000 --- a/ndb/include/kernel/signaldata/IndxAttrInfo.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* 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 INDX_ATTRINFO_HPP -#define INDX_ATTRINFO_HPP - -#include "SignalData.hpp" - -class IndxAttrInfo { - /** - * Sender(s) - */ - friend class NdbIndexOperation; - - /** - * Receiver(s) - */ - friend class Dbtc; - - friend bool printINDXATTRINFO(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 22 ); - STATIC_CONST( MaxSignalLength = HeaderLength + DataLength); - - // Public methods -public: - Uint32* getData() const; - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 attrData[DataLength]; -}; - -inline -Uint32* IndxAttrInfo::getData() const -{ - return (Uint32*)&attrData[0]; -} - -#endif diff --git a/ndb/include/kernel/signaldata/IndxKeyInfo.hpp b/ndb/include/kernel/signaldata/IndxKeyInfo.hpp deleted file mode 100755 index 7cd7795ec71..00000000000 --- a/ndb/include/kernel/signaldata/IndxKeyInfo.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* 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 INDX_KEY_INFO_HPP -#define INDX_KEY_INFO_HPP - -#include "SignalData.hpp" - -class IndxKeyInfo { - /** - * Sender(s) - */ - friend class NdbIndexOperation; - - /** - * Reciver(s) - */ - friend class Dbtc; - - friend bool printINDXKEYINFO(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 20 ); - STATIC_CONST( MaxSignalLength = HeaderLength + DataLength ); - - // Public methods -public: - Uint32* getData() const; - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 keyData[DataLength]; -}; - -inline -Uint32* IndxKeyInfo::getData() const -{ - return (Uint32*)&keyData[0]; -} - -#endif diff --git a/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp b/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp deleted file mode 100644 index 2497af354ce..00000000000 --- a/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp +++ /dev/null @@ -1,41 +0,0 @@ -/* 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 INVALIDATE_NODE_LCP_CONF_HPP -#define INVALIDATE_NODE_LCP_CONF_HPP - -/** - * This signal is sent from the non-master DIH to master DIHs - * - */ -class InvalidateNodeLCPConf { - - /** - * Sender/Receiver - */ - friend class Dbdih; - - /** - * NodeId of sending node - * which is "done" - */ - Uint32 sendingNodeId; - -public: - STATIC_CONST( SignalLength = 1 ); -}; - -#endif diff --git a/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp b/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp deleted file mode 100644 index e55a58710b4..00000000000 --- a/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* 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 INVALIDATE_NODE_LCP_REQ_HPP -#define INVALIDATE_NODE_LCP_REQ_HPP - -/** - * This signal is sent from the master DIH to all DIHs - * when a node is starting without filesystem. - * - * All DIHs must then "forgett" that the starting node has - * performed LCP - * - * @see StartPermReq - */ -class InvalidateNodeLCPReq { - - /** - * Sender/Receiver - */ - friend class Dbdih; - - Uint32 startingNodeId; - -public: - STATIC_CONST( SignalLength = 1 ); -}; - -#endif diff --git a/ndb/include/kernel/signaldata/KeyInfo.hpp b/ndb/include/kernel/signaldata/KeyInfo.hpp deleted file mode 100644 index 686f3ae053d..00000000000 --- a/ndb/include/kernel/signaldata/KeyInfo.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* 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 KEY_INFO_HPP -#define KEY_INFO_HPP - -#include "SignalData.hpp" - -class KeyInfo { - /** - * Sender(s) - */ - friend class DbUtil; - friend class NdbOperation; - friend class NdbScanOperation; - friend class NdbIndexScanOperation; - - /** - * Reciver(s) - */ - friend class Dbtc; - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 20 ); - STATIC_CONST( MaxSignalLength = HeaderLength + DataLength ); - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 keyData[DataLength]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/LCP.hpp b/ndb/include/kernel/signaldata/LCP.hpp deleted file mode 100644 index 7d3fb71ae7e..00000000000 --- a/ndb/include/kernel/signaldata/LCP.hpp +++ /dev/null @@ -1,154 +0,0 @@ -/* 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 LCP_SIGNAL_DATA_HPP -#define LCP_SIGNAL_DATA_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -class StartLcpReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Sender(s) / Receiver(s) - */ - - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printSTART_LCP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - - STATIC_CONST( SignalLength = 2 + 2 * NdbNodeBitmask::Size ); -private: - Uint32 senderRef; - Uint32 lcpId; - - NdbNodeBitmask participatingDIH; - NdbNodeBitmask participatingLQH; -}; - -class StartLcpConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Sender(s) / Receiver(s) - */ - - /** - * Receiver(s) - */ - friend class Dbdih; - - friend bool printSTART_LCP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 senderRef; - Uint32 lcpId; -}; - -/** - * This signals is sent by Dbdih to Dblqh - * to order checkpointing of a certain - * fragment. - */ -class LcpFragOrd { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Sender(s) / Receiver(s) - */ - - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printLCP_FRAG_ORD(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 6 ); -private: - - Uint32 tableId; - Uint32 fragmentId; - Uint32 lcpNo; - Uint32 lcpId; - Uint32 lastFragmentFlag; - Uint32 keepGci; -}; - - -class LcpFragRep { - /** - * Sender(s) and receiver(s) - */ - friend class Dbdih; - - /** - * Sender(s) - */ - friend class Dblqh; - - friend bool printLCP_FRAG_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - -private: - Uint32 nodeId; - Uint32 lcpId; - Uint32 lcpNo; - Uint32 tableId; - Uint32 fragId; - Uint32 maxGciCompleted; - Uint32 maxGciStarted; -}; - -class LcpCompleteRep { - /** - * Sender(s) and receiver(s) - */ - friend class Dbdih; - - /** - * Sender(s) - */ - friend class Dblqh; - - friend bool printLCP_COMPLETE_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 nodeId; - Uint32 blockNo; - Uint32 lcpId; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ListTables.hpp b/ndb/include/kernel/signaldata/ListTables.hpp deleted file mode 100644 index 7fbfab1294c..00000000000 --- a/ndb/include/kernel/signaldata/ListTables.hpp +++ /dev/null @@ -1,166 +0,0 @@ -/* 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 LIST_TABLES_HPP -#define LIST_TABLES_HPP - -#include <Bitmask.hpp> -#include "SignalData.hpp" - -/** - * It is convenient to pack request/response data per table in one - * 32-bit word... - */ -class ListTablesData { -public: - static Uint32 getTableId(Uint32 data) { - return BitmaskImpl::getField(1, &data, 0, 12); - } - static void setTableId(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 0, 12, val); - } - static Uint32 getTableType(Uint32 data) { - return BitmaskImpl::getField(1, &data, 12, 8); - } - static void setTableType(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 12, 8, val); - } - static Uint32 getTableStore(Uint32 data) { - return BitmaskImpl::getField(1, &data, 20, 4); - } - static void setTableStore(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 20, 4, val); - } - static Uint32 getTableState(Uint32 data) { - return BitmaskImpl::getField(1, &data, 24, 4); - } - static void setTableState(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 24, 4, val); - } - static Uint32 getListNames(Uint32 data) { - return BitmaskImpl::getField(1, &data, 28, 1); - } - static void setListNames(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 28, 1, val); - } - static Uint32 getListIndexes(Uint32 data) { - return BitmaskImpl::getField(1, &data, 29, 1); - } - static void setListIndexes(Uint32& data, Uint32 val) { - BitmaskImpl::setField(1, &data, 29, 1, val); - } -}; - -class ListTablesReq { - /** - * Sender(s) - */ - friend class Backup; - friend class Table; - friend class Suma; - - /** - * Reciver(s) - */ - friend class Dbdict; - -public: - STATIC_CONST( SignalLength = 3 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 requestData; - - Uint32 getTableId() { - return ListTablesData::getTableId(requestData); - } - void setTableId(Uint32 val) { - ListTablesData::setTableId(requestData, val); - } - Uint32 getTableType() const { - return ListTablesData::getTableType(requestData); - } - void setTableType(Uint32 val) { - ListTablesData::setTableType(requestData, val); - } - Uint32 getListNames() const { - return ListTablesData::getListNames(requestData); - } - void setListNames(Uint32 val) { - ListTablesData::setListNames(requestData, val); - } - Uint32 getListIndexes() const { - return ListTablesData::getListIndexes(requestData); - } - void setListIndexes(Uint32 val) { - ListTablesData::setListIndexes(requestData, val); - } -}; - -class ListTablesConf { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Reciver(s) - */ - friend class Backup; - friend class Table; - friend class Suma; - -public: - /** - * Note: last signal is indicated by having length < 25 - */ - STATIC_CONST( SignalLength = 25 ); - STATIC_CONST( HeaderLength = 2 ); - STATIC_CONST( DataLength = 23 ); - -public: - Uint32 senderData; - Uint32 counter; - Uint32 tableData[DataLength]; - - static Uint32 getTableId(Uint32 data) { - return ListTablesData::getTableId(data); - } - void setTableId(unsigned pos, Uint32 val) { - ListTablesData::setTableId(tableData[pos], val); - } - static Uint32 getTableType(Uint32 data) { - return ListTablesData::getTableType(data); - } - void setTableType(unsigned pos, Uint32 val) { - ListTablesData::setTableType(tableData[pos], val); - } - static Uint32 getTableStore(Uint32 data) { - return ListTablesData::getTableStore(data); - } - void setTableStore(unsigned pos, Uint32 val) { - ListTablesData::setTableStore(tableData[pos], val); - } - static Uint32 getTableState(Uint32 data) { - return ListTablesData::getTableState(data); - } - void setTableState(unsigned pos, Uint32 val) { - ListTablesData::setTableState(tableData[pos], val); - } -}; - -#endif diff --git a/ndb/include/kernel/signaldata/LqhFrag.hpp b/ndb/include/kernel/signaldata/LqhFrag.hpp deleted file mode 100644 index 13dfafcc653..00000000000 --- a/ndb/include/kernel/signaldata/LqhFrag.hpp +++ /dev/null @@ -1,252 +0,0 @@ -/* 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 LQH_FRAG_HPP -#define LQH_FRAG_HPP - -#include "SignalData.hpp" - -class AddFragReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printADD_FRAG_REQ(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 9 ); - - enum RequestInfo { - CreateInRunning = 0x8000000, - TemporaryTable = 0x00000010 - }; -private: - Uint32 dihPtr; - Uint32 senderData; // The same data as sent in DIADDTABREQ - Uint32 fragmentId; - Uint32 requestInfo; - Uint32 tableId; - Uint32 nextLCP; - Uint32 nodeId; - Uint32 totalFragments; - Uint32 startGci; -}; - -class AddFragRef { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; - - friend bool printADD_FRAG_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 dihPtr; -}; - -class AddFragConf { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbdih; - - friend bool printADD_FRAG_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 dihPtr; - Uint32 fragId; -}; - -class LqhFragReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printLQH_FRAG_REQ(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 25 ); - - enum RequestInfo { - CreateInRunning = 0x8000000, - TemporaryTable = 0x00000010 - }; - -private: - Uint32 senderData; - Uint32 senderRef; - Uint32 fragmentId; - Uint32 requestInfo; - Uint32 tableId; - Uint32 localKeyLength; - Uint32 maxLoadFactor; - Uint32 minLoadFactor; - Uint32 kValue; - Uint32 lh3DistrBits; - Uint32 lh3PageBits; - Uint32 noOfAttributes; - Uint32 noOfNullAttributes; - Uint32 noOfPagesToPreAllocate; - Uint32 schemaVersion; - Uint32 keyLength; - Uint32 nextLCP; - Uint32 noOfKeyAttr; - Uint32 noOfNewAttr; // noOfCharsets in upper half - Uint32 checksumIndicator; - Uint32 noOfAttributeGroups; - Uint32 GCPIndicator; - Uint32 startGci; - Uint32 tableType; // DictTabInfo::TableType - Uint32 primaryTableId; // table of index or RNIL -}; - -class LqhFragConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printLQH_FRAG_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 lqhFragPtr; -}; - -class LqhFragRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printLQH_FRAG_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 errorCode; -}; - -class LqhAddAttrReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printLQH_ADD_ATTR_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( HeaderLength = 4 ); - STATIC_CONST( EntryLength = 3 ); - STATIC_CONST( MAX_ATTRIBUTES = 6 ); - struct Entry { - Uint32 attrId; // for index, includes primary attr id << 16 - Uint32 attrDescriptor; // 2 words type info - Uint32 extTypeInfo; - }; -private: - Uint32 lqhFragPtr; - Uint32 noOfAttributes; - Uint32 senderData; - Uint32 senderAttrPtr; - Entry attributes[MAX_ATTRIBUTES]; -}; - -class LqhAddAttrRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printLQH_ADD_ATTR_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 errorCode; -}; - -class LqhAddAttrConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printLQH_ADD_ATTR_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderData; - Uint32 senderAttrPtr; - Uint32 fragId; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/LqhKey.hpp b/ndb/include/kernel/signaldata/LqhKey.hpp deleted file mode 100644 index e937180e3f7..00000000000 --- a/ndb/include/kernel/signaldata/LqhKey.hpp +++ /dev/null @@ -1,534 +0,0 @@ -/* 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 LQH_KEY_H -#define LQH_KEY_H - -#include "SignalData.hpp" - -class LqhKeyReq { - /** - * Reciver(s) - */ - friend class Dblqh; // Reciver - - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * For printing - */ - friend bool printLQHKEYREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( FixedSignalLength = 11 ); - -private: - - /** - * DATA VARIABLES - */ -//------------------------------------------------------------- -// Unconditional part. First 10 words -//------------------------------------------------------------- - UintR clientConnectPtr; // DATA 0 - UintR attrLen; // DATA 1 - UintR hashValue; // DATA 2 - UintR requestInfo; // DATA 3 - UintR tcBlockref; // DATA 4 - UintR tableSchemaVersion; // DATA 5 - UintR fragmentData; // DATA 6 - UintR transId1; // DATA 7 - UintR transId2; // DATA 8 - UintR savePointId; // DATA 9 - union { - /** - * When sent from TC -> LQH this variable contains scanInfo - * When send from LQH -> LQH this variable contains noFiredTriggers - */ - UintR noFiredTriggers; // DATA 10 - Uint32 scanInfo; // DATA 10 - }; - -//------------------------------------------------------------- -// Variable sized key part. Those will be placed to -// pack the signal in an appropriate manner. -//------------------------------------------------------------- - UintR variableData[10]; // DATA 11 - 21 - - static UintR getAttrLen(const UintR & scanInfoAttrLen); - static UintR getScanTakeOverFlag(const UintR & scanInfoAttrLen); - static UintR getStoredProcFlag(const UintR & scanData); - static UintR getDistributionKey(const UintR & scanData); - - static UintR getTableId(const UintR & tableSchemaVersion); - static UintR getSchemaVersion(const UintR & tableSchemaVersion); - - static UintR getFragmentId(const UintR & fragmentData); - static UintR getNextReplicaNodeId(const UintR & fragmentData); - - static Uint8 getLockType(const UintR & requestInfo); - static Uint8 getDirtyFlag(const UintR & requestInfo); - static Uint8 getInterpretedFlag(const UintR & requestInfo); - static Uint8 getSimpleFlag(const UintR & requestInfo); - static Uint8 getOperation(const UintR & requestInfo); - static Uint8 getSeqNoReplica(const UintR & requestInfo); - static Uint8 getLastReplicaNo(const UintR & requestInfo); - static Uint8 getAIInLqhKeyReq(const UintR & requestInfo); - static UintR getKeyLen(const UintR & requestInfo); - static UintR getSameClientAndTcFlag(const UintR & requestInfo); - static UintR getReturnedReadLenAIFlag(const UintR & requestInfo); - static UintR getApplicationAddressFlag(const UintR & requestInfo); - static UintR getMarkerFlag(const UintR & requestInfo); - - /** - * Setters - */ - - static void setAttrLen(UintR & scanInfoAttrLen, UintR val); - static void setScanTakeOverFlag(UintR & scanInfoAttrLen, UintR val); - static void setStoredProcFlag(UintR & scanData, UintR val); - static void setDistributionKey(UintR & scanData, UintR val); - - static void setTableId(UintR & tableSchemaVersion, UintR val); - static void setSchemaVersion(UintR & tableSchemaVersion, UintR val); - - static void setFragmentId(UintR & fragmentData, UintR val); - static void setNextReplicaNodeId(UintR & fragmentData, UintR val); - - static void setLockType(UintR & requestInfo, UintR val); - static void setDirtyFlag(UintR & requestInfo, UintR val); - static void setInterpretedFlag(UintR & requestInfo, UintR val); - static void setSimpleFlag(UintR & requestInfo, UintR val); - static void setOperation(UintR & requestInfo, UintR val); - static void setSeqNoReplica(UintR & requestInfo, UintR val); - static void setLastReplicaNo(UintR & requestInfo, UintR val); - static void setAIInLqhKeyReq(UintR & requestInfo, UintR val); - static void setKeyLen(UintR & requestInfo, UintR val); - static void setSameClientAndTcFlag(UintR & requestInfo, UintR val); - static void setReturnedReadLenAIFlag(UintR & requestInfo, UintR val); - static void setApplicationAddressFlag(UintR & requestInfo, UintR val); - static void setMarkerFlag(UintR & requestInfo, UintR val); -}; - -/** - * Request Info - * - * k = Key len - 10 Bits (0-9) max 1023 - * l = Last Replica No - 2 Bits -> Max 3 (10-11) - * t = Lock type - 3 Bits -> Max 7 (12-14) - * p = Application Addr. Ind - 1 Bit (15) - * d = Dirty indicator - 1 Bit (16) - * i = Interpreted indicator - 1 Bit (17) - * s = Simple indicator - 1 Bit (18) - * o = Operation - 3 Bits (19-21) - * r = Sequence replica - 2 Bits (22-23) - * a = Attr Info in LQHKEYREQ - 3 Bits (24-26) - * c = Same client and tc - 1 Bit (27) - * u = Read Len Return Ind - 1 Bit (28) - * m = Commit ack marker - 1 Bit (29) - * - = Unused - 2 Bits (30-31) - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * kkkkkkkkkklltttpdisooorraaacum-- - */ - -#define RI_KEYLEN_SHIFT (0) -#define RI_KEYLEN_MASK (1023) -#define RI_LAST_REPL_SHIFT (10) -#define RI_LAST_REPL_MASK (3) -#define RI_LOCK_TYPE_SHIFT (12) -#define RI_LOCK_TYPE_MASK (7) -#define RI_APPL_ADDR_SHIFT (15) -#define RI_DIRTY_SHIFT (16) -#define RI_INTERPRETED_SHIFT (17) -#define RI_SIMPLE_SHIFT (18) -#define RI_OPERATION_SHIFT (19) -#define RI_OPERATION_MASK (7) -#define RI_SEQ_REPLICA_SHIFT (22) -#define RI_SEQ_REPLICA_MASK (3) -#define RI_AI_IN_THIS_SHIFT (24) -#define RI_AI_IN_THIS_MASK (7) -#define RI_SAME_CLIENT_SHIFT (27) -#define RI_RETURN_AI_SHIFT (28) -#define RI_MARKER_SHIFT (29) - -/** - * Scan Info - * - * a = Attr Len - 16 Bits -> max 65535 (0-15) - * p = Stored Procedure Ind - 1 Bit (16) - * d = Distribution key - 8 Bit -> max 255 (17-24) - * t = Scan take over indicator - 1 Bit (25) - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * aaaaaaaaaaaaaaaapddddddddt - */ - -#define SI_ATTR_LEN_MASK (65535) -#define SI_ATTR_LEN_SHIFT (0) -#define SI_STORED_PROC_SHIFT (16) -#define SI_DISTR_KEY_MASK (255) -#define SI_DISTR_KEY_SHIFT (17) -#define SI_SCAN_TO_SHIFT (25) -#define SI_SCAN_INFO_MASK (63) -#define SI_SCAN_INFO_SHIFT (26) - -inline -UintR -LqhKeyReq::getAttrLen(const UintR & scanData) -{ - return (scanData >> SI_ATTR_LEN_SHIFT) & SI_ATTR_LEN_MASK; -} - -inline -Uint32 -LqhKeyReq::getScanTakeOverFlag(const UintR & scanData) -{ - return (scanData >> SI_SCAN_TO_SHIFT) & 1; -} - -inline -UintR -LqhKeyReq::getStoredProcFlag(const UintR & scanData){ - return (scanData >> SI_STORED_PROC_SHIFT) & 1; -} - -inline -UintR -LqhKeyReq::getDistributionKey(const UintR & scanData){ - return (scanData >> SI_DISTR_KEY_SHIFT) & SI_DISTR_KEY_MASK; -} - -inline -UintR LqhKeyReq::getTableId(const UintR & tableSchemaVersion) -{ - return tableSchemaVersion & 0xFFFF; -} - -inline -UintR LqhKeyReq::getSchemaVersion(const UintR & tableSchemaVersion) -{ - return tableSchemaVersion >> 16; -} - -inline -UintR LqhKeyReq::getFragmentId(const UintR & fragmentData) -{ - return fragmentData & 0xFFFF; -} - -inline -UintR LqhKeyReq::getNextReplicaNodeId(const UintR & fragmentData) -{ - return fragmentData >> 16; -} - -inline -Uint8 LqhKeyReq::getLastReplicaNo(const UintR & requestInfo) -{ - return (requestInfo >> RI_LAST_REPL_SHIFT) & RI_LAST_REPL_MASK; -} - -inline -Uint8 LqhKeyReq::getLockType(const UintR & requestInfo) -{ - return (requestInfo >> RI_LOCK_TYPE_SHIFT) & RI_LOCK_TYPE_MASK; -} - -inline -Uint8 LqhKeyReq::getDirtyFlag(const UintR & requestInfo) -{ - return (requestInfo >> RI_DIRTY_SHIFT) & 1; -} - -inline -Uint8 LqhKeyReq::getInterpretedFlag(const UintR & requestInfo) -{ - return (requestInfo >> RI_INTERPRETED_SHIFT) & 1; -} - -inline -Uint8 LqhKeyReq::getSimpleFlag(const UintR & requestInfo) -{ - return (requestInfo >> RI_SIMPLE_SHIFT) & 1; -} - -inline -Uint8 LqhKeyReq::getOperation(const UintR & requestInfo) -{ - return (requestInfo >> RI_OPERATION_SHIFT) & RI_OPERATION_MASK; -} - -inline -Uint8 LqhKeyReq::getSeqNoReplica(const UintR & requestInfo) -{ - return (requestInfo >> RI_SEQ_REPLICA_SHIFT) & RI_SEQ_REPLICA_MASK; -} - - -inline -Uint8 LqhKeyReq::getAIInLqhKeyReq(const UintR & requestInfo) -{ - return (requestInfo >> RI_AI_IN_THIS_SHIFT) & RI_AI_IN_THIS_MASK; -} - -inline -UintR LqhKeyReq::getKeyLen(const UintR & requestInfo) -{ - return (requestInfo >> RI_KEYLEN_SHIFT) & RI_KEYLEN_MASK; -} - -inline -UintR -LqhKeyReq::getSameClientAndTcFlag(const UintR & requestInfo) -{ - return (requestInfo >> RI_SAME_CLIENT_SHIFT) & 1; -} - -inline -UintR LqhKeyReq::getReturnedReadLenAIFlag(const UintR & requestInfo) -{ - return (requestInfo >> RI_RETURN_AI_SHIFT) & 1; -} - -inline -UintR -LqhKeyReq::getApplicationAddressFlag(const UintR & requestInfo){ - return (requestInfo >> RI_APPL_ADDR_SHIFT) & 1; -} - -inline -void -LqhKeyReq::setAttrLen(UintR & scanInfoAttrLen, UintR val){ - ASSERT_MAX(val, SI_ATTR_LEN_MASK, "LqhKeyReq::setAttrLen"); - scanInfoAttrLen |= (val << SI_ATTR_LEN_SHIFT); -} - - -inline -void -LqhKeyReq::setScanTakeOverFlag(UintR & scanInfoAttrLen, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setScanTakeOverFlag"); - scanInfoAttrLen |= (val << SI_SCAN_TO_SHIFT); -} -inline -void - -LqhKeyReq::setStoredProcFlag(UintR & scanData, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setStoredProcFlag"); - scanData |= (val << SI_STORED_PROC_SHIFT); -} - -inline -void - -LqhKeyReq::setDistributionKey(UintR & scanData, UintR val){ - ASSERT_MAX(val, SI_DISTR_KEY_MASK, "LqhKeyReq::setDistributionKey"); - scanData |= (val << SI_DISTR_KEY_SHIFT); -} - -#if 0 -inline -void - -LqhKeyReq::setTableId(UintR & tableSchemaVersion, UintR val){ - -} -inline -void -LqhKeyReq::setSchemaVersion(UintR & tableSchemaVersion, UintR val); - -inline -void -LqhKeyReq::setFragmentId(UintR & fragmentData, UintR val); - -inline -void -LqhKeyReq::setNextReplicaNodeId(UintR & fragmentData, UintR val); -#endif - -inline -void -LqhKeyReq::setLockType(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_LOCK_TYPE_MASK, "LqhKeyReq::setLockType"); - requestInfo |= (val << RI_LOCK_TYPE_SHIFT); -} - -inline -void -LqhKeyReq::setDirtyFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setDirtyFlag"); - requestInfo |= (val << RI_DIRTY_SHIFT); -} - -inline -void -LqhKeyReq::setInterpretedFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setInterpretedFlag"); - requestInfo |= (val << RI_INTERPRETED_SHIFT); -} - -inline -void -LqhKeyReq::setSimpleFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setSimpleFlag"); - requestInfo |= (val << RI_SIMPLE_SHIFT); -} - -inline -void -LqhKeyReq::setOperation(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_OPERATION_MASK, "LqhKeyReq::setOperation"); - requestInfo |= (val << RI_OPERATION_SHIFT); -} - -inline -void -LqhKeyReq::setSeqNoReplica(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_SEQ_REPLICA_MASK, "LqhKeyReq::setSeqNoReplica"); - requestInfo |= (val << RI_SEQ_REPLICA_SHIFT); -} - -inline -void -LqhKeyReq::setLastReplicaNo(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_LAST_REPL_MASK, "LqhKeyReq::setLastReplicaNo"); - requestInfo |= (val << RI_LAST_REPL_SHIFT); -} - -inline -void -LqhKeyReq::setAIInLqhKeyReq(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_AI_IN_THIS_MASK, "LqhKeyReq::setAIInLqhKeyReq"); - requestInfo |= (val << RI_AI_IN_THIS_SHIFT); -} - -inline -void -LqhKeyReq::setKeyLen(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, RI_KEYLEN_MASK, "LqhKeyReq::setKeyLen"); - requestInfo |= (val << RI_KEYLEN_SHIFT); -} - -inline -void -LqhKeyReq::setSameClientAndTcFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setSameClientAndTcFlag"); - requestInfo |= (val << RI_SAME_CLIENT_SHIFT); -} - -inline -void -LqhKeyReq::setReturnedReadLenAIFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setReturnedReadLenAIFlag"); - requestInfo |= (val << RI_RETURN_AI_SHIFT); -} - -inline -void -LqhKeyReq::setApplicationAddressFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setApplicationAddressFlag"); - requestInfo |= (val << RI_APPL_ADDR_SHIFT); -} - -/**** */ - -inline -void -LqhKeyReq::setMarkerFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhKeyReq::setMarkerFlag"); - requestInfo |= (val << RI_MARKER_SHIFT); -} - -inline -UintR -LqhKeyReq::getMarkerFlag(const UintR & requestInfo){ - return (requestInfo >> RI_MARKER_SHIFT) & 1; -} - -class LqhKeyConf { - /** - * Reciver(s) - */ - friend class Dbtc; - - /** - * Sender(s) - */ - friend class Dblqh; - - // Sent in a packed signal - friend class PackedSignal; - /** - * For printing - */ - friend bool printPACKED_SIGNAL(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - friend bool printLQHKEYCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 7 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 connectPtr; - Uint32 opPtr; - Uint32 userRef; - Uint32 readLen; - Uint32 transId1; - Uint32 transId2; - Uint32 noFiredTriggers; -}; - -class LqhKeyRef { - /** - * Reciver(s) - */ - friend class Dbtc; - - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * For printing - */ - friend bool printLQHKEYREF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 5 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 userRef; - Uint32 connectPtr; - Uint32 errorCode; - Uint32 transId1; - Uint32 transId2; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp b/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp deleted file mode 100644 index e47ce39897a..00000000000 --- a/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 LQH_SIZE_ALT_REQ_H -#define LQH_SIZE_ALT_REQ_H - - - -#include "SignalData.hpp" - -class LqhSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dblqh; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0); - STATIC_CONST( IND_FRAG = 1); - STATIC_CONST( IND_CONNECT = 2); - STATIC_CONST( IND_TABLE = 3); - STATIC_CONST( IND_TC_CONNECT = 4); - STATIC_CONST( IND_REPLICAS = 5); - STATIC_CONST( IND_LOG_FILES = 6); - STATIC_CONST( IND_SCAN = 7); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[8]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/LqhTransConf.hpp b/ndb/include/kernel/signaldata/LqhTransConf.hpp deleted file mode 100644 index f62dfd07f51..00000000000 --- a/ndb/include/kernel/signaldata/LqhTransConf.hpp +++ /dev/null @@ -1,218 +0,0 @@ -/* 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 LQH_TRANS_CONF_H -#define LQH_TRANS_CONF_H - -#include "SignalData.hpp" - -/** - * This signal is sent as response to a LQH_TRANSREQ - * which is sent as by a take-over TC - */ -class LqhTransConf { - /** - * Reciver(s) - */ - friend class Dbtc; - - /** - * Sender(s) - */ - friend class Dblqh; - - friend bool printLQH_TRANSCONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 15 ); -private: - - /** - * This type describes the state of the operation returned in this signal - */ - enum OperationStatus { - InvalidStatus = 0, /**< This status should never be sent in a signal - it is only used for initializing variables so that - you can easily later check if they have changed */ - LastTransConf = 4, /**< This status indicates that LQH has finished the scan - of operations belonging to the died TC. - Data 0 - 2 is valid */ - - Prepared = 2, - Committed = 3, - Aborted = 1, - Marker = 5 /**< This means that the only thing left is a marker, - Data 0 - 6 is valid */ - }; - - /** - * DATA VARIABLES - */ - Uint32 tcRef; // 0 - Uint32 lqhNodeId; // 1 - Uint32 operationStatus; // 2 See enum OperationStatus - Uint32 transId1; // 3 - Uint32 transId2; // 4 - Uint32 apiRef; // 5 - Uint32 apiOpRec; // 6 - Uint32 lqhConnectPtr; - Uint32 oldTcOpRec; - Uint32 requestInfo; - Uint32 gci; - Uint32 nextNodeId1; - Uint32 nextNodeId2; - Uint32 nextNodeId3; - Uint32 tableId; - - /** - * Getters - */ - static Uint32 getReplicaNo(Uint32 & requestInfo); - static Uint32 getReplicaType(Uint32 & requestInfo); - static Uint32 getLastReplicaNo(Uint32 & requestInfo); - static Uint32 getSimpleFlag(Uint32 & requestInfo); - static Uint32 getDirtyFlag(Uint32 & requestInfo); - static Uint32 getOperation(Uint32 & requestInfo); - static Uint32 getMarkerFlag(Uint32 & requestInfo); - - static void setReplicaNo(UintR & requestInfo, UintR val); - static void setReplicaType(UintR & requestInfo, UintR val); - static void setLastReplicaNo(UintR & requestInfo, UintR val); - static void setSimpleFlag(UintR & requestInfo, UintR val); - static void setDirtyFlag(UintR & requestInfo, UintR val); - static void setOperation(UintR & requestInfo, UintR val); - static void setMarkerFlag(Uint32 & requestInfo, Uint32 val); -}; - -/** - * Request Info - * - * t = replica type - 2 Bits (0-1) - * r = Replica No - 2 Bits (2-3) - * l = Last Replica No - 2 Bits (4-5) - * s = Simple - 1 Bits (6) - * d = Dirty - 1 Bit (7) - * o = Operation - 3 Bit (8-9) - * m = Marker present - 1 Bit (10) - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * ttrrllsdooom - */ -#define LTC_REPLICA_TYPE_SHIFT (0) -#define LTC_REPLICA_TYPE_MASK (3) -#define LTC_REPLICA_NO_SHIFT (2) -#define LTC_REPLICA_NO_MASK (3) -#define LTC_LAST_REPLICA_SHIFT (4) -#define LTC_LAST_REPLICA_MASK (3) -#define LTC_SIMPLE_SHIFT (6) -#define LTC_DIRTY_SHIFT (7) -#define LTC_OPERATION_SHIFT (8) -#define LTC_OPERATION_MASK (7) -#define LTC_MARKER_SHIFT (10) - -inline -Uint32 -LqhTransConf::getReplicaType(Uint32 & requestInfo){ - return (requestInfo >> LTC_REPLICA_TYPE_SHIFT) & LTC_REPLICA_TYPE_MASK; -} - -inline -Uint32 -LqhTransConf::getReplicaNo(Uint32 & requestInfo){ - return (requestInfo >> LTC_REPLICA_NO_SHIFT) & LTC_REPLICA_NO_MASK; -} - -inline -Uint32 -LqhTransConf::getLastReplicaNo(Uint32 & requestInfo){ - return (requestInfo >> LTC_LAST_REPLICA_SHIFT) & LTC_LAST_REPLICA_MASK; -} - -inline -Uint32 -LqhTransConf::getSimpleFlag(Uint32 & requestInfo){ - return (requestInfo >> LTC_SIMPLE_SHIFT) & 1; -} - -inline -Uint32 -LqhTransConf::getDirtyFlag(Uint32 & requestInfo){ - return (requestInfo >> LTC_DIRTY_SHIFT) & 1; -} - -inline -Uint32 -LqhTransConf::getOperation(Uint32 & requestInfo){ - return (requestInfo >> LTC_OPERATION_SHIFT) & LTC_OPERATION_MASK; -} - -inline -Uint32 -LqhTransConf::getMarkerFlag(Uint32 & requestInfo){ - return (requestInfo >> LTC_MARKER_SHIFT) & 1; -} - - -inline -void -LqhTransConf::setReplicaNo(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, LTC_REPLICA_NO_MASK, "LqhTransConf::setReplicaNo"); - requestInfo |= (val << LTC_REPLICA_NO_SHIFT); -} - -inline -void -LqhTransConf::setReplicaType(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, LTC_REPLICA_TYPE_MASK, "LqhTransConf::setReplicaType"); - requestInfo |= (val << LTC_REPLICA_TYPE_SHIFT); -} - -inline -void -LqhTransConf::setLastReplicaNo(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, LTC_LAST_REPLICA_MASK, "LqhTransConf::setLastReplicaNo"); - requestInfo |= (val << LTC_LAST_REPLICA_SHIFT); -} - -inline -void -LqhTransConf::setSimpleFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhTransConf::setSimpleFlag"); - requestInfo |= (val << LTC_SIMPLE_SHIFT); -} - -inline -void -LqhTransConf::setDirtyFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhTransConf::setDirtyFlag"); - requestInfo |= (val << LTC_DIRTY_SHIFT); -} - -inline -void -LqhTransConf::setOperation(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, LTC_OPERATION_MASK, "LqhTransConf::setOperation"); - requestInfo |= (val << LTC_OPERATION_SHIFT); -} - -inline -void -LqhTransConf::setMarkerFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "LqhTransConf::setMarkerFlag"); - requestInfo |= (val << LTC_MARKER_SHIFT); -} - -#endif diff --git a/ndb/include/kernel/signaldata/ManagementServer.hpp b/ndb/include/kernel/signaldata/ManagementServer.hpp deleted file mode 100644 index ce14e30c81d..00000000000 --- a/ndb/include/kernel/signaldata/ManagementServer.hpp +++ /dev/null @@ -1,87 +0,0 @@ -/* 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 MANAGEMENTSERVER_HPP -#define MANAGEMENTSERVER_HPP - -#include "SignalData.hpp" - -/** - * Request to lock configuration - */ -class MgmLockConfigReq { - friend class MgmtSrvr; - -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 newConfigGeneration; -}; - -/** - * Confirm configuration lock - */ -class MgmLockConfigRep { - friend class MgmtSrvr; -public: - STATIC_CONST( SignalLength = 1 ); - - /* Error codes */ - enum ErrorCode { - OK, - UNKNOWN_ERROR, - GENERATION_MISMATCH, - ALREADY_LOCKED - }; - -private: - Uint32 errorCode; -}; - -/** - * Unlock configuration - */ -class MgmUnlockConfigReq { - friend class MgmtSrvr; - -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 commitConfig; -}; - -/** - * Confirm config unlock - */ -class MgmUnlockConfigRep { - friend class MgmtSrvr; -public: - STATIC_CONST( SignalLength = 1 ); - - /* Error codes */ - enum ErrorCode { - OK, - UNKNOWN_ERROR, - NOT_LOCKED - }; - -private: - Uint32 errorCode; -}; - -#endif /* !MANAGEMENTSERVER_HPP */ diff --git a/ndb/include/kernel/signaldata/MasterGCP.hpp b/ndb/include/kernel/signaldata/MasterGCP.hpp deleted file mode 100644 index ebe6857a107..00000000000 --- a/ndb/include/kernel/signaldata/MasterGCP.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* 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 MASTER_GCP_HPP -#define MASTER_GCP_HPP - -#include <NodeBitmask.hpp> - -/** - * - */ -class MasterGCPConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 8 + NdbNodeBitmask::Size ); - - enum State { - GCP_READY = 0, - GCP_PREPARE_RECEIVED = 1, - GCP_COMMIT_RECEIVED = 2, - GCP_TC_FINISHED = 3 - }; -private: - /** - * Data replied - */ - Uint32 gcpState; - Uint32 senderNodeId; - Uint32 failedNodeId; - Uint32 newGCP; - Uint32 latestLCP; - Uint32 oldestRestorableGCI; - Uint32 keepGCI; - Uint32 lcpActive[NdbNodeBitmask::Size]; -}; -/** - * - */ -class MasterGCPReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 masterRef; - Uint32 failedNodeId; -}; - -/** - * - */ -class MasterGCPRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 senderNodeId; - Uint32 failedNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/MasterLCP.hpp b/ndb/include/kernel/signaldata/MasterLCP.hpp deleted file mode 100644 index bf84ac73309..00000000000 --- a/ndb/include/kernel/signaldata/MasterLCP.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* 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 MASTER_LCP_HPP -#define MASTER_LCP_HPP - -#include <NdbOut.hpp> -#include "SignalData.hpp" - -/** - * - */ -class MasterLCPConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - friend bool printMASTER_LCP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - enum State { - LCP_STATUS_IDLE = 0, - LCP_STATUS_ACTIVE = 2, - LCP_TAB_COMPLETED = 8, - LCP_TAB_SAVED = 9 - }; - - friend NdbOut& operator<<(NdbOut&, const State&); - -private: - /** - * Data replied - */ - Uint32 senderNodeId; - Uint32 lcpState; - Uint32 failedNodeId; -}; -/** - * - */ -class MasterLCPReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - friend bool printMASTER_LCP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 masterRef; - Uint32 failedNodeId; -}; - -class MasterLCPRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - friend bool printMASTER_LCP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); -private: - /** - * Data replied - */ - Uint32 senderNodeId; - Uint32 failedNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/NFCompleteRep.hpp b/ndb/include/kernel/signaldata/NFCompleteRep.hpp deleted file mode 100644 index c8bde705a86..00000000000 --- a/ndb/include/kernel/signaldata/NFCompleteRep.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* 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 NF_COMPLETE_REP_HPP -#define NF_COMPLETE_REP_HPP - -#include "SignalData.hpp" - -/** - * NFCompleteRep - Node Fail Complete Report - * - * This signal is sent by a block(or a node) - * when it has finished cleaning up after a node failure. - * - * It's also sent from Qmgr to the clusterMgr in API - * to tell the API that it can now abort all transactions still waiting for response - * from the failed NDB node - * - */ -class NFCompleteRep { - /** - * Sender(s) - */ - friend class Dbdict; - friend class Dblqh; - friend class Dbtc; - friend class Qmgr; - - /** - * Sender/Reciver - */ - friend class Dbdih; - friend class ClusterMgr; - - friend bool printNF_COMPLETE_REP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 5 ); - -private: - - /** - * Which block has completed... - * - * NOTE: 0 means the node has completed - */ - Uint32 blockNo; - - /** - * Which node has completed... - */ - Uint32 nodeId; - - /** - * Which node has failed - */ - Uint32 failedNodeId; - - /** - * Is this the original message or a delayed variant. - */ - Uint32 unused; // originalMessage - - Uint32 from; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/NdbSttor.hpp b/ndb/include/kernel/signaldata/NdbSttor.hpp deleted file mode 100644 index edd93ef96a8..00000000000 --- a/ndb/include/kernel/signaldata/NdbSttor.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* 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 NDB_STTOR_HPP -#define NDB_STTOR_HPP - -#include "SignalData.hpp" - -class NdbSttor { - /** - * Sender(s) - */ - friend class NdbCntr; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - friend class Dbdict; - friend class Dbdih; - friend class Dblqh; - friend class Dbtc; - friend class ClusterMgr; - friend class Trix; - friend class Backup; - friend class Suma; - friend class Grep; - - friend bool printNDB_STTOR(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - STATIC_CONST( DataLength = 16 ); -private: - - Uint32 senderRef; - Uint32 nodeId; - Uint32 internalStartPhase; - Uint32 typeOfStart; - Uint32 masterNodeId; - Uint32 unused; - Uint32 config[DataLength]; -}; - -class NdbSttorry { - /** - * Receiver(s) - */ - friend class NdbCntr; - - /** - * Sender(s) - */ - friend class Ndbcntr; - friend class Dbdict; - friend class Dbdih; - friend class Dblqh; - friend class Dbtc; - friend class ClusterMgr; - friend class Trix; - friend class Backup; - friend class Suma; - friend class Grep; - - friend bool printNDB_STTORRY(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); -private: - - Uint32 senderRef; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/NdbfsContinueB.hpp b/ndb/include/kernel/signaldata/NdbfsContinueB.hpp deleted file mode 100644 index 6154e5c19b1..00000000000 --- a/ndb/include/kernel/signaldata/NdbfsContinueB.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* 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 NDBFS_CONTINUEB_H -#define NDBFS_CONTINUEB_H - -#include "SignalData.hpp" - -class NdbfsContinueB { - /** - * Sender(s)/Reciver(s) - */ - friend class Ndbfs; - friend bool printCONTINUEB_NDBFS(FILE * output, const Uint32 * theData, - Uint32 len, Uint16); -private: - enum { - ZSCAN_MEMORYCHANNEL_10MS_DELAY = 0, - ZSCAN_MEMORYCHANNEL_NO_DELAY = 1 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/NextScan.hpp b/ndb/include/kernel/signaldata/NextScan.hpp deleted file mode 100644 index 3a1882f94e8..00000000000 --- a/ndb/include/kernel/signaldata/NextScan.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* 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 NEXT_SCAN_HPP -#define NEXT_SCAN_HPP - -#include "SignalData.hpp" - -class NextScanReq { - friend class Dblqh; - friend class Dbacc; - friend class Dbtux; -public: - // two sets of defs picked from lqh/acc - enum ScanFlag { - ZSCAN_NEXT = 1, - ZSCAN_NEXT_COMMIT = 2, - ZSCAN_COMMIT = 3, // new - ZSCAN_CLOSE = 6, - ZSCAN_NEXT_ABORT = 12 - }; - enum CopyFlag { - todo_ZCOPY_NEXT = 1, - todo_ZCOPY_NEXT_COMMIT = 2, - todo_ZCOPY_COMMIT = 3, - todo_ZCOPY_REPEAT = 4, - todo_ZCOPY_ABORT = 5, - todo_ZCOPY_CLOSE = 6 - }; - STATIC_CONST( SignalLength = 3 ); -private: - Uint32 accPtr; // scan record in ACC/TUX - Uint32 accOperationPtr; - Uint32 scanFlag; -}; - -class NextScanConf { - friend class Dbacc; - friend class Dbtux; - friend class Dblqh; -public: - // length is less if no keyinfo or no next result - STATIC_CONST( SignalLength = 11 ); -private: - Uint32 scanPtr; // scan record in LQH - Uint32 accOperationPtr; - Uint32 fragId; - Uint32 localKey[2]; - Uint32 localKeyLength; - Uint32 keyLength; - Uint32 key[4]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/NodeFailRep.hpp b/ndb/include/kernel/signaldata/NodeFailRep.hpp deleted file mode 100644 index 060acd6a3e2..00000000000 --- a/ndb/include/kernel/signaldata/NodeFailRep.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* 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 NODE_FAILREP_HPP -#define NODE_FAILREP_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -/** - * This signals is sent by Qmgr to NdbCntr - * and then from NdbCntr sent to: dih, dict, lqh, tc & API - */ -class NodeFailRep { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - friend class Dbdict; - - /** - * Reciver(s) - */ - friend class Dbdih; - friend class Dblqh; - friend class Dbtc; - friend class ClusterMgr; - friend class Trix; - friend class Backup; - friend class Suma; - friend class Grep; - friend class SafeCounterManager; - -public: - STATIC_CONST( SignalLength = 3 + NodeBitmask::Size ); -private: - - Uint32 failNo; - - /** - * Note: This field is only set when signals is sent FROM Ndbcntr - * (not when signal is sent from Qmgr) - */ - Uint32 masterNodeId; - - Uint32 noOfNodes; - Uint32 theNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/NodeStateSignalData.hpp b/ndb/include/kernel/signaldata/NodeStateSignalData.hpp deleted file mode 100644 index 391d8f89566..00000000000 --- a/ndb/include/kernel/signaldata/NodeStateSignalData.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* 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 NODE_STATE_SIGNAL_DATA_HPP -#define NODE_STATE_SIGNAL_DATA_HPP - -#include <NodeState.hpp> - -/** - * NodeStateRep - * - * Sent so that all blocks will update their NodeState - */ -class NodeStateRep { - /** - * Sender(s) - */ - friend class Ndbcntr; - - /** - * Reciver - */ - friend class SimulatedBlock; - -public: - STATIC_CONST( SignalLength = NodeState::DataLength ); -private: - - NodeState nodeState; -}; - -/** - * ChangeNodeStateReq - * - * Sent by NdbCntr when synchronous NodeState updates are needed - */ -class ChangeNodeStateReq { - /** - * Sender(s) - */ - friend class Ndbcntr; - - /** - * Reciver - */ - friend class SimulatedBlock; - -public: - STATIC_CONST( SignalLength = 2 + NodeState::DataLength ); -public: - - Uint32 senderRef; - Uint32 senderData; - NodeState nodeState; -}; - -/** - * ChangeNodeStateConf - * - * Sent by SimulatedBlock as a confirmation to ChangeNodeStateReq - */ -class ChangeNodeStateConf { - /** - * Sender(s) - */ - friend class SimulatedBlock; - - /** - * Reciver - */ - friend class NdbCntr; - -public: - STATIC_CONST( SignalLength = 1 ); -private: - - Uint32 senderData; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/PackedSignal.hpp b/ndb/include/kernel/signaldata/PackedSignal.hpp deleted file mode 100644 index ea0ff6db526..00000000000 --- a/ndb/include/kernel/signaldata/PackedSignal.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* 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 PACKED_SIGNAL_HPP -#define PACKED_SIGNAL_HPP - -#include "SignalData.hpp" - -// -------- CODES FOR COMPRESSED SIGNAL (PACKED_SIGNAL) ------- -#define ZCOMMIT 0 -#define ZCOMPLETE 1 -#define ZCOMMITTED 2 -#define ZCOMPLETED 3 -#define ZLQHKEYCONF 4 -#define ZREMOVE_MARKER 5 - -class PackedSignal { - - static Uint32 getSignalType(Uint32 data); - - /** - * For printing - */ - friend bool printPACKED_SIGNAL(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); -}; - -inline -Uint32 PackedSignal::getSignalType(Uint32 data) { return data >> 28; } - -#endif diff --git a/ndb/include/kernel/signaldata/PrepDropTab.hpp b/ndb/include/kernel/signaldata/PrepDropTab.hpp deleted file mode 100644 index c54b2474aa3..00000000000 --- a/ndb/include/kernel/signaldata/PrepDropTab.hpp +++ /dev/null @@ -1,172 +0,0 @@ -/* 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 PREP_DROP_TAB_HPP -#define PREP_DROP_TAB_HPP - -#include "SignalData.hpp" - -class PrepDropTabReq { - /** - * Sender(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbdih; - - friend bool printPREP_DROP_TAB_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; - Uint32 requestType; // @see DropTabReq::RequestType -}; - -class PrepDropTabConf { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printPREP_DROP_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; -}; - -class PrepDropTabRef { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Dblqh; - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dbdict; - - friend bool printPREP_DROP_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - OK = 0, - NoSuchTable = 1, - PrepDropInProgress = 2, - DropInProgress = 3, - InvalidTableState = 4, - NF_FakeErrorREF = 5 - }; - -private: - Uint32 senderRef; - Uint32 senderData; - Uint32 tableId; - Uint32 errorCode; -}; - -class WaitDropTabReq { - /** - * Sender - */ - friend class Dbtc; - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printWAIT_DROP_TAB_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - Uint32 tableId; - Uint32 senderRef; -}; - -class WaitDropTabRef { - /** - * Sender - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbtc; - friend class Dbdih; - - friend bool printWAIT_DROP_TAB_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - NoSuchTable = 1, - IllegalTableState = 2, - DropInProgress = 3, - NF_FakeErrorREF = 4 - }; - - Uint32 tableId; - Uint32 senderRef; - Uint32 errorCode; - Uint32 tableStatus; -}; - - -class WaitDropTabConf { - /** - * Sender - */ - friend class Dblqh; - - /** - * Receiver(s) - */ - friend class Dbtc; - friend class Dbdih; - - friend bool printWAIT_DROP_TAB_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - Uint32 tableId; - Uint32 senderRef; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/PrepFailReqRef.hpp b/ndb/include/kernel/signaldata/PrepFailReqRef.hpp deleted file mode 100644 index 90b568237b8..00000000000 --- a/ndb/include/kernel/signaldata/PrepFailReqRef.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* 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 PREP_FAILREQREF_HPP -#define PREP_FAILREQREF_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - -/** - * The Req signal is sent by Qmgr to Qmgr - * and the Ref signal might be sent back - * - * NOTE that the signals are identical - */ -class PrepFailReqRef { - - /** - * Sender(s) / Reciver(s) - */ - friend class Qmgr; - - friend bool printPREPFAILREQREF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 3 + NodeBitmask::Size ); -private: - - Uint32 xxxBlockRef; - Uint32 failNo; - - Uint32 noOfNodes; - Uint32 theNodes[NodeBitmask::Size]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ReadConfig.hpp b/ndb/include/kernel/signaldata/ReadConfig.hpp deleted file mode 100644 index 0835b252a32..00000000000 --- a/ndb/include/kernel/signaldata/ReadConfig.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef READ_CONFIG_HPP -#define READ_CONFIG_HPP - -/** - */ -class ReadConfigReq { -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 noOfParameters; // 0 Means read all relevant for block - Uint32 parameters[1]; // see mgmapi_config_parameters.h -}; - -class ReadConfigConf { -public: - STATIC_CONST( SignalLength = 2 ); - - Uint32 senderRef; - Uint32 senderData; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ReadNodesConf.hpp b/ndb/include/kernel/signaldata/ReadNodesConf.hpp deleted file mode 100644 index 0507007f71a..00000000000 --- a/ndb/include/kernel/signaldata/ReadNodesConf.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* 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 READ_NODESCONF_HPP -#define READ_NODESCONF_HPP - -#include <NodeBitmask.hpp> - -/** - * This signals is sent by Qmgr to NdbCntr - * and then from NdbCntr sent to: dih, dict, lqh, tc - * - * NOTE Only noOfNodes & allNodes are valid when sent from Qmgr - */ -class ReadNodesConf { - /** - * Sender(s) - */ - friend class Qmgr; - - /** - * Sender(s) / Reciver(s) - */ - friend class Ndbcntr; - - /** - * Reciver(s) - */ - friend class Dbdih; - friend class Dbdict; - friend class Dblqh; - friend class Dbtc; - friend class Trix; - friend class Backup; - friend class Suma; - friend class Grep; - - friend bool printREAD_NODES_CONF(FILE*, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 + 5*NdbNodeBitmask::Size ); -private: - - Uint32 noOfNodes; - Uint32 ndynamicId; - - /** - * - * NOTE Not valid when send from Qmgr - */ - Uint32 masterNodeId; - - /** - * This array defines all the ndb nodes in the system - */ - union { - Uint32 allNodes[NdbNodeBitmask::Size]; - Uint32 definedNodes[NdbNodeBitmask::Size]; - }; - - /** - * This array describes wheather the nodes are currently active - * - * NOTE Not valid when send from Qmgr - */ - Uint32 inactiveNodes[NdbNodeBitmask::Size]; - - Uint32 clusterNodes[NdbNodeBitmask::Size]; // From Qmgr - Uint32 startingNodes[NdbNodeBitmask::Size]; // From Cntr - Uint32 startedNodes[NdbNodeBitmask::Size]; // From Cntr -}; - -#endif diff --git a/ndb/include/kernel/signaldata/RelTabMem.hpp b/ndb/include/kernel/signaldata/RelTabMem.hpp deleted file mode 100644 index 9cf1787bba4..00000000000 --- a/ndb/include/kernel/signaldata/RelTabMem.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* 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 REL_TABMEM_HPP -#define REL_TABMEM_HPP - -#include "SignalData.hpp" - -class RelTabMemReq { - /** - * Sender(s) and Receiver(s) - */ - friend class Dbdict; - - /** - * Receiver(s) - */ - friend class Dbacc; - friend class Dbdih; - friend class Dblqh; - friend class Dbtc; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 primaryTableId; - Uint32 secondaryTableId; -}; - -class RelTabMemConf { - /** - * Sender(s) and Receiver(s) - */ - friend class Dbdict; - - /** - * Sender(s) - */ - friend class Dbacc; - friend class Dbdih; - friend class Dblqh; - friend class Dbtc; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 userPtr; - Uint32 senderRef; - Uint32 nodeId; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/RepImpl.hpp b/ndb/include/kernel/signaldata/RepImpl.hpp deleted file mode 100644 index 0de1389a4a9..00000000000 --- a/ndb/include/kernel/signaldata/RepImpl.hpp +++ /dev/null @@ -1,500 +0,0 @@ -/* 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 REP_IMPL_HPP -#define REP_IMPL_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <ndb_limits.h> -#include <debugger/GrepError.hpp> - -/** - * RecordType - * sz = no of elems in enum - * @todo support for meta_log must be added - */ -enum RecordType -{ - DATA_SCAN = 0, - DATA_LOG = 1, - META_SCAN = 2, - // META_LOG = 3, //removed META_LOG. not supported - RecordTypeSize = 3 // =4 if meta log is supported -}; - -/** - * Wait GCP - */ -class RepWaitGcpReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - friend class GrepParticipant; - friend bool printREP_WAITGCP_REQ(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 gcp; - Uint32 senderNodeId; -}; - -class RepWaitGcpConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - friend class GrepParticipant; - - friend bool printREP_WAITGCP_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; -}; - -class RepWaitGcpRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - friend class GrepParticipant; - - friend bool printREP_WAITGCP_REF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 6 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 senderNodeId; - GrepError::GE_Code err; -}; - -class RepGetGciReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - friend class Grep; - - friend bool printREP_GET_GCI_REQ(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 3 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeGrp; -}; - -class RepGetGciConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GET_GCI_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeGrp; - Uint32 firstPSGCI; - Uint32 lastPSGCI; - Uint32 firstSSGCI; - Uint32 lastSSGCI; -}; - -class RepGetGciRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GET_GCI_REF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 8); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeGrp; - Uint32 firstPSGCI; - Uint32 lastPSGCI; - Uint32 firstSSGCI; - Uint32 lastSSGCI; - GrepError::GE_Code err; -}; - -class RepGetGciBufferReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GET_GCIBUFFER_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 nodeGrp; -}; - - -class RepGetGciBufferConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GET_GCIBUFFER_CONF(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 8 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstPSGCI; - Uint32 lastPSGCI; - Uint32 firstSSGCI; - Uint32 lastSSGCI; - Uint32 currentGCIBuffer; - Uint32 nodeGrp; -}; - -class RepGetGciBufferRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GET_GCIBUFFER_REF(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 9 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstPSGCI; - Uint32 lastPSGCI; - Uint32 firstSSGCI; - Uint32 lastSSGCI; - Uint32 currentGCIBuffer; - Uint32 nodeGrp; - GrepError::GE_Code err; -}; - -class RepInsertGciBufferReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_INSERT_GCIBUFFER_REQ(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 gci; - Uint32 nodeGrp; - Uint32 force; -}; - -class RepInsertGciBufferRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_INSERT_GCIBUFFER_REF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 gci; - Uint32 nodeGrp; - Uint32 tableId; - Uint32 force; - GrepError::GE_Code err; -}; - -class RepInsertGciBufferConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_INSERT_GCIBUFFER_CONF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 gci; - Uint32 nodeGrp; - Uint32 force; -}; - - -class RepClearPSGciBufferReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_PS_GCIBUFFER_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 nodeGrp; -}; - -class RepClearPSGciBufferRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_PS_GCIBUFFER_REF(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 currentGCI; - Uint32 nodeGrp; - GrepError::GE_Code err; -}; - -class RepClearPSGciBufferConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_PS_GCIBUFFER_CONF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 nodeGrp; -}; - -class RepClearSSGciBufferReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_SS_GCIBUFFER_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 nodeGrp; -}; - -class RepClearSSGciBufferRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_SS_GCIBUFFER_REF(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 currentGCI; - Uint32 nodeGrp; - GrepError::GE_Code err; -}; - -class RepClearSSGciBufferConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_CLEAR_SS_GCIBUFFER_CONF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 firstGCI; - Uint32 lastGCI; - Uint32 nodeGrp; -}; - - -class RepDataPage -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_DATA_PAGE(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeGrp; - Uint32 gci; -}; - - -class RepGciBufferAccRep -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_GCIBUFFER_ACC_REP(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeGrp; - Uint32 gci; - Uint32 totalSentBytes; -}; - -class RepDropTableReq -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_DROP_TABLE_REQ(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - Uint32 tableId; - // char tableName[MAX_TAB_NAME_SIZE]; -}; - -class RepDropTableRef -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_DROP_TABLE_REF(FILE *, const Uint32 *, - Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - Uint32 tableId; - // char tableName[MAX_TAB_NAME_SIZE]; -}; - -class RepDropTableConf -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - - friend bool printREP_DROP_TABLE_CONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - Uint32 tableId; - //char tableName[MAX_TAB_NAME_SIZE]; -}; - -class RepDisconnectRep -{ - /** - * Sender(s)/Reciver(s) - */ - friend class Rep; - friend class Grep; - - friend bool printREP_DISCONNECT_REP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - enum NodeType { - DB = 0, - REP = 1 - }; - STATIC_CONST( SignalLength = 7 ); - Uint32 senderData; - Uint32 senderRef; - Uint32 nodeId; - Uint32 nodeType; - Uint32 subId; - Uint32 subKey; - Uint32 err; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/ResumeReq.hpp b/ndb/include/kernel/signaldata/ResumeReq.hpp deleted file mode 100644 index a4880474ca8..00000000000 --- a/ndb/include/kernel/signaldata/ResumeReq.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* 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 RESUME_REQ_HPP -#define RESUME_REQ_HPP - -#include "SignalData.hpp" - -class ResumeReq { - - /** - * Reciver(s) - */ - friend class Ndbcntr; - - /** - * Sender - */ - friend class MgmtSrvr; - -public: - STATIC_CONST( SignalLength = 2 ); - -public: - - Uint32 senderRef; - Uint32 senderData; -}; - -class ResumeRef { - - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - /** - * Sender - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - OK = 0, - NodeShutdownInProgress = 1, - SystemShutdownInProgress = 2, - NodeShutdownWouldCauseSystemCrash = 3 - }; - -public: - Uint32 senderData; - Uint32 errorCode; -}; -#endif diff --git a/ndb/include/kernel/signaldata/ScanFrag.hpp b/ndb/include/kernel/signaldata/ScanFrag.hpp deleted file mode 100644 index e4b774f1416..00000000000 --- a/ndb/include/kernel/signaldata/ScanFrag.hpp +++ /dev/null @@ -1,348 +0,0 @@ -/* 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 SCAN_FRAG_HPP -#define SCAN_FRAG_HPP - -#include "SignalData.hpp" -#include "ndb_limits.h" - -class ScanFragReq { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Backup; - friend class Suma; - - /** - * Reciver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 12 ); - - friend bool printSCAN_FRAGREQ(FILE *, const Uint32*, Uint32, Uint16); - -public: - Uint32 senderData; - Uint32 resultRef; // Where to send the result - Uint32 savePointId; - Uint32 requestInfo; - Uint32 tableId; - Uint32 fragmentNoKeyLen; - Uint32 schemaVersion; - Uint32 transId1; - Uint32 transId2; - Uint32 clientOpPtr; - Uint32 batch_size_rows; - Uint32 batch_size_bytes; - - static Uint32 getLockMode(const Uint32 & requestInfo); - static Uint32 getHoldLockFlag(const Uint32 & requestInfo); - static Uint32 getKeyinfoFlag(const Uint32 & requestInfo); - static Uint32 getReadCommittedFlag(const Uint32 & requestInfo); - static Uint32 getRangeScanFlag(const Uint32 & requestInfo); - static Uint32 getDescendingFlag(const Uint32 & requestInfo); - static Uint32 getAttrLen(const Uint32 & requestInfo); - static Uint32 getScanPrio(const Uint32 & requestInfo); - - static void setLockMode(Uint32 & requestInfo, Uint32 lockMode); - static void setHoldLockFlag(Uint32 & requestInfo, Uint32 holdLock); - static void setKeyinfoFlag(Uint32 & requestInfo, Uint32 keyinfo); - static void setReadCommittedFlag(Uint32 & requestInfo, Uint32 readCommitted); - static void setRangeScanFlag(Uint32 & requestInfo, Uint32 rangeScan); - static void setDescendingFlag(Uint32 & requestInfo, Uint32 descending); - static void setAttrLen(Uint32 & requestInfo, Uint32 attrLen); - static void setScanPrio(Uint32& requestInfo, Uint32 prio); -}; - -class KeyInfo20 { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Backup; - friend class NdbOperation; - friend class NdbScanReceiver; -public: - STATIC_CONST( HeaderLength = 5); - STATIC_CONST( DataLength = 20 ); - - - static Uint32 setScanInfo(Uint32 noOfOps, Uint32 scanNo); - static Uint32 getScanNo(Uint32 scanInfo); - static Uint32 getScanOp(Uint32 scanInfo); - -public: - Uint32 clientOpPtr; - Uint32 keyLen; - Uint32 scanInfo_Node; - Uint32 transId1; - Uint32 transId2; - Uint32 keyData[DataLength]; -}; - -class ScanFragConf { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Dbtc; - friend class Backup; - friend class Suma; -public: - STATIC_CONST( SignalLength = 6 ); - -public: - Uint32 senderData; - Uint32 completedOps; - Uint32 fragmentCompleted; - Uint32 transId1; - Uint32 transId2; - Uint32 total_len; -}; - -class ScanFragRef { - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * Reciver(s) - */ - friend class Dbtc; - friend class Backup; - friend class Suma; -public: - STATIC_CONST( SignalLength = 4 ); -public: - enum ErrorCode { - ZNO_FREE_TC_CONREC_ERROR = 484, - ZTOO_FEW_CONCURRENT_OPERATIONS = 485, - ZTOO_MANY_CONCURRENT_OPERATIONS = 486, - ZSCAN_NO_FRAGMENT_ERROR = 487, - ZTOO_MANY_ACTIVE_SCAN_ERROR = 488, - ZNO_FREE_SCANREC_ERROR = 489, - ZWRONG_BATCH_SIZE = 1230, - ZSTANDBY_SCAN_ERROR = 1209, - ZSCAN_BOOK_ACC_OP_ERROR = 1219, - ZUNKNOWN_TRANS_ERROR = 1227 - }; - - Uint32 senderData; - Uint32 transId1; - Uint32 transId2; - Uint32 errorCode; -}; - -/** - * This is part of Scan Fragment protocol - * - * Not to be confused with ScanNextReq in Scan Table protocol - */ -class ScanFragNextReq { - /** - * Sender(s) - */ - friend class Dbtc; - friend class Backup; - friend class Suma; - - /** - * Reciver(s) - */ - friend class Dblqh; - - friend bool printSCANFRAGNEXTREQ(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 6 ); - -public: - Uint32 senderData; - Uint32 closeFlag; - Uint32 transId1; - Uint32 transId2; - Uint32 batch_size_rows; - Uint32 batch_size_bytes; -}; - -/** - * Request Info - * - * a = Length of attrinfo - 16 Bits (16-31) - * l = Lock Mode - 1 Bit 5 - * h = Hold lock - 1 Bit 7 - * k = Keyinfo - 1 Bit 8 - * r = read committed - 1 Bit 9 - * x = range scan - 1 Bit 6 - * z = descending - 1 Bit 10 - * p = Scan prio - 4 Bits (12-15) -> max 15 - * - * 1111111111222222222233 - * 01234567890123456789012345678901 - * lxhkrz ppppaaaaaaaaaaaaaaaa - */ -#define SF_LOCK_MODE_SHIFT (5) -#define SF_LOCK_MODE_MASK (1) - -#define SF_HOLD_LOCK_SHIFT (7) -#define SF_KEYINFO_SHIFT (8) -#define SF_READ_COMMITTED_SHIFT (9) -#define SF_RANGE_SCAN_SHIFT (6) -#define SF_DESCENDING_SHIFT (10) - -#define SF_ATTR_LEN_SHIFT (16) -#define SF_ATTR_LEN_MASK (65535) - -#define SF_PRIO_SHIFT 12 -#define SF_PRIO_MASK 15 - -inline -Uint32 -ScanFragReq::getLockMode(const Uint32 & requestInfo){ - return (requestInfo >> SF_LOCK_MODE_SHIFT) & SF_LOCK_MODE_MASK; -} - -inline -Uint32 -ScanFragReq::getHoldLockFlag(const Uint32 & requestInfo){ - return (requestInfo >> SF_HOLD_LOCK_SHIFT) & 1; -} - -inline -Uint32 -ScanFragReq::getKeyinfoFlag(const Uint32 & requestInfo){ - return (requestInfo >> SF_KEYINFO_SHIFT) & 1; -} - -inline -Uint32 -ScanFragReq::getRangeScanFlag(const Uint32 & requestInfo){ - return (requestInfo >> SF_RANGE_SCAN_SHIFT) & 1; -} - -inline -Uint32 -ScanFragReq::getDescendingFlag(const Uint32 & requestInfo){ - return (requestInfo >> SF_DESCENDING_SHIFT) & 1; -} - -inline -Uint32 -ScanFragReq::getReadCommittedFlag(const Uint32 & requestInfo){ - return (requestInfo >> SF_READ_COMMITTED_SHIFT) & 1; -} - -inline -Uint32 -ScanFragReq::getAttrLen(const Uint32 & requestInfo){ - return (requestInfo >> SF_ATTR_LEN_SHIFT) & SF_ATTR_LEN_MASK; -} - -inline -Uint32 -ScanFragReq::getScanPrio(const Uint32 & requestInfo){ - return (requestInfo >> SF_PRIO_SHIFT) & SF_PRIO_MASK; -} - -inline -void -ScanFragReq::setScanPrio(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, SF_PRIO_MASK, "ScanFragReq::setScanPrio"); - requestInfo |= (val << SF_PRIO_SHIFT); -} - -inline -void -ScanFragReq::setLockMode(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, SF_LOCK_MODE_MASK, "ScanFragReq::setLockMode"); - requestInfo |= (val << SF_LOCK_MODE_SHIFT); -} - -inline -void -ScanFragReq::setHoldLockFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "ScanFragReq::setHoldLockFlag"); - requestInfo |= (val << SF_HOLD_LOCK_SHIFT); -} - -inline -void -ScanFragReq::setKeyinfoFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "ScanFragReq::setKeyinfoFlag"); - requestInfo |= (val << SF_KEYINFO_SHIFT); -} - -inline -void -ScanFragReq::setReadCommittedFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "ScanFragReq::setReadCommittedFlag"); - requestInfo |= (val << SF_READ_COMMITTED_SHIFT); -} - -inline -void -ScanFragReq::setRangeScanFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "ScanFragReq::setRangeScanFlag"); - requestInfo |= (val << SF_RANGE_SCAN_SHIFT); -} - -inline -void -ScanFragReq::setDescendingFlag(UintR & requestInfo, UintR val){ - ASSERT_BOOL(val, "ScanFragReq::setDescendingFlag"); - requestInfo |= (val << SF_DESCENDING_SHIFT); -} - -inline -void -ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){ - ASSERT_MAX(val, SF_ATTR_LEN_MASK, "ScanFragReq::setAttrLen"); - requestInfo |= (val << SF_ATTR_LEN_SHIFT); -} - -inline -Uint32 -KeyInfo20::setScanInfo(Uint32 opNo, Uint32 scanNo){ - ASSERT_MAX(opNo, 1023, "KeyInfo20::setScanInfo"); - ASSERT_MAX(scanNo, 255, "KeyInfo20::setScanInfo"); - return (opNo << 8) + scanNo; -} - -inline -Uint32 -KeyInfo20::getScanNo(Uint32 scanInfo){ - return scanInfo & 0xFF; -} - -inline -Uint32 -KeyInfo20::getScanOp(Uint32 scanInfo){ - return (scanInfo >> 8) & 0x3FF; -} - -#endif diff --git a/ndb/include/kernel/signaldata/ScanTab.hpp b/ndb/include/kernel/signaldata/ScanTab.hpp deleted file mode 100644 index 894f973145c..00000000000 --- a/ndb/include/kernel/signaldata/ScanTab.hpp +++ /dev/null @@ -1,424 +0,0 @@ -/* 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 SCAN_TAB_H -#define SCAN_TAB_H - -#include "SignalData.hpp" - -/** - * - * SENDER: API - * RECIVER: Dbtc - */ -class ScanTabReq { - /** - * Reciver(s) - */ - friend class Dbtc; // Reciver - - /** - * Sender(s) - */ - friend class NdbTransaction; - friend class NdbScanOperation; - friend class NdbIndexScanOperation; - - /** - * For printing - */ - friend bool printSCANTABREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( StaticLength = 11 ); - -private: - - // Type definitions - - /** - * DATA VARIABLES - */ - UintR apiConnectPtr; // DATA 0 - UintR attrLenKeyLen; // DATA 1 - UintR requestInfo; // DATA 2 - UintR tableId; // DATA 3 - UintR tableSchemaVersion; // DATA 4 - UintR storedProcId; // DATA 5 - UintR transId1; // DATA 6 - UintR transId2; // DATA 7 - UintR buddyConPtr; // DATA 8 - UintR batch_byte_size; // DATA 9 - UintR first_batch_size; // DATA 10 - - /** - * Optional - */ - Uint32 distributionKey; - - /** - * Get:ers for requestInfo - */ - static Uint8 getParallelism(const UintR & requestInfo); - static Uint8 getLockMode(const UintR & requestInfo); - static Uint8 getHoldLockFlag(const UintR & requestInfo); - static Uint8 getReadCommittedFlag(const UintR & requestInfo); - static Uint8 getRangeScanFlag(const UintR & requestInfo); - static Uint8 getDescendingFlag(const UintR & requestInfo); - static Uint8 getKeyinfoFlag(const UintR & requestInfo); - static Uint16 getScanBatch(const UintR & requestInfo); - static Uint8 getDistributionKeyFlag(const UintR & requestInfo); - - /** - * Set:ers for requestInfo - */ - static void clearRequestInfo(UintR & requestInfo); - static void setParallelism(UintR & requestInfo, Uint32 flag); - static void setLockMode(UintR & requestInfo, Uint32 flag); - static void setHoldLockFlag(UintR & requestInfo, Uint32 flag); - static void setReadCommittedFlag(UintR & requestInfo, Uint32 flag); - static void setRangeScanFlag(UintR & requestInfo, Uint32 flag); - static void setDescendingFlag(UintR & requestInfo, Uint32 flag); - static void setKeyinfoFlag(UintR & requestInfo, Uint32 flag); - static void setScanBatch(Uint32& requestInfo, Uint32 sz); - static void setDistributionKeyFlag(Uint32& requestInfo, Uint32 flag); -}; - -/** - * Request Info - * - p = Parallelism - 8 Bits -> Max 256 (Bit 0-7) - l = Lock mode - 1 Bit 8 - h = Hold lock mode - 1 Bit 10 - c = Read Committed - 1 Bit 11 - k = Keyinfo - 1 Bit 12 - z = Descending (TUX) - 1 Bit 14 - x = Range Scan (TUX) - 1 Bit 15 - b = Scan batch - 10 Bit 16-25 (max 1023) - d = Distribution key flag - - 1111111111222222222233 - 01234567890123456789012345678901 - ppppppppl hck zxbbbbbbbbbb -*/ - -#define PARALLELL_SHIFT (0) -#define PARALLELL_MASK (255) - -#define LOCK_MODE_SHIFT (8) -#define LOCK_MODE_MASK (1) - -#define HOLD_LOCK_SHIFT (10) -#define HOLD_LOCK_MASK (1) - -#define KEYINFO_SHIFT (12) -#define KEYINFO_MASK (1) - -#define READ_COMMITTED_SHIFT (11) -#define READ_COMMITTED_MASK (1) - -#define RANGE_SCAN_SHIFT (15) -#define RANGE_SCAN_MASK (1) - -#define DESCENDING_SHIFT (14) -#define DESCENDING_MASK (1) - -#define SCAN_BATCH_SHIFT (16) -#define SCAN_BATCH_MASK (1023) - -#define SCAN_DISTR_KEY_SHIFT (26) - -inline -Uint8 -ScanTabReq::getParallelism(const UintR & requestInfo){ - return (Uint8)((requestInfo >> PARALLELL_SHIFT) & PARALLELL_MASK); -} - -inline -Uint8 -ScanTabReq::getLockMode(const UintR & requestInfo){ - return (Uint8)((requestInfo >> LOCK_MODE_SHIFT) & LOCK_MODE_MASK); -} - -inline -Uint8 -ScanTabReq::getHoldLockFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> HOLD_LOCK_SHIFT) & HOLD_LOCK_MASK); -} - -inline -Uint8 -ScanTabReq::getReadCommittedFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> READ_COMMITTED_SHIFT) & READ_COMMITTED_MASK); -} - -inline -Uint8 -ScanTabReq::getRangeScanFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> RANGE_SCAN_SHIFT) & RANGE_SCAN_MASK); -} - -inline -Uint8 -ScanTabReq::getDescendingFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> DESCENDING_SHIFT) & DESCENDING_MASK); -} - -inline -Uint16 -ScanTabReq::getScanBatch(const Uint32 & requestInfo){ - return (Uint16)((requestInfo >> SCAN_BATCH_SHIFT) & SCAN_BATCH_MASK); -} - -inline -void -ScanTabReq::clearRequestInfo(UintR & requestInfo){ - requestInfo = 0; -} - -inline -void -ScanTabReq::setParallelism(UintR & requestInfo, Uint32 type){ - ASSERT_MAX(type, PARALLELL_MASK, "ScanTabReq::setParallellism"); - requestInfo |= (type << PARALLELL_SHIFT); -} - -inline -void -ScanTabReq::setLockMode(UintR & requestInfo, Uint32 mode){ - ASSERT_MAX(mode, LOCK_MODE_MASK, "ScanTabReq::setLockMode"); - requestInfo |= (mode << LOCK_MODE_SHIFT); -} - -inline -void -ScanTabReq::setHoldLockFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setHoldLockFlag"); - requestInfo |= (flag << HOLD_LOCK_SHIFT); -} - -inline -void -ScanTabReq::setReadCommittedFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setReadCommittedFlag"); - requestInfo |= (flag << READ_COMMITTED_SHIFT); -} - -inline -void -ScanTabReq::setRangeScanFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setRangeScanFlag"); - requestInfo |= (flag << RANGE_SCAN_SHIFT); -} - -inline -void -ScanTabReq::setDescendingFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setDescendingFlag"); - requestInfo |= (flag << DESCENDING_SHIFT); -} - -inline -void -ScanTabReq::setScanBatch(Uint32 & requestInfo, Uint32 flag){ - ASSERT_MAX(flag, SCAN_BATCH_MASK, "ScanTabReq::setScanBatch"); - requestInfo &= ~(SCAN_BATCH_MASK << SCAN_BATCH_SHIFT); - requestInfo |= (flag << SCAN_BATCH_SHIFT); -} - -inline -Uint8 -ScanTabReq::getKeyinfoFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> KEYINFO_SHIFT) & KEYINFO_MASK); -} - -inline -void -ScanTabReq::setKeyinfoFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setKeyinfoFlag"); - requestInfo |= (flag << KEYINFO_SHIFT); -} - -inline -Uint8 -ScanTabReq::getDistributionKeyFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> SCAN_DISTR_KEY_SHIFT) & 1); -} - -inline -void -ScanTabReq::setDistributionKeyFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "ScanTabReq::setKeyinfoFlag"); - requestInfo |= (flag << SCAN_DISTR_KEY_SHIFT); -} - -/** - * - * SENDER: Dbtc - * RECIVER: API - */ -class ScanTabConf { - /** - * Reciver(s) - */ - friend class NdbTransaction; // Reciver - - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * For printing - */ - friend bool printSCANTABCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 4 ); - STATIC_CONST( EndOfData = (1 << 31) ); - -private: - - // Type definitions - - /** - * DATA VARIABLES - */ - UintR apiConnectPtr; // DATA 0 - UintR requestInfo; // DATA 1 - UintR transId1; // DATA 2 - UintR transId2; // DATA 3 - - struct OpData { - Uint32 apiPtrI; - Uint32 tcPtrI; - Uint32 info; - }; - - static Uint32 getLength(Uint32 opDataInfo) { return opDataInfo >> 10; }; - static Uint32 getRows(Uint32 opDataInfo) { return opDataInfo & 1023;} -}; - -/** - * request info - * - o = received operations - 7 Bits -> Max 255 (Bit 0-7) - s = status of scan - 2 Bits -> Max ??? (Bit 8-?) - - 1111111111222222222233 - 01234567890123456789012345678901 - ooooooooss -*/ - -#define OPERATIONS_SHIFT (0) -#define OPERATIONS_MASK (0xFF) - -#define STATUS_SHIFT (8) -#define STATUS_MASK (0xFF) - - -/** - * - * SENDER: Dbtc - * RECIVER: API - */ -class ScanTabRef { - /** - * Reciver(s) - */ - friend class NdbTransaction; // Reciver - - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * For printing - */ - friend bool printSCANTABREF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 5 ); - -private: - - // Type definitions - - /** - * DATA VARIABLES - */ - UintR apiConnectPtr; // DATA 0 - UintR transId1; // DATA 1 - UintR transId2; // DATA 2 - UintR errorCode; // DATA 3 - UintR closeNeeded; // DATA 4 - -}; - -/** - * - * SENDER: API - * RECIVER: Dbtc - */ -class ScanNextReq { - /** - * Reciver(s) - */ - friend class Dbtc; // Reciver - - /** - * Sender(s) - */ - friend class NdbOperation; - - /** - * For printing - */ - friend bool printSCANNEXTREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 4 ); - -private: - - // Type definitions - - /** - * DATA VARIABLES - */ - UintR apiConnectPtr; // DATA 0 - UintR stopScan; // DATA 1 - UintR transId1; // DATA 2 - UintR transId2; // DATA 3 - - // stopScan = 1, stop this scan - -}; - -#endif diff --git a/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp b/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp deleted file mode 100644 index 2923029f8f6..00000000000 --- a/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* 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 SET_LOGLEVEL_ORD_HPP -#define SET_LOGLEVEL_ORD_HPP - -#include <LogLevel.hpp> -#include "EventSubscribeReq.hpp" -#include "SignalData.hpp" - -/** - * - */ -class SetLogLevelOrd { - /** - * Sender(s) - */ - friend class MgmtSrvr; /* XXX can probably be removed */ - friend class MgmApiSession; - friend class CommandInterpreter; - - /** - * Reciver(s) - */ - friend class Cmvmi; - - friend class NodeLogLevel; - -private: - STATIC_CONST( SignalLength = 1 + LogLevel::LOGLEVEL_CATEGORIES ); - - Uint32 noOfEntries; - Uint32 theData[LogLevel::LOGLEVEL_CATEGORIES]; - - void clear(); - - /** - * Note level is valid as 0-15 - */ - void setLogLevel(LogLevel::EventCategory ec, int level = 7); - - SetLogLevelOrd& operator= (const LogLevel& ll){ - noOfEntries = LogLevel::LOGLEVEL_CATEGORIES; - for(size_t i = 0; i<noOfEntries; i++){ - theData[i] = (i << 16) | ll.getLogLevel((LogLevel::EventCategory)i); - } - return * this; - } - - SetLogLevelOrd& operator= (const EventSubscribeReq& ll){ - noOfEntries = ll.noOfEntries; - for(size_t i = 0; i<noOfEntries; i++){ - theData[i] = ll.theData[i]; - } - return * this; - } -}; - -inline -void -SetLogLevelOrd::clear(){ - noOfEntries = 0; -} - -inline -void -SetLogLevelOrd::setLogLevel(LogLevel::EventCategory ec, int level){ - theData[noOfEntries] = (ec << 16) | level; - noOfEntries++; -} - -#endif diff --git a/ndb/include/kernel/signaldata/SetVarReq.hpp b/ndb/include/kernel/signaldata/SetVarReq.hpp deleted file mode 100644 index 8cb3e78be8b..00000000000 --- a/ndb/include/kernel/signaldata/SetVarReq.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* 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 SETVARREQ_H -#define SETVARREQ_H - -#include "SignalData.hpp" -#include "ConfigParamId.hpp" - -class SetVarReq { - -public: - - - static UintR size(); - - void mgmtSrvrBlockRef(UintR mgmtSrvrBlockRef); - UintR mgmtSrvrBlockRef(void) const; - - void variable(ConfigParamId variable); - ConfigParamId variable(void) const; - - void value(UintR value); - UintR value(void) const; - - -private: - - UintR _mgmtSrvrBlockRef; - UintR _variable; - UintR _value; -}; - - - -inline UintR SetVarReq::size(void) { - return 3; -} - - -inline void SetVarReq::mgmtSrvrBlockRef(UintR mgmtSrvrBlockRef) { - _mgmtSrvrBlockRef = mgmtSrvrBlockRef; -} - -inline UintR SetVarReq::mgmtSrvrBlockRef(void) const { - return _mgmtSrvrBlockRef; -} - - -inline void SetVarReq::variable(ConfigParamId variable) { - _variable = variable; -} - - -inline ConfigParamId SetVarReq::variable(void) const { - return static_cast<ConfigParamId>(_variable); -} - - -inline void SetVarReq::value(UintR value) { - _value = value; -} - -inline UintR SetVarReq::value(void) const { - return _value; -} - - - -#endif // SETVARREQ_H - diff --git a/ndb/include/kernel/signaldata/SignalData.hpp b/ndb/include/kernel/signaldata/SignalData.hpp deleted file mode 100644 index f825b0feb7b..00000000000 --- a/ndb/include/kernel/signaldata/SignalData.hpp +++ /dev/null @@ -1,226 +0,0 @@ -/* 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 SIGNAL_DATA_H -#define SIGNAL_DATA_H - -#include <ndb_global.h> -#include <kernel/ndb_limits.h> -#include <kernel/kernel_types.h> -#include <BaseString.hpp> - -#define ASSERT_BOOL(flag, message) assert(flag<=1) -#define ASSERT_RANGE(value, min, max, message) \ - assert((value) >= (min) && (value) <= (max)) -#define ASSERT_MAX(value, max, message) assert((value) <= (max)) - -#define SECTION(x) STATIC_CONST(x) - -// defines for setter and getters on commonly used member data in signals - -#define GET_SET_SENDERDATA \ - Uint32 getSenderData() { return senderData; }; \ - void setSenderData(Uint32 _s) { senderData = _s; }; - -#define GET_SET_SENDERREF \ - Uint32 getSenderRef() { return senderRef; }; \ - void setSenderRef(Uint32 _s) { senderRef = _s; }; - -#define GET_SET_PREPAREID \ - Uint32 getPrepareId() { return prepareId; }; \ - void setPrepareId(Uint32 _s) { prepareId = _s; }; - -#define GET_SET_ERRORCODE \ - Uint32 getErrorCode() { return errorCode; }; \ - void setErrorCode(Uint32 _s) { errorCode = _s; }; - -#define GET_SET_TCERRORCODE \ - Uint32 getTCErrorCode() { return TCErrorCode; }; \ - void setTCErrorCode(Uint32 _s) { TCErrorCode = _s; }; - -#define GSN_PRINT_SIGNATURE(f) bool f(FILE *, const Uint32 *, Uint32, Uint16) - -GSN_PRINT_SIGNATURE(printTCKEYREQ); -GSN_PRINT_SIGNATURE(printTCKEYCONF); -GSN_PRINT_SIGNATURE(printTCKEYREF); -GSN_PRINT_SIGNATURE(printLQHKEYREQ); -GSN_PRINT_SIGNATURE(printLQHKEYCONF); -GSN_PRINT_SIGNATURE(printLQHKEYREF); -GSN_PRINT_SIGNATURE(printTUPKEYREQ); -GSN_PRINT_SIGNATURE(printTUPKEYCONF); -GSN_PRINT_SIGNATURE(printTUPKEYREF); -GSN_PRINT_SIGNATURE(printTUPCOMMITREQ); -GSN_PRINT_SIGNATURE(printCONTINUEB); -GSN_PRINT_SIGNATURE(printFSOPENREQ); -GSN_PRINT_SIGNATURE(printFSCLOSEREQ); -GSN_PRINT_SIGNATURE(printFSREADWRITEREQ); -GSN_PRINT_SIGNATURE(printFSREADWRITEREQ); -GSN_PRINT_SIGNATURE(printFSREF); -GSN_PRINT_SIGNATURE(printFSREF); -GSN_PRINT_SIGNATURE(printFSREF); -GSN_PRINT_SIGNATURE(printFSREF); -GSN_PRINT_SIGNATURE(printFSREF); -GSN_PRINT_SIGNATURE(printFSCONF); -GSN_PRINT_SIGNATURE(printFSCONF); -GSN_PRINT_SIGNATURE(printFSCONF); -GSN_PRINT_SIGNATURE(printFSCONF); -GSN_PRINT_SIGNATURE(printFSCONF); -GSN_PRINT_SIGNATURE(printCLOSECOMREQCONF); -GSN_PRINT_SIGNATURE(printCLOSECOMREQCONF); -GSN_PRINT_SIGNATURE(printPACKED_SIGNAL); -GSN_PRINT_SIGNATURE(printPREPFAILREQREF); -GSN_PRINT_SIGNATURE(printPREPFAILREQREF); -GSN_PRINT_SIGNATURE(printALTER_TABLE_REQ); -GSN_PRINT_SIGNATURE(printALTER_TABLE_CONF); -GSN_PRINT_SIGNATURE(printALTER_TABLE_REF); -GSN_PRINT_SIGNATURE(printALTER_TAB_REQ); -GSN_PRINT_SIGNATURE(printALTER_TAB_CONF); -GSN_PRINT_SIGNATURE(printALTER_TAB_REF); -GSN_PRINT_SIGNATURE(printCREATE_TRIG_REQ); -GSN_PRINT_SIGNATURE(printCREATE_TRIG_CONF); -GSN_PRINT_SIGNATURE(printCREATE_TRIG_REF); -GSN_PRINT_SIGNATURE(printALTER_TRIG_REQ); -GSN_PRINT_SIGNATURE(printALTER_TRIG_CONF); -GSN_PRINT_SIGNATURE(printALTER_TRIG_REF); -GSN_PRINT_SIGNATURE(printDROP_TRIG_REQ); -GSN_PRINT_SIGNATURE(printDROP_TRIG_CONF); -GSN_PRINT_SIGNATURE(printDROP_TRIG_REF); -GSN_PRINT_SIGNATURE(printFIRE_TRIG_ORD); -GSN_PRINT_SIGNATURE(printTRIG_ATTRINFO); -GSN_PRINT_SIGNATURE(printCREATE_INDX_REQ); -GSN_PRINT_SIGNATURE(printCREATE_INDX_CONF); -GSN_PRINT_SIGNATURE(printCREATE_INDX_REF); -GSN_PRINT_SIGNATURE(printDROP_INDX_REQ); -GSN_PRINT_SIGNATURE(printDROP_INDX_CONF); -GSN_PRINT_SIGNATURE(printDROP_INDX_REF); -GSN_PRINT_SIGNATURE(printALTER_INDX_REQ); -GSN_PRINT_SIGNATURE(printALTER_INDX_CONF); -GSN_PRINT_SIGNATURE(printALTER_INDX_REF); -GSN_PRINT_SIGNATURE(printTCINDXREQ); -GSN_PRINT_SIGNATURE(printTCINDXCONF); -GSN_PRINT_SIGNATURE(printTCINDXREF); -GSN_PRINT_SIGNATURE(printINDXKEYINFO); -GSN_PRINT_SIGNATURE(printINDXATTRINFO); -GSN_PRINT_SIGNATURE(printFSAPPENDREQ); -GSN_PRINT_SIGNATURE(printBACKUP_REQ); -GSN_PRINT_SIGNATURE(printBACKUP_DATA); -GSN_PRINT_SIGNATURE(printBACKUP_REF); -GSN_PRINT_SIGNATURE(printBACKUP_CONF); -GSN_PRINT_SIGNATURE(printABORT_BACKUP_ORD); -GSN_PRINT_SIGNATURE(printBACKUP_ABORT_REP); -GSN_PRINT_SIGNATURE(printBACKUP_COMPLETE_REP); -GSN_PRINT_SIGNATURE(printBACKUP_NF_COMPLETE_REP); -GSN_PRINT_SIGNATURE(printDEFINE_BACKUP_REQ); -GSN_PRINT_SIGNATURE(printDEFINE_BACKUP_REF); -GSN_PRINT_SIGNATURE(printDEFINE_BACKUP_CONF); -GSN_PRINT_SIGNATURE(printSTART_BACKUP_REQ); -GSN_PRINT_SIGNATURE(printSTART_BACKUP_REF); -GSN_PRINT_SIGNATURE(printSTART_BACKUP_CONF); -GSN_PRINT_SIGNATURE(printBACKUP_FRAGMENT_REQ); -GSN_PRINT_SIGNATURE(printBACKUP_FRAGMENT_REF); -GSN_PRINT_SIGNATURE(printBACKUP_FRAGMENT_CONF); -GSN_PRINT_SIGNATURE(printSTOP_BACKUP_REQ); -GSN_PRINT_SIGNATURE(printSTOP_BACKUP_REF); -GSN_PRINT_SIGNATURE(printSTOP_BACKUP_CONF); -GSN_PRINT_SIGNATURE(printBACKUP_STATUS_REQ); -GSN_PRINT_SIGNATURE(printBACKUP_STATUS_CONF); -GSN_PRINT_SIGNATURE(printUTIL_SEQUENCE_REQ); -GSN_PRINT_SIGNATURE(printUTIL_SEQUENCE_REF); -GSN_PRINT_SIGNATURE(printUTIL_SEQUENCE_CONF); -GSN_PRINT_SIGNATURE(printUTIL_PREPARE_REQ); -GSN_PRINT_SIGNATURE(printUTIL_PREPARE_REF); -GSN_PRINT_SIGNATURE(printUTIL_PREPARE_CONF); -GSN_PRINT_SIGNATURE(printUTIL_EXECUTE_REQ); -GSN_PRINT_SIGNATURE(printUTIL_EXECUTE_REF); -GSN_PRINT_SIGNATURE(printUTIL_EXECUTE_CONF); -GSN_PRINT_SIGNATURE(printSCANTABREQ); -GSN_PRINT_SIGNATURE(printSCANTABCONF); -GSN_PRINT_SIGNATURE(printSCANTABREF); -GSN_PRINT_SIGNATURE(printSCANNEXTREQ); -GSN_PRINT_SIGNATURE(printLQH_FRAG_REQ); -GSN_PRINT_SIGNATURE(printLQH_FRAG_REF); -GSN_PRINT_SIGNATURE(printLQH_FRAG_CONF); -GSN_PRINT_SIGNATURE(printPREP_DROP_TAB_REQ); -GSN_PRINT_SIGNATURE(printPREP_DROP_TAB_REF); -GSN_PRINT_SIGNATURE(printPREP_DROP_TAB_CONF); -GSN_PRINT_SIGNATURE(printDROP_TAB_REQ); -GSN_PRINT_SIGNATURE(printDROP_TAB_REF); -GSN_PRINT_SIGNATURE(printDROP_TAB_CONF); -GSN_PRINT_SIGNATURE(printLCP_FRAG_ORD); -GSN_PRINT_SIGNATURE(printLCP_FRAG_REP); -GSN_PRINT_SIGNATURE(printLCP_COMPLETE_REP); -GSN_PRINT_SIGNATURE(printSTART_LCP_REQ); -GSN_PRINT_SIGNATURE(printSTART_LCP_CONF); -GSN_PRINT_SIGNATURE(printMASTER_LCP_REQ); -GSN_PRINT_SIGNATURE(printMASTER_LCP_REF); -GSN_PRINT_SIGNATURE(printMASTER_LCP_CONF); -GSN_PRINT_SIGNATURE(printCOPY_GCI_REQ); -GSN_PRINT_SIGNATURE(printSYSTEM_ERROR); -GSN_PRINT_SIGNATURE(printSTART_REC_REQ); -GSN_PRINT_SIGNATURE(printSTART_REC_CONF); -GSN_PRINT_SIGNATURE(printNF_COMPLETE_REP); -GSN_PRINT_SIGNATURE(printSIGNAL_DROPPED_REP); -GSN_PRINT_SIGNATURE(printFAIL_REP); -GSN_PRINT_SIGNATURE(printDISCONNECT_REP); -GSN_PRINT_SIGNATURE(printSUB_CREATE_REQ); -GSN_PRINT_SIGNATURE(printSUB_CREATE_CONF); -GSN_PRINT_SIGNATURE(printSUB_CREATE_REF); -GSN_PRINT_SIGNATURE(printSUB_REMOVE_REQ); -GSN_PRINT_SIGNATURE(printSUB_REMOVE_CONF); -GSN_PRINT_SIGNATURE(printSUB_REMOVE_REF); -GSN_PRINT_SIGNATURE(printSUB_START_REQ); -GSN_PRINT_SIGNATURE(printSUB_START_REF); -GSN_PRINT_SIGNATURE(printSUB_START_CONF); -GSN_PRINT_SIGNATURE(printSUB_STOP_REQ); -GSN_PRINT_SIGNATURE(printSUB_STOP_REF); -GSN_PRINT_SIGNATURE(printSUB_STOP_CONF); -GSN_PRINT_SIGNATURE(printSUB_SYNC_REQ); -GSN_PRINT_SIGNATURE(printSUB_SYNC_REF); -GSN_PRINT_SIGNATURE(printSUB_SYNC_CONF); -GSN_PRINT_SIGNATURE(printSUB_META_DATA); -GSN_PRINT_SIGNATURE(printSUB_TABLE_DATA); -GSN_PRINT_SIGNATURE(printSUB_SYNC_CONTINUE_REQ); -GSN_PRINT_SIGNATURE(printSUB_SYNC_CONTINUE_REF); -GSN_PRINT_SIGNATURE(printSUB_SYNC_CONTINUE_CONF); -GSN_PRINT_SIGNATURE(printSUB_GCP_COMPLETE_REP); -GSN_PRINT_SIGNATURE(printCREATE_FRAGMENTATION_REQ); -GSN_PRINT_SIGNATURE(printCREATE_FRAGMENTATION_REF); -GSN_PRINT_SIGNATURE(printCREATE_FRAGMENTATION_CONF); -GSN_PRINT_SIGNATURE(printUTIL_CREATE_LOCK_REQ); -GSN_PRINT_SIGNATURE(printUTIL_CREATE_LOCK_REF); -GSN_PRINT_SIGNATURE(printUTIL_CREATE_LOCK_CONF); -GSN_PRINT_SIGNATURE(printUTIL_DESTROY_LOCK_REQ); -GSN_PRINT_SIGNATURE(printUTIL_DESTROY_LOCK_REF); -GSN_PRINT_SIGNATURE(printUTIL_DESTROY_LOCK_CONF); -GSN_PRINT_SIGNATURE(printUTIL_LOCK_REQ); -GSN_PRINT_SIGNATURE(printUTIL_LOCK_REF); -GSN_PRINT_SIGNATURE(printUTIL_LOCK_CONF); -GSN_PRINT_SIGNATURE(printUTIL_UNLOCK_REQ); -GSN_PRINT_SIGNATURE(printUTIL_UNLOCK_REF); -GSN_PRINT_SIGNATURE(printUTIL_UNLOCK_CONF); -GSN_PRINT_SIGNATURE(printCNTR_START_REQ); -GSN_PRINT_SIGNATURE(printCNTR_START_REF); -GSN_PRINT_SIGNATURE(printCNTR_START_CONF); -GSN_PRINT_SIGNATURE(printREAD_NODES_CONF); -GSN_PRINT_SIGNATURE(printTUX_MAINT_REQ); -GSN_PRINT_SIGNATURE(printACC_LOCKREQ); -GSN_PRINT_SIGNATURE(printLQH_TRANSCONF); -GSN_PRINT_SIGNATURE(printSCAN_FRAGREQ); - -GSN_PRINT_SIGNATURE(printCONTINUEB_NDBFS); -GSN_PRINT_SIGNATURE(printCONTINUEB_DBDIH); - -#endif diff --git a/ndb/include/kernel/signaldata/SignalDataPrint.hpp b/ndb/include/kernel/signaldata/SignalDataPrint.hpp deleted file mode 100644 index 17ab07acd4e..00000000000 --- a/ndb/include/kernel/signaldata/SignalDataPrint.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* 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 SIGNAL_DATA_PRINT_H -#define SIGNAL_DATA_PRINT_H - -#include <ndb_global.h> -#include <kernel_types.h> - -/** - * Typedef for a Signal Data Print Function - */ -typedef bool (* SignalDataPrintFunction)(FILE * output, const Uint32 * theData, Uint32 len, BlockNumber receiverBlockNo); - -struct NameFunctionPair { - GlobalSignalNumber gsn; - SignalDataPrintFunction function; -}; - -extern const NameFunctionPair SignalDataPrintFunctions[]; -extern const unsigned short NO_OF_PRINT_FUNCTIONS; - -#endif diff --git a/ndb/include/kernel/signaldata/SignalDroppedRep.hpp b/ndb/include/kernel/signaldata/SignalDroppedRep.hpp deleted file mode 100644 index 20863524358..00000000000 --- a/ndb/include/kernel/signaldata/SignalDroppedRep.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* 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 SIGNAL_DROPPED_HPP -#define SIGNAL_DROPPED_HPP - -#include "SignalData.hpp" - -class SignalDroppedRep { - - /** - * Reciver(s) - */ - friend class SimulatedBlock; - - /** - * Sender (TransporterCallback.cpp) - */ - friend void execute(void * , struct SignalHeader* const, Uint8, - Uint32* const, struct LinearSectionPtr ptr[3]); - - friend bool printSIGNAL_DROPPED_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: -private: - Uint32 originalGsn; - Uint32 originalLength; - Uint32 originalSectionCount; - Uint32 originalData[1]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/SrFragidConf.hpp b/ndb/include/kernel/signaldata/SrFragidConf.hpp deleted file mode 100644 index 9a6088ad57f..00000000000 --- a/ndb/include/kernel/signaldata/SrFragidConf.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* 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 SR_FRAGIDCONF_HPP -#define SR_FRAGIDCONF_HPP - -#include "SignalData.hpp" - -class SrFragidConf { - /** - * Sender(s) - */ - friend class Dbacc; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 10 ); - -private: - Uint32 lcpPtr; - Uint32 accPtr; - Uint32 noLocFrag; - Uint32 fragId[4]; - Uint32 fragPtr[2]; - Uint32 hashCheckBit; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StartFragReq.hpp b/ndb/include/kernel/signaldata/StartFragReq.hpp deleted file mode 100644 index ec05c1ee366..00000000000 --- a/ndb/include/kernel/signaldata/StartFragReq.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* 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 START_FRAGREQ_HPP -#define START_FRAGREQ_HPP - -#include "SignalData.hpp" - -class StartFragReq { - /** - * Sender(s) - */ - friend class Dbdih; - - /** - * Receiver(s) - */ - friend class Dblqh; -public: - STATIC_CONST( SignalLength = 19 ); - -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 lcpNo; - Uint32 lcpId; - Uint32 tableId; - Uint32 fragId; - Uint32 noOfLogNodes; - Uint32 lqhLogNode[4]; - Uint32 startGci[4]; - Uint32 lastGci[4]; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StartInfo.hpp b/ndb/include/kernel/signaldata/StartInfo.hpp deleted file mode 100644 index d0850b13ef4..00000000000 --- a/ndb/include/kernel/signaldata/StartInfo.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* 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 START_INFO_HPP -#define START_INFO_HPP - -/** - * This signal is sent from the master DIH to all DIHs - * when a node is starting. - * If the typeStart is initial node restart then the node - * has started without filesystem. - * All DIHs must then "forget" that the starting node has - * performed LCP's ever. - * - * @see StartPermReq - */ - -class StartInfoReq { - /** - * Sender/Receiver - */ - friend class Dbdih; - - Uint32 startingNodeId; - Uint32 typeStart; - Uint32 systemFailureNo; - -public: - STATIC_CONST( SignalLength = 3 ); -}; - -class StartInfoConf { - - /** - * Sender/Receiver - */ - friend class Dbdih; - - /** - * NodeId of sending node - * which is "done" - */ - Uint32 sendingNodeId; - Uint32 startingNodeId; - -public: - STATIC_CONST( SignalLength = 2 ); -}; - -class StartInfoRef { - - /** - * Sender/Receiver - */ - friend class Dbdih; - - /** - * NodeId of sending node - * The node was refused to start. This could be - * because there are still processes handling - * previous information from the starting node. - */ - Uint32 sendingNodeId; - Uint32 startingNodeId; - Uint32 errorCode; - -public: - STATIC_CONST( SignalLength = 3 ); -}; - -#endif diff --git a/ndb/include/kernel/signaldata/StartMe.hpp b/ndb/include/kernel/signaldata/StartMe.hpp deleted file mode 100644 index 6593a9e9741..00000000000 --- a/ndb/include/kernel/signaldata/StartMe.hpp +++ /dev/null @@ -1,63 +0,0 @@ -/* 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 START_ME_HPP -#define START_ME_HPP - -/** - * This signal is sent... - * - * It also contains the Sysfile. - * Since the Sysfile can be larger than on StartMeConf signal, - * there might be more than on of these signals sent before - * the entire sysfile is transfered - * - */ -class StartMeReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - - Uint32 startingRef; - Uint32 startingVersion; -}; - -class StartMeConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 25 ); -private: - - Uint32 startingNodeId; - Uint32 startWord; - - /** - * No of free words to carry data - */ - STATIC_CONST( DATA_SIZE = 23 ); - - Uint32 data[DATA_SIZE]; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StartOrd.hpp b/ndb/include/kernel/signaldata/StartOrd.hpp deleted file mode 100644 index 43a48f70ba9..00000000000 --- a/ndb/include/kernel/signaldata/StartOrd.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* 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 START_ORD_HPP -#define START_ORD_HPP - -#include "SignalData.hpp" -#include "StopReq.hpp" - -class StartOrd { -public: - /** - * Senders - */ - friend class ThreadConfig; - friend class MgmtSrvr; - friend class Ndbcntr; - - /** - * Receivers - */ - friend class SimBlockCMCtrBlck; - - /** - * RequestInfo - See StopReq for getters/setters - */ - Uint32 restartInfo; - -public: - STATIC_CONST( SignalLength = 1 ); -}; - - -#endif - diff --git a/ndb/include/kernel/signaldata/StartPerm.hpp b/ndb/include/kernel/signaldata/StartPerm.hpp deleted file mode 100644 index 38be72835a3..00000000000 --- a/ndb/include/kernel/signaldata/StartPerm.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* 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 START_PERM_REQ_HPP -#define START_PERM_REQ_HPP - -/** - * This signal is sent by starting DIH to master DIH - * - * Used when starting in an already started cluster - * - */ -class StartPermReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 blockRef; - Uint32 nodeId; - Uint32 startType; -}; - -class StartPermConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - - Uint32 startingNodeId; - Uint32 systemFailureNo; -}; - -class StartPermRef { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - - Uint32 startingNodeId; - Uint32 errorCode; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StartRec.hpp b/ndb/include/kernel/signaldata/StartRec.hpp deleted file mode 100644 index f8a4e01a094..00000000000 --- a/ndb/include/kernel/signaldata/StartRec.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* 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 START_REC_HPP -#define START_REC_HPP - -#include "SignalData.hpp" - -class StartRecReq { - /** - * Sender(s) - */ - friend class Dbdih; - /** - * Receiver(s) - */ - friend class Dblqh; - - friend bool printSTART_REC_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); -private: - - Uint32 receivingNodeId; - Uint32 senderRef; - Uint32 keepGci; - Uint32 lastCompletedGci; - Uint32 newestGci; -}; - -class StartRecConf { - /** - * Sender(s) - */ - friend class Dblqh; - /** - * Receiver(s) - */ - friend class Dbdih; - - friend bool printSTART_REC_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 1 ); -private: - - Uint32 startingNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StartTo.hpp b/ndb/include/kernel/signaldata/StartTo.hpp deleted file mode 100644 index 5aecef6275d..00000000000 --- a/ndb/include/kernel/signaldata/StartTo.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* 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 START_TO_HPP -#define START_TO_HPP - -class StartToReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 5 ); -private: - Uint32 userPtr; - BlockReference userRef; - Uint32 startingNodeId; - Uint32 nodeTakenOver; - bool nodeRestart; -}; - -class StartToConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 userPtr; - Uint32 sendingNodeId; - Uint32 startingNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/StopMe.hpp b/ndb/include/kernel/signaldata/StopMe.hpp deleted file mode 100644 index 51d944a3b96..00000000000 --- a/ndb/include/kernel/signaldata/StopMe.hpp +++ /dev/null @@ -1,70 +0,0 @@ -/* 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 STOP_ME_HPP -#define STOP_ME_HPP - -/** - * This signal is sent by ndbcntr to local DIH - * - * If local DIH then sends it to all DIH's - * - * @see StopPermReq - * @see StartMeReq - * @see StartPermReq - */ -class StopMeReq { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Sender - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); -private: - - Uint32 senderRef; - Uint32 senderData; -}; - -class StopMeConf { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderRef; - Uint32 senderData; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/StopPerm.hpp b/ndb/include/kernel/signaldata/StopPerm.hpp deleted file mode 100644 index 95fb82c8cde..00000000000 --- a/ndb/include/kernel/signaldata/StopPerm.hpp +++ /dev/null @@ -1,96 +0,0 @@ -/* 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 STOP_PERM_HPP -#define STOP_PERM_HPP - -/** - * This signal is sent by ndbcntr to local DIH - * - * If local DIH is not master, it forwards it to master DIH - * and start acting as a proxy - * - * @see StopMeReq - * @see StartMeReq - * @see StartPermReq - */ -class StopPermReq { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Sender - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); -public: - - Uint32 senderRef; - Uint32 senderData; -}; - -class StopPermConf { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 senderData; -}; - -class StopPermRef { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - StopOK = 0, - NodeStartInProgress = 1, - NodeShutdownInProgress = 2, - NF_CausedAbortOfStopProcedure = 3 - }; - -private: - Uint32 errorCode; - Uint32 senderData; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/StopReq.hpp b/ndb/include/kernel/signaldata/StopReq.hpp deleted file mode 100644 index ea453ae115d..00000000000 --- a/ndb/include/kernel/signaldata/StopReq.hpp +++ /dev/null @@ -1,202 +0,0 @@ -/* 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 STOP_REQ_HPP -#define STOP_REQ_HPP - -#include "SignalData.hpp" - -class StopReq -{ - /** - * Reciver(s) - */ - friend class Ndbcntr; - - /** - * Sender - */ - friend class MgmtSrvr; - -public: - STATIC_CONST( SignalLength = 9 ); - -public: - Uint32 senderRef; - Uint32 senderData; - - Uint32 requestInfo; - Uint32 singleuser; // Indicates whether or not to enter - // single user mode. - // Only in conjunction with system stop - Uint32 singleUserApi; // allowed api in singleuser - - Int32 apiTimeout; // Timeout before api transactions are refused - Int32 transactionTimeout; // Timeout before transactions are aborted - Int32 readOperationTimeout; // Timeout before read operations are aborted - Int32 operationTimeout; // Timeout before all operations are aborted - - static void setSystemStop(Uint32 & requestInfo, bool value); - static void setPerformRestart(Uint32 & requestInfo, bool value); - static void setNoStart(Uint32 & requestInfo, bool value); - static void setInitialStart(Uint32 & requestInfo, bool value); - static void setEscalateOnNodeFail(Uint32 & requestInfo, bool value); - /** - * Don't perform "graceful" shutdown/restart... - */ - static void setStopAbort(Uint32 & requestInfo, bool value); - - static bool getSystemStop(const Uint32 & requestInfo); - static bool getPerformRestart(const Uint32 & requestInfo); - static bool getNoStart(const Uint32 & requestInfo); - static bool getInitialStart(const Uint32 & requestInfo); - static bool getEscalateOnNodeFail(const Uint32 & requestInfo); - static bool getStopAbort(const Uint32 & requestInfo); -}; - -class StopRef -{ - /** - * Reciver(s) - */ - friend class MgmtSrvr; - - /** - * Sender - */ - friend class Ndbcntr; - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - OK = 0, - NodeShutdownInProgress = 1, - SystemShutdownInProgress = 2, - NodeShutdownWouldCauseSystemCrash = 3 - }; - -public: - Uint32 senderData; - Uint32 errorCode; -}; - -inline -bool -StopReq::getSystemStop(const Uint32 & requestInfo) -{ - return requestInfo & 1; -} - -inline -bool -StopReq::getPerformRestart(const Uint32 & requestInfo) -{ - return requestInfo & 2; -} - -inline -bool -StopReq::getNoStart(const Uint32 & requestInfo) -{ - return requestInfo & 4; -} - -inline -bool -StopReq::getInitialStart(const Uint32 & requestInfo) -{ - return requestInfo & 8; -} - -inline -bool -StopReq::getEscalateOnNodeFail(const Uint32 & requestInfo) -{ - return requestInfo & 16; -} - -inline -bool -StopReq::getStopAbort(const Uint32 & requestInfo) -{ - return requestInfo & 32; -} - - -inline -void -StopReq::setSystemStop(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 1; - else - requestInfo &= ~1; -} - -inline -void -StopReq::setPerformRestart(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 2; - else - requestInfo &= ~2; -} - -inline -void -StopReq::setNoStart(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 4; - else - requestInfo &= ~4; -} - -inline -void -StopReq::setInitialStart(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 8; - else - requestInfo &= ~8; -} - -inline -void -StopReq::setEscalateOnNodeFail(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 16; - else - requestInfo &= ~16; -} - -inline -void -StopReq::setStopAbort(Uint32 & requestInfo, bool value) -{ - if(value) - requestInfo |= 32; - else - requestInfo &= ~32; -} - - -#endif - diff --git a/ndb/include/kernel/signaldata/SumaImpl.hpp b/ndb/include/kernel/signaldata/SumaImpl.hpp deleted file mode 100644 index 75fb65e1ad2..00000000000 --- a/ndb/include/kernel/signaldata/SumaImpl.hpp +++ /dev/null @@ -1,619 +0,0 @@ -/* 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 SUMA_IMPL_HPP -#define SUMA_IMPL_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> - - -class SubCreateReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_CREATE_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - - enum SubscriptionType { - SingleTableScan = 1, // - DatabaseSnapshot = 2, // All tables/all data (including new ones) - TableEvent = 3, // - SelectiveTableSnapshot = 4, // User defines tables - RemoveFlags = 0xff, - GetFlags = 0xff << 16, - AddTableFlag = 0x1 << 16, - RestartFlag = 0x2 << 16 - }; - - Uint32 subscriberRef; - Uint32 subscriberData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - union { - Uint32 tableId; // Used when doing SingelTableScan - }; - SECTION( ATTRIBUTE_LIST = 0); // Used when doing SingelTableScan - SECTION( TABLE_LIST = 1 ); - -}; - -class SubCreateRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_CREATE_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - - Uint32 subscriberRef; - Uint32 subscriberData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriptionType; - Uint32 err; - - SECTION( ATTRIBUTE_LIST = 0); // Used when doing SingelTableScan - union { - Uint32 tableId; // Used when doing SingelTableScan - }; -}; - -class SubCreateConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_CREATE_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 subscriberData; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - -class SubscriptionData { -public: - enum Part { - MetaData = 1, - TableData = 2 - }; -}; - -class SubStartReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - - friend bool printSUB_START_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 6 ); - STATIC_CONST( SignalLength2 = SignalLength+1 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - Uint32 subscriberRef; -}; - -class SubStartRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - - friend bool printSUB_START_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - enum ErrorCode { - Undefined = 0, - NF_FakeErrorREF = 11, - Busy = 701, - Temporary = 0x1 << 16 - }; - bool isTemporary() const; - void setTemporary(); - ErrorCode setTemporary(ErrorCode ec); - - STATIC_CONST( SignalLength = 7 ); - STATIC_CONST( SignalLength2 = SignalLength+1 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - union { // do not change the order here! - Uint32 err; - Uint32 errorCode; - }; - // with SignalLength2 - Uint32 subscriberRef; -}; -inline bool SubStartRef::isTemporary() const -{ return (errorCode & SubStartRef::Temporary) > 0; } -inline void SubStartRef::setTemporary() -{ errorCode |= SubStartRef::Temporary; } -inline SubStartRef::ErrorCode SubStartRef::setTemporary(ErrorCode ec) -{ return (SubStartRef::ErrorCode) - (errorCode = ((Uint32) ec | (Uint32)SubStartRef::Temporary)); } - -class SubStartConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printSUB_START_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - STATIC_CONST( SignalLength2 = SignalLength+1 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 firstGCI; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - // with SignalLength2 - Uint32 subscriberRef; -}; - -class SubStopReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - - friend bool printSUB_STOP_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - Uint32 subscriberRef; -}; - -class SubStopRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - - friend bool printSUB_STOP_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - enum ErrorCode { - Undefined = 0, - NF_FakeErrorREF = 11, - Busy = 701, - Temporary = 0x1 << 16 - }; - bool isTemporary() const; - void setTemporary(); - ErrorCode setTemporary(ErrorCode ec); - - STATIC_CONST( SignalLength = 8 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - Uint32 subscriberRef; - union { - Uint32 err; - Uint32 errorCode; - }; -}; -inline bool SubStopRef::isTemporary() const -{ return (errorCode & SubStopRef::Temporary) > 0; } -inline void SubStopRef::setTemporary() -{ errorCode |= SubStopRef::Temporary; } -inline SubStopRef::ErrorCode SubStopRef::setTemporary(ErrorCode ec) -{ return (SubStopRef::ErrorCode) - (errorCode = ((Uint32) ec | (Uint32)SubStopRef::Temporary)); } - -class SubStopConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - - friend bool printSUB_STOP_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - Uint32 subscriberRef; -}; - -class SubSyncReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - friend class Grep; - - friend bool printSUB_SYNC_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 subscriberData; - Uint32 part; // SubscriptionData::Part -}; - -class SubSyncRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - friend class Grep; - - friend bool printSUB_SYNC_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - enum ErrorCode { - Undefined = 0, - Temporary = 0x1 << 16 - }; - STATIC_CONST( SignalLength = 5 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; - union { - Uint32 errorCode; - Uint32 err; - }; -}; - -class SubSyncConf { - - /** - * Sender(s)/Reciver(s) - */ - friend class Suma; - friend class Grep; - - friend bool printSUB_SYNC_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 part; // SubscriptionData::Part - Uint32 subscriberData; -}; - -class SubMetaData { - /** - * Sender(s)/Reciver(s) - */ - friend class SumaParticipant; - friend class Grep; - - friend bool printSUB_META_DATA(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - SECTION( DICT_TAB_INFO = 0 ); - - Uint32 gci; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; - union { - Uint32 tableId; - }; -}; - -class SubTableData { - /** - * Sender(s)/Reciver(s) - */ - friend class SumaParticipant; - friend class Grep; - - friend bool printSUB_TABLE_DATA(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 7 ); - - enum LogType { - SCAN = 1, - LOG = 2, - REMOVE_FLAGS = 0xff, - GCINOTCONSISTENT = 0x1 << 16 - }; - - void setGCINotConsistent() { logType |= (Uint32)GCINOTCONSISTENT; }; - bool isGCIConsistent() - { return (logType & (Uint32)GCINOTCONSISTENT) == 0 ? true : false; }; - - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; - Uint32 gci; - Uint32 tableId; - Uint32 operation; - Uint32 noOfAttributes; - Uint32 dataSize; - Uint32 logType; -}; - -class SubSyncContinueReq { - /** - * Sender(s)/Reciver(s) - */ - friend class SumaParticipant; - friend class Grep; - friend class Trix; - - friend bool printSUB_SYNC_CONTINUE_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; - Uint32 noOfRowsSent; -}; - -class SubSyncContinueRef { - /** - * Sender(s)/Reciver(s) - */ - friend class SumaParticipant; - friend class Grep; - friend class Trix; - - friend bool printSUB_SYNC_CONTINUE_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - -class SubSyncContinueConf { - /** - * Sender(s)/Reciver(s) - */ - friend class SumaParticipant; - friend class Grep; - friend class Trix; - - friend bool printSUB_SYNC_CONTINUE_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 2 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - -class SubGcpCompleteRep { - - /** - * Sender(s)/Reciver(s) - */ - friend class Dbdih; - friend class SumaParticipant; - friend class Grep; - friend class Trix; - - friend bool printSUB_GCP_COMPLETE_REP(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 gci; - Uint32 senderRef; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; -}; - -class SubGcpCompleteAcc { - /** - * Sender(s)/Reciver(s) - */ -public: - STATIC_CONST( SignalLength = SubGcpCompleteRep::SignalLength ); - - SubGcpCompleteRep rep; -}; - -class SubRemoveReq { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_REMOVE_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 senderRef; - Uint32 senderData; - Uint32 subscriptionId; - Uint32 subscriptionKey; -}; - -class SubRemoveRef { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_REMOVE_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - enum ErrorCode { - Undefined = 0, - NF_FakeErrorREF = 11, - Busy = 701, - Temporary = 0x1 << 16 - }; - bool isTemporary() const; - void setTemporary(); - ErrorCode setTemporary(ErrorCode ec); - - Uint32 senderRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { - Uint32 err; - Uint32 errorCode; - }; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; -}; -inline bool SubRemoveRef::isTemporary() const -{ return (err & SubRemoveRef::Temporary) > 0; } -inline void SubRemoveRef::setTemporary() -{ err |= SubRemoveRef::Temporary; } -inline SubRemoveRef::ErrorCode SubRemoveRef::setTemporary(ErrorCode ec) -{ return (SubRemoveRef::ErrorCode) - (errorCode = ((Uint32) ec | (Uint32)SubRemoveRef::Temporary)); } - -class SubRemoveConf { - /** - * Sender(s)/Reciver(s) - */ - friend class Grep; - friend class SumaParticipant; - - friend bool printSUB_REMOVE_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - - Uint32 senderRef; - Uint32 subscriptionId; - Uint32 subscriptionKey; - Uint32 err; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; - -}; - - -class CreateSubscriptionIdReq { - friend class Grep; - friend class SumaParticipant; - - friend bool printCREATE_SUBSCRIPTION_ID_REQ(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; -}; - - -class CreateSubscriptionIdConf { - friend class Grep; - friend class SumaParticipant; - - friend bool printCREATE_SUBSCRIPTION_ID_CONF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; -}; - - -class CreateSubscriptionIdRef { - friend class Grep; - friend class SumaParticipant; - - friend bool printCREATE_SUBSCRIPTION_ID_REF(FILE *, const Uint32 *, - Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - Uint32 subscriptionId; - Uint32 subscriptionKey; - union { // Haven't decide what to call it - Uint32 senderData; - Uint32 subscriberData; - }; - Uint32 err; -}; - -class SumaStartMe { -public: - STATIC_CONST( SignalLength = 1 ); - Uint32 unused; -}; - -class SumaHandoverReq { -public: - STATIC_CONST( SignalLength = 1 ); - Uint32 gci; -}; - -class SumaHandoverConf { -public: - STATIC_CONST( SignalLength = 1 ); - Uint32 gci; -}; -#endif diff --git a/ndb/include/kernel/signaldata/SystemError.hpp b/ndb/include/kernel/signaldata/SystemError.hpp deleted file mode 100644 index 7b4d47c5c2e..00000000000 --- a/ndb/include/kernel/signaldata/SystemError.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* 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 SYSTEM_ERROR_HPP -#define SYSTEM_ERROR_HPP - -#include "SignalData.hpp" - -class SystemError { - - /** - * Reciver(s) - */ - friend class Ndbcntr; - - /** - * Sender - */ - friend class Dbtc; - friend class Dbdih; - - /** - * For printing - */ - friend bool printSYSTEM_ERROR(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - ScanfragStateError = 1, - ScanfragTimeout = 2, - GCPStopDetected = 3, - StartInProgressError = 4, - CopyFragRefError = 5, - TestStopOnError = 6 - }; - -private: - Uint32 errorRef; - Uint32 errorCode; - Uint32 data1; - Uint32 data2; -}; - -#endif - diff --git a/ndb/include/kernel/signaldata/TamperOrd.hpp b/ndb/include/kernel/signaldata/TamperOrd.hpp deleted file mode 100644 index eb6cd47b093..00000000000 --- a/ndb/include/kernel/signaldata/TamperOrd.hpp +++ /dev/null @@ -1,40 +0,0 @@ -/* 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 TAMPERORD_H -#define TAMPERORD_H - -#include "SignalData.hpp" - -class TamperOrd { - /** - * Sender - */ - friend class MgmtSrvr; - - /** - * Receiver - */ - friend class Cmvmi; - -private: - STATIC_CONST( SignalLength = 1 ); - - UintR errorNo; -}; - -#endif // TAMPERORD_H - diff --git a/ndb/include/kernel/signaldata/TcCommit.hpp b/ndb/include/kernel/signaldata/TcCommit.hpp deleted file mode 100644 index 9499b20ada3..00000000000 --- a/ndb/include/kernel/signaldata/TcCommit.hpp +++ /dev/null @@ -1,75 +0,0 @@ -/* 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 TCCOMMITCONF_HPP -#define TCCOMMITCONF_HPP - -#include "SignalData.hpp" - -/** - * This is signal is sent from TC to API - * It means that the transaction was committed - */ -class TcCommitConf { - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * Reciver(s) - */ - friend class Ndb; - friend class NdbTransaction; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - /** - * apiConnectPtr - * - * Bit 0 (lowest) is used as indicator - * if == 1 then tc expects a commit ack - */ - Uint32 apiConnectPtr; - - Uint32 transId1; - Uint32 transId2; -}; - -class TcCommitRef { - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * Reciver(s) - */ - friend class NdbTransaction; - -public: - STATIC_CONST( SignalLength = 4 ); -private: - - Uint32 apiConnectPtr; - Uint32 transId1; - Uint32 transId2; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TcContinueB.hpp b/ndb/include/kernel/signaldata/TcContinueB.hpp deleted file mode 100644 index 85213791b2a..00000000000 --- a/ndb/include/kernel/signaldata/TcContinueB.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* 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 TC_CONTINUEB_H -#define TC_CONTINUEB_H - -#include "SignalData.hpp" - -class TcContinueB { - /** - * Sender(s)/Reciver(s) - */ - friend class Dbtc; -private: - enum { - ZRETURN_FROM_QUEUED_DELIVERY = 1, - ZCOMPLETE_TRANS_AT_TAKE_OVER = 2, - ZCONTINUE_TIME_OUT_CONTROL = 3, - ZNODE_TAKE_OVER_COMPLETED = 4, - ZINITIALISE_RECORDS = 5, - ZSEND_COMMIT_LOOP = 6, - ZSEND_COMPLETE_LOOP = 7, - ZHANDLE_FAILED_API_NODE = 8, - ZTRANS_EVENT_REP = 9, - ZABORT_BREAK = 10, - ZABORT_TIMEOUT_BREAK = 11, - ZCONTINUE_TIME_OUT_FRAG_CONTROL = 12, - ZHANDLE_FAILED_API_NODE_REMOVE_MARKERS = 13, - ZWAIT_ABORT_ALL = 14, - ZCHECK_SCAN_ACTIVE_FAILED_LQH = 15, - CHECK_WAIT_DROP_TAB_FAILED_LQH = 16, - TRIGGER_PENDING = 17, - - DelayTCKEYCONF = 18 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TcHbRep.hpp b/ndb/include/kernel/signaldata/TcHbRep.hpp deleted file mode 100644 index 7e701b510f9..00000000000 --- a/ndb/include/kernel/signaldata/TcHbRep.hpp +++ /dev/null @@ -1,64 +0,0 @@ -/* 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 TC_HB_REP_H -#define TC_HB_REP_H - -#include "SignalData.hpp" - -/** - * @class TcHbRep - * @brief Order tc refresh(exetend) the timeout counters for this - * transaction - * - * - SENDER: API - * - RECEIVER: TC - */ -class TcHbRep { - /** - * Receiver(s) - */ - friend class Dbtc; // Receiver - - /** - * Sender(s) - */ - friend class NdbTransaction; - - /** - * For printing - */ - friend bool printTC_HBREP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 3 ); - -private: - - /** - * DATA VARIABLES - */ - - Uint32 apiConnectPtr; // DATA 0 - UintR transId1; // DATA 1 - UintR transId2; // DATA 2 -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/TcIndx.hpp b/ndb/include/kernel/signaldata/TcIndx.hpp deleted file mode 100644 index c5e7d2489ba..00000000000 --- a/ndb/include/kernel/signaldata/TcIndx.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/* 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 TC_INDX_H -#define TC_INDX_H - -#include "SignalData.hpp" -#include "TcKeyReq.hpp" - -class TcIndxConf { - - /** - * Reciver(s) - */ - friend class Ndb; - friend class NdbTransaction; - - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * For printing - */ - friend bool printTCINDXCONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - /** - * Length of signal - */ - STATIC_CONST( SignalLength = 5 ); - -private: - /** - * DATA VARIABLES - */ - //------------------------------------------------------------- - // Unconditional part. First 5 words - //------------------------------------------------------------- - - Uint32 apiConnectPtr; - Uint32 gci; - Uint32 confInfo; - Uint32 transId1; - Uint32 transId2; - - struct OperationConf { - Uint32 apiOperationPtr; - Uint32 attrInfoLen; - }; - //------------------------------------------------------------- - // Operations confirmations, - // No of actually sent = getNoOfOperations(confInfo) - //------------------------------------------------------------- - OperationConf operations[10]; - - /** - * Get:ers for confInfo - */ - static Uint32 getNoOfOperations(const Uint32 & confInfo); - static Uint32 getCommitFlag(const Uint32 & confInfo); - static bool getMarkerFlag(const Uint32 & confInfo); - - /** - * Set:ers for confInfo - */ - static void setCommitFlag(Uint32 & confInfo, Uint8 flag); - static void setNoOfOperations(Uint32 & confInfo, Uint32 noOfOps); - static void setMarkerFlag(Uint32 & confInfo, Uint32 flag); -}; - -inline -Uint32 -TcIndxConf::getNoOfOperations(const Uint32 & confInfo){ - return confInfo & 65535; -} - -inline -Uint32 -TcIndxConf::getCommitFlag(const Uint32 & confInfo){ - return ((confInfo >> 16) & 1); -} - -inline -bool -TcIndxConf::getMarkerFlag(const Uint32 & confInfo){ - const Uint32 bits = 3 << 16; // Marker only valid when doing commit - return (confInfo & bits) == bits; -} - -inline -void -TcIndxConf::setNoOfOperations(Uint32 & confInfo, Uint32 noOfOps){ - ASSERT_MAX(noOfOps, 65535, "TcIndxConf::setNoOfOperations"); - confInfo |= noOfOps; -} - -inline -void -TcIndxConf::setCommitFlag(Uint32 & confInfo, Uint8 flag){ - ASSERT_BOOL(flag, "TcIndxConf::setCommitFlag"); - confInfo |= (flag << 16); -} - -inline -void -TcIndxConf::setMarkerFlag(Uint32 & confInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcIndxConf::setMarkerFlag"); - confInfo |= (flag << 17); -} - -#endif diff --git a/ndb/include/kernel/signaldata/TcKeyConf.hpp b/ndb/include/kernel/signaldata/TcKeyConf.hpp deleted file mode 100644 index c23e94951dc..00000000000 --- a/ndb/include/kernel/signaldata/TcKeyConf.hpp +++ /dev/null @@ -1,132 +0,0 @@ -/* 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 TC_KEY_CONF_H -#define TC_KEY_CONF_H - -#include "SignalData.hpp" - -/** - * - */ -class TcKeyConf { - /** - * Reciver(s) - */ - friend class Ndb; - friend class NdbTransaction; - friend class Ndbcntr; - friend class DbUtil; - - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * For printing - */ - friend bool printTCKEYCONF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - /** - * Length of signal - */ - STATIC_CONST( StaticLength = 5 ); - STATIC_CONST( OperationLength = 2 ); - STATIC_CONST( SimpleReadBit = (((Uint32)1) << 31) ); - -private: - - /** - * DATA VARIABLES - */ - //------------------------------------------------------------- - // Unconditional part. First 5 words - //------------------------------------------------------------- - - Uint32 apiConnectPtr; - Uint32 gci; - Uint32 confInfo; - Uint32 transId1; - Uint32 transId2; - - struct OperationConf { - Uint32 apiOperationPtr; - Uint32 attrInfoLen; - }; - //------------------------------------------------------------- - // Operations confirmations, - // No of actually sent = getNoOfOperations(confInfo) - //------------------------------------------------------------- - OperationConf operations[10]; - - /** - * Get:ers for confInfo - */ - static Uint32 getNoOfOperations(const Uint32 & confInfo); - static Uint32 getCommitFlag(const Uint32 & confInfo); - static bool getMarkerFlag(const Uint32 & confInfo); - - /** - * Set:ers for confInfo - */ - static void setCommitFlag(Uint32 & confInfo, Uint8 flag); - static void setNoOfOperations(Uint32 & confInfo, Uint32 noOfOps); - static void setMarkerFlag(Uint32 & confInfo, Uint32 flag); -}; - -inline -Uint32 -TcKeyConf::getNoOfOperations(const Uint32 & confInfo){ - return confInfo & 65535; -} - -inline -Uint32 -TcKeyConf::getCommitFlag(const Uint32 & confInfo){ - return ((confInfo >> 16) & 1); -} - -inline -bool -TcKeyConf::getMarkerFlag(const Uint32 & confInfo){ - const Uint32 bits = 3 << 16; // Marker only valid when doing commit - return (confInfo & bits) == bits; -} - -inline -void -TcKeyConf::setNoOfOperations(Uint32 & confInfo, Uint32 noOfOps){ - ASSERT_MAX(noOfOps, 65535, "TcKeyConf::setNoOfOperations"); - confInfo = (confInfo & 0xFFFF0000) | noOfOps; -} - -inline -void -TcKeyConf::setCommitFlag(Uint32 & confInfo, Uint8 flag){ - ASSERT_BOOL(flag, "TcKeyConf::setCommitFlag"); - confInfo |= (flag << 16); -} - -inline -void -TcKeyConf::setMarkerFlag(Uint32 & confInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyConf::setMarkerFlag"); - confInfo |= (flag << 17); -} - -#endif diff --git a/ndb/include/kernel/signaldata/TcKeyFailConf.hpp b/ndb/include/kernel/signaldata/TcKeyFailConf.hpp deleted file mode 100644 index 7c0a766df40..00000000000 --- a/ndb/include/kernel/signaldata/TcKeyFailConf.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 TCKEYFAILCONF_HPP -#define TCKEYFAILCONF_HPP - -#include <NodeBitmask.hpp> - -/** - * This is signal is sent from "Take-Over" TC after a node crash - * It means that the transaction was committed - */ -class TcKeyFailConf { - /** - * Sender(s) - */ - friend class Dbtc; - - /** - * Reciver(s) - */ - friend class Ndb; - friend class NdbTransaction; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - /** - * apiConnectPtr - * - * Bit 0 (lowest) is used as indicator - * if == 1 then tc expects a commit ack - */ - Uint32 apiConnectPtr; - Uint32 transId1; - Uint32 transId2; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TcKeyRef.hpp b/ndb/include/kernel/signaldata/TcKeyRef.hpp deleted file mode 100644 index c773920713a..00000000000 --- a/ndb/include/kernel/signaldata/TcKeyRef.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* 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 TCKEYREF_HPP -#define TCKEYREF_HPP - -#include "SignalData.hpp" - -class TcKeyRef { - - /** - * Receiver(s) - */ - friend class NdbOperation; - friend class Ndbcntr; - friend class DbUtil; - - /** - * Sender(s) / Receiver(s) - */ - friend class Dbtc; - - /** - * Sender(s) - */ - friend class Dblqh; - - friend bool printTCKEYREF(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TcKeyReq.hpp b/ndb/include/kernel/signaldata/TcKeyReq.hpp deleted file mode 100644 index d7c11ca773c..00000000000 --- a/ndb/include/kernel/signaldata/TcKeyReq.hpp +++ /dev/null @@ -1,548 +0,0 @@ -/* 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 TC_KEY_REQ_H -#define TC_KEY_REQ_H - -#include "SignalData.hpp" - -/** - * @class TcKeyReq - * @brief Contains KeyInfo and AttrInfo and is commonly followed by more signals - * - * - SENDER: API, NDBCNTR - * - RECEIVER: TC - */ -class TcKeyReq { - /** - * Receiver(s) - */ - friend class Dbtc; // Receiver - - /** - * Sender(s) - */ - friend class Ndbcntr; - friend class NdbOperation; - friend class NdbIndexOperation; - friend class NdbScanOperation; - friend class DbUtil; - - /** - * For printing - */ - friend bool printTCKEYREQ(FILE *, const Uint32 *, Uint32, Uint16); - friend bool printTCINDXREQ(FILE *, const Uint32 *, Uint32, Uint16); - -public: - /** - * Length of signal - */ - STATIC_CONST( StaticLength = 8 ); - STATIC_CONST( SignalLength = 25 ); - STATIC_CONST( MaxKeyInfo = 8 ); - STATIC_CONST( MaxAttrInfo = 5 ); - STATIC_CONST( MaxTotalAttrInfo = 0xFFFF ); - -private: - - enum AbortOption { - CommitIfFailFree = 0, AbortOnError = 0, - CommitAsMuchAsPossible = 2, IgnoreError = 2 - }; - - typedef AbortOption CommitType; - - /** - * DATA VARIABLES - */ - - // ---------------------------------------------------------------------- - // Unconditional part = must be present in signal. First 8 words - // ---------------------------------------------------------------------- - Uint32 apiConnectPtr; // DATA 0 - union { - Uint32 senderData; - UintR apiOperationPtr; // DATA 1 - }; - /** - * ATTRIBUTE INFO (attrinfo) LENGTH - * This is the total length of all attribute info that is sent from - * the application as part of this operation. - * It includes all attribute info sent in possible attrinfo - * signals as well as the attribute info sent in TCKEYREQ. - */ - UintR attrLen; // DATA 2 (also stores API Version) - UintR tableId; // DATA 3 - UintR requestInfo; // DATA 4 Various transaction flags - UintR tableSchemaVersion; // DATA 5 - UintR transId1; // DATA 6 - UintR transId2; // DATA 7 - - // ---------------------------------------------------------------------- - // Conditional part = can be present in signal. - // These four words will be sent only if their indicator is set. - // ---------------------------------------------------------------------- - UintR scanInfo; // DATA 8 Various flags for scans - UintR distrGroupHashValue; // DATA 9 - UintR distributionKeySize; // DATA 10 - UintR storedProcId; // DATA 11 - - // ---------------------------------------------------------------------- - // Variable sized KEY and ATTRINFO part. - // These will be placed to pack the signal in an appropriate manner. - // ---------------------------------------------------------------------- - UintR keyInfo[MaxKeyInfo]; // DATA 12 - 19 - UintR attrInfo[MaxAttrInfo]; // DATA 20 - 24 - - /** - * Get:ers for attrLen - */ - - static Uint16 getAPIVersion(const UintR & attrLen); - static Uint16 getAttrinfoLen(const UintR & attrLen); - static void setAPIVersion(UintR & attrLen, Uint16 apiVersion); - static void setAttrinfoLen(UintR & attrLen, Uint16 aiLen); - - - /** - * Get:ers for requestInfo - */ - static Uint8 getCommitFlag(const UintR & requestInfo); - static Uint8 getAbortOption(const UintR & requestInfo); - static Uint8 getStartFlag(const UintR & requestInfo); - static Uint8 getSimpleFlag(const UintR & requestInfo); - static Uint8 getDirtyFlag(const UintR & requestInfo); - static Uint8 getInterpretedFlag(const UintR & requestInfo); - static Uint8 getDistributionGroupFlag(const UintR & requestInfo); - static Uint8 getDistributionGroupTypeFlag(const UintR & requestInfo); - static Uint8 getDistributionKeyFlag(const UintR & requestInfo); - static Uint8 getScanIndFlag(const UintR & requestInfo); - static Uint8 getOperationType(const UintR & requestInfo); - static Uint8 getExecuteFlag(const UintR & requestInfo); - - static Uint16 getKeyLength(const UintR & requestInfo); - static Uint8 getAIInTcKeyReq(const UintR & requestInfo); - static Uint8 getExecutingTrigger(const UintR & requestInfo); - - /** - * Get:ers for scanInfo - */ - static Uint8 getTakeOverScanFlag(const UintR & scanInfo); - static Uint16 getTakeOverScanFragment(const UintR & scanInfo); - static Uint32 getTakeOverScanInfo(const UintR & scanInfo); - - - /** - * Set:ers for requestInfo - */ - static void clearRequestInfo(UintR & requestInfo); - static void setAbortOption(UintR & requestInfo, Uint32 type); - static void setCommitFlag(UintR & requestInfo, Uint32 flag); - static void setStartFlag(UintR & requestInfo, Uint32 flag); - static void setSimpleFlag(UintR & requestInfo, Uint32 flag); - static void setDirtyFlag(UintR & requestInfo, Uint32 flag); - static void setInterpretedFlag(UintR & requestInfo, Uint32 flag); - static void setDistributionGroupFlag(UintR & requestInfo, Uint32 flag); - static void setDistributionGroupTypeFlag(UintR & requestInfo, Uint32 flag); - static void setDistributionKeyFlag(UintR & requestInfo, Uint32 flag); - static void setScanIndFlag(UintR & requestInfo, Uint32 flag); - static void setExecuteFlag(UintR & requestInfo, Uint32 flag); - static void setOperationType(UintR & requestInfo, Uint32 type); - - static void setKeyLength(UintR & requestInfo, Uint32 len); - static void setAIInTcKeyReq(UintR & requestInfo, Uint32 len); - static void setExecutingTrigger(UintR & requestInfo, Uint32 flag); - - /** - * Set:ers for scanInfo - */ - static void setTakeOverScanFlag(UintR & scanInfo, Uint8 flag); - static void setTakeOverScanFragment(UintR & scanInfo, Uint16 fragment); - static void setTakeOverScanInfo(UintR & scanInfo, Uint32 aScanInfo); -}; - -/** - * Request Info - * - a = Attr Info in TCKEYREQ - 3 Bits -> Max 7 (Bit 16-18) - b = Distribution Key Ind - 1 Bit 2 - c = Commit Indicator - 1 Bit 4 - d = Dirty Indicator - 1 Bit 0 - e = Scan Indicator - 1 Bit 14 - f = Execute fired trigger - 1 Bit 19 - g = Distribution Group Ind- 1 Bit 1 - i = Interpreted Indicator - 1 Bit 15 - k = Key length - 12 Bits -> Max 4095 (Bit 20 - 31) - o = Operation Type - 3 Bits -> Max 7 (Bit 5-7) - l = Execute - 1 Bit 10 - p = Simple Indicator - 1 Bit 8 - s = Start Indicator - 1 Bit 11 - t = Distribution GroupType- 1 Bit 3 - y = Commit Type - 2 Bit 12-13 - - 1111111111222222222233 - 01234567890123456789012345678901 - dgbtcooop lsyyeiaaafkkkkkkkkkkkk -*/ - -#define COMMIT_SHIFT (4) -#define START_SHIFT (11) -#define SIMPLE_SHIFT (8) -#define DIRTY_SHIFT (0) -#define EXECUTE_SHIFT (10) -#define INTERPRETED_SHIFT (15) -#define DISTR_GROUP_SHIFT (1) -#define DISTR_GROUP_TYPE_SHIFT (3) -#define DISTR_KEY_SHIFT (2) -#define SCAN_SHIFT (14) - -#define OPERATION_SHIFT (5) -#define OPERATION_MASK (7) - -#define AINFO_SHIFT (16) -#define AINFO_MASK (7) - -#define KEY_LEN_SHIFT (20) -#define KEY_LEN_MASK (4095) - -#define COMMIT_TYPE_SHIFT (12) -#define COMMIT_TYPE_MASK (3) - -#define EXECUTING_TRIGGER_SHIFT (19) - -/** - * Scan Info - * - t = Scan take over indicator - 1 Bit - n = Take over node - 12 Bits -> max 65535 - p = Scan Info - 18 Bits -> max 4095 - - 1111111111222222222233 - 01234567890123456789012345678901 - tpppppppppppppppppp nnnnnnnnnnnn -*/ - -#define TAKE_OVER_SHIFT (0) - -#define TAKE_OVER_FRAG_SHIFT (20) -#define TAKE_OVER_FRAG_MASK (4095) - -#define SCAN_INFO_SHIFT (1) -#define SCAN_INFO_MASK (262143) - -/** - * Attr Len - * - n = Attrinfo length(words) - 16 Bits -> max 65535 - a = API version no - 16 Bits -> max 65535 - - 1111111111222222222233 - 01234567890123456789012345678901 - aaaaaaaaaaaaaaaannnnnnnnnnnnnnnn -*/ - -#define API_VER_NO_SHIFT (16) -#define API_VER_NO_MASK (65535) - -#define ATTRLEN_SHIFT (0) -#define ATTRLEN_MASK (65535) - -inline -Uint8 -TcKeyReq::getCommitFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> COMMIT_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getAbortOption(const UintR & requestInfo){ - return (Uint8)((requestInfo >> COMMIT_TYPE_SHIFT) & COMMIT_TYPE_MASK); -} - -inline -Uint8 -TcKeyReq::getStartFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> START_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getSimpleFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> SIMPLE_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getExecuteFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> EXECUTE_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getDirtyFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> DIRTY_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getInterpretedFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> INTERPRETED_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getDistributionGroupFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> DISTR_GROUP_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getDistributionGroupTypeFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> DISTR_GROUP_TYPE_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getDistributionKeyFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> DISTR_KEY_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getScanIndFlag(const UintR & requestInfo){ - return (Uint8)((requestInfo >> SCAN_SHIFT) & 1); -} - -inline -Uint8 -TcKeyReq::getOperationType(const UintR & requestInfo){ - return (Uint8)((requestInfo >> OPERATION_SHIFT) & OPERATION_MASK); -} - -inline -Uint16 -TcKeyReq::getKeyLength(const UintR & requestInfo){ - return (Uint16)((requestInfo >> KEY_LEN_SHIFT) & KEY_LEN_MASK); -} - -inline -Uint8 -TcKeyReq::getAIInTcKeyReq(const UintR & requestInfo){ - return (Uint8)((requestInfo >> AINFO_SHIFT) & AINFO_MASK); -} - -inline -Uint8 -TcKeyReq::getExecutingTrigger(const UintR & requestInfo){ - return (Uint8)((requestInfo >> EXECUTING_TRIGGER_SHIFT) & 1); -} - -inline -void -TcKeyReq::clearRequestInfo(UintR & requestInfo){ - requestInfo = 0; -} - -inline -void -TcKeyReq::setAbortOption(UintR & requestInfo, Uint32 type){ - ASSERT_MAX(type, COMMIT_TYPE_MASK, "TcKeyReq::setAbortOption"); - requestInfo &= ~(COMMIT_TYPE_MASK << COMMIT_TYPE_SHIFT); - requestInfo |= (type << COMMIT_TYPE_SHIFT); -} - -inline -void -TcKeyReq::setCommitFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setCommitFlag"); - requestInfo &= ~(1 << COMMIT_SHIFT); - requestInfo |= (flag << COMMIT_SHIFT); -} - -inline -void -TcKeyReq::setStartFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setStartFlag"); - requestInfo &= ~(1 << START_SHIFT); - requestInfo |= (flag << START_SHIFT); -} - -inline -void -TcKeyReq::setSimpleFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setSimpleFlag"); - requestInfo &= ~(1 << SIMPLE_SHIFT); - requestInfo |= (flag << SIMPLE_SHIFT); -} - -inline -void -TcKeyReq::setDirtyFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setDirstFlag"); - requestInfo &= ~(1 << DIRTY_SHIFT); - requestInfo |= (flag << DIRTY_SHIFT); -} - -inline -void -TcKeyReq::setExecuteFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setExecuteFlag"); - requestInfo &= ~(1 << EXECUTE_SHIFT); - requestInfo |= (flag << EXECUTE_SHIFT); -} - -inline -void -TcKeyReq::setInterpretedFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setInterpretedFlag"); - requestInfo &= ~(1 << INTERPRETED_SHIFT); - requestInfo |= (flag << INTERPRETED_SHIFT); -} - -inline -void -TcKeyReq::setDistributionGroupTypeFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setDistributionGroupTypeFlag"); - requestInfo &= ~(1 << DISTR_GROUP_TYPE_SHIFT); - requestInfo |= (flag << DISTR_GROUP_TYPE_SHIFT); -} - -inline -void -TcKeyReq::setDistributionGroupFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setDistributionGroupFlag"); - requestInfo &= ~(1 << DISTR_GROUP_SHIFT); - requestInfo |= (flag << DISTR_GROUP_SHIFT); -} - -inline -void -TcKeyReq::setDistributionKeyFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setDistributionKeyFlag"); - requestInfo &= ~(1 << DISTR_KEY_SHIFT); - requestInfo |= (flag << DISTR_KEY_SHIFT); -} - -inline -void -TcKeyReq::setScanIndFlag(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setScanIndFlag"); - requestInfo &= ~(1 << SCAN_SHIFT); - requestInfo |= (flag << SCAN_SHIFT); -} - -inline -void -TcKeyReq::setOperationType(UintR & requestInfo, Uint32 type){ - ASSERT_MAX(type, OPERATION_MASK, "TcKeyReq::setOperationType"); - requestInfo &= ~(OPERATION_MASK << OPERATION_SHIFT); - requestInfo |= (type << OPERATION_SHIFT); -} - -inline -void -TcKeyReq::setKeyLength(UintR & requestInfo, Uint32 len){ - ASSERT_MAX(len, KEY_LEN_MASK, "TcKeyReq::setKeyLength"); - requestInfo &= ~(KEY_LEN_MASK << KEY_LEN_SHIFT); - requestInfo |= (len << KEY_LEN_SHIFT); -} - -inline -void -TcKeyReq::setAIInTcKeyReq(UintR & requestInfo, Uint32 len){ - ASSERT_MAX(len, AINFO_MASK, "TcKeyReq::setAIInTcKeyReq"); - requestInfo &= ~(AINFO_MASK << AINFO_SHIFT); - requestInfo |= (len << AINFO_SHIFT); -} - -inline -void -TcKeyReq::setExecutingTrigger(UintR & requestInfo, Uint32 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setExecutingTrigger"); - requestInfo &= ~(1 << EXECUTING_TRIGGER_SHIFT); - requestInfo |= (flag << EXECUTING_TRIGGER_SHIFT); -} - -inline -Uint8 -TcKeyReq::getTakeOverScanFlag(const UintR & scanInfo){ - return (Uint8)((scanInfo >> TAKE_OVER_SHIFT) & 1); -} - -inline -Uint16 -TcKeyReq::getTakeOverScanFragment(const UintR & scanInfo){ - return (Uint16)((scanInfo >> TAKE_OVER_FRAG_SHIFT) & TAKE_OVER_FRAG_MASK); -} - -inline -Uint32 -TcKeyReq::getTakeOverScanInfo(const UintR & scanInfo){ - return (Uint32)((scanInfo >> SCAN_INFO_SHIFT) & SCAN_INFO_MASK); -} - - -inline -void -TcKeyReq::setTakeOverScanFlag(UintR & scanInfo, Uint8 flag){ - ASSERT_BOOL(flag, "TcKeyReq::setTakeOverScanFlag"); - scanInfo |= (flag << TAKE_OVER_SHIFT); -} - -inline -void -TcKeyReq::setTakeOverScanFragment(UintR & scanInfo, Uint16 node){ -// ASSERT_MAX(node, TAKE_OVER_NODE_MASK, "TcKeyReq::setTakeOverScanNode"); - scanInfo |= (node << TAKE_OVER_FRAG_SHIFT); -} - -inline -void -TcKeyReq::setTakeOverScanInfo(UintR & scanInfo, Uint32 aScanInfo){ -// ASSERT_MAX(aScanInfo, SCAN_INFO_MASK, "TcKeyReq::setTakeOverScanInfo"); - scanInfo |= (aScanInfo << SCAN_INFO_SHIFT); -} - - -inline -Uint16 -TcKeyReq::getAPIVersion(const UintR & anAttrLen){ - return (Uint16)((anAttrLen >> API_VER_NO_SHIFT) & API_VER_NO_MASK); -} - -inline -void -TcKeyReq::setAPIVersion(UintR & anAttrLen, Uint16 apiVersion){ -// ASSERT_MAX(apiVersion, API_VER_NO_MASK, "TcKeyReq::setAPIVersion"); - anAttrLen |= (apiVersion << API_VER_NO_SHIFT); -} - -inline -Uint16 -TcKeyReq::getAttrinfoLen(const UintR & anAttrLen){ - return (Uint16)((anAttrLen) & ATTRLEN_MASK); -} - -inline -void -TcKeyReq::setAttrinfoLen(UintR & anAttrLen, Uint16 aiLen){ -// ASSERT_MAX(aiLen, ATTRLEN_MASK, "TcKeyReq::setAttrinfoLen"); - anAttrLen |= aiLen; -} - - -#endif diff --git a/ndb/include/kernel/signaldata/TcRollbackRep.hpp b/ndb/include/kernel/signaldata/TcRollbackRep.hpp deleted file mode 100644 index febbd4f86b1..00000000000 --- a/ndb/include/kernel/signaldata/TcRollbackRep.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* 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 TCROLLBACKREP_HPP -#define TCROLLBACKREP_HPP - -#include "SignalData.hpp" - -class TcRollbackRep { - /** - * Sender(s) - */ - friend class NdbTransaction; - friend class DbUtil; - - /** - * Receiver(s) - */ - friend class Dbtup; - - /** - * Sender(s) / Receiver(s) - */ - friend class Dbtc; - - friend bool printTCROLBACKREP(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( SignalLength = 4 ); - -private: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 returnCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TcSizeAltReq.hpp b/ndb/include/kernel/signaldata/TcSizeAltReq.hpp deleted file mode 100644 index 34eacfe5a93..00000000000 --- a/ndb/include/kernel/signaldata/TcSizeAltReq.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* 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 TC_SIZE_ALT_REQ_H -#define TC_SIZE_ALT_REQ_H - - - -#include "SignalData.hpp" - -class TcSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dbtc; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_API_CONNECT = 1 ); - STATIC_CONST( IND_TC_CONNECT = 2 ); - STATIC_CONST( IND_UNUSED = 3 ); - STATIC_CONST( IND_TABLE = 4 ); - STATIC_CONST( IND_TC_SCAN = 5 ); - STATIC_CONST( IND_LOCAL_SCAN = 6 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[7]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TestOrd.hpp b/ndb/include/kernel/signaldata/TestOrd.hpp deleted file mode 100644 index 1600df08884..00000000000 --- a/ndb/include/kernel/signaldata/TestOrd.hpp +++ /dev/null @@ -1,229 +0,0 @@ -/* 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 TEST_ORD_H -#define TEST_ORD_H - -#include "SignalData.hpp" - -/** - * Send by API to preform TEST ON / TEST OFF - * - * SENDER: API - * RECIVER: SimBlockCMCtrBlck - */ -class TestOrd { - friend class Ndb; - friend class Cmvmi; - friend class MgmtSrvr; -public: - - enum Command { - KeepUnchanged = 0, - On = 1, - Off = 2, - Toggle = 3, - COMMAND_MASK = 3 - }; - - enum SignalLoggerSpecification { - InputSignals = 1, - OutputSignals = 2, - InputOutputSignals = 3, - LOG_MASK = 3 - }; - - enum TraceSpecification { - TraceALL = 0, - TraceAPI = 1, - TraceGlobalCheckpoint = 2, - TraceLocalCheckpoint = 4, - TraceDisconnect = 8, - TRACE_MASK = 15 - }; - -private: - STATIC_CONST( SignalLength = 25 ); - - /** - * Clear Signal - */ - void clear(); - - /** - * Set/Get test command - */ - void setTestCommand(Command); - void getTestCommand(Command&) const; - - /** - * Set trace command - */ - void setTraceCommand(Command, TraceSpecification); - - /** - * Get trace command - */ - void getTraceCommand(Command&, TraceSpecification&) const; - - /** - * Return no of signal logger commands - * - * -1 Means apply command(0) to all blocks - * - */ - UintR getNoOfSignalLoggerCommands() const; - - /** - * Add a signal logger command to a specific block - */ - void addSignalLoggerCommand(BlockNumber, Command, SignalLoggerSpecification); - - /** - * Add a signal logger command to all blocks - * - * Note removes all previously added commands - * - */ - void addSignalLoggerCommand(Command, SignalLoggerSpecification); - - /** - * Get Signal logger command - */ - void getSignalLoggerCommand(int no, BlockNumber&, Command&, SignalLoggerSpecification&) const; - - UintR testCommand; // DATA 0 - UintR traceCommand; // DATA 1 - UintR noOfSignalLoggerCommands; // DATA 2 - UintR signalLoggerCommands[22]; // DATA 3 - 25 -}; - -#define COMMAND_SHIFT (0) -#define TRACE_SHIFT (2) -#define LOG_SHIFT (2) - -#define BLOCK_NO_SHIFT (16) -#define BLOCK_NO_MASK 65535 - -/** - * Clear Signal - */ -inline -void -TestOrd::clear(){ - setTestCommand(KeepUnchanged); - setTraceCommand(KeepUnchanged, TraceAPI); // - noOfSignalLoggerCommands = 0; -} - -/** - * Set/Get test command - */ -inline -void -TestOrd::setTestCommand(Command cmd){ - ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::setTestCommand"); - testCommand = cmd; -} - -inline -void -TestOrd::getTestCommand(Command & cmd) const{ - cmd = (Command)(testCommand >> COMMAND_SHIFT); -} - -/** - * Set trace command - */ -inline -void -TestOrd::setTraceCommand(Command cmd, TraceSpecification spec){ - ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::setTraceCommand"); - ASSERT_RANGE(spec, 0, TRACE_MASK, "TestOrd::setTraceCommand"); - traceCommand = (cmd << COMMAND_SHIFT) | (spec << TRACE_SHIFT); -} - -/** - * Get trace command - */ -inline -void -TestOrd::getTraceCommand(Command & cmd, TraceSpecification & spec) const{ - cmd = (Command)((traceCommand >> COMMAND_SHIFT) & COMMAND_MASK); - spec = (TraceSpecification)((traceCommand >> TRACE_SHIFT) & TRACE_MASK); -} - -/** - * Return no of signal logger commands - * - * -1 Means apply command(0) to all blocks - * - */ -inline -UintR -TestOrd::getNoOfSignalLoggerCommands() const{ - return noOfSignalLoggerCommands; -} - -/** - * Add a signal logger command to a specific block - */ -inline -void -TestOrd::addSignalLoggerCommand(BlockNumber bnr, - Command cmd, SignalLoggerSpecification spec){ - ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::addSignalLoggerCommand"); - ASSERT_RANGE(spec, 0, LOG_MASK, "TestOrd::addSignalLoggerCommand"); - //ASSERT_MAX(bnr, BLOCK_NO_MASK, "TestOrd::addSignalLoggerCommand"); - - signalLoggerCommands[noOfSignalLoggerCommands] = - (bnr << BLOCK_NO_SHIFT) | (cmd << COMMAND_SHIFT) | (spec << LOG_SHIFT); - noOfSignalLoggerCommands ++; -} - -/** - * Add a signal logger command to all blocks - * - * Note removes all previously added commands - * - */ -inline -void -TestOrd::addSignalLoggerCommand(Command cmd, SignalLoggerSpecification spec){ - ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::addSignalLoggerCommand"); - ASSERT_RANGE(spec, 0, LOG_MASK, "TestOrd::addSignalLoggerCommand"); - - noOfSignalLoggerCommands = ~0; - signalLoggerCommands[0] = (cmd << COMMAND_SHIFT) | (spec << LOG_SHIFT); -} - -/** - * Get Signal logger command - */ -inline -void -TestOrd::getSignalLoggerCommand(int no, BlockNumber & bnr, - Command & cmd, - SignalLoggerSpecification & spec) const{ - bnr = (BlockNumber)((signalLoggerCommands[no] >> BLOCK_NO_SHIFT) - & BLOCK_NO_MASK); - cmd = (Command)((signalLoggerCommands[no] >> COMMAND_SHIFT) - & COMMAND_MASK); - spec = (SignalLoggerSpecification)((signalLoggerCommands[no] >> LOG_SHIFT) - & LOG_MASK); -} - -#endif diff --git a/ndb/include/kernel/signaldata/TransIdAI.hpp b/ndb/include/kernel/signaldata/TransIdAI.hpp deleted file mode 100755 index 5beaf6eba4b..00000000000 --- a/ndb/include/kernel/signaldata/TransIdAI.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* 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 TRANSID_AI_HPP -#define TRANSID_AI_HPP - -#include "SignalData.hpp" - -class TransIdAI { - /** - * Sender(s) - */ - friend class Dbtup; - - /** - * Receiver(s) - */ - friend class NdbTransaction; - friend class Dbtc; - friend class Dbutil; - friend class Dblqh; - friend class Suma; - - friend bool printTRANSID_AI(FILE *, const Uint32 *, Uint32, Uint16); - -public: - STATIC_CONST( HeaderLength = 3 ); - STATIC_CONST( DataLength = 22 ); - - // Public methods -public: - Uint32* getData() const; - -public: - Uint32 connectPtr; - Uint32 transId[2]; - Uint32 attrData[DataLength]; -}; - -inline -Uint32* TransIdAI::getData() const -{ - return (Uint32*)&attrData[0]; -} - -#endif diff --git a/ndb/include/kernel/signaldata/TrigAttrInfo.hpp b/ndb/include/kernel/signaldata/TrigAttrInfo.hpp deleted file mode 100644 index e2c029b9033..00000000000 --- a/ndb/include/kernel/signaldata/TrigAttrInfo.hpp +++ /dev/null @@ -1,138 +0,0 @@ -/* 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 TRIG_ATTRINFO_HPP -#define TRIG_ATTRINFO_HPP - -#include "SignalData.hpp" -#include <NodeBitmask.hpp> -#include <trigger_definitions.h> -#include <string.h> - -/** - * TrigAttrInfo - * - * This signal is sent by TUP to signal - * that a trigger has fired - */ -class TrigAttrInfo { - /** - * Sender(s) - */ - // API - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbtup; - - /** - * Reciver(s) - */ - friend class Dbtc; - friend class Backup; - friend class SumaParticipant; - - /** - * For printing - */ - friend bool printTRIG_ATTRINFO(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: -enum AttrInfoType { - PRIMARY_KEY = 0, - BEFORE_VALUES = 1, - AFTER_VALUES = 2 -}; - - STATIC_CONST( DataLength = 22 ); - STATIC_CONST( StaticLength = 3 ); - -private: - Uint32 m_connectionPtr; - Uint32 m_trigId; - Uint32 m_type; - Uint32 m_data[DataLength]; - - // Public methods -public: - Uint32 getConnectionPtr() const; - void setConnectionPtr(Uint32); - AttrInfoType getAttrInfoType() const; - void setAttrInfoType(AttrInfoType anAttrType); - Uint32 getTriggerId() const; - void setTriggerId(Uint32 aTriggerId); - Uint32 getTransactionId1() const; - void setTransactionId1(Uint32 aTransId); - Uint32 getTransactionId2() const; - void setTransactionId2(Uint32 aTransId); - Uint32* getData() const; - int setData(Uint32* aDataBuf, Uint32 aDataLen); -}; - -inline -Uint32 TrigAttrInfo::getConnectionPtr() const -{ - return m_connectionPtr; -} - -inline -void TrigAttrInfo::setConnectionPtr(Uint32 aConnectionPtr) -{ - m_connectionPtr = aConnectionPtr; -} - -inline -TrigAttrInfo::AttrInfoType TrigAttrInfo::getAttrInfoType() const -{ - return (TrigAttrInfo::AttrInfoType) m_type; -} - -inline -void TrigAttrInfo::setAttrInfoType(TrigAttrInfo::AttrInfoType anAttrType) -{ - m_type = (Uint32) anAttrType; -} - -inline -Uint32 TrigAttrInfo::getTriggerId() const -{ - return m_trigId; -} - -inline -void TrigAttrInfo::setTriggerId(Uint32 aTriggerId) -{ - m_trigId = aTriggerId; -} - -inline -Uint32* TrigAttrInfo::getData() const -{ - return (Uint32*)&m_data[0]; -} - -inline -int TrigAttrInfo::setData(Uint32* aDataBuf, Uint32 aDataLen) -{ - if (aDataLen > DataLength) - return -1; - memcpy(m_data, aDataBuf, aDataLen*sizeof(Uint32)); - - return 0; -} - -#endif diff --git a/ndb/include/kernel/signaldata/TupCommit.hpp b/ndb/include/kernel/signaldata/TupCommit.hpp deleted file mode 100644 index 7c5a7931e6c..00000000000 --- a/ndb/include/kernel/signaldata/TupCommit.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* 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 TUP_COMMIT_H -#define TUP_COMMIT_H - -#include "SignalData.hpp" - -class TupCommitReq { - /** - * Reciver(s) - */ - friend class Dbtup; - - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * For printing - */ - friend bool printTUPCOMMITREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 3 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 opPtr; - Uint32 gci; - Uint32 hashValue; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TupFrag.hpp b/ndb/include/kernel/signaldata/TupFrag.hpp deleted file mode 100644 index 8acb3d28bd6..00000000000 --- a/ndb/include/kernel/signaldata/TupFrag.hpp +++ /dev/null @@ -1,198 +0,0 @@ -/* 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 TUP_FRAG_HPP -#define TUP_FRAG_HPP - -#include "SignalData.hpp" - -/* - * Add fragment and add attribute signals between LQH and TUP,TUX. - * NOTE: return signals from TUP,TUX to LQH must have same format. - */ - -// TUP: add fragment - -class TupFragReq { - friend class Dblqh; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 14 ); -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 reqInfo; - Uint32 tableId; - Uint32 noOfAttr; - Uint32 fragId; - Uint32 todo[8]; -}; - -class TupFragConf { - friend class Dblqh; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 4 ); -private: - Uint32 userPtr; - Uint32 tupConnectPtr; - Uint32 fragPtr; - Uint32 fragId; -}; - -class TupFragRef { - friend class Dblqh; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 userPtr; - Uint32 errorCode; -}; - -// TUX: add fragment - -class TuxFragReq { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 14 ); -private: - Uint32 userPtr; - Uint32 userRef; - Uint32 reqInfo; - Uint32 tableId; - Uint32 noOfAttr; - Uint32 fragId; - Uint32 fragOff; - Uint32 tableType; - Uint32 primaryTableId; - Uint32 tupIndexFragPtrI; - Uint32 tupTableFragPtrI[2]; - Uint32 accTableFragPtrI[2]; -}; - -class TuxFragConf { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 4 ); -private: - Uint32 userPtr; - Uint32 tuxConnectPtr; - Uint32 fragPtr; - Uint32 fragId; -}; - -class TuxFragRef { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 2 ); - enum ErrorCode { - NoError = 0, - InvalidRequest = 903, - NoFreeFragment = 904, - NoFreeAttributes = 905 - }; -private: - Uint32 userPtr; - Uint32 errorCode; -}; - -// TUP: add attribute - -class TupAddAttrReq { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 5 ); -private: - Uint32 tupConnectPtr; - Uint32 notused1; - Uint32 attrId; - Uint32 attrDescriptor; - Uint32 extTypeInfo; -}; - -class TupAddAttrConf { - friend class Dblqh; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 userPtr; - Uint32 lastAttr; // bool: got last attr and closed frag op -}; - -class TupAddAttrRef { - friend class Dblqh; - friend class Dbtup; -public: - STATIC_CONST( SignalLength = 2 ); - enum ErrorCode { - NoError = 0, - InvalidCharset = 743, - TooManyBitsUsed = 831 - }; -private: - Uint32 userPtr; - Uint32 errorCode; -}; - -// TUX: add attribute - -class TuxAddAttrReq { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 6 ); -private: - Uint32 tuxConnectPtr; - Uint32 notused1; - Uint32 attrId; - Uint32 attrDescriptor; - Uint32 extTypeInfo; - Uint32 primaryAttrId; -}; - -class TuxAddAttrConf { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 2 ); -private: - Uint32 userPtr; - Uint32 lastAttr; // bool: got last attr and closed frag op -}; - -class TuxAddAttrRef { - friend class Dblqh; - friend class Dbtux; -public: - STATIC_CONST( SignalLength = 2 ); - enum ErrorCode { - NoError = 0, - InvalidAttributeType = 906, - InvalidCharset = 907, - InvalidNodeSize = 908 - }; -private: - Uint32 userPtr; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TupKey.hpp b/ndb/include/kernel/signaldata/TupKey.hpp deleted file mode 100644 index ffd57d81e64..00000000000 --- a/ndb/include/kernel/signaldata/TupKey.hpp +++ /dev/null @@ -1,125 +0,0 @@ -/* 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 TUP_KEY_H -#define TUP_KEY_H - -#include "SignalData.hpp" - -class TupKeyReq { - /** - * Reciver(s) - */ - friend class Dbtup; - - /** - * Sender(s) - */ - friend class Dblqh; - - /** - * For printing - */ - friend bool printTUPKEYREQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 18 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 connectPtr; - Uint32 request; - Uint32 tableRef; - Uint32 fragId; - Uint32 keyRef1; - Uint32 keyRef2; - Uint32 attrBufLen; - Uint32 opRef; - Uint32 applRef; - Uint32 schemaVersion; - Uint32 storedProcedure; - Uint32 transId1; - Uint32 transId2; - Uint32 fragPtr; - Uint32 primaryReplica; - Uint32 coordinatorTC; - Uint32 tcOpIndex; - Uint32 savePointId; -}; - -class TupKeyConf { - /** - * Reciver(s) - */ - friend class Dblqh; - - /** - * Sender(s) - */ - friend class Dbtup; - - /** - * For printing - */ - friend bool printTUPKEYCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 5 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 userPtr; - Uint32 readLength; - Uint32 writeLength; - Uint32 noFiredTriggers; - Uint32 lastRow; -}; - -class TupKeyRef { - /** - * Reciver(s) - */ - friend class Dblqh; - - /** - * Sender(s) - */ - friend class Dbtup; - - /** - * For printing - */ - friend bool printTUPKEYREF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 2 ); - -private: - - /** - * DATA VARIABLES - */ - Uint32 userRef; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TupSizeAltReq.hpp b/ndb/include/kernel/signaldata/TupSizeAltReq.hpp deleted file mode 100644 index 215493bc188..00000000000 --- a/ndb/include/kernel/signaldata/TupSizeAltReq.hpp +++ /dev/null @@ -1,58 +0,0 @@ -/* 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 TUP_SIZE_ALT_REQ_H -#define TUP_SIZE_ALT_REQ_H - - - -#include "SignalData.hpp" - -class TupSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Reciver(s) - */ - friend class Dbtup; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_DISK_PAGE_ARRAY = 1 ); - STATIC_CONST( IND_DISK_PAGE_REPRESENT = 2 ); - STATIC_CONST( IND_FRAG = 3 ); - STATIC_CONST( IND_PAGE_CLUSTER = 4 ); - STATIC_CONST( IND_LOGIC_PAGE = 5 ); - STATIC_CONST( IND_OP_RECS = 6 ); - STATIC_CONST( IND_PAGE = 7 ); - STATIC_CONST( IND_PAGE_RANGE = 8 ); - STATIC_CONST( IND_TABLE = 9 ); - STATIC_CONST( IND_TABLE_DESC = 10 ); - STATIC_CONST( IND_DELETED_BLOCKS = 11 ); - STATIC_CONST( IND_STORED_PROC = 12 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[13]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TuxBound.hpp b/ndb/include/kernel/signaldata/TuxBound.hpp deleted file mode 100644 index 7e12897407b..00000000000 --- a/ndb/include/kernel/signaldata/TuxBound.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* 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 TUX_BOUND_HPP -#define TUX_BOUND_HPP - -#include "SignalData.hpp" - -class TuxBoundInfo { - friend class Dblqh; - friend class Dbtux; -public: - // must match API (0-4 and no changes expected) - enum BoundType { - BoundLE = 0, // bit 1 for less/greater - BoundLT = 1, // bit 0 for strict - BoundGE = 2, - BoundGT = 3, - BoundEQ = 4 - }; - enum ErrorCode { - InvalidAttrInfo = 4110, - InvalidBounds = 4259, - OutOfBuffers = 873, - InvalidCharFormat = 744, - TooMuchAttrInfo = 823 - }; - STATIC_CONST( SignalLength = 3 ); -private: - /* - * Error code set by TUX. Zero means no error. - */ - Uint32 errorCode; - /* - * Pointer (i-value) to scan operation in TUX. - */ - Uint32 tuxScanPtrI; - /* - * Number of words of bound info included after fixed signal data. - */ - Uint32 boundAiLength; - - Uint32 data[1]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TuxContinueB.hpp b/ndb/include/kernel/signaldata/TuxContinueB.hpp deleted file mode 100644 index 385d85715e2..00000000000 --- a/ndb/include/kernel/signaldata/TuxContinueB.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* 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 TUX_CONTINUEB_H -#define TUX_CONTINUEB_H - -#include "SignalData.hpp" - -class TuxContinueB { - friend class Dbtux; -private: - enum { - DropIndex = 1 - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TuxMaint.hpp b/ndb/include/kernel/signaldata/TuxMaint.hpp deleted file mode 100644 index 4518f0531ea..00000000000 --- a/ndb/include/kernel/signaldata/TuxMaint.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* 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 TUX_MAINT_HPP -#define TUX_MAINT_HPP - -#include "SignalData.hpp" - -/* - * Ordered index maintenance operation. - */ - -class TuxMaintReq { - friend class Dbtup; - friend class Dbtux; - friend bool printTUX_MAINT_REQ(FILE*, const Uint32*, Uint32, Uint16); -public: - enum OpCode { // first byte of opInfo - OpAdd = 1, - OpRemove = 2 - }; - enum OpFlag { // second byte of opInfo - }; - enum ErrorCode { - NoError = 0, // must be zero - SearchError = 901, // add + found or remove + not found - NoMemError = 902 - }; - STATIC_CONST( SignalLength = 8 ); -private: - /* - * Error code set by TUX. Zero means no error. - */ - Uint32 errorCode; - /* - * Table, index, fragment. - */ - Uint32 tableId; - Uint32 indexId; - Uint32 fragId; - /* - * Tuple version identified by physical address of "original" tuple - * and version number. - */ - Uint32 pageId; - Uint32 pageOffset; - Uint32 tupVersion; - /* - * Operation code and flags. - */ - Uint32 opInfo; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp b/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp deleted file mode 100644 index 5d5a0e102ba..00000000000 --- a/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* 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 TUX_SIZE_ALT_REQ_H -#define TUX_SIZE_ALT_REQ_H - -#include "SignalData.hpp" - -class TuxSizeAltReq { - /** - * Sender(s) - */ - friend class ClusterConfiguration; - - /** - * Receiver(s) - */ - friend class Dbtux; -private: - /** - * Indexes in theData - */ - STATIC_CONST( IND_BLOCK_REF = 0 ); - STATIC_CONST( IND_INDEX = 1 ); - STATIC_CONST( IND_FRAGMENT = 2 ); - STATIC_CONST( IND_ATTRIBUTE = 3 ); - STATIC_CONST( IND_SCAN = 4 ); - - /** - * Use the index definitions to use the signal data - */ - UintR theData[4]; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/UpdateTo.hpp b/ndb/include/kernel/signaldata/UpdateTo.hpp deleted file mode 100644 index 0fa5f31b6b4..00000000000 --- a/ndb/include/kernel/signaldata/UpdateTo.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* 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 UPDATE_TO_HPP -#define UPDATE_TO_HPP - -class UpdateToReq { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 6 ); -private: - enum UpdateState { - TO_COPY_FRAG_COMPLETED = 0, - TO_COPY_COMPLETED = 1 - }; - Uint32 userPtr; - BlockReference userRef; - UpdateState updateState; - Uint32 startingNodeId; - - /** - * Only when TO_COPY_FRAG_COMPLETED - */ - Uint32 tableId; - Uint32 fragmentNo; -}; - -class UpdateToConf { - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - -public: - STATIC_CONST( SignalLength = 3 ); -private: - - Uint32 userPtr; - Uint32 sendingNodeId; - Uint32 startingNodeId; -}; -#endif diff --git a/ndb/include/kernel/signaldata/UpgradeStartup.hpp b/ndb/include/kernel/signaldata/UpgradeStartup.hpp deleted file mode 100644 index 93fef323789..00000000000 --- a/ndb/include/kernel/signaldata/UpgradeStartup.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef NDB_UPGRADE_STARTUP -#define NDB_UPGRADE_STARTUP - -class Ndbcntr; - -struct UpgradeStartup { - - static void installEXEC(SimulatedBlock*); - - STATIC_CONST( GSN_CM_APPCHG = 131 ); - STATIC_CONST( GSN_CNTR_MASTERCONF = 148 ); - STATIC_CONST( GSN_CNTR_MASTERREF = 149 ); - STATIC_CONST( GSN_CNTR_MASTERREQ = 150 ); - - static void sendCmAppChg(Ndbcntr&, Signal *, Uint32 startLevel); - static void execCM_APPCHG(SimulatedBlock& block, Signal*); - static void sendCntrMasterReq(Ndbcntr& cntr, Signal* signal, Uint32 n); - static void execCNTR_MASTER_REPLY(SimulatedBlock & block, Signal* signal); - - struct CntrMasterReq { - STATIC_CONST( SignalLength = 4 + NdbNodeBitmask::Size ); - - Uint32 userBlockRef; - Uint32 userNodeId; - Uint32 typeOfStart; - Uint32 noRestartNodes; - Uint32 theNodes[NdbNodeBitmask::Size]; - }; - - struct CntrMasterConf { - STATIC_CONST( SignalLength = 1 + NdbNodeBitmask::Size ); - - Uint32 noStartNodes; - Uint32 theNodes[NdbNodeBitmask::Size]; - }; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/UtilDelete.hpp b/ndb/include/kernel/signaldata/UtilDelete.hpp deleted file mode 100644 index 67c13b8c2d5..00000000000 --- a/ndb/include/kernel/signaldata/UtilDelete.hpp +++ /dev/null @@ -1,121 +0,0 @@ -/* 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 UTIL_DELETE_HPP -#define UTIL_DELETE_HPP - -#include "SignalData.hpp" -#include <SimpleProperties.hpp> - -/** - * UTIL_DELETE_REQ, UTIL_DELETE_CONF, UTIL_DELETE_REF - */ - -/** - * @class UtilDeleteReq - * @brief Delete transaction in Util block - * - * Data format: - * - UTIL_DELETE_REQ <prepareId> <ListOfAttributeHeaderValuePairs> - */ - -class UtilDeleteReq { - /** Sender(s) / Receiver(s) */ - friend class DbUtil; - - /** For printing */ - friend bool printUTIL_DELETE_REQ(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( DataLength = 22 ); - STATIC_CONST( HeaderLength = 3 ); - -private: - Uint32 senderData; - Uint32 prepareId; // Which prepared transaction to execute - Uint32 totalDataLen; // Total length of attrData (including AttributeHeaders - // and possibly spanning over multiple signals) - - /** - * Length in this = signal->length() - 3 - * Sender block ref = signal->senderBlockRef() - */ - - Uint32 attrData[DataLength]; -}; - - - -/** - * @class UtilDeleteConf - * - * Data format: - * - UTIL_PREPARE_CONF <UtilPrepareId> - */ - -class UtilDeleteConf { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - - /** - * For printing - */ - friend bool printUTIL_DELETE_CONF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 senderData; ///< The client data provided by the client sending - ///< UTIL_DELETE_REQ -}; - - -/** - * @class UtilDeleteRef - * - * Data format: - * - UTIL_PREPARE_REF - */ - -class UtilDeleteRef { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - - /** - * For printing - */ - friend bool printUTIL_DELETE_REF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; - Uint32 errorCode; ///< See UtilExecuteRef::errorCode - Uint32 TCErrorCode; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/UtilExecute.hpp b/ndb/include/kernel/signaldata/UtilExecute.hpp deleted file mode 100644 index 551fb172cac..00000000000 --- a/ndb/include/kernel/signaldata/UtilExecute.hpp +++ /dev/null @@ -1,136 +0,0 @@ -/* 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 UTIL_EXECUTE_HPP -#define UTIL_EXECUTE_HPP - -#include "SignalData.hpp" -#include <SimpleProperties.hpp> - -/** - * UTIL_EXECUTE_REQ, UTIL_EXECUTE_CONF, UTIL_EXECUTE_REF - */ - -/** - * @class UtilExecuteReq - * @brief Execute transaction in Util block - * - * Data format: - * - UTIL_EXECUTE_REQ <prepareId> <ListOfAttributeHeaderValuePairs> - */ - -class UtilExecuteReq { - /** Sender(s) / Receiver(s) */ - friend class DbUtil; - friend class Trix; - - /** For printing */ - friend bool printUTIL_EXECUTE_REQ(FILE * output, const Uint32 * theData, - Uint32 len, Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 3 ); - STATIC_CONST( HEADER_SECTION = 0 ); - STATIC_CONST( DATA_SECTION = 1 ); - STATIC_CONST( NoOfSections = 2 ); - - GET_SET_SENDERREF - GET_SET_SENDERDATA - void setPrepareId(Uint32 pId) { prepareId = pId; }; // !! unsets release flag - Uint32 getPrepareId() { return prepareId & 0xFF; }; - void setReleaseFlag() { prepareId |= 0x100; }; - bool getReleaseFlag() { return (prepareId & 0x100) != 0; }; -private: - Uint32 senderData; // MUST be no 1! - Uint32 senderRef; - Uint32 prepareId; // Which prepared transaction to execute -}; - -/** - * @class UtilExecuteConf - * - * Data format: - * - UTIL_PREPARE_CONF <UtilPrepareId> - */ - -class UtilExecuteConf { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - friend class Trix; - - /** - * For printing - */ - friend bool printUTIL_EXECUTE_CONF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); -public: - STATIC_CONST( SignalLength = 1 ); - - GET_SET_SENDERDATA -private: - Uint32 senderData; // MUST be no 1! -}; - - -/** - * @class UtilExecuteRef - * - * Data format: - * - UTIL_PREPARE_REF - */ - -class UtilExecuteRef { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - friend class Trix; - - /** - * For printing - */ - friend bool printUTIL_EXECUTE_REF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 3 ); - - enum ErrorCode { - IllegalKeyNumber = 1, - IllegalAttrNumber = 2, - TCError = 3, - IllegalPrepareId = 4, - AllocationError = 5, - MissingDataSection = 6, - MissingData = 7 - }; - - GET_SET_SENDERDATA - GET_SET_ERRORCODE - GET_SET_TCERRORCODE -private: - Uint32 senderData; // MUST be no 1! - Uint32 errorCode; - Uint32 TCErrorCode; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/UtilLock.hpp b/ndb/include/kernel/signaldata/UtilLock.hpp deleted file mode 100644 index 318024fd706..00000000000 --- a/ndb/include/kernel/signaldata/UtilLock.hpp +++ /dev/null @@ -1,334 +0,0 @@ -/* 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 UTIL_LOCK_HPP -#define UTIL_LOCK_HPP - -#include "SignalData.hpp" - -class UtilLockReq { - - /** - * Receiver - */ - friend class DbUtil; - - /** - * Sender - */ - friend class Dbdih; - friend class MutexManager; - - friend bool printUTIL_LOCK_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum RequestInfo { - TryLock = 1 - }; -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 requestInfo; -}; - -class UtilLockConf { - - /** - * Receiver - */ - friend class Dbdih; - friend class MutexManager; - - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_LOCK_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 lockKey; -}; - -class UtilLockRef { - - /** - * Reciver - */ - friend class Dbdih; - friend class MutexManager; - - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_LOCK_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - OK = 0, - NoSuchLock = 1, - OutOfLockRecords = 2, - DistributedLockNotSupported = 3, - LockAlreadyHeld = 4 - - }; -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 errorCode; -}; - -class UtilUnlockReq { - - /** - * Receiver - */ - friend class DbUtil; - - /** - * Sender - */ - friend class Dbdih; - friend class MutexManager; - - friend bool printUTIL_UNLOCK_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 lockKey; -}; - -class UtilUnlockConf { - - /** - * Receiver - */ - friend class Dbdih; - friend class MutexManager; - - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_UNLOCK_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; -}; - -class UtilUnlockRef { - - /** - * Reciver - */ - friend class Dbdih; - friend class MutexManager; - - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_UNLOCK_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - - enum ErrorCode { - OK = 0, - NoSuchLock = 1, - NotLockOwner = 2 - }; -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 errorCode; -}; - -/** - * Creating a lock - */ -class UtilCreateLockReq { - /** - * Receiver - */ - friend class DbUtil; - - /** - * Sender - */ - friend class MutexManager; - - friend bool printUTIL_CREATE_LOCK_REQ(FILE *, const Uint32*, Uint32, Uint16); -public: - enum LockType { - Mutex = 0 // Lock with only exclusive locks - }; - - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 lockType; -}; - -class UtilCreateLockRef { - /** - * Sender - */ - friend class DbUtil; - - /** - * Receiver - */ - friend class MutexManager; - - friend bool printUTIL_CREATE_LOCK_REF(FILE *, const Uint32*, Uint32, Uint16); -public: - enum ErrorCode { - OK = 0, - OutOfLockQueueRecords = 1, - LockIdAlreadyUsed = 2, - UnsupportedLockType = 3 - }; - - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 errorCode; -}; - -class UtilCreateLockConf { - /** - * Sender - */ - friend class DbUtil; - - /** - * Receiver - */ - friend class MutexManager; - - friend bool printUTIL_CREATE_LOCK_CONF(FILE*, const Uint32*, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; -}; - -/** - * Creating a lock - */ -class UtilDestroyLockReq { - /** - * Receiver - */ - friend class DbUtil; - - /** - * Sender - */ - friend class MutexManager; - - friend bool printUTIL_DESTROY_LOCK_REQ(FILE *, const Uint32*, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 lockKey; -}; - -class UtilDestroyLockRef { - /** - * Sender - */ - friend class DbUtil; - - /** - * Receiver - */ - friend class MutexManager; - - friend bool printUTIL_DESTROY_LOCK_REF(FILE *, const Uint32*, Uint32, Uint16); -public: - enum ErrorCode { - OK = 0, - NoSuchLock = 1, - NotLockOwner = 2 - }; - - STATIC_CONST( SignalLength = 4 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; - Uint32 errorCode; -}; - -class UtilDestroyLockConf { - /** - * Sender - */ - friend class DbUtil; - - /** - * Receiver - */ - friend class MutexManager; - - friend bool printUTIL_DESTROY_LOCK_CONF(FILE*, const Uint32*, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - -public: - Uint32 senderData; - Uint32 senderRef; - Uint32 lockId; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/UtilPrepare.hpp b/ndb/include/kernel/signaldata/UtilPrepare.hpp deleted file mode 100644 index 8508487ce15..00000000000 --- a/ndb/include/kernel/signaldata/UtilPrepare.hpp +++ /dev/null @@ -1,161 +0,0 @@ -/* 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 UTIL_PREPARE_REQ_HPP -#define UTIL_PREPARE_REQ_HPP - -#include "SignalData.hpp" -#include <SimpleProperties.hpp> - -#ifdef NDB_WIN32 -#ifdef NO_ERROR -#undef NO_ERROR -#endif -#endif - -/** - * UTIL_PREPARE_REQ, UTIL_PREPARE_CONF, UTIL_PREPARE_REF - */ - -/** - * @class UtilPrepareReq - * @brief Prepare transaction in Util block - * - * Data format: - * - UTIL_PREPARE_REQ <NoOfOps> (<OperationType> <TableName> <AttrName>+)+ - */ -class UtilPrepareReq { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - friend class Trix; - - /** - * For printing - */ - friend bool printUTIL_PREPARE_REQ(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - -public: - enum OperationTypeValue { - Read = 0, - Update = 1, - Insert = 2, - Delete = 3, - Write = 4 - - }; - - enum KeyValue { - NoOfOperations = 1, ///< No of operations in transaction - OperationType = 2, /// - TableName = 3, ///< String - AttributeName = 4, ///< String - TableId = 5, - AttributeId = 6 - }; - - // Signal constants - STATIC_CONST( SignalLength = 2 ); - STATIC_CONST( PROPERTIES_SECTION = 0 ); - STATIC_CONST( NoOfSections = 1 ); - - GET_SET_SENDERREF - GET_SET_SENDERDATA -private: - Uint32 senderData; // MUST be no 1! - Uint32 senderRef; -}; - -/** - * @class UtilPrepareConf - * - * Data format: - * - UTIL_PREPARE_CONF <UtilPrepareId> - */ - -class UtilPrepareConf { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - friend class Trix; - - /** - * For printing - */ - friend bool printUTIL_PREPARE_CONF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - -public: - STATIC_CONST( SignalLength = 2 ); - - GET_SET_SENDERDATA - GET_SET_PREPAREID -private: - Uint32 senderData; // MUST be no 1! - Uint32 prepareId; -}; - - -/** - * @class UtilPrepareRef - * - * Data format: - * - UTIL_PREPARE_REF - */ - -class UtilPrepareRef { - /** - * Sender(s) / Receiver(s) - */ - friend class DbUtil; - friend class Trix; - - /** - * For printing - */ - friend bool printUTIL_PREPARE_REF(FILE * output, - const Uint32 * theData, - Uint32 len, - Uint16 receiverBlockNo); - -public: - enum ErrorCode { - NO_ERROR = 0, - PREPARE_SEIZE_ERROR = 1, - PREPARE_PAGES_SEIZE_ERROR = 2, - PREPARED_OPERATION_SEIZE_ERROR = 3, - DICT_TAB_INFO_ERROR = 4, - MISSING_PROPERTIES_SECTION = 5 - }; - - STATIC_CONST( SignalLength = 2 ); - - GET_SET_SENDERDATA - GET_SET_ERRORCODE -private: - Uint32 senderData; // MUST be no 1! - Uint32 errorCode; -}; - - -#endif diff --git a/ndb/include/kernel/signaldata/UtilRelease.hpp b/ndb/include/kernel/signaldata/UtilRelease.hpp deleted file mode 100644 index d2864f02f47..00000000000 --- a/ndb/include/kernel/signaldata/UtilRelease.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* 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 UTIL_RELEASE_HPP -#define UTIL_PREPARE_HPP - -#include "SignalData.hpp" - -/** - * @class UtilReleaseReq - * @brief Release Prepared transaction in Util block - * - * Data format: - * - UTIL_PREPARE_RELEASE_REQ <UtilPrepareId> - */ -class UtilReleaseReq { - friend class DbUtil; - friend class Trix; -public: - STATIC_CONST( SignalLength = 2 ); - -private: - Uint32 senderData; // MUST be no 1! - Uint32 prepareId; -}; - - -/** - * @class UtilReleaseConf - * - * Data format: - * - UTIL_PREPARE_CONF <UtilPrepareId> - */ - -class UtilReleaseConf { - friend class DbUtil; - friend class Trix; - - STATIC_CONST( SignalLength = 1 ); - -private: - Uint32 senderData; // MUST be no 1! -}; - - -/** - * @class UtilReleaseRef - * - * Data format: - * - UTIL_PREPARE_RELEASE_REF - */ - -class UtilReleaseRef { - friend class DbUtil; - friend class Trix; - - enum ErrorCode { - NO_ERROR = 0, - NO_SUCH_PREPARE_SEIZED = 1 - }; - - STATIC_CONST( SignalLength = 3 ); - -private: - Uint32 senderData; // MUST be no 1! - Uint32 prepareId; - Uint32 errorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/UtilSequence.hpp b/ndb/include/kernel/signaldata/UtilSequence.hpp deleted file mode 100644 index 50e5d673e99..00000000000 --- a/ndb/include/kernel/signaldata/UtilSequence.hpp +++ /dev/null @@ -1,101 +0,0 @@ -/* 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 UTIL_SEQUENCE_HPP -#define UTIL_SEQUENCE_HPP - -#include "SignalData.hpp" - -class UtilSequenceReq { - - /** - * Receiver - */ - friend class DbUtil; - - /** - * Sender - */ - friend class Backup; - friend class Suma; - - friend bool printUTIL_SEQUENCE_REQ(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 3 ); - - enum RequestType { - NextVal = 1, // Return uniq value - CurrVal = 2, // Read - Create = 3 // Create a sequence - }; -private: - Uint32 senderData; - Uint32 sequenceId; // Number of sequence variable - Uint32 requestType; -}; - -class UtilSequenceConf { - - /** - * Receiver - */ - friend class Backup; - friend class Suma; - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_SEQUENCE_CONF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - -private: - Uint32 senderData; - Uint32 sequenceId; - Uint32 requestType; - Uint32 sequenceValue[2]; -}; - -class UtilSequenceRef { - - /** - * Reciver - */ - friend class Backup; - friend class Suma; - /** - * Sender - */ - friend class DbUtil; - - friend bool printUTIL_SEQUENCE_REF(FILE *, const Uint32 *, Uint32, Uint16); -public: - STATIC_CONST( SignalLength = 5 ); - - enum ErrorCode { - NoSuchSequence = 1, - TCError = 2 - }; -private: - Uint32 senderData; - Uint32 sequenceId; - Uint32 requestType; - Uint32 errorCode; - Uint32 TCErrorCode; -}; - -#endif diff --git a/ndb/include/kernel/signaldata/WaitGCP.hpp b/ndb/include/kernel/signaldata/WaitGCP.hpp deleted file mode 100644 index ebed28714d2..00000000000 --- a/ndb/include/kernel/signaldata/WaitGCP.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* 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 WAIT_GCP_HPP -#define WAIT_GCP_HPP - -/** - * This signal is sent by anyone to local DIH - * - * If local DIH is not master, it forwards it to master DIH - * and start acting as a proxy - * - */ -class WaitGCPReq { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Sender - */ - friend class Ndbcntr; - friend class Dbdict; - friend class Backup; - //friend class Grep::PSCoord; - -public: - STATIC_CONST( SignalLength = 3 ); -public: - enum RequestType { - Complete = 1, ///< Wait for a GCP to complete - CompleteForceStart = 2, ///< Wait for a GCP to complete start one if needed - CompleteIfRunning = 3, ///< Wait for ongoing GCP - CurrentGCI = 8 ///< Immediately return current GCI - }; - - Uint32 senderRef; - Uint32 senderData; - Uint32 requestType; -}; - -class WaitGCPConf { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - friend class Dbdict; - friend class Backup; - //friend class Grep::PSCoord; - -public: - STATIC_CONST( SignalLength = 2 ); - -public: - Uint32 senderData; - Uint32 gcp; -}; - -class WaitGCPRef { - - /** - * Sender(s) / Reciver(s) - */ - friend class Dbdih; - - /** - * Reciver(s) - */ - friend class Ndbcntr; - friend class Dbdict; - friend class Backup; - friend class Grep; - -public: - STATIC_CONST( SignalLength = 2 ); - - enum ErrorCode { - StopOK = 0, - NF_CausedAbortOfProcedure = 1, - NoWaitGCPRecords = 2 - }; - -private: - Uint32 errorCode; - Uint32 senderData; -}; - -#endif diff --git a/ndb/include/kernel/trigger_definitions.h b/ndb/include/kernel/trigger_definitions.h deleted file mode 100644 index 11410654a15..00000000000 --- a/ndb/include/kernel/trigger_definitions.h +++ /dev/null @@ -1,68 +0,0 @@ -/* 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 NDB_TRIGGER_DEFINITIONS_H -#define NDB_TRIGGER_DEFINITIONS_H - -#include <ndb_global.h> -#include "ndb_limits.h" - -#ifndef MIN -#define MIN(x,y) (((x)<(y))?(x):(y)) -#endif - -#ifndef MAX -#define MAX(x,y) (((x)>(y))?(x):(y)) -#endif - -#define ILLEGAL_TRIGGER_ID ((Uint32)(~0)) - -struct TriggerType { - enum Value { - CONSTRAINT = 0, - SECONDARY_INDEX = 1, - FOREIGN_KEY = 2, - SCHEMA_UPGRADE = 3, - API_TRIGGER = 4, - SQL_TRIGGER = 5, - SUBSCRIPTION = 6, - READ_ONLY_CONSTRAINT = 7, - ORDERED_INDEX = 8, - SUBSCRIPTION_BEFORE = 9 - }; -}; - -struct TriggerActionTime { - enum Value { - TA_BEFORE = 0, /* Immediate, before operation */ - TA_AFTER = 1, /* Immediate, after operation */ - TA_DEFERRED = 2, /* Before commit */ - TA_DETACHED = 3, /* After commit in a separate transaction, NYI */ - TA_CUSTOM = 4 /* Hardcoded per TriggerType */ - }; -}; - -struct TriggerEvent { - /** TableEvent must match 1 << TriggerEvent */ - enum Value { - TE_INSERT = 0, - TE_DELETE = 1, - TE_UPDATE = 2, - TE_CUSTOM = 3 /* Hardcoded per TriggerType */ - }; -}; - -#endif diff --git a/ndb/include/logger/ConsoleLogHandler.hpp b/ndb/include/logger/ConsoleLogHandler.hpp deleted file mode 100644 index ae77b13d3b7..00000000000 --- a/ndb/include/logger/ConsoleLogHandler.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* 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 CONSOLELOGHANDLER_H -#define CONSOLELOGHANDLER_H - -#include "LogHandler.hpp" - -/** - * Logs messages to the console/stdout. - * - * @see LogHandler - * @version #@ $Id: ConsoleLogHandler.hpp,v 1.2 2003/09/01 10:15:53 innpeno Exp $ - */ -class ConsoleLogHandler : public LogHandler -{ -public: - /** - * Default constructor. - */ - ConsoleLogHandler(); - /** - * Destructor. - */ - virtual ~ConsoleLogHandler(); - - virtual bool open(); - virtual bool close(); - - virtual bool setParam(const BaseString ¶m, const BaseString &value); - -protected: - virtual void writeHeader(const char* pCategory, Logger::LoggerLevel level); - virtual void writeMessage(const char* pMsg); - virtual void writeFooter(); - -private: - /** Prohibit*/ - ConsoleLogHandler(const ConsoleLogHandler&); - ConsoleLogHandler operator = (const ConsoleLogHandler&); - bool operator == (const ConsoleLogHandler&); - -}; -#endif diff --git a/ndb/include/logger/FileLogHandler.hpp b/ndb/include/logger/FileLogHandler.hpp deleted file mode 100644 index 8fb25e72be7..00000000000 --- a/ndb/include/logger/FileLogHandler.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/* 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 FILELOGHANDLER_H -#define FILELOGHANDLER_H - -#include "LogHandler.hpp" - -class File_class; - -/** - * Logs messages to a file. The log file will be archived depending on - * the file's size or after N number of log entries. - * There will be only a specified number of archived logs - * which will be "recycled". - * - * The archived log file will be named as <filename>.1..N. - * - * - * @see LogHandler - * @version #@ $Id: FileLogHandler.hpp,v 1.2 2003/09/01 10:15:53 innpeno Exp $ - */ -class FileLogHandler : public LogHandler -{ -public: - /** Max number of log files to archive. */ - STATIC_CONST( MAX_NO_FILES = 6 ); - /** Max file size of the log before archiving. */ - STATIC_CONST( MAX_FILE_SIZE = 1024000 ); - /** Max number of log entries before archiving. */ - STATIC_CONST( MAX_LOG_ENTRIES = 10000 ); - - /** - * Default constructor. - */ - FileLogHandler(); - - /** - * Creates a new file handler with the specified filename, - * max number of archived log files and max log size for each log. - * - * @param aFileName the log filename. - * @param maxNoFiles the maximum number of archived log files. - * @param maxFileSize the maximum log file size before archiving. - * @param maxLogEntries the maximum number of log entries before checking time to archive. - */ - FileLogHandler(const char* aFileName, - int maxNoFiles = MAX_NO_FILES, - long maxFileSize = MAX_FILE_SIZE, - unsigned int maxLogEntries = MAX_LOG_ENTRIES); - - /** - * Destructor. - */ - virtual ~FileLogHandler(); - - virtual bool open(); - virtual bool close(); - - virtual bool setParam(const BaseString ¶m, const BaseString &value); - virtual bool checkParams(); - -protected: - virtual void writeHeader(const char* pCategory, Logger::LoggerLevel level); - virtual void writeMessage(const char* pMsg); - virtual void writeFooter(); - -private: - /** Prohibit */ - FileLogHandler(const FileLogHandler&); - FileLogHandler operator = (const FileLogHandler&); - bool operator == (const FileLogHandler&); - - /** - * Returns true if it is time to create a new log file. - */ - bool isTimeForNewFile(); - - /** - * Archives the current log file and creates a new one. - * The archived log filename will be in the format of <filename>.N - * - * @return true if successful. - */ - bool createNewFile(); - - bool setFilename(const BaseString &filename); - bool setMaxSize(const BaseString &size); - bool setMaxFiles(const BaseString &files); - - int m_maxNoFiles; - long m_maxFileSize; - unsigned int m_maxLogEntries; - File_class* m_pLogFile; -}; - -#endif diff --git a/ndb/include/logger/LogHandler.hpp b/ndb/include/logger/LogHandler.hpp deleted file mode 100644 index 7df6ad864e5..00000000000 --- a/ndb/include/logger/LogHandler.hpp +++ /dev/null @@ -1,208 +0,0 @@ -/* 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 LOGHANDLER_H -#define LOGHANDLER_H - -#include "Logger.hpp" - -/** - * This class is the base class for all log handlers. A log handler is - * responsible for formatting and writing log messages to a specific output. - * - * A log entry consists of three parts: a header, <body/log message and a footer. - * <pre> - * 09:17:37 2002-03-13 [MgmSrv] INFO -- Local checkpoint 13344 started. - * </pre> - * - * Header format: TIME&DATE CATEGORY LEVEL -- - * TIME&DATE = ctime() format. - * CATEGORY = Any string. - * LEVEL = ALERT to DEBUG (Log levels) - * - * Footer format: \n (currently only newline) - * - * @version #@ $Id: LogHandler.hpp,v 1.7 2003/09/01 10:15:53 innpeno Exp $ - */ -class LogHandler -{ -public: - /** - * Default constructor. - */ - LogHandler(); - - /** - * Destructor. - */ - virtual ~LogHandler(); - - /** - * Opens/initializes the log handler. - * - * @return true if successful. - */ - virtual bool open() = 0; - - /** - * Closes/free any allocated resources used by the log handler. - * - * @return true if successful. - */ - virtual bool close() = 0; - - /** - * Append a log message to the output stream/file whatever. - * append() will call writeHeader(), writeMessage() and writeFooter() for - * a child class and in that order. Append checks for repeated messages. - * append_impl() does not check for repeats. - * - * @param pCategory the category/name to tag the log entry with. - * @param level the log level. - * @param pMsg the log message. - */ - void append(const char* pCategory, Logger::LoggerLevel level, - const char* pMsg); - void append_impl(const char* pCategory, Logger::LoggerLevel level, - const char* pMsg); - - /** - * Returns a default formatted header. It currently has the - * follwing default format: '%H:%M:%S %Y-%m-%d [CATEGORY] LOGLEVEL --' - * - * @param pStr the header string to format. - * @param pCategory a category/name to tag the log entry with. - * @param level the log level. - * @return the header. - */ - const char* getDefaultHeader(char* pStr, const char* pCategory, - Logger::LoggerLevel level) const; - - /** - * Returns a default formatted footer. Currently only returns a newline. - * - * @return the footer. - */ - const char* getDefaultFooter() const; - - /** - * Returns the date and time format used by ctime(). - * - * @return the date and time format. - */ - const char* getDateTimeFormat() const; - - /** - * Sets the date and time format. It needs to have the same arguments - * a ctime(). - * - * @param pFormat the date and time format. - */ - void setDateTimeFormat(const char* pFormat); - - /** - * Returns the error code. - */ - int getErrorCode() const; - - /** - * Sets the error code. - * - * @param code the error code. - */ - void setErrorCode(int code); - - /** - * Parse logstring parameters - * - * @param params list of parameters, formatted as "param=value", - * entries separated by "," - * @return true on success, false on failure - */ - bool parseParams(const BaseString ¶ms); - - /** - * Sets a parameters. What parameters are accepted depends on the subclass. - * - * @param param name of parameter - * @param value value of parameter - */ - virtual bool setParam(const BaseString ¶m, const BaseString &value) = 0; - - /** - * Checks that all necessary parameters have been set. - * - * @return true if all parameters are correctly set, false otherwise - */ - virtual bool checkParams(); - -protected: - /** Max length of the date and time header in the log. */ - STATIC_CONST( MAX_DATE_TIME_HEADER_LENGTH = 64 ); - /** Max length of the header the log. */ - STATIC_CONST( MAX_HEADER_LENGTH = 128 ); - /** Max lenght of footer in the log. */ - STATIC_CONST( MAX_FOOTER_LENGTH = 128 ); - - /** - * Write the header to the log. - * - * @param pCategory the category to tag the log with. - * @param level the log level. - */ - virtual void writeHeader(const char* category, Logger::LoggerLevel level) = 0; - - /** - * Write the message to the log. - * - * @param pMsg the message to log. - */ - virtual void writeMessage(const char* pMsg) = 0; - - /** - * Write the footer to the log. - * - */ - virtual void writeFooter() = 0; - -private: - /** - * Returns a string date and time string. - * @note does not update time, uses m_now as time - * @param pStr a string. - * @return a string with date and time. - */ - char* getTimeAsString(char* pStr) const; - time_t m_now; - - /** Prohibit */ - LogHandler(const LogHandler&); - LogHandler* operator = (const LogHandler&); - bool operator == (const LogHandler&); - - const char* m_pDateTimeFormat; - int m_errorCode; - - // for handling repeated messages - unsigned m_count_repeated_messages; - unsigned m_max_repeat_frequency; - time_t m_last_log_time; - char m_last_category[MAX_HEADER_LENGTH]; - char m_last_message[MAX_LOG_MESSAGE_SIZE]; - Logger::LoggerLevel m_last_level; -}; - -#endif diff --git a/ndb/include/logger/Logger.hpp b/ndb/include/logger/Logger.hpp deleted file mode 100644 index ee762098fb6..00000000000 --- a/ndb/include/logger/Logger.hpp +++ /dev/null @@ -1,296 +0,0 @@ -/* 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 Logger_H -#define Logger_H - -#include <ndb_global.h> -#include <BaseString.hpp> - -#define MAX_LOG_MESSAGE_SIZE 1024 - -class LogHandler; -class LogHandlerList; - -/** - * Logger should be used whenver you need to log a message like - * general information or debug messages. By creating/adding different - * log handlers, a single log message can be sent to - * different outputs (stdout, file or syslog). - * - * Each log entry is created with a log level (or severity) which is - * used to identity the type of the entry, e.g., if it is a debug - * or an error message. - * - * Example of a log entry: - * - * 09:17:39 2002-03-13 [myLogger] INFO -- Local checkpoint started. - * - * HOW TO USE - * - * 1) Create a new instance of the Logger. - * - * Logger myLogger = new Logger(); - * - * 2) Add the log handlers that you want, i.e., where the log entries - * should be written/shown. - * - * myLogger->createConsoleHandler(); // Output to console/stdout - * myLogger->addHandler(new FileLogHandler("mylog.txt")); // use mylog.txt - * - * 3) Tag each log entry with a category/name. - * - * myLogger->setCategory("myLogger"); - * - * 4) Start log messages. - * - * myLogger->alert("T-9 to lift off"); - * myLogger->info("Here comes the sun, la la"); - * myLogger->debug("Why does this not work!!!, We should not be here...") - * - * 5) Log only debug messages. - * - * myLogger->enable(Logger::LL_DEBUG); - * - * 6) Log only ALERTS and ERRORS. - * - * myLogger->enable(Logger::LL_ERROR, Logger::LL_ALERT); - * - * 7) Do not log any messages. - * - * myLogger->disable(Logger::LL_ALL); - * - * - * LOG LEVELS (Matches the severity levels of syslog) - * <pre> - * - * ALERT A condition that should be corrected - * immediately, such as a corrupted system - * database. - * - * CRITICAL Critical conditions, such as hard device - * errors. - * - * ERROR Errors. - * - * WARNING Warning messages. - * - * INFO Informational messages. - * - * DEBUG Messages that contain information nor- - * mally of use only when debugging a pro- - * gram. - * </pre> - * - * @version #@ $Id: Logger.hpp,v 1.7 2003/09/01 10:15:53 innpeno Exp $ - */ -class Logger -{ -public: - /** The log levels. NOTE: Could not use the name LogLevel since - * it caused conflicts with another class. - */ - enum LoggerLevel {LL_ON, LL_DEBUG, LL_INFO, LL_WARNING, LL_ERROR, - LL_CRITICAL, LL_ALERT, LL_ALL}; - - /** - * String representation of the the log levels. - */ - static const char* LoggerLevelNames[]; - - /** - * Default constructor. - */ - Logger(); - - /** - * Destructor. - */ - virtual ~Logger(); - - /** - * Set a category/name that each log entry will have. - * - * @param pCategory the category. - */ - void setCategory(const char* pCategory); - - /** - * Create a default handler that logs to the console/stdout. - * - * @return true if successful. - */ - bool createConsoleHandler(); - - /** - * Remove the default console handler. - */ - void removeConsoleHandler(); - - /** - * Create a default handler that logs to a file called logger.log. - * - * @return true if successful. - */ - bool createFileHandler(); - - /** - * Remove the default file handler. - */ - void removeFileHandler(); - - /** - * Create a default handler that logs to the syslog. - * - * On OSE a ConsoleHandler will be created since there is no syslog support. - * - * @return true if successful. - */ - bool createSyslogHandler(); - - /** - * Remove the default syslog handler. - */ - void removeSyslogHandler(); - - /** - * Add a new log handler. - * - * @param pHandler a log handler. - * @return true if successful. - */ - bool addHandler(LogHandler* pHandler); - - /** - * Add a new handler - * - * @param logstring string describing the handler to add - */ - bool addHandler(const BaseString &logstring); - - /** - * Remove a log handler. - * - * @param pHandler log handler to remove. - * @return true if successful. - */ - bool removeHandler(LogHandler* pHandler); - - /** - * Remove all log handlers. - */ - void removeAllHandlers(); - - /** - * Returns true if the specified log level is enabled. - * - * @return true if enabled. - */ - bool isEnable(LoggerLevel logLevel) const; - - /** - * Enable the specified log level. - * - * @param logLevel the loglevel to enable. - */ - void enable(LoggerLevel logLevel); - - /** - * Enable log levels. - * - * @param fromLogLevel enable from log level. - * @param toLogLevel enable to log level. - */ - void enable (LoggerLevel fromLogLevel, LoggerLevel toLogLevel); - - /** - * Disable log level. - * - * @param logLevel disable log level. - */ - void disable(LoggerLevel logLevel); - - /** - * Log an alert message. - * - * @param pMsg the message. - */ - virtual void alert(const char* pMsg, ...) const; - virtual void alert(BaseString &pMsg) const { alert(pMsg.c_str()); }; - - /** - * Log a critical message. - * - * @param pMsg the message. - */ - virtual void critical(const char* pMsg, ...) const; - virtual void critical(BaseString &pMsg) const { critical(pMsg.c_str()); }; - - /** - * Log an error message. - * - * @param pMsg the message. - */ - virtual void error(const char* pMsg, ...) const; - virtual void error(BaseString &pMsg) const { error(pMsg.c_str()); }; - - /** - * Log a warning message. - * - * @param pMsg the message. - */ - virtual void warning(const char* pMsg, ...) const; - virtual void warning(BaseString &pMsg) const { warning(pMsg.c_str()); }; - - /** - * Log an info message. - * - * @param pMsg the message. - */ - virtual void info(const char* pMsg, ...) const; - virtual void info(BaseString &pMsg) const { info(pMsg.c_str()); }; - - /** - * Log a debug message. - * - * @param pMsg the message. - */ - virtual void debug(const char* pMsg, ...) const; - virtual void debug(BaseString &pMsg) const { debug(pMsg.c_str()); }; - -protected: - - void log(LoggerLevel logLevel, const char* msg, va_list ap) const; - -private: - /** Prohibit */ - Logger(const Logger&); - Logger operator = (const Logger&); - bool operator == (const Logger&); - - STATIC_CONST( MAX_LOG_LEVELS = 8 ); - - bool m_logLevels[MAX_LOG_LEVELS]; - - LogHandlerList* m_pHandlerList; - const char* m_pCategory; - /* Default handlers */ - LogHandler* m_pConsoleHandler; - LogHandler* m_pFileHandler; - LogHandler* m_pSyslogHandler; -}; - -#endif diff --git a/ndb/include/logger/SysLogHandler.hpp b/ndb/include/logger/SysLogHandler.hpp deleted file mode 100644 index 0dfc1cb2d43..00000000000 --- a/ndb/include/logger/SysLogHandler.hpp +++ /dev/null @@ -1,99 +0,0 @@ -/* 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 SYSLOGHANDLER_H -#define SYSLOGHANDLER_H - -#include "LogHandler.hpp" -#ifndef NDB_WIN32 -#include <syslog.h> -#endif - -/** - * Logs messages to syslog. The default identity is 'NDB'. - * See 'man 3 syslog'. - * - * It logs the following severity levels. - * <pre> - * - * LOG_ALERT A condition that should be corrected - * immediately, such as a corrupted system - * database. - * - * LOG_CRIT Critical conditions, such as hard device - * errors. - * - * LOG_ERR Errors. - * - * LOG_WARNING Warning messages. - * - * LOG_INFO Informational messages. - * - * LOG_DEBUG Messages that contain information nor- - * mally of use only when debugging a pro- - * gram. - * </pre> - * - * @see LogHandler - * @version #@ $Id: SysLogHandler.hpp,v 1.2 2003/09/01 10:15:53 innpeno Exp $ - */ -class SysLogHandler : public LogHandler -{ -public: - /** - * Default constructor. - */ - SysLogHandler(); - - /** - * Create a new syslog handler with the specified identity. - * - * @param pIdentity a syslog identity. - * @param facility syslog facility, defaults to LOG_USER - */ - SysLogHandler(const char* pIdentity, int facility); - - /** - * Destructor. - */ - virtual ~SysLogHandler(); - - virtual bool open(); - virtual bool close(); - - virtual bool setParam(const BaseString ¶m, const BaseString &value); - bool setFacility(const BaseString &facility); - -protected: - virtual void writeHeader(const char* pCategory, Logger::LoggerLevel level); - virtual void writeMessage(const char* pMsg); - virtual void writeFooter(); - -private: - /** Prohibit*/ - SysLogHandler(const SysLogHandler&); - SysLogHandler operator = (const SysLogHandler&); - bool operator == (const SysLogHandler&); - - int m_severity; - const char* m_pCategory; - - /** Syslog identity for all log entries. */ - const char* m_pIdentity; - int m_facility; -}; - -#endif diff --git a/ndb/include/mgmapi/mgmapi.h b/ndb/include/mgmapi/mgmapi.h deleted file mode 100644 index dca88e4950e..00000000000 --- a/ndb/include/mgmapi/mgmapi.h +++ /dev/null @@ -1,1054 +0,0 @@ -/* 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 MGMAPI_H -#define MGMAPI_H - -/** - * @mainpage MySQL Cluster Management API - * - * The MySQL Cluster Management API (MGM API) is a C language API - * that is used for: - * - Starting and stopping database nodes (ndbd processes) - * - Starting and stopping Cluster backups - * - Controlling the NDB Cluster log - * - Performing other administrative tasks - * - * @section secMgmApiGeneral General Concepts - * - * Each MGM API function needs a management server handle - * of type @ref NdbMgmHandle. - * This handle is created by calling the function - * function ndb_mgm_create_handle() and freed by calling - * ndb_mgm_destroy_handle(). - * - * A function can return any of the following: - * -# An integer value, with - * a value of <b>-1</b> indicating an error. - * -# A non-constant pointer value. A <var>NULL</var> value indicates an error; - * otherwise, the return value must be freed - * by the programmer - * -# A constant pointer value, with a <var>NULL</var> value indicating an error. - * The returned value should <em>not</em> be freed. - * - * Error conditions can be identified by using the appropriate - * error-reporting functions ndb_mgm_get_latest_error() and - * @ref ndb_mgm_error. - * - * Here is an example using the MGM API (without error handling for brevity's sake). - * @code - * NdbMgmHandle handle= ndb_mgm_create_handle(); - * ndb_mgm_connect(handle,0,0,0); - * struct ndb_mgm_cluster_state *state= ndb_mgm_get_status(handle); - * for(int i=0; i < state->no_of_nodes; i++) - * { - * struct ndb_mgm_node_state *node_state= &state->node_states[i]; - * printf("node with ID=%d ", node_state->node_id); - * if(node_state->version != 0) - * printf("connected\n"); - * else - * printf("not connected\n"); - * } - * free((void*)state); - * ndb_mgm_destroy_handle(&handle); - * @endcode - * - * @section secLogEvents Log Events - * - * The database nodes and management server(s) regularly and on specific - * occations report on various log events that occurs in the cluster. These - * log events are written to the cluster log. Optionally a mgmapi client - * may listen to these events by using the method ndb_mgm_listen_event(). - * Each log event belongs to a category, @ref ndb_mgm_event_category, and - * has a severity, @ref ndb_mgm_event_severity, associated with it. Each - * log event also has a level (0-15) associated with it. - * - * Which log events that come out is controlled with ndb_mgm_listen_event(), - * ndb_mgm_set_clusterlog_loglevel(), and - * ndb_mgm_set_clusterlog_severity_filter(). - * - * Below is an example of how to listen to events related to backup. - * - * @code - * int filter[] = { 15, NDB_MGM_EVENT_CATEGORY_BACKUP, 0 }; - * int fd = ndb_mgm_listen_event(handle, filter); - * @endcode - * - * - * @section secSLogEvents Structured Log Events - * - * The following steps are involved: - * - Create a NdbEventLogHandle using ndb_mgm_create_logevent_handle() - * - Wait and store log events using ndb_logevent_get_next() - * - The log event data is available in the struct ndb_logevent. The - * data which is specific to a particular event is stored in a union - * between structs so use ndb_logevent::type to decide which struct - * is valid. - * - * Sample code for listening to Backup related events. The availaable log - * events are listed in @ref ndb_logevent.h - * - * @code - * int filter[] = { 15, NDB_MGM_EVENT_CATEGORY_BACKUP, 0 }; - * NdbEventLogHandle le_handle= ndb_mgm_create_logevent_handle(handle, filter); - * struct ndb_logevent le; - * int r= ndb_logevent_get_next(le_handle,&le,0); - * if (r < 0) error - * else if (r == 0) no event - * - * switch (le.type) - * { - * case NDB_LE_BackupStarted: - * ... le.BackupStarted.starting_node; - * ... le.BackupStarted.backup_id; - * break; - * case NDB_LE_BackupFailedToStart: - * ... le.BackupFailedToStart.error; - * break; - * case NDB_LE_BackupCompleted: - * ... le.BackupCompleted.stop_gci; - * break; - * case NDB_LE_BackupAborted: - * ... le.BackupStarted.backup_id; - * break; - * default: - * break; - * } - * @endcode - */ - -/* - * @page ndb_logevent.h ndb_logevent.h - * @include ndb_logevent.h - */ - -/** @addtogroup MGM_C_API - * @{ - */ - -#include <ndb_types.h> -#include "ndb_logevent.h" -#include "mgmapi_config_parameters.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * The NdbMgmHandle. - */ - typedef struct ndb_mgm_handle * NdbMgmHandle; - - /** - * NDB Cluster node types - */ - enum ndb_mgm_node_type { - NDB_MGM_NODE_TYPE_UNKNOWN = -1 /** Node type not known*/ - ,NDB_MGM_NODE_TYPE_API /** An application (NdbApi) node */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = NODE_TYPE_API -#endif - ,NDB_MGM_NODE_TYPE_NDB /** A database node */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = NODE_TYPE_DB -#endif - ,NDB_MGM_NODE_TYPE_MGM /** A management server node */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = NODE_TYPE_MGM -#endif -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - ,NDB_MGM_NODE_TYPE_REP = NODE_TYPE_REP /** A replication node */ - ,NDB_MGM_NODE_TYPE_MIN = 0 /** Min valid value*/ - ,NDB_MGM_NODE_TYPE_MAX = 3 /** Max valid value*/ -#endif - }; - - /** - * Database node status - */ - enum ndb_mgm_node_status { - /** Node status not known*/ - NDB_MGM_NODE_STATUS_UNKNOWN = 0, - /** No contact with node*/ - NDB_MGM_NODE_STATUS_NO_CONTACT = 1, - /** Has not run starting protocol*/ - NDB_MGM_NODE_STATUS_NOT_STARTED = 2, - /** Is running starting protocol*/ - NDB_MGM_NODE_STATUS_STARTING = 3, - /** Running*/ - NDB_MGM_NODE_STATUS_STARTED = 4, - /** Is shutting down*/ - NDB_MGM_NODE_STATUS_SHUTTING_DOWN = 5, - /** Is restarting*/ - NDB_MGM_NODE_STATUS_RESTARTING = 6, - /** Maintenance mode*/ - NDB_MGM_NODE_STATUS_SINGLEUSER = 7, - /** Resume mode*/ - NDB_MGM_NODE_STATUS_RESUME = 8, -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** Min valid value*/ - NDB_MGM_NODE_STATUS_MIN = 0, - /** Max valid value*/ - NDB_MGM_NODE_STATUS_MAX = 8 -#endif - }; - - /** - * Error codes - */ - enum ndb_mgm_error { - /** Not an error */ - NDB_MGM_NO_ERROR = 0, - - /* Request for service errors */ - /** Supplied connectstring is illegal */ - NDB_MGM_ILLEGAL_CONNECT_STRING = 1001, - /** Supplied NdbMgmHandle is illegal */ - NDB_MGM_ILLEGAL_SERVER_HANDLE = 1005, - /** Illegal reply from server */ - NDB_MGM_ILLEGAL_SERVER_REPLY = 1006, - /** Illegal number of nodes */ - NDB_MGM_ILLEGAL_NUMBER_OF_NODES = 1007, - /** Illegal node status */ - NDB_MGM_ILLEGAL_NODE_STATUS = 1008, - /** Memory allocation error */ - NDB_MGM_OUT_OF_MEMORY = 1009, - /** Management server not connected */ - NDB_MGM_SERVER_NOT_CONNECTED = 1010, - /** Could not connect to socker */ - NDB_MGM_COULD_NOT_CONNECT_TO_SOCKET = 1011, - - /* Service errors - Start/Stop Node or System */ - /** Start failed */ - NDB_MGM_START_FAILED = 2001, - /** Stop failed */ - NDB_MGM_STOP_FAILED = 2002, - /** Restart failed */ - NDB_MGM_RESTART_FAILED = 2003, - - /* Service errors - Backup */ - /** Unable to start backup */ - NDB_MGM_COULD_NOT_START_BACKUP = 3001, - /** Unable to abort backup */ - NDB_MGM_COULD_NOT_ABORT_BACKUP = 3002, - - /* Service errors - Single User Mode */ - /** Unable to enter single user mode */ - NDB_MGM_COULD_NOT_ENTER_SINGLE_USER_MODE = 4001, - /** Unable to exit single user mode */ - NDB_MGM_COULD_NOT_EXIT_SINGLE_USER_MODE = 4002, - - /* Usage errors */ - /** Usage error */ - NDB_MGM_USAGE_ERROR = 5001 - }; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - struct Ndb_Mgm_Error_Msg { - enum ndb_mgm_error code; - const char * msg; - }; - const struct Ndb_Mgm_Error_Msg ndb_mgm_error_msgs[] = { - { NDB_MGM_NO_ERROR, "No error" }, - - /* Request for service errors */ - { NDB_MGM_ILLEGAL_CONNECT_STRING, "Illegal connect string" }, - { NDB_MGM_ILLEGAL_SERVER_HANDLE, "Illegal server handle" }, - { NDB_MGM_ILLEGAL_SERVER_REPLY, "Illegal reply from server" }, - { NDB_MGM_ILLEGAL_NUMBER_OF_NODES, "Illegal number of nodes" }, - { NDB_MGM_ILLEGAL_NODE_STATUS, "Illegal node status" }, - { NDB_MGM_OUT_OF_MEMORY, "Out of memory" }, - { NDB_MGM_SERVER_NOT_CONNECTED, "Management server not connected" }, - { NDB_MGM_COULD_NOT_CONNECT_TO_SOCKET, "Could not connect to socket" }, - - /* Service errors - Start/Stop Node or System */ - { NDB_MGM_START_FAILED, "Start failed" }, - { NDB_MGM_STOP_FAILED, "Stop failed" }, - { NDB_MGM_RESTART_FAILED, "Restart failed" }, - - /* Service errors - Backup */ - { NDB_MGM_COULD_NOT_START_BACKUP, "Could not start backup" }, - { NDB_MGM_COULD_NOT_ABORT_BACKUP, "Could not abort backup" }, - - /* Service errors - Single User Mode */ - { NDB_MGM_COULD_NOT_ENTER_SINGLE_USER_MODE, - "Could not enter single user mode" }, - { NDB_MGM_COULD_NOT_EXIT_SINGLE_USER_MODE, - "Could not exit single user mode" }, - - /* Usage errors */ - { NDB_MGM_USAGE_ERROR, - "Usage error" } - }; - const int ndb_mgm_noOfErrorMsgs = - sizeof(ndb_mgm_error_msgs)/sizeof(struct Ndb_Mgm_Error_Msg); -#endif - - /** - * Status of a node in the cluster. - * - * Sub-structure in enum ndb_mgm_cluster_state - * returned by ndb_mgm_get_status(). - * - * @note <var>node_status</var>, <var>start_phase</var>, - * <var>dynamic_id</var> - * and <var>node_group</var> are relevant only for database nodes, - * i.e. <var>node_type</var> == @ref NDB_MGM_NODE_TYPE_NDB. - */ - struct ndb_mgm_node_state { - /** NDB Cluster node ID*/ - int node_id; - /** Type of NDB Cluster node*/ - enum ndb_mgm_node_type node_type; - /** State of node*/ - enum ndb_mgm_node_status node_status; - /** Start phase. - * - * @note Start phase is only valid if the <var>node_type</var> is - * NDB_MGM_NODE_TYPE_NDB and the <var>node_status</var> is - * NDB_MGM_NODE_STATUS_STARTING - */ - int start_phase; - /** ID for heartbeats and master take-over (only valid for DB nodes) - */ - int dynamic_id; - /** Node group of node (only valid for DB nodes)*/ - int node_group; - /** Internal version number*/ - int version; - /** Number of times node has connected or disconnected to the - * management server - */ - int connect_count; - /** IP address of node when it connected to the management server. - * @note This value will be empty if the management server has restarted - * since the node last connected. - */ - char connect_address[ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - sizeof("000.000.000.000")+1 -#endif - ]; - }; - - /** - * State of all nodes in the cluster; returned from - * ndb_mgm_get_status() - */ - struct ndb_mgm_cluster_state { - /** Number of entries in the node_states array */ - int no_of_nodes; - /** An array with node_states*/ - struct ndb_mgm_node_state node_states[ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - 1 -#endif - ]; - }; - - /** - * Default reply from the server (reserved for future use) - */ - struct ndb_mgm_reply { - /** 0 if successful, otherwise error code. */ - int return_code; - /** Error or reply message.*/ - char message[256]; - }; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Default information types - */ - enum ndb_mgm_info { - /** ?*/ - NDB_MGM_INFO_CLUSTER, - /** Cluster log*/ - NDB_MGM_INFO_CLUSTERLOG - }; - - /** - * Signal log modes - * (Used only in the development of NDB Cluster.) - */ - enum ndb_mgm_signal_log_mode { - /** Log receiving signals */ - NDB_MGM_SIGNAL_LOG_MODE_IN, - /** Log sending signals*/ - NDB_MGM_SIGNAL_LOG_MODE_OUT, - /** Log both sending/receiving*/ - NDB_MGM_SIGNAL_LOG_MODE_INOUT, - /** Log off*/ - NDB_MGM_SIGNAL_LOG_MODE_OFF - }; -#endif - - /***************************************************************************/ - /** - * @name Functions: Error Handling - * @{ - */ - - /** - * Get the most recent error associated with the management server whose handle - * is used as the value of <var>handle</var>. - * - * @param handle Management handle - * @return Latest error code - */ - int ndb_mgm_get_latest_error(const NdbMgmHandle handle); - - /** - * Get the most recent general error message associated with a handle - * - * @param handle Management handle. - * @return Latest error message - */ - const char * ndb_mgm_get_latest_error_msg(const NdbMgmHandle handle); - - /** - * Get the most recent error description associated with a handle - * - * The error description gives some additional information regarding - * the error message. - * - * @param handle Management handle. - * @return Latest error description - */ - const char * ndb_mgm_get_latest_error_desc(const NdbMgmHandle handle); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get the most recent internal source code error line associated with a handle - * - * @param handle Management handle. - * @return Latest internal source code line of latest error - * @deprecated - */ - int ndb_mgm_get_latest_error_line(const NdbMgmHandle handle); -#endif - - /** @} *********************************************************************/ - /** - * @name Functions: Create/Destroy Management Server Handles - * @{ - */ - - /** - * Create a handle to a management server. - * - * @return A management handle<br> - * or <var>NULL</var> if no management handle could be created. - */ - NdbMgmHandle ndb_mgm_create_handle(); - - /** - * Destroy a management server handle. - * - * @param handle Management handle - */ - void ndb_mgm_destroy_handle(NdbMgmHandle * handle); - - /** @} *********************************************************************/ - /** - * @name Functions: Connect/Disconnect Management Server - * @{ - */ - - /** - * Sets the connectstring for a management server - * - * @param handle Management handle - * @param connect_string Connect string to the management server, - * - * @return -1 on error. - * - * @code - * <connectstring> := [<nodeid-specification>,]<host-specification>[,<host-specification>] - * <nodeid-specification> := nodeid=<id> - * <host-specification> := <host>[:<port>] - * <id> is an integer greater than 0 identifying a node in config.ini - * <port> is an integer referring to a regular unix port - * <host> is a string containing a valid network host address - * @endcode - */ - int ndb_mgm_set_connectstring(NdbMgmHandle handle, - const char *connect_string); - - int ndb_mgm_set_configuration_nodeid(NdbMgmHandle handle, int nodeid); - int ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle); - int ndb_mgm_get_connected_port(NdbMgmHandle handle); - const char *ndb_mgm_get_connected_host(NdbMgmHandle handle); - const char *ndb_mgm_get_connectstring(NdbMgmHandle handle, char *buf, int buf_sz); - - /** - * Gets the connectstring used for a connection - * - * @note This function returns the default connectstring if no call to - * ndb_mgm_set_connectstring() has been performed. Also, the - * returned connectstring may be formatted differently. - * - * @param handle Management handle - * @param buf Buffer to hold result - * @param buf_sz Size of buffer. - * - * @return connectstring (same as <var>buf</var>) - */ - const char *ndb_mgm_get_connectstring(NdbMgmHandle handle, char *buf, int buf_sz); - - /** - * Connects to a management server. Connectstring is set by - * ndb_mgm_set_connectstring(). - * - * @param handle Management handle. - * @param no_retries Number of retries to connect - * (0 means connect once). - * @param retry_delay_in_seconds - * How long to wait until retry is performed. - * @param verbose Make printout regarding connect retries. - * - * @return -1 on error. - */ - int ndb_mgm_connect(NdbMgmHandle handle, int no_retries, - int retry_delay_in_seconds, int verbose); - /** - * Return true if connected. - * - * @param handle Management handle - * @return 0 if not connected, non-zero if connected. - */ - int ndb_mgm_is_connected(NdbMgmHandle handle); - - /** - * Disconnects from a management server - * - * @param handle Management handle. - * @return -1 on error. - */ - int ndb_mgm_disconnect(NdbMgmHandle handle); - - /** - * Gets connection node ID - * - * @param handle Management handle - * - * @return Node ID; 0 indicates that no node ID has been - * specified - */ - int ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle); - - /** - * Gets connection port - * - * @param handle Management handle - * - * @return port - */ - int ndb_mgm_get_connected_port(NdbMgmHandle handle); - - /** - * Gets connection host - * - * @param handle Management handle - * - * @return hostname - */ - const char *ndb_mgm_get_connected_host(NdbMgmHandle handle); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** @} *********************************************************************/ - /** - * @name Functions: Used to convert between different data formats - * @{ - */ - - /** - * Converts a string to an <var>ndb_mgm_node_type</var> value - * - * @param type Node type as string. - * @return NDB_MGM_NODE_TYPE_UNKNOWN if invalid string. - */ - enum ndb_mgm_node_type ndb_mgm_match_node_type(const char * type); - - /** - * Converts an ndb_mgm_node_type to a string - * - * @param type Node type. - * @return <var>NULL</var> if invalid ID. - */ - const char * ndb_mgm_get_node_type_string(enum ndb_mgm_node_type type); - - /** - * Converts an ndb_mgm_node_type to a alias string - * - * @param type Node type. - * @return <var>NULL</var> if the ID is invalid. - */ - const char * ndb_mgm_get_node_type_alias_string(enum ndb_mgm_node_type type, - const char **str); - - /** - * Converts a string to a <var>ndb_mgm_node_status</var> value - * - * @param status NDB node status string. - * @return NDB_MGM_NODE_STATUS_UNKNOWN if invalid string. - */ - enum ndb_mgm_node_status ndb_mgm_match_node_status(const char * status); - - /** - * Converts an ID to a string - * - * @param status NDB node status. - * @return <var>NULL</var> if invalid ID. - */ - const char * ndb_mgm_get_node_status_string(enum ndb_mgm_node_status status); - - const char * ndb_mgm_get_event_severity_string(enum ndb_mgm_event_severity); - ndb_mgm_event_category ndb_mgm_match_event_category(const char *); - const char * ndb_mgm_get_event_category_string(enum ndb_mgm_event_category); -#endif - - /** @} *********************************************************************/ - /** - * @name Functions: Cluster status - * @{ - */ - - /** - * Gets status of the nodes in an NDB Cluster - * - * @note The caller must free the pointer returned by this function. - * - * @param handle Management handle. - * - * @return Cluster state (or <var>NULL</var> on error). - */ - struct ndb_mgm_cluster_state * ndb_mgm_get_status(NdbMgmHandle handle); - - /** @} *********************************************************************/ - /** - * @name Functions: Start/stop nodes - * @{ - */ - - /** - * Stops database nodes - * - * @param handle Management handle. - * @param no_of_nodes Number of database nodes to be stopped<br> - * 0: All database nodes in cluster<br> - * n: Stop the <var>n</var> node(s) specified in the - * array node_list - * @param node_list List of node IDs for database nodes to be stopped - * - * @return Number of nodes stopped (-1 on error) - * - * @note This function is equivalent - * to calling ndb_mgm_stop2(handle, no_of_nodes, node_list, 0) - */ - int ndb_mgm_stop(NdbMgmHandle handle, int no_of_nodes, - const int * node_list); - - /** - * Stops database nodes - * - * @param handle Management handle. - * @param no_of_nodes Number of database nodes to stop<br> - * 0: All database nodes in cluster<br> - * n: Stop the <var>n</var> node(s) specified in - * the array node_list - * @param node_list List of node IDs of database nodes to be stopped - * @param abort Don't perform graceful stop, - * but rather stop immediately - * - * @return Number of nodes stopped (-1 on error). - */ - int ndb_mgm_stop2(NdbMgmHandle handle, int no_of_nodes, - const int * node_list, int abort); - - /** - * Restart database nodes - * - * @param handle Management handle. - * @param no_of_nodes Number of database nodes to restart<br> - * 0: All database nodes in cluster<br> - * n: Restart the <var>n</var> node(s) specified in the - * array node_list - * @param node_list List of node IDs of database nodes to be restarted - * - * @return Number of nodes restarted (-1 on error). - * - * @note This function is equivalent to calling - * ndb_mgm_restart2(handle, no_of_nodes, node_list, 0, 0, 0); - */ - int ndb_mgm_restart(NdbMgmHandle handle, int no_of_nodes, - const int * node_list); - - /** - * Restart database nodes - * - * @param handle Management handle. - * @param no_of_nodes Number of database nodes to be restarted:<br> - * 0: Restart all database nodes in the cluster<br> - * n: Restart the <var>n</var> node(s) specified in the - * array node_list - * @param node_list List of node IDs of database nodes to be restarted - * @param initial Remove filesystem from restarting node(s) - * @param nostart Don't actually start node(s) but leave them - * waiting for start command - * @param abort Don't perform graceful restart, - * but rather restart immediately - * - * @return Number of nodes stopped (-1 on error). - */ - int ndb_mgm_restart2(NdbMgmHandle handle, int no_of_nodes, - const int * node_list, int initial, - int nostart, int abort); - - /** - * Start database nodes - * - * @param handle Management handle. - * @param no_of_nodes Number of database nodes to be started<br> - * 0: Start all database nodes in the cluster<br> - * n: Start the <var>n</var> node(s) specified in - * the array node_list - * @param node_list List of node IDs of database nodes to be started - * - * @return Number of nodes actually started (-1 on error). - * - * @note The nodes to be started must have been started with nostart(-n) - * argument. - * This means that the database node binary is started and - * waiting for a START management command which will - * actually enable the database node - */ - int ndb_mgm_start(NdbMgmHandle handle, - int no_of_nodes, - const int * node_list); - - /** @} *********************************************************************/ - /** - * @name Functions: Controlling Clusterlog output - * @{ - */ - - /** - * Filter cluster log severities - * - * @param handle NDB management handle. - * @param severity A cluster log severity to filter. - * @param enable set 1=enable o 0=disable - * @param reply Reply message. - * - * @return -1 on error. - */ - int ndb_mgm_set_clusterlog_severity_filter(NdbMgmHandle handle, - enum ndb_mgm_event_severity severity, - int enable, - struct ndb_mgm_reply* reply); - /** - * Get clusterlog severity filter - * - * @param handle NDB management handle - * - * @return A vector of seven elements, - * where each element contains - * 1 if a severity indicator is enabled and 0 if not. - * A severity level is stored at position - * ndb_mgm_clusterlog_level; - * for example the "error" level is stored in position - * [NDB_MGM_EVENT_SEVERITY_ERROR]. - * The first element [NDB_MGM_EVENT_SEVERITY_ON] in - * the vector signals - * whether the cluster log - * is disabled or enabled. - */ - const unsigned int *ndb_mgm_get_clusterlog_severity_filter(NdbMgmHandle handle); - - /** - * Set log category and levels for the cluster log - * - * @param handle NDB management handle. - * @param nodeId Node ID. - * @param category Event category. - * @param level Log level (0-15). - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_set_clusterlog_loglevel(NdbMgmHandle handle, - int nodeId, - enum ndb_mgm_event_category category, - int level, - struct ndb_mgm_reply* reply); - - /** @} *********************************************************************/ - /** - * @name Functions: Listening to log events - * @{ - */ - - /** - * Listen to log events. They are read from the return file descriptor - * and the format is textual, and the same as in the cluster log. - * - * @param handle NDB management handle. - * @param filter pairs of { level, ndb_mgm_event_category } that will be - * pushed to fd, level=0 ends list. - * - * @return fd filedescriptor to read events from - */ - int ndb_mgm_listen_event(NdbMgmHandle handle, const int filter[]); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Set log category and levels for the Node - * - * @param handle NDB management handle. - * @param nodeId Node ID. - * @param category Event category. - * @param level Log level (0-15). - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_set_loglevel_node(NdbMgmHandle handle, - int nodeId, - enum ndb_mgm_event_category category, - int level, - struct ndb_mgm_reply* reply); - - /** - * Returns the port number where statistics information is sent - * - * @param handle NDB management handle. - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_get_stat_port(NdbMgmHandle handle, - struct ndb_mgm_reply* reply); -#endif - - /** - * The NdbLogEventHandle - */ - typedef struct ndb_logevent_handle * NdbLogEventHandle; - - /** - * Listen to log events. - * - * @param handle NDB management handle. - * @param filter pairs of { level, ndb_mgm_event_category } that will be - * pushed to fd, level=0 ends list. - * - * @return NdbLogEventHandle - */ - NdbLogEventHandle ndb_mgm_create_logevent_handle(NdbMgmHandle, - const int filter[]); - void ndb_mgm_destroy_logevent_handle(NdbLogEventHandle*); - - /** - * Retrieve filedescriptor from NdbLogEventHandle. May be used in - * e.g. an application select() statement. - * - * @note Do not attemt to read from it, it will corrupt the parsing. - * - * @return filedescriptor, -1 on failure. - */ - int ndb_logevent_get_fd(const NdbLogEventHandle); - - /** - * Attempt to retrieve next log event and will fill in the supplied - * struct dst - * - * @param dst Pointer to struct to fill in event information - * @param timeout_in_milliseconds Timeout for waiting for event - * - * @return >0 if event exists, 0 no event (timed out), or -1 on error. - * - * @note Return value <=0 will leave dst untouched - */ - int ndb_logevent_get_next(const NdbLogEventHandle, - struct ndb_logevent *dst, - unsigned timeout_in_milliseconds); - - /** - * Retrieve laterst error code - * - * @return error code - */ - int ndb_logevent_get_latest_error(const NdbLogEventHandle); - - /** - * Retrieve laterst error message - * - * @return error message - */ - const char *ndb_logevent_get_latest_error_msg(const NdbLogEventHandle); - - - /** @} *********************************************************************/ - /** - * @name Functions: Backup - * @{ - */ - - /** - * Start backup - * - * @param handle NDB management handle. - * @param wait_completed 0: Don't wait for confirmation<br> - * 1: Wait for backup to be started<br> - * 2: Wait for backup to be completed - * @param backup_id Backup ID is returned from function. - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_start_backup(NdbMgmHandle handle, int wait_completed, - unsigned int* backup_id, - struct ndb_mgm_reply* reply); - - /** - * Abort backup - * - * @param handle NDB management handle. - * @param backup_id Backup ID. - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_abort_backup(NdbMgmHandle handle, unsigned int backup_id, - struct ndb_mgm_reply* reply); - - - /** @} *********************************************************************/ - /** - * @name Functions: Single User Mode - * @{ - */ - - /** - * Enter Single user mode - * - * @param handle NDB management handle. - * @param nodeId Node ID of the single user node - * @param reply Reply message. - * @return -1 on error. - */ - int ndb_mgm_enter_single_user(NdbMgmHandle handle, unsigned int nodeId, - struct ndb_mgm_reply* reply); - - /** - * Exit Single user mode - * - * @param handle NDB management handle. - * @param reply Reply message. - * - * @return -1 on error. - */ - int ndb_mgm_exit_single_user(NdbMgmHandle handle, - struct ndb_mgm_reply* reply); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** @} *********************************************************************/ - /** - * @name Configuration handling - * @{ - */ - - /** - * Get configuration - * @param handle NDB management handle. - * @param version Version of configuration, 0 means latest - * (Currently this is the only supported value for this parameter) - * - * @return configuration - * - * @note The caller is responsible for calling ndb_mgm_destroy_configuration() - */ - struct ndb_mgm_configuration * ndb_mgm_get_configuration(NdbMgmHandle handle, - unsigned version); - void ndb_mgm_destroy_configuration(struct ndb_mgm_configuration *); - - int ndb_mgm_alloc_nodeid(NdbMgmHandle handle, - unsigned version, int nodetype); - - - /** - * Get the node id of the mgm server we're connected to - */ - Uint32 ndb_mgm_get_mgmd_nodeid(NdbMgmHandle handle); - - /** - * Config iterator - */ - typedef struct ndb_mgm_configuration_iterator ndb_mgm_configuration_iterator; - - ndb_mgm_configuration_iterator* ndb_mgm_create_configuration_iterator - (struct ndb_mgm_configuration *, unsigned type_of_section); - void ndb_mgm_destroy_iterator(ndb_mgm_configuration_iterator*); - - int ndb_mgm_first(ndb_mgm_configuration_iterator*); - int ndb_mgm_next(ndb_mgm_configuration_iterator*); - int ndb_mgm_valid(const ndb_mgm_configuration_iterator*); - int ndb_mgm_find(ndb_mgm_configuration_iterator*, - int param, unsigned value); - - int ndb_mgm_get_int_parameter(const ndb_mgm_configuration_iterator*, - int param, unsigned * value); - int ndb_mgm_get_int64_parameter(const ndb_mgm_configuration_iterator*, - int param, Uint64 * value); - int ndb_mgm_get_string_parameter(const ndb_mgm_configuration_iterator*, - int param, const char ** value); - int ndb_mgm_purge_stale_sessions(NdbMgmHandle handle, char **); - int ndb_mgm_check_connection(NdbMgmHandle handle); -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - enum ndb_mgm_clusterlog_level { - NDB_MGM_ILLEGAL_CLUSTERLOG_LEVEL = -1, - NDB_MGM_CLUSTERLOG_ON = 0, - NDB_MGM_CLUSTERLOG_DEBUG = 1, - NDB_MGM_CLUSTERLOG_INFO = 2, - NDB_MGM_CLUSTERLOG_WARNING = 3, - NDB_MGM_CLUSTERLOG_ERROR = 4, - NDB_MGM_CLUSTERLOG_CRITICAL = 5, - NDB_MGM_CLUSTERLOG_ALERT = 6, - NDB_MGM_CLUSTERLOG_ALL = 7 - }; - inline - int ndb_mgm_filter_clusterlog(NdbMgmHandle h, - enum ndb_mgm_clusterlog_level s, - int e, struct ndb_mgm_reply* r) - { return ndb_mgm_set_clusterlog_severity_filter(h,(ndb_mgm_event_severity)s, - e,r); } - - inline - const unsigned int *ndb_mgm_get_logfilter(NdbMgmHandle h) - { return ndb_mgm_get_clusterlog_severity_filter(h); } - - inline - int ndb_mgm_set_loglevel_clusterlog(NdbMgmHandle h, int n, - enum ndb_mgm_event_category c, - int l, struct ndb_mgm_reply* r) - { return ndb_mgm_set_clusterlog_loglevel(h,n,c,l,r); } -#endif - -#ifdef __cplusplus -} -#endif - -/** @} */ - -#endif diff --git a/ndb/include/mgmapi/mgmapi_config_parameters.h b/ndb/include/mgmapi/mgmapi_config_parameters.h deleted file mode 100644 index 33134899d1e..00000000000 --- a/ndb/include/mgmapi/mgmapi_config_parameters.h +++ /dev/null @@ -1,170 +0,0 @@ -#ifndef MGMAPI_CONFIG_PARAMTERS_H -#define MGMAPI_CONFIG_PARAMTERS_H - -#define CFG_SYS_NAME 3 -#define CFG_SYS_PRIMARY_MGM_NODE 1 -#define CFG_SYS_CONFIG_GENERATION 2 -#define CFG_SYS_REPLICATION_ROLE 7 -#define CFG_SYS_PORT_BASE 8 - -#define CFG_NODE_ID 3 -#define CFG_NODE_BYTE_ORDER 4 -#define CFG_NODE_HOST 5 -#define CFG_NODE_SYSTEM 6 -#define CFG_NODE_DATADIR 7 - -/** - * DB config parameters - */ -#define CFG_DB_NO_SAVE_MSGS 100 - -#define CFG_DB_NO_REPLICAS 101 -#define CFG_DB_NO_TABLES 102 -#define CFG_DB_NO_ATTRIBUTES 103 -#define CFG_DB_NO_INDEXES 104 -#define CFG_DB_NO_TRIGGERS 105 - -#define CFG_DB_NO_TRANSACTIONS 106 -#define CFG_DB_NO_OPS 107 -#define CFG_DB_NO_SCANS 108 -#define CFG_DB_NO_TRIGGER_OPS 109 -#define CFG_DB_NO_INDEX_OPS 110 - -#define CFG_DB_TRANS_BUFFER_MEM 111 -#define CFG_DB_DATA_MEM 112 -#define CFG_DB_INDEX_MEM 113 -#define CFG_DB_MEMLOCK 114 - -#define CFG_DB_START_PARTIAL_TIMEOUT 115 -#define CFG_DB_START_PARTITION_TIMEOUT 116 -#define CFG_DB_START_FAILURE_TIMEOUT 117 - -#define CFG_DB_HEARTBEAT_INTERVAL 118 -#define CFG_DB_API_HEARTBEAT_INTERVAL 119 -#define CFG_DB_LCP_INTERVAL 120 -#define CFG_DB_GCP_INTERVAL 121 -#define CFG_DB_ARBIT_TIMEOUT 122 - -#define CFG_DB_WATCHDOG_INTERVAL 123 -#define CFG_DB_STOP_ON_ERROR 124 - -#define CFG_DB_FILESYSTEM_PATH 125 -#define CFG_DB_NO_REDOLOG_FILES 126 -#define CFG_DB_DISC_BANDWIDTH 127 -#define CFG_DB_SR_DISC_BANDWITH 128 - -#define CFG_DB_TRANSACTION_CHECK_INTERVAL 129 -#define CFG_DB_TRANSACTION_INACTIVE_TIMEOUT 130 -#define CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT 131 - -#define CFG_DB_PARALLEL_BACKUPS 132 -#define CFG_DB_BACKUP_MEM 133 -#define CFG_DB_BACKUP_DATA_BUFFER_MEM 134 -#define CFG_DB_BACKUP_LOG_BUFFER_MEM 135 -#define CFG_DB_BACKUP_WRITE_SIZE 136 - -#define CFG_LOG_DESTINATION 147 - -#define CFG_DB_DISCLESS 148 - -#define CFG_DB_NO_ORDERED_INDEXES 149 -#define CFG_DB_NO_UNIQUE_HASH_INDEXES 150 -#define CFG_DB_NO_LOCAL_OPS 151 -#define CFG_DB_NO_LOCAL_SCANS 152 -#define CFG_DB_BATCH_SIZE 153 - -#define CFG_DB_UNDO_INDEX_BUFFER 154 -#define CFG_DB_UNDO_DATA_BUFFER 155 -#define CFG_DB_REDO_BUFFER 156 - -#define CFG_DB_LONG_SIGNAL_BUFFER 157 - -#define CFG_DB_BACKUP_DATADIR 158 - -#define CFG_DB_MAX_OPEN_FILES 159 - -#define CFG_NODE_ARBIT_RANK 200 -#define CFG_NODE_ARBIT_DELAY 201 - -#define CFG_MIN_LOGLEVEL 250 -#define CFG_LOGLEVEL_STARTUP 250 -#define CFG_LOGLEVEL_SHUTDOWN 251 -#define CFG_LOGLEVEL_STATISTICS 252 -#define CFG_LOGLEVEL_CHECKPOINT 253 -#define CFG_LOGLEVEL_NODERESTART 254 -#define CFG_LOGLEVEL_CONNECTION 255 -#define CFG_LOGLEVEL_INFO 256 -#define CFG_LOGLEVEL_WARNING 257 -#define CFG_LOGLEVEL_ERROR 258 -#define CFG_LOGLEVEL_CONGESTION 259 -#define CFG_LOGLEVEL_DEBUG 260 -#define CFG_LOGLEVEL_BACKUP 261 -#define CFG_MAX_LOGLEVEL 261 - -#define CFG_MGM_PORT 300 - -#define CFG_CONNECTION_NODE_1 400 -#define CFG_CONNECTION_NODE_2 401 -#define CFG_CONNECTION_SEND_SIGNAL_ID 402 -#define CFG_CONNECTION_CHECKSUM 403 -#define CFG_CONNECTION_NODE_1_SYSTEM 404 -#define CFG_CONNECTION_NODE_2_SYSTEM 405 -#define CFG_CONNECTION_SERVER_PORT 406 -#define CFG_CONNECTION_HOSTNAME_1 407 -#define CFG_CONNECTION_HOSTNAME_2 408 -#define CFG_CONNECTION_GROUP 409 - -#define CFG_TCP_SERVER 452 -#define CFG_TCP_SEND_BUFFER_SIZE 454 -#define CFG_TCP_RECEIVE_BUFFER_SIZE 455 -#define CFG_TCP_PROXY 456 - -#define CFG_SHM_SEND_SIGNAL_ID 500 -#define CFG_SHM_CHECKSUM 501 -#define CFG_SHM_KEY 502 -#define CFG_SHM_BUFFER_MEM 503 -#define CFG_SHM_SIGNUM 504 - -#define CFG_SCI_HOST1_ID_0 550 -#define CFG_SCI_HOST1_ID_1 551 -#define CFG_SCI_HOST2_ID_0 552 -#define CFG_SCI_HOST2_ID_1 553 -#define CFG_SCI_SEND_LIMIT 554 -#define CFG_SCI_BUFFER_MEM 555 - -#define CFG_OSE_PRIO_A_SIZE 602 -#define CFG_OSE_PRIO_B_SIZE 603 -#define CFG_OSE_RECEIVE_ARRAY_SIZE 604 - -#define CFG_REP_HEARTBEAT_INTERVAL 700 - -/** - * API Config variables - * - */ -#define CFG_MAX_SCAN_BATCH_SIZE 800 -#define CFG_BATCH_BYTE_SIZE 801 -#define CFG_BATCH_SIZE 802 - -/** - * Internal - */ -#define CFG_DB_STOP_ON_ERROR_INSERT 1 - -#define CFG_TYPE_OF_SECTION 999 -#define CFG_SECTION_SYSTEM 1000 -#define CFG_SECTION_NODE 2000 -#define CFG_SECTION_CONNECTION 3000 - -#define NODE_TYPE_DB 0 -#define NODE_TYPE_API 1 -#define NODE_TYPE_MGM 2 -#define NODE_TYPE_REP 3 -#define NODE_TYPE_EXT_REP 4 - -#define CONNECTION_TYPE_TCP 0 -#define CONNECTION_TYPE_SHM 1 -#define CONNECTION_TYPE_SCI 2 -#define CONNECTION_TYPE_OSE 3 - -#endif diff --git a/ndb/include/mgmapi/mgmapi_config_parameters_debug.h b/ndb/include/mgmapi/mgmapi_config_parameters_debug.h deleted file mode 100644 index 0241dca90ef..00000000000 --- a/ndb/include/mgmapi/mgmapi_config_parameters_debug.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef MGMAPI_CONFIG_PARAMTERS_DEBUG_H -#define MGMAPI_CONFIG_PARAMTERS_DEBUG_H - -#include "mgmapi_config_parameters.h" - -#define CFG_DB_STOP_ON_ERROR_INSERT 1 - -#endif diff --git a/ndb/include/mgmapi/mgmapi_debug.h b/ndb/include/mgmapi/mgmapi_debug.h deleted file mode 100644 index e86d9d4b768..00000000000 --- a/ndb/include/mgmapi/mgmapi_debug.h +++ /dev/null @@ -1,140 +0,0 @@ -/* 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 MGMAPI_DEBUG_H -#define MGMAPI_DEBUG_H - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * Start signal logging. - * - * @param handle the NDB management handle. - * @param nodeId the node Id. - * @param reply the reply message. - * @return 0 if successful. - */ - int ndb_mgm_start_signallog(NdbMgmHandle handle, - int nodeId, - struct ndb_mgm_reply* reply); - - /** - * Stop signal logging. - * - * @param handle the NDB management handle. - * @param nodeId the node Id. - * @param reply the reply message. - * @return 0 if successful. - */ - int ndb_mgm_stop_signallog(NdbMgmHandle handle, - int nodeId, - struct ndb_mgm_reply* reply); - - /** - * Set the signals to log. - * - * @param handle the NDB management handle. - * @param nodeId the node id. - * @param mode the signal log mode. - * @param blockNames the block names (space separated). - * @param reply the reply message. - * @return 0 if successful or an error code. - */ - int ndb_mgm_log_signals(NdbMgmHandle handle, - int nodeId, - enum ndb_mgm_signal_log_mode mode, - const char* blockNames, - struct ndb_mgm_reply* reply); - - /** - * Set trace. - * - * @param handle the NDB management handle. - * @param nodeId the node id. - * @param traceNumber the trace number. - * @param reply the reply message. - * @return 0 if successful or an error code. - */ - int ndb_mgm_set_trace(NdbMgmHandle handle, - int nodeId, - int traceNumber, - struct ndb_mgm_reply* reply); - - /** - * Provoke an error. - * - * @param handle the NDB management handle. - * @param nodeId the node id. - * @param errrorCode the errorCode. - * @param reply the reply message. - * @return 0 if successful or an error code. - */ - int ndb_mgm_insert_error(NdbMgmHandle handle, - int nodeId, - int errorCode, - struct ndb_mgm_reply* reply); - - /** - * Dump state - * - * @param handle the NDB management handle. - * @param nodeId the node id. - * @param args integer array - * @param number of args in int array - * @param reply the reply message. - * @return 0 if successful or an error code. - */ - int ndb_mgm_dump_state(NdbMgmHandle handle, - int nodeId, - int * args, - int num_args, - struct ndb_mgm_reply* reply); - - - /** - * - * @param handle the NDB management handle. - * @param nodeId the node id. 0 = all db nodes - * @param errrorCode the errorCode. - * @param reply the reply message. - * @return 0 if successful or an error code. - */ - int ndb_mgm_set_int_parameter(NdbMgmHandle handle, - int node, - int param, - unsigned value, - struct ndb_mgm_reply* reply); - - int ndb_mgm_set_int64_parameter(NdbMgmHandle handle, - int node, - int param, - unsigned long long value, - struct ndb_mgm_reply* reply); - - int ndb_mgm_set_string_parameter(NdbMgmHandle handle, - int node, - int param, - const char * value, - struct ndb_mgm_reply* reply); - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/ndb/include/mgmapi/ndb_logevent.h b/ndb/include/mgmapi/ndb_logevent.h deleted file mode 100644 index d5744b0fffe..00000000000 --- a/ndb/include/mgmapi/ndb_logevent.h +++ /dev/null @@ -1,618 +0,0 @@ -/* 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 NDB_LOGEVENT_H -#define NDB_LOGEVENT_H - -/** @addtogroup MGM_C_API - * @{ - */ - -#include "mgmapi_config_parameters.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /** - * Available log events grouped by @ref ndb_mgm_event_category - */ - - enum Ndb_logevent_type { - - NDB_LE_ILLEGAL_TYPE = -1, - - /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ - NDB_LE_Connected = 0, - /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ - NDB_LE_Disconnected = 1, - /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ - NDB_LE_CommunicationClosed = 2, - /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ - NDB_LE_CommunicationOpened = 3, - /** NDB_MGM_EVENT_CATEGORY_CONNECTION */ - NDB_LE_ConnectedApiVersion = 51, - - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_GlobalCheckpointStarted = 4, - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_GlobalCheckpointCompleted = 5, - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_LocalCheckpointStarted = 6, - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_LocalCheckpointCompleted = 7, - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_LCPStoppedInCalcKeepGci = 8, - /** NDB_MGM_EVENT_CATEGORY_CHECKPOINT */ - NDB_LE_LCPFragmentCompleted = 9, - - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_NDBStartStarted = 10, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_NDBStartCompleted = 11, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_STTORRYRecieved = 12, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_StartPhaseCompleted = 13, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_CM_REGCONF = 14, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_CM_REGREF = 15, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_FIND_NEIGHBOURS = 16, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_NDBStopStarted = 17, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_NDBStopAborted = 18, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_StartREDOLog = 19, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_StartLog = 20, - /** NDB_MGM_EVENT_CATEGORY_STARTUP */ - NDB_LE_UNDORecordsExecuted = 21, - - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NR_CopyDict = 22, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NR_CopyDistr = 23, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NR_CopyFragsStarted = 24, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NR_CopyFragDone = 25, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NR_CopyFragsCompleted = 26, - - /* NODEFAIL */ - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NodeFailCompleted = 27, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_NODE_FAILREP = 28, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_ArbitState = 29, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_ArbitResult = 30, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_GCP_TakeoverStarted = 31, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_GCP_TakeoverCompleted = 32, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_LCP_TakeoverStarted = 33, - /** NDB_MGM_EVENT_CATEGORY_NODE_RESTART */ - NDB_LE_LCP_TakeoverCompleted = 34, - - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_TransReportCounters = 35, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_OperationReportCounters = 36, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_TableCreated = 37, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_UndoLogBlocked = 38, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_JobStatistic = 39, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_SendBytesStatistic = 40, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_ReceiveBytesStatistic = 41, - /** NDB_MGM_EVENT_CATEGORY_STATISTIC */ - NDB_LE_MemoryUsage = 50, - - /** NDB_MGM_EVENT_CATEGORY_ERROR */ - NDB_LE_TransporterError = 42, - /** NDB_MGM_EVENT_CATEGORY_ERROR */ - NDB_LE_TransporterWarning = 43, - /** NDB_MGM_EVENT_CATEGORY_ERROR */ - NDB_LE_MissedHeartbeat = 44, - /** NDB_MGM_EVENT_CATEGORY_ERROR */ - NDB_LE_DeadDueToHeartbeat = 45, - /** NDB_MGM_EVENT_CATEGORY_ERROR */ - NDB_LE_WarningEvent = 46, - - /** NDB_MGM_EVENT_CATEGORY_INFO */ - NDB_LE_SentHeartbeat = 47, - /** NDB_MGM_EVENT_CATEGORY_INFO */ - NDB_LE_CreateLogBytes = 48, - /** NDB_MGM_EVENT_CATEGORY_INFO */ - NDB_LE_InfoEvent = 49, - - /* GREP */ - NDB_LE_GrepSubscriptionInfo = 52, - NDB_LE_GrepSubscriptionAlert = 53, - - /** NDB_MGM_EVENT_CATEGORY_BACKUP */ - NDB_LE_BackupStarted = 54, - /** NDB_MGM_EVENT_CATEGORY_BACKUP */ - NDB_LE_BackupFailedToStart = 55, - /** NDB_MGM_EVENT_CATEGORY_BACKUP */ - NDB_LE_BackupCompleted = 56, - /** NDB_MGM_EVENT_CATEGORY_BACKUP */ - NDB_LE_BackupAborted = 57 - }; - - /** - * Log event severities (used to filter the cluster log, - * ndb_mgm_set_clusterlog_severity_filter(), and filter listening to events - * ndb_mgm_listen_event()) - */ - enum ndb_mgm_event_severity { - NDB_MGM_ILLEGAL_EVENT_SEVERITY = -1, - /* Must be a nonnegative integer (used for array indexing) */ - /** Cluster log on */ - NDB_MGM_EVENT_SEVERITY_ON = 0, - /** Used in NDB Cluster developement */ - NDB_MGM_EVENT_SEVERITY_DEBUG = 1, - /** Informational messages*/ - NDB_MGM_EVENT_SEVERITY_INFO = 2, - /** Conditions that are not error condition, but might require handling. - */ - NDB_MGM_EVENT_SEVERITY_WARNING = 3, - /** Conditions that, while not fatal, should be corrected. */ - NDB_MGM_EVENT_SEVERITY_ERROR = 4, - /** Critical conditions, like device errors or out of resources */ - NDB_MGM_EVENT_SEVERITY_CRITICAL = 5, - /** A condition that should be corrected immediately, - * such as a corrupted system - */ - NDB_MGM_EVENT_SEVERITY_ALERT = 6, - /* must be next number, works as bound in loop */ - /** All severities */ - NDB_MGM_EVENT_SEVERITY_ALL = 7 - }; - - /** - * Log event categories, used to set filter level on the log events using - * ndb_mgm_set_clusterlog_loglevel() and ndb_mgm_listen_event() - */ - enum ndb_mgm_event_category { - /** - * Invalid log event category - */ - NDB_MGM_ILLEGAL_EVENT_CATEGORY = -1, - /** - * Log events during all kinds of startups - */ - NDB_MGM_EVENT_CATEGORY_STARTUP = CFG_LOGLEVEL_STARTUP, - /** - * Log events during shutdown - */ - NDB_MGM_EVENT_CATEGORY_SHUTDOWN = CFG_LOGLEVEL_SHUTDOWN, - /** - * Statistics log events - */ - NDB_MGM_EVENT_CATEGORY_STATISTIC = CFG_LOGLEVEL_STATISTICS, - /** - * Log events related to checkpoints - */ - NDB_MGM_EVENT_CATEGORY_CHECKPOINT = CFG_LOGLEVEL_CHECKPOINT, - /** - * Log events during node restart - */ - NDB_MGM_EVENT_CATEGORY_NODE_RESTART = CFG_LOGLEVEL_NODERESTART, - /** - * Log events related to connections between cluster nodes - */ - NDB_MGM_EVENT_CATEGORY_CONNECTION = CFG_LOGLEVEL_CONNECTION, - /** - * Backup related log events - */ - NDB_MGM_EVENT_CATEGORY_BACKUP = CFG_LOGLEVEL_BACKUP, - /** - * Congestion related log events - */ - NDB_MGM_EVENT_CATEGORY_CONGESTION = CFG_LOGLEVEL_CONGESTION, -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Loglevel debug - */ - NDB_MGM_EVENT_CATEGORY_DEBUG = CFG_LOGLEVEL_DEBUG, -#endif - /** - * Uncategorized log events (severity info) - */ - NDB_MGM_EVENT_CATEGORY_INFO = CFG_LOGLEVEL_INFO, - /** - * Uncategorized log events (severity warning or higher) - */ - NDB_MGM_EVENT_CATEGORY_ERROR = CFG_LOGLEVEL_ERROR, -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - NDB_MGM_MIN_EVENT_CATEGORY = CFG_MIN_LOGLEVEL, - NDB_MGM_MAX_EVENT_CATEGORY = CFG_MAX_LOGLEVEL -#endif - }; - - /** - * Structure to store and retrieve log event information. - * @see @ref secSLogEvents - */ - struct ndb_logevent { - /** NdbLogEventHandle (to be used for comparing only) - * set in ndb_logevent_get_next() - */ - void *handle; - - /** Which event */ - enum Ndb_logevent_type type; - - /** Time when log event was registred at the management server */ - unsigned time; - - /** Category of log event */ - enum ndb_mgm_event_category category; - - /** Severity of log event */ - enum ndb_mgm_event_severity severity; - - /** Level (0-15) of log event */ - unsigned level; - - /** Node ID of the node that reported the log event */ - unsigned source_nodeid; - - /** Union of log event specific data. Use @ref type to decide - * which struct to use - */ - union { - /* CONNECT */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } Connected; - - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } Disconnected; - - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } CommunicationClosed; - - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } CommunicationOpened; - - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - unsigned version; - } ConnectedApiVersion; - - /* CHECKPOINT */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned gci; - } GlobalCheckpointStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned gci; - } GlobalCheckpointCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned lci; - unsigned keep_gci; - unsigned restore_gci; - } LocalCheckpointStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned lci; - } LocalCheckpointCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned data; - } LCPStoppedInCalcKeepGci; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - unsigned table_id; - unsigned fragment_id; - } LCPFragmentCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned acc_count; - unsigned tup_count; - } UndoLogBlocked; - - /* STARTUP */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned version; - } NDBStartStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned version; - } NDBStartCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } STTORRYRecieved; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned phase; - unsigned starttype; - } StartPhaseCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned own_id; - unsigned president_id; - unsigned dynamic_id; - } CM_REGCONF; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned own_id; - unsigned other_id; - unsigned cause; - } CM_REGREF; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned own_id; - unsigned left_id; - unsigned right_id; - unsigned dynamic_id; - } FIND_NEIGHBOURS; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned stoptype; - } NDBStopStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } NDBStopAborted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - unsigned keep_gci; - unsigned completed_gci; - unsigned restorable_gci; - } StartREDOLog; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned log_part; - unsigned start_mb; - unsigned stop_mb; - unsigned gci; - } StartLog; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned block; - unsigned data1; - unsigned data2; - unsigned data3; - unsigned data4; - unsigned data5; - unsigned data6; - unsigned data7; - unsigned data8; - unsigned data9; - unsigned data10; - } UNDORecordsExecuted; - - /* NODERESTART */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } NR_CopyDict; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } NR_CopyDistr; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned dest_node; - } NR_CopyFragsStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned dest_node; - unsigned table_id; - unsigned fragment_id; - } NR_CopyFragDone; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned dest_node; - } NR_CopyFragsCompleted; - - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned block; /* 0 = all */ - unsigned failed_node; - unsigned completing_node; /* 0 = all */ - } NodeFailCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned failed_node; - unsigned failure_state; - } NODE_FAILREP; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned code; /* code & state << 16 */ - unsigned arbit_node; - unsigned ticket_0; - unsigned ticket_1; - /* TODO */ - } ArbitState; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned code; /* code & state << 16 */ - unsigned arbit_node; - unsigned ticket_0; - unsigned ticket_1; - /* TODO */ - } ArbitResult; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } GCP_TakeoverStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } GCP_TakeoverCompleted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - } LCP_TakeoverStarted; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned state; - } LCP_TakeoverCompleted; - - /* STATISTIC */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned trans_count; - unsigned commit_count; - unsigned read_count; - unsigned simple_read_count; - unsigned write_count; - unsigned attrinfo_count; - unsigned conc_op_count; - unsigned abort_count; - unsigned scan_count; - unsigned range_scan_count; - } TransReportCounters; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned ops; - } OperationReportCounters; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned table_id; - } TableCreated; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned mean_loop_count; - } JobStatistic; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned to_node; - unsigned mean_sent_bytes; - } SendBytesStatistic; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned from_node; - unsigned mean_received_bytes; - } ReceiveBytesStatistic; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - int gth; - unsigned page_size_kb; - unsigned pages_used; - unsigned pages_total; - unsigned block; - } MemoryUsage; - - /* ERROR */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned to_node; - unsigned code; - } TransporterError; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned to_node; - unsigned code; - } TransporterWarning; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - unsigned count; - } MissedHeartbeat; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } DeadDueToHeartbeat; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - /* TODO */ - } WarningEvent; - - /* INFO */ - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } SentHeartbeat; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - unsigned node; - } CreateLogBytes; - /** Log event specific data for for corresponding NDB_LE_ log event */ - struct { - /* TODO */ - } InfoEvent; - - /** Log event data for @ref NDB_LE_BackupStarted */ - struct { - unsigned starting_node; - unsigned backup_id; - } BackupStarted; - /** Log event data @ref NDB_LE_BackupFailedToStart */ - struct { - unsigned starting_node; - unsigned error; - } BackupFailedToStart; - /** Log event data @ref NDB_LE_BackupCompleted */ - struct { - unsigned starting_node; - unsigned backup_id; - unsigned start_gci; - unsigned stop_gci; - unsigned n_records; - unsigned n_log_records; - unsigned n_bytes; - unsigned n_log_bytes; - } BackupCompleted; - /** Log event data @ref NDB_LE_BackupAborted */ - struct { - unsigned starting_node; - unsigned backup_id; - unsigned error; - } BackupAborted; -#ifndef DOXYGEN_FIX - }; -#else - } <union>; -#endif - }; - -enum ndb_logevent_handle_error { - NDB_LEH_NO_ERROR, - NDB_LEH_READ_ERROR, - NDB_LEH_MISSING_EVENT_SPECIFIER, - NDB_LEH_UNKNOWN_EVENT_TYPE, - NDB_LEH_UNKNOWN_EVENT_VARIABLE, - NDB_LEH_INTERNAL_ERROR -}; - -#ifdef __cplusplus -} -#endif - -/** @} */ - -#endif diff --git a/ndb/include/mgmcommon/ConfigRetriever.hpp b/ndb/include/mgmcommon/ConfigRetriever.hpp deleted file mode 100644 index 95d257dea23..00000000000 --- a/ndb/include/mgmcommon/ConfigRetriever.hpp +++ /dev/null @@ -1,106 +0,0 @@ -/* 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 ConfigRetriever_H -#define ConfigRetriever_H - -#include <ndb_types.h> -#include <mgmapi.h> -#include <BaseString.hpp> - -/** - * @class ConfigRetriever - * @brief Used by nodes (DB, MGM, API) to get their config from MGM server. - */ -class ConfigRetriever { -public: - ConfigRetriever(const char * _connect_string, - Uint32 version, Uint32 nodeType); - ~ConfigRetriever(); - - int do_connect(int no_retries, int retry_delay_in_seconds, int verbose); - - /** - * Get configuration for current node. - * - * Configuration is fetched from one MGM server configured in local config - * file. The method loops over all the configured MGM servers and tries - * to establish a connection. This is repeated until a connection is - * established, so the function hangs until a connection is established. - * - * @return ndb_mgm_configuration object if succeeded, - * NULL if erroneous local config file or configuration error. - */ - struct ndb_mgm_configuration * getConfig(); - - void resetError(); - int hasError(); - const char * getErrorString(); - - /** - * @return Node id of this node (as stated in local config or connectString) - */ - Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds); - - int setNodeId(Uint32 nodeid); - - /** - * Get config using socket - */ - struct ndb_mgm_configuration * getConfig(NdbMgmHandle handle); - - /** - * Get config from file - */ - struct ndb_mgm_configuration * getConfig(const char * file); - - /** - * Verify config - */ - bool verifyConfig(const struct ndb_mgm_configuration *, Uint32 nodeid); - - Uint32 get_mgmd_port() const; - const char *get_mgmd_host() const; - const char *get_connectstring(char *buf, int buf_sz) const; - NdbMgmHandle get_mgmHandle() { return m_handle; }; - NdbMgmHandle* get_mgmHandlePtr() { return &m_handle; }; - - Uint32 get_configuration_nodeid() const; -private: - BaseString errorString; - enum ErrorType { - CR_NO_ERROR = 0, - CR_ERROR = 1, - CR_RETRY = 2 - }; - ErrorType latestErrorType; - - void setError(ErrorType, const char * errorMsg); - - Uint32 _ownNodeId; - /* - Uint32 m_mgmd_port; - const char *m_mgmd_host; - */ - - Uint32 m_version; - Uint32 m_node_type; - NdbMgmHandle m_handle; -}; - -#endif - - diff --git a/ndb/include/mgmcommon/IPCConfig.hpp b/ndb/include/mgmcommon/IPCConfig.hpp deleted file mode 100644 index 1e23cdf9807..00000000000 --- a/ndb/include/mgmcommon/IPCConfig.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* 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 IPCConfig_H -#define IPCConfig_H - -#include <ndb_types.h> -#include <ndb_limits.h> -#include <kernel_types.h> -#include <Properties.hpp> - -/** - * @class IPCConfig - * @brief Config transporters in TransporterRegistry using Properties config - */ -class IPCConfig -{ -public: - IPCConfig(Properties * props); - ~IPCConfig(); - - /** @return 0 for OK */ - int init(); - - NodeId ownId() const; - - /** @return No of transporters configured */ - int configureTransporters(class TransporterRegistry * theTransporterRegistry); - - /** - * Supply a nodeId, - * and get next higher node id - * @return false if none found, true otherwise - * - * getREPHBFrequency and getNodeType uses the last Id supplied to - * getNextRemoteNodeId. - */ - bool getNextRemoteNodeId(NodeId & nodeId) const; - Uint32 getREPHBFrequency(NodeId id) const; - const char* getNodeType(NodeId id) const; - - NodeId getNoOfRemoteNodes() const { - return theNoOfRemoteNodes; - } - - void print() const { props->print(); } - - static Uint32 configureTransporters(Uint32 nodeId, - const struct ndb_mgm_configuration &, - class TransporterRegistry &); - -private: - NodeId the_ownId; - Properties * props; - - bool addRemoteNodeId(NodeId nodeId); - NodeId theNoOfRemoteNodes; - NodeId theRemoteNodeIds[MAX_NODES]; -}; - -inline -NodeId -IPCConfig::ownId() const -{ - return the_ownId; -} - - - -#endif // IPCConfig_H diff --git a/ndb/include/mgmcommon/MgmtErrorReporter.hpp b/ndb/include/mgmcommon/MgmtErrorReporter.hpp deleted file mode 100644 index 0d980aa7245..00000000000 --- a/ndb/include/mgmcommon/MgmtErrorReporter.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* 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 */ - -//****************************************************************************** -// Description: This file contains the error reporting macros to be used -// within management server. -// -// Author: Peter Lind -//****************************************************************************** - - -#include <ndb_global.h> // exit -#include <NdbOut.hpp> - -#define REPORT_WARNING(message) \ - ndbout << "WARNING: " << message << endl - -//**************************************************************************** -// Description: Report a warning, the message is printed on ndbout. -// Parameters: -// message: A text describing the warning. -// Returns: - -//**************************************************************************** - - -#define REPORT_ERROR(message) \ - ndbout << "ERROR: " << message << endl - -//**************************************************************************** -// Description: Report an error, the message is printed on ndbout. -// Parameters: -// message: A text describing the error. -// Returns: - -//**************************************************************************** - - -#ifdef MGMT_TRACE - -#define TRACE(message) \ - ndbout << "MGMT_TRACE: " << message << endl -#else -#define TRACE(message) - -#endif - -//**************************************************************************** -// Description: Print a message on ndbout. -// Parameters: -// message: The message -// Returns: - -//**************************************************************************** - -#define MGM_REQUIRE(x) \ - if (!(x)) { ndbout << __FILE__ << " " << __LINE__ \ - << ": Warning! Requirement failed" << endl; } diff --git a/ndb/include/ndb_constants.h b/ndb/include/ndb_constants.h deleted file mode 100644 index c292880749b..00000000000 --- a/ndb/include/ndb_constants.h +++ /dev/null @@ -1,72 +0,0 @@ -/* 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 */ - -/** - * @file ndb_constants.h - * - * Constants common to NDB API and NDB kernel. - * Changing the values makes database upgrade impossible. - * - * New or removed definitions must be replicated to - * NdbDictionary.hpp and NdbSqlUtil.hpp. - * - * Not for use by application programs. - * Use the enums provided by NdbDictionary instead. - */ - -#ifndef NDB_CONSTANTS_H -#define NDB_CONSTANTS_H - -/* - * Data type constants. - */ - -#define NDB_TYPE_UNDEFINED 0 - -#define NDB_TYPE_TINYINT 1 -#define NDB_TYPE_TINYUNSIGNED 2 -#define NDB_TYPE_SMALLINT 3 -#define NDB_TYPE_SMALLUNSIGNED 4 -#define NDB_TYPE_MEDIUMINT 5 -#define NDB_TYPE_MEDIUMUNSIGNED 6 -#define NDB_TYPE_INT 7 -#define NDB_TYPE_UNSIGNED 8 -#define NDB_TYPE_BIGINT 9 -#define NDB_TYPE_BIGUNSIGNED 10 -#define NDB_TYPE_FLOAT 11 -#define NDB_TYPE_DOUBLE 12 -#define NDB_TYPE_OLDDECIMAL 13 -#define NDB_TYPE_CHAR 14 -#define NDB_TYPE_VARCHAR 15 -#define NDB_TYPE_BINARY 16 -#define NDB_TYPE_VARBINARY 17 -#define NDB_TYPE_DATETIME 18 -#define NDB_TYPE_DATE 19 -#define NDB_TYPE_BLOB 20 -#define NDB_TYPE_TEXT 21 -#define NDB_TYPE_BIT 22 -#define NDB_TYPE_LONGVARCHAR 23 -#define NDB_TYPE_LONGVARBINARY 24 -#define NDB_TYPE_TIME 25 -#define NDB_TYPE_YEAR 26 -#define NDB_TYPE_TIMESTAMP 27 -#define NDB_TYPE_OLDDECIMALUNSIGNED 28 -#define NDB_TYPE_DECIMAL 29 -#define NDB_TYPE_DECIMALUNSIGNED 30 - -#define NDB_TYPE_MAX 31 - -#endif diff --git a/ndb/include/ndb_global.h.in b/ndb/include/ndb_global.h.in deleted file mode 100644 index 43f90e1f8b5..00000000000 --- a/ndb/include/ndb_global.h.in +++ /dev/null @@ -1,139 +0,0 @@ -/* 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 NDB_GLOBAL_H -#define NDB_GLOBAL_H - -#include <ndb_types.h> - -#define NDB_PORT "@ndb_port@" -#define NDB_TCP_BASE_PORT "@ndb_port_base@" - -#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) -#define NDB_WIN32 -#include <winsock2.h> -#define PATH_MAX 256 -#define DIR_SEPARATOR "\\" -#define MYSQLCLUSTERDIR "c:\\mysql\\mysql-cluster" -#define HAVE_STRCASECMP -#define strcasecmp _strcmpi -#pragma warning(disable: 4503 4786) -#else -#undef NDB_WIN32 -#define DIR_SEPARATOR "/" -#endif - -#include <my_global.h> - -#if ! (NDB_SIZEOF_CHAR == SIZEOF_CHAR) -#error "Invalid define for Uint8" -#endif - -#if ! (NDB_SIZEOF_INT == SIZEOF_INT) -#error "Invalid define for Uint32" -#endif - -#if ! (NDB_SIZEOF_LONG_LONG == SIZEOF_LONG_LONG) -#error "Invalid define for Uint64" -#endif - -#include <my_alarm.h> - -#ifdef _AIX -#undef _H_STRINGS -#endif -#include <m_string.h> -#include <m_ctype.h> -#include <ctype.h> - -#ifdef HAVE_STDARG_H -#include <stdarg.h> -#endif - -#ifdef TIME_WITH_SYS_TIME -#include <time.h> -#endif - -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#ifdef HAVE_SYS_STAT_H - #if defined(__cplusplus) && defined(_APP32_64BIT_OFF_T) && defined(_INCLUDE_AES_SOURCE) - #undef _INCLUDE_AES_SOURCE - #include <sys/stat.h> - #define _INCLUDE_AES_SOURCE - #else - #include <sys/stat.h> - #endif -#endif - -#ifdef HAVE_SYS_RESOURCE_H -#include <sys/resource.h> -#endif - -#ifdef HAVE_SYS_WAIT_H -#include <sys/wait.h> -#endif - -#ifdef HAVE_SYS_MMAN_H -#include <sys/mman.h> -#endif - -#ifndef HAVE_STRDUP -extern char * strdup(const char *s); -#endif - -#ifndef HAVE_STRCASECMP -extern int strcasecmp(const char *s1, const char *s2); -extern int strncasecmp(const char *s1, const char *s2, size_t n); -#endif - -static const char table_name_separator = '/'; - -#if defined(_AIX) || defined(WIN32) || defined(NDB_VC98) -#define STATIC_CONST(x) enum { x } -#else -#define STATIC_CONST(x) static const Uint32 x -#endif - -#ifdef __cplusplus -inline void* operator new(size_t, void* __p) { return __p; } -inline void* operator new[](size_t, void* __p) { return __p; } -extern "C" { -#endif - -#include <assert.h> - -#ifdef __cplusplus -} -#endif - -#include "ndb_init.h" - -#ifdef SCO - -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif - -#endif /* SCO */ - -#endif diff --git a/ndb/include/ndb_init.h b/ndb/include/ndb_init.h deleted file mode 100644 index 0ff53e6a2af..00000000000 --- a/ndb/include/ndb_init.h +++ /dev/null @@ -1,32 +0,0 @@ -/* 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 NDB_INIT_H -#define NDB_INIT_H - -#ifdef __cplusplus -extern "C" { -#endif -/* call in main() - does not return on error */ -extern int ndb_init(void); -extern void ndb_end(int); -#define NDB_INIT(prog_name) {my_progname=(prog_name); ndb_init();} -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/ndb_net.h b/ndb/include/ndb_net.h deleted file mode 100644 index 279beb471a7..00000000000 --- a/ndb/include/ndb_net.h +++ /dev/null @@ -1,7 +0,0 @@ - -#ifndef NDBNET_H -#define NDBNET_H - -#include <my_net.h> - -#endif diff --git a/ndb/include/ndb_types.h.in b/ndb/include/ndb_types.h.in deleted file mode 100644 index 2a5d576ffea..00000000000 --- a/ndb/include/ndb_types.h.in +++ /dev/null @@ -1,81 +0,0 @@ -/* 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 */ - -/** - * @file ndb_types.h - */ - -#ifndef NDB_TYPES_H -#define NDB_TYPES_H - -#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(_WIN64) -#define NDB_SIZEOF_CHARP SIZEOF_CHARP -#define NDB_SIZEOF_CHAR SIZEOF_CHAR -#define NDB_SIZEOF_SHORT 2 -#define NDB_SIZEOF_INT SIZEOF_INT -#define NDB_SIZEOF_LONG SIZEOF_LONG -#define NDB_SIZEOF_LONG_LONG SIZEOF_LONG_LONG -typedef unsigned __int64 Uint64; -typedef signed __int64 Int64; -#else -#define NDB_SIZEOF_CHARP @NDB_SIZEOF_CHARP@ -#define NDB_SIZEOF_CHAR @NDB_SIZEOF_CHAR@ -#define NDB_SIZEOF_INT @NDB_SIZEOF_INT@ -#define NDB_SIZEOF_SHORT @NDB_SIZEOF_SHORT@ -#define NDB_SIZEOF_LONG @NDB_SIZEOF_LONG@ -#define NDB_SIZEOF_LONG_LONG @NDB_SIZEOF_LONG_LONG@ -typedef unsigned long long Uint64; -typedef signed long long Int64; -#endif - -typedef signed char Int8; -typedef unsigned char Uint8; -typedef signed short Int16; -typedef unsigned short Uint16; -typedef signed int Int32; -typedef unsigned int Uint32; - -typedef unsigned int UintR; - -#ifdef __SIZE_TYPE__ - typedef __SIZE_TYPE__ UintPtr; -#elif NDB_SIZEOF_CHARP == 4 - typedef Uint32 UintPtr; -#elif NDB_SIZEOF_CHARP == 8 - typedef Uint64 UintPtr; -#else - #error "Unknown size of (char *)" -#endif - -#if ! (NDB_SIZEOF_CHAR == 1) -#error "Invalid define for Uint8" -#endif - -#if ! (NDB_SIZEOF_SHORT == 2) -#error "Invalid define for Uint16" -#endif - -#if ! (NDB_SIZEOF_INT == 4) -#error "Invalid define for Uint32" -#endif - -#if ! (NDB_SIZEOF_LONG_LONG == 8) -#error "Invalid define for Uint64" -#endif - -#include "ndb_constants.h" - -#endif diff --git a/ndb/include/ndb_version.h.in b/ndb/include/ndb_version.h.in deleted file mode 100644 index d7f43eae40a..00000000000 --- a/ndb/include/ndb_version.h.in +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 NDB_VERSION_H -#define NDB_VERSION_H - -#include <ndb_global.h> -#include <version.h> - -/* NDB build version */ -#define NDB_VERSION_BUILD @NDB_VERSION_BUILD@ - -/* NDB major version */ -#define NDB_VERSION_MAJOR @NDB_VERSION_MAJOR@ - -/* NDB minor version */ -#define NDB_VERSION_MINOR @NDB_VERSION_MINOR@ - -/* NDB status version */ -#define NDB_VERSION_STATUS "@NDB_VERSION_STATUS@" - - -#define MAKE_VERSION(A,B,C) (((A) << 16) | ((B) << 8) | ((C) << 0)) - -#define NDB_VERSION_D MAKE_VERSION(NDB_VERSION_MAJOR, NDB_VERSION_MINOR, NDB_VERSION_BUILD) - -#define NDB_VERSION_STRING (getVersionString(NDB_VERSION, NDB_VERSION_STATUS)) - -#define NDB_VERSION ndbGetOwnVersion() - -/** - * Version id - * - * Used by transporter and when communicating with - * managment server - */ -/*#define NDB_VERSION_ID 0*/ - -#endif - diff --git a/ndb/include/ndbapi/Ndb.hpp b/ndb/include/ndbapi/Ndb.hpp deleted file mode 100644 index 41085e6e06a..00000000000 --- a/ndb/include/ndbapi/Ndb.hpp +++ /dev/null @@ -1,1700 +0,0 @@ -/* 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 */ - -/** - @mainpage NDB API Programmers' Guide - - This guide assumes a basic familiarity with MySQL Cluster concepts found - on http://dev.mysql.com/doc/mysql/en/NDBCluster.html . - Some of the fundamental ones are also described in section @ref secConcepts. - - The NDB API is a MySQL Cluster application interface - that implements transactions. - The NDB API consists of the following fundamental classes: - - Ndb_cluster_connection, representing a connection to a cluster, - - Ndb is the main class, representing a connection to a database, - - NdbTransaction represents a transaction, - - NdbOperation represents an operation using a primary key, - - NdbScanOperation represents an operation performing a full table scan. - - NdbIndexOperation represents an operation using a unique hash index, - - NdbIndexScanOperation represents an operation performing a scan using - an ordered index, - - NdbRecAttr represents an attribute value - - NdbDictionary represents meta information about tables and attributes. - - In addition, the NDB API defines a structure NdbError, which contains the - specification for an error. - - It is also possible to receive "events" triggered when data in the database in changed. - This is done through the NdbEventOperation class. - - There are also some auxiliary classes, which are listed in the class hierarchy. - - The main structure of an application program is as follows: - -# Connect to a cluster using the Ndb_cluster_connection - object. - -# Initiate a database connection by constructing and initialising one or more Ndb objects. - -# Define and execute transactions using the NdbTransaction class. - -# Delete Ndb objects. - -# Terminate the connection to the cluster (terminate instance of Ndb_cluster_connection). - - The procedure for using transactions is as follows: - -# Start transaction (instantiate an NdbTransaction object) - -# Add and define operations associated with the transaction using instances of one or more of the - NdbOperation, NdbScanOperation, NdbIndexOperation, and NdbIndexScanOperation classes - -# Execute transaction (call NdbTransaction::execute()) - - The operation can be of two different types, - <var>Commit</var> or <var>NoCommit</var>. - If the operation is of type <var>NoCommit</var>, - then the application program executes the operation part of a transaction, - but without actually committing the transaction. - After executing a <var>NoCommit</var> operation, the program can continue - to add and define more operations to the transaction - for later execution. - - If the operation is of type <var>Commit</var>, then the transaction is - immediately committed. The transaction <em>must</em> be closed after it has been - commited (event if commit fails), and no further addition or definition of - operations for this transaction is allowed. - - @section secSync Synchronous Transactions - - Synchronous transactions are defined and executed as follows: - - -# Start (create) the transaction, which is - referenced by an NdbTransaction object - (typically created using Ndb::startTransaction()). - At this point, the transaction is only being defined, - and is not yet sent to the NDB kernel. - -# Define operations and add them to the transaction, using one or more of - - NdbTransaction::getNdbOperation() - - NdbTransaction::getNdbScanOperation() - - NdbTransaction::getNdbIndexOperation() - - NdbTransaction::getNdbIndexScanOperation() - along with the appropriate methods of the respective NdbOperation class - (or one possiblt one or more of its subclasses). - Note that the transaction has still not yet been sent to the NDB kernel. - -# Execute the transaction, using the NdbTransaction::execute() method. - -# Close the transaction (call Ndb::closeTransaction()). - - For an example of this process, see the program listing in - @ref ndbapi_simple.cpp. - - To execute several parallel synchronous transactions, one can either - use multiple Ndb objects in several threads, or start multiple - application programs. - - @section secNdbOperations Operations - - A NdbTransaction consists of a list of operations, each of which is represented - by an instance of NdbOperation, NdbScanOperation, NdbIndexOperation, or - NdbIndexScanOperation. - - <h3>Single row operations</h3> - After the operation is created using NdbTransaction::getNdbOperation() - (or NdbTransaction::getNdbIndexOperation()), it is defined in the following - three steps: - -# Define the standard operation type, using NdbOperation::readTuple() - -# Specify search conditions, using NdbOperation::equal() - -# Specify attribute actions, using NdbOperation::getValue() - - Here are two brief examples illustrating this process. For the sake of - brevity, we omit error handling. - - This first example uses an NdbOperation: - @code - // 1. Retrieve table object - myTable= myDict->getTable("MYTABLENAME"); - - // 2. Create - myOperation= myTransaction->getNdbOperation(myTable); - - // 3. Define type of operation and lock mode - myOperation->readTuple(NdbOperation::LM_Read); - - // 4. Specify Search Conditions - myOperation->equal("ATTR1", i); - - // 5. Attribute Actions - myRecAttr= myOperation->getValue("ATTR2", NULL); - @endcode - For additional examples of this sort, see @ref ndbapi_simple.cpp. - - The second example uses an NdbIndexOperation: - @code - // 1. Retrieve index object - myIndex= myDict->getIndex("MYINDEX", "MYTABLENAME"); - - // 2. Create - myOperation= myTransaction->getNdbIndexOperation(myIndex); - - // 3. Define type of operation and lock mode - myOperation->readTuple(NdbOperation::LM_Read); - - // 4. Specify Search Conditions - myOperation->equal("ATTR1", i); - - // 5. Attribute Actions - myRecAttr = myOperation->getValue("ATTR2", NULL); - @endcode - Another example of this second type can be found in - @ref ndbapi_simple_index.cpp. - - We will now discuss in somewhat greater detail each step involved in the - creation and use of synchronous transactions. - - <h4>Step 1: Define single row operation type</h4> - The following operation types are supported: - -# NdbOperation::insertTuple() : - inserts a non-existing tuple - -# NdbOperation::writeTuple() : - updates an existing tuple if is exists, - otherwise inserts a new tuple - -# NdbOperation::updateTuple() : - updates an existing tuple - -# NdbOperation::deleteTuple() : - deletes an existing tuple - -# NdbOperation::readTuple() : - reads an existing tuple with specified lock mode - - All of these operations operate on the unique tuple key. - (When NdbIndexOperation is used then all of these operations - operate on a defined unique hash index.) - - @note If you want to define multiple operations within the same transaction, - then you need to call NdbTransaction::getNdbOperation() or - NdbTransaction::getNdbIndexOperation() for each operation. - - <h4>Step 2: Specify Search Conditions</h4> - The search condition is used to select tuples. Search conditions are set using NdbOperation::equal(). - - <h4>Step 3: Specify Attribute Actions</h4> - Next, it is necessary to determine which attributes should be read or updated. - It is important to remember that: - - Deletes can neither read nor set values, but only delete them - - Reads can only read values - - Updates can only set values - Normally the attribute is identified by name, but it is - also possible to use the attribute's identity to determine the - attribute. - - NdbOperation::getValue() returns an NdbRecAttr object - containing the read value. - To obtain the actual value, one of two methods can be used; - the application can either - - use its own memory (passed through a pointer aValue) to - NdbOperation::getValue(), or - - receive the attribute value in an NdbRecAttr object allocated - by the NDB API. - - The NdbRecAttr object is released when Ndb::closeTransaction() - is called. - Thus, the application cannot reference this object following - any subsequent call to Ndb::closeTransaction(). - Attempting to read data from an NdbRecAttr object before - calling NdbTransaction::execute() yields an undefined result. - - - @subsection secScan Scan Operations - - Scans are roughly the equivalent of SQL cursors, providing a means to - preform high-speed row processing. A scan can be performed - on either a table (using @ref NdbScanOperation) or - an ordered index (by means of an @ref NdbIndexScanOperation). - - Scan operations are characterised by the following: - - They can perform only reads (shared, exclusive or dirty) - - They can potentially work with multiple rows - - They can be used to update or delete multiple rows - - They can operate on several nodes in parallel - - After the operation is created using NdbTransaction::getNdbScanOperation() - (or NdbTransaction::getNdbIndexScanOperation()), - it is carried out in the following three steps: - -# Define the standard operation type, using NdbScanOperation::readTuples() - -# Specify search conditions, using @ref NdbScanFilter and/or - @ref NdbIndexScanOperation::setBound() - -# Specify attribute actions, using NdbOperation::getValue() - -# Executing the transaction, using NdbTransaction::execute() - -# Traversing the result set by means of succssive calls to - NdbScanOperation::nextResult() - - Here are two brief examples illustrating this process. Once again, in order - to keep things relatively short and simple, we will forego any error handling. - - This first example performs a table scan, using an NdbScanOperation: - @code - // 1. Retrieve table object - myTable= myDict->getTable("MYTABLENAME"); - - // 2. Create - myOperation= myTransaction->getNdbScanOperation(myTable); - - // 3. Define type of operation and lock mode - myOperation->readTuples(NdbOperation::LM_Read); - - // 4. Specify Search Conditions - NdbScanFilter sf(myOperation); - sf.begin(NdbScanFilter::OR); - sf.eq(0, i); // Return rows with column 0 equal to i or - sf.eq(1, i+1); // column 1 equal to (i+1) - sf.end(); - - // 5. Attribute Actions - myRecAttr= myOperation->getValue("ATTR2", NULL); - @endcode - - Our second example uses an NdbIndexScanOperation to perform an index scan: - @code - // 1. Retrieve index object - myIndex= myDict->getIndex("MYORDEREDINDEX", "MYTABLENAME"); - - // 2. Create - myOperation= myTransaction->getNdbIndexScanOperation(myIndex); - - // 3. Define type of operation and lock mode - myOperation->readTuples(NdbOperation::LM_Read); - - // 4. Specify Search Conditions - // All rows with ATTR1 between i and (i+1) - myOperation->setBound("ATTR1", NdbIndexScanOperation::BoundGE, i); - myOperation->setBound("ATTR1", NdbIndexScanOperation::BoundLE, i+1); - - // 5. Attribute Actions - myRecAttr = MyOperation->getValue("ATTR2", NULL); - @endcode - - Some additional discussion of each step required to perform a scan follows: - - <h4>Step 1: Define Scan Operation Type</h4> - It is important to remember that only a single operation is supported for each scan operation - (@ref NdbScanOperation::readTuples() or @ref NdbIndexScanOperation::readTuples()). - - @note If you want to define multiple scan operations within the same - transaction, then you need to call - NdbTransaction::getNdbScanOperation() or - NdbTransaction::getNdbIndexScanOperation() separately for <b>each</b> operation. - - <h4>Step 2: Specify Search Conditions</h4> - The search condition is used to select tuples. - If no search condition is specified, the scan will return all rows - in the table. - - The search condition can be an @ref NdbScanFilter (which can be used on both - @ref NdbScanOperation and @ref NdbIndexScanOperation) or bounds which - can only be used on index scans (@ref NdbIndexScanOperation::setBound()). - An index scan can use both NdbScanFilter and bounds. - - @note When NdbScanFilter is used, each row is examined, whether or not it is - actually returned. However, when using bounds, only rows within the bounds will be examined. - - <h4>Step 3: Specify Attribute Actions</h4> - - Next, it is necessary to define which attributes should be read. - As with transaction attributes, scan attributes are defined by name but it is - also possible to use the attributes' identities to define attributes. - - As previously discussed (see @ref secSync), the value read is returned as - an NdbRecAttr object by the NdbOperation::getValue() method. - - <h3>Using Scan to Update/Delete</h3> - Scanning can also be used to update or delete rows. - This is performed by - -# Scanning using exclusive locks (using NdbOperation::LM_Exclusive) - -# When iterating through the result set, for each row optionally calling - either NdbScanOperation::updateCurrentTuple() or - NdbScanOperation::deleteCurrentTuple() - -# (If performing NdbScanOperation::updateCurrentTuple():) - Setting new values for records simply by using @ref NdbOperation::setValue(). - NdbOperation::equal() should <em>not</em> be called in such cases, as the primary - key is retrieved from the scan. - - @note The actual update or delete will not be performed until the next - call to NdbTransaction::execute(), just as with single row operations. - NdbTransaction::execute() also must be called before any locks are released; - see @ref secScanLocks for more information. - - <h4>Features Specific to Index Scans</h4> - - When performing an index scan, it is possible to - scan only a subset of a table using @ref NdbIndexScanOperation::setBound(). - In addition, result sets can be sorted in either ascending or descending order, using - @ref NdbIndexScanOperation::readTuples(). Note that rows are returned unordered - by default, that is, unless <var>sorted</var> is set to <b>true</b>. - It is also important to note that, when using NdbIndexScanOperation::BoundEQ - on a partition key, only fragments containing rows will actually be scanned. - - @note When performing a sorted scan, any value passed as the - NdbIndexScanOperation::readTuples() method's <code>parallel</code> argument - will be ignored and maximum parallelism will be used instead. In other words, all - fragments which it is possible to scan will be scanned simultaneously and in parallel - in such cases. - - @subsection secScanLocks Lock handling with scans - - Performing scans on either a tables or an index has the potential - return a great many records; however, Ndb will lock only a predetermined - number of rows per fragment at a time. - How many rows will be locked per fragment is controlled by the - <var>batch</var> parameter passed to NdbScanOperation::readTuples(). - - In order to allow the application to handle how locks are released, - NdbScanOperation::nextResult() has a Boolean parameter <var>fetch_allow</var>. - If NdbScanOperation::nextResult() is called with <var>fetch_allow</var> equal to - <b>false</b>, then no locks may be released as result of the function call. - Otherwise the locks for the current batch may be released. - - This next example shows a scan delete that handle locks in an efficient manner. - For the sake of brevity, we omit error-handling. - @code - int check; - - // Outer loop for each batch of rows - while((check = MyScanOperation->nextResult(true)) == 0) - { - do - { - // Inner loop for each row within batch - MyScanOperation->deleteCurrentTuple(); - } while((check = MyScanOperation->nextResult(false)) == 0); - - // When no more rows in batch, exeute all defined deletes - MyTransaction->execute(NoCommit); - } - @endcode - - See @ref ndbapi_scan.cpp for a more complete example of a scan. - - @section secError Error Handling - - Errors can occur either when operations making up a transaction are being - defined, or when the transaction is actually being executed. Catching and - handling either sort of error requires testing the value returned by - NdbTransaction::execute(), and then, if an error is indicated (that is, - if this value is equal to -1), using the following two methods in order to - identify the error's type and location: - - - NdbTransaction::getNdbErrorOperation() returns a reference to the - operation causing the most recent error. - - NdbTransaction::getNdbErrorLine() yields the method number of the - erroneous method in the operation. - - This short example illustrates how to detect an error and to use these - two methods to identify it: - - @code - theTransaction = theNdb->startTransaction(); - theOperation = theTransaction->getNdbOperation("TEST_TABLE"); - if (theOperation == NULL) goto error; - theOperation->readTuple(NdbOperation::LM_Read); - theOperation->setValue("ATTR_1", at1); - theOperation->setValue("ATTR_2", at1); // Error occurs here - theOperation->setValue("ATTR_3", at1); - theOperation->setValue("ATTR_4", at1); - - if (theTransaction->execute(Commit) == -1) { - errorLine = theTransaction->getNdbErrorLine(); - errorOperation = theTransaction->getNdbErrorOperation(); - } - @endcode - - Here <code>errorLine</code> will be 3, as the error occurred in the - third method called on the NdbOperation object (in this case, - <code>theOperation</code>); if the result of - NdbTransaction::getNdbErrorLine() is 0, this means that the error - occurred when the operations were executed. In this example, - <code>errorOperation</code> will be a pointer to the <code>theOperation</code> - object. The NdbTransaction::getNdbError() method returns an NdbError - object providing information about the error. - - @note Transactions are <b>not</b> automatically closed when an error occurs. Call - Ndb::closeTransaction() to close the transaction. - - One recommended way to handle a transaction failure - (i.e. an error is reported) is to: - -# Rollback transaction (call NdbTransaction::execute() with a special parameter) - -# Close transaction (call NdbTransaction::closeTransaction()) - -# If the error was temporary, attempt to restart the transaction - - Several errors can occur when a transaction contains multiple - operations which are simultaneously executed. - In this case the application has to go through all operations - and query their NdbError objects to find out what really happened. - - It is also important to note that errors can occur even when a commit is - reported as successful. In order to handle such situations, the NDB API - provides an additional NdbTransaction::commitStatus() method to check the - transactions's commit status. - -******************************************************************************/ - -/** - * @page ndbapi_simple.cpp ndbapi_simple.cpp - * @include ndbapi_simple.cpp - */ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - * @page ndbapi_async.cpp ndbapi_async.cpp - * @include ndbapi_async.cpp - */ -/** - * @page ndbapi_async1.cpp ndbapi_async1.cpp - * @include ndbapi_async1.cpp - */ -#endif - -/** - * @page ndbapi_retries.cpp ndbapi_retries.cpp - * @include ndbapi_retries.cpp - */ - -/** - * @page ndbapi_simple_index.cpp ndbapi_simple_index.cpp - * @include ndbapi_simple_index.cpp - */ - -/** - * @page ndbapi_scan.cpp ndbapi_scan.cpp - * @include ndbapi_scan.cpp - */ - -/** - * @page ndbapi_event.cpp ndbapi_event.cpp - * @include ndbapi_event.cpp - */ - - -/** - @page secAdapt Adaptive Send Algorithm - - At the time of "sending" a transaction - (using NdbTransaction::execute()), the transactions - are in reality <em>not</em> immediately transfered to the NDB Kernel. - Instead, the "sent" transactions are only kept in a - special send list (buffer) in the Ndb object to which they belong. - The adaptive send algorithm decides when transactions should - actually be transferred to the NDB kernel. - - The NDB API is designed as a multi-threaded interface and so - it is often desirable to transfer database operations from more than - one thread at a time. - The NDB API keeps track of which Ndb objects are active in transferring - information to the NDB kernel and the expected amount of threads to - interact with the NDB kernel. - Note that a given instance of Ndb should be used in at most one thread; - different threads should <em>not</em> use the same Ndb object. - - There are four conditions leading to the transfer of database - operations from Ndb object buffers to the NDB kernel: - -# The NDB Transporter (TCP/IP, OSE, SCI or shared memory) - decides that a buffer is full and sends it off. - The buffer size is implementation-dependent and - may change between MySQL Cluster releases. - On TCP/IP the buffer size is usually around 64 KB; - on OSE/Delta it is usually less than 2000 bytes. - Since each Ndb object provides a single buffer per storage node, - the notion of a "full" buffer is local to this storage node. - -# The accumulation of statistical data on transferred information - may force sending of buffers to all storage nodes. - -# Every 10 ms, a special transmission thread checks whether or not - any send activity has occurred. If not, then the thread will - force transmission to all nodes. - This means that 20 ms is the maximum time database operations - are kept waiting before being sent off. The 10-millisecond limit - is likely to become a configuration parameter in - future releases of MySQL Cluster; however, for checks that - are more frequent than each 10 ms, - additional support from the operating system is required. - -# For methods that are affected by the adaptive send alorithm - (such as NdbTransaction::execute()), there is a <var>force</var> - parameter - that overrides its default behaviour in this regard and forces - immediate transmission to all nodes. See the inidvidual NDB API class - listings for more information. - - @note The conditions listed above are subject to change in future releases - of MySQL Cluster. -*/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - - For each of these "sent" transactions, there are three - possible states: - -# Waiting to be transferred to NDB Kernel. - -# Has been transferred to the NDB Kernel and is currently - being processed. - -# Has been transferred to the NDB Kernel and has - finished processing. - Now it is waiting for a call to a poll method. - (When the poll method is invoked, - then the transaction callback method will be executed.) - - The poll method invoked (either Ndb::pollNdb() or Ndb::sendPollNdb()) - will return when: - -# at least 'minNoOfEventsToWakeup' of the transactions - in the send list have transitioned to state 3 as described above, and - -# all of these transactions have executed their callback methods. -*/ -#endif - -/** - @page secConcepts MySQL Cluster Concepts - - The <em>NDB Kernel</em> is the collection of storage nodes - belonging to a MySQL Cluster. - The application programmer can for most purposes view the - set of all storage nodes as a single entity. - Each storage node is made up of three main components: - - TC : The transaction co-ordinator - - ACC : Index storage component - - TUP : Data storage component - - When an application program executes a transaction, - it connects to one transaction co-ordinator on one storage node. - Usually, the programmer does not need to specify which TC should be used, - but in some cases when performance is important, the programmer can - provide "hints" to use a certain TC. - (If the node with the desired transaction co-ordinator is down, then another TC will - automatically take over the work.) - - Every storage node has an ACC and a TUP which store - the indexes and data portions of the database table fragment. - Even though one TC is responsible for the transaction, - several ACCs and TUPs on other storage nodes might be involved in the - execution of the transaction. - - - @section secNdbKernelConnection Selecting a Transaction Co-ordinator - - The default method is to select the transaction co-ordinator (TC) determined to be - the "closest" storage node, using a heuristic for proximity based on - the type of transporter connection. In order of closest to most distant, these are - - SCI - - SHM - - TCP/IP (localhost) - - TCP/IP (remote host) - If there are several connections available with the same proximity, they will each be - selected in a round robin fashion for every transaction. Optionally - one may set the method for TC selection to round-robin mode, where each new set of - transactions is placed on the next DB node. The pool of connections from which this - selection is made consists of all available connections. - - As noted previously, the application programmer can provide hints to the NDB API as to - which transaction co-ordinator it should use. This is done by - providing a <em>table</em> and <em>partition key</em> - (usually the primary key). - By using the primary key as the partition key, - the transaction will be placed on the node where the primary replica - of that record resides. - Note that this is only a hint; the system can be - reconfigured at any time, in which case the NDB API will choose a transaction - co-ordinator without using the hint. - For more information, see NdbDictionary::Column::getPartitionKey() and - Ndb::startTransaction(). The application programmer can specify - the partition key from SQL by using the construct, - <code>CREATE TABLE ... ENGINE=NDB PARTITION BY KEY (<var>attribute-list</var>);</code>. - - - @section secRecordStruct NDB Record Structure - The NDB Cluster engine used by MySQL Cluster is a relational database engine - storing records in tables just as with any other RDBMS. - Table rows represent records as tuples of relational data. - When a new table is created, its attribute schema is specified for the table as a whole, - and thus each record of the table has the same structure. Again, this is typical - of relational databases, and NDB is no different in this regard. - - - @subsection secKeys Primary Keys - Each record has from 1 up to 32 attributes which belong - to the primary key of the table. - - @section secTrans Transactions - - Transactions are committed first to main memory, - and then to disk after a global checkpoint (GCP) is issued. - Since all data is (in most NDB Cluster configurations) - synchronously replicated and stored on multiple NDB nodes, - the system can still handle processor failures without loss - of data. - However, in the case of a system failure (e.g. the whole system goes down), - then all (committed or not) transactions occurring since the latest GCP are lost. - - - @subsection secConcur Concurrency Control - NDB Cluster uses pessimistic concurrency control based on locking. - If a requested lock (implicit and depending on database operation) - cannot be attained within a specified time, - then a timeout error occurs. - - Concurrent transactions as requested by parallel application programs and - thread-based applications can sometimes deadlock when they try to access - the same information simultaneously. - Thus, applications need to be written in a manner so that timeout errors - occurring due to such deadlocks are handled gracefully. This generally - means that the transaction encountering a timeout should be rolled back - and restarted. - - - @section secHint Hints and Performance - - Placing the transaction co-ordinator in close proximity - to the actual data used in the transaction can in many cases - improve performance significantly. This is particularly true for - systems using TCP/IP. For example, a Solaris system using a single 500 MHz processor - has a cost model for TCP/IP communication which can be represented by the formula - - <code>[30 microseconds] + ([100 nanoseconds] * [<var>number of bytes</var>])</code> - - This means that if we can ensure that we use "popular" links we increase - buffering and thus drastically reduce the communication cost. - The same system using SCI has a different cost model: - - <code>[5 microseconds] + ([10 nanoseconds] * [<var>number of bytes</var>])</code> - - Thus, the efficiency of an SCI system is much less dependent on selection of - transaction co-ordinators. - Typically, TCP/IP systems spend 30-60% of their working time on communication, - whereas for SCI systems this figure is closer to 5-10%. - Thus, employing SCI for data transport means that less care from the NDB API - programmer is required and greater scalability can be achieved, even for - applications using data from many different parts of the database. - - A simple example is an application that uses many simple updates where - a transaction needs to update one record. - This record has a 32 bit primary key, - which is also the partition key. - Then the keyData will be the address of the integer - of the primary key and keyLen will be 4. -*/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - (A transaction's execution can also be divided into three - steps: prepare, send, and poll. This allows us to perform asynchronous - transactions. More about this later.) -*/ -#endif -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - Another way to execute several parallel transactions is to use - asynchronous transactions. -*/ -#endif -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - Operations are of two different kinds: - -# standard operations, and - -# interpreted program operations. -*/ -#endif -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - <h3>Interpreted Program Operations</h3> - The following types of interpreted program operations exist: - -# NdbOperation::interpretedUpdateTuple : - updates a tuple using an interpreted program - -# NdbOperation::interpretedDeleteTuple : - delete a tuple using an interpreted program - - The operations interpretedUpdateTuple and interpretedDeleteTuple both - work using the unique tuple key. - - These <em>interpreted programs</em> - make it possible to perform computations - inside the NDB Cluster Kernel instead of in the application - program. - This is sometimes very effective, since no intermediate results - are sent to the application, only the final result. - - - <h3>Interpreted Update and Delete</h3> - - Operations for interpreted updates and deletes must follow a - certain order when defining operations on a tuple. - As for read and write operations, - one must first define the operation type and then the search key. - -# The first step is to define the initial readings. - In this phase it is only allowed to use the - NdbOperation::getValue method. - This part might be empty. - -# The second step is to define the interpreted part. - The methods supported are the methods listed below except - NdbOperation::def_subroutine and NdbOperation::ret_sub - which can only be used in a subroutine. - NdbOperation::incValue and NdbOperation::subValue - increment and decrement attributes - (currently only unsigned integers supported). - This part can also be empty since interpreted updates - can be used for reading and updating the same tuple. - <p> - Even though getValue and setValue are not really interpreted - program instructions, it is still allowed to use them as - the last instruction of the program. - (If a getValue or setValue is found when an interpret_exit_ok - could have been issued then the interpreted_exit_ok - will be inserted. - A interpret_exit_ok should be viewed as a jump to the first - instruction after the interpreted instructions.) - -# The third step is to define all updates without any - interpreted program instructions. - Here a set of NdbOperation::setValue methods are called. - There might be zero such calls. - -# The fourth step is the final readings. - The initial readings reads the initial value of attributes - and the final readings reads them after their updates. - There might be zero NdbOperation::getValue calls. - -# The fifth step is possible subroutine definitions using - NdbOperation::def_subroutine and NdbOperation::ret_sub. -*/ -#endif -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - <h3>Interpreted Programs</h3> - Interpretation programs are executed in a - register-based virtual machine. - The virtual machine has eight 64 bit registers numbered 0-7. - Each register contains type information which is used both - for type conversion and for type checking. - - @note Arrays are currently <b>not</b> supported in the virtual machine. - Currently only unsigned integers are supported and of size - maximum 64 bits. - - All errors in the interpretation program will cause a - transaction abort, but will not affect any other transactions. - - The following are legal interpreted program instructions: - -# incValue : Add to an attribute - -# subValue : Subtract from an attribute - -# def_label : Define a label in the interpreted program - -# add_reg : Add two registers - -# sub_reg : Subtract one register from another - -# load_const_u32 : Load an unsigned 32 bit value into a register - -# load_const_u64 : Load an unsigned 64 bit value into a register - -# load_const_null : Load a NULL value into a register - -# read_attr : Read attribute value into a register - -# write_attr : Write a register value into an attribute - -# branch_ge : Compares registers and possibly jumps to specified label - -# branch_gt : Compares registers and possibly jumps to specified label - -# branch_le : Compares registers and possibly jumps to specified label - -# branch_lt : Compares registers and possibly jumps to specified label - -# branch_eq : Compares registers and possibly jumps to specified label - -# branch_ne : Compares registers and possibly jumps to specified label - -# branch_ne_null : Jumps if register does not contain NULL value - -# branch_eq_null : Jumps if register contains NULL value - -# branch_label : Unconditional jump to label - -# interpret_exit_ok : Exit interpreted program - (approving tuple if used in scan) - -# interpret_exit_nok : Exit interpreted program - (disqualifying tuple if used in scan) - - There are also three instructions for subroutines, which - are described in the next section. - - @subsection subsubSub Interpreted Programs: Subroutines - - The following are legal interpreted program instructions for - subroutines: - -# NdbOperation::def_subroutine : - Defines start of subroutine in interpreted program code - -# NdbOperation::call_sub : - Calls a subroutine - -# NdbOperation::ret_sub : - Return from subroutine - - The virtual machine executes subroutines using a stack for - its operation. - The stack allows for up to 24 subroutine calls in succession. - Deeper subroutine nesting will cause an abort of the transaction. - - All subroutines starts with the instruction - NdbOperation::def_subroutine and ends with the instruction - NdbOperation::ret_sub. - If it is necessary to return earlier in the subroutine - it has to be done using a branch_label instruction - to a label defined right before the - NdbOperation::ret_sub instruction. - - @note The subroutines are automatically numbered starting with 0. - The parameter used by NdbOperation::def_subroutine - should match the automatic numbering to make it easier to - debug the interpreted program. -*/ -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - @section secAsync Asynchronous Transactions - The asynchronous interface is used to increase the speed of - transaction executing by better utilizing the connection - between the application and the NDB Kernel. - The interface is used to send many transactions - at the same time to the NDB kernel. - This is often much more efficient than using synchronous transactions. - The main reason for using this method is to ensure that - Sending many transactions at the same time ensures that bigger - chunks of data are sent when actually sending and thus decreasing - the operating system overhead. - - The synchronous call to NdbTransaction::execute - normally performs three main steps:<br> - -# <b>Prepare</b> - Check transaction status - - if problems, abort the transaction - - if ok, proceed - -# <b>Send</b> - Send the defined operations since last execute - or since start of transaction. - -# <b>Poll</b> - Wait for response from NDB kernel. - - The asynchronous method NdbTransaction::executeAsynchPrepare - only perform step 1. - (The abort part in step 1 is only prepared for. The actual - aborting of the transaction is performed in a later step.) - - Asynchronous transactions are defined and executed - in the following way. - -# Start (create) transactions (same way as for the - synchronous transactions) - -# Add and define operations (also as in the synchronous case) - -# <b>Prepare</b> transactions - (using NdbTransaction::executeAsynchPrepare or - NdbTransaction::executeAsynch) - -# <b>Send</b> transactions to NDB Kernel - (using Ndb::sendPreparedTransactions, - NdbTransaction::executeAsynch, or Ndb::sendPollNdb) - -# <b>Poll</b> NDB kernel to find completed transactions - (using Ndb::pollNdb or Ndb::sendPollNdb) - -# Close transactions (same way as for the synchronous transactions) - - See example program in section @ref ndbapi_example2.cpp. - - This prepare-send-poll protocol actually exists in four variants: - - (Prepare-Send-Poll). This is the one-step variant provided - by synchronous transactions. - - (Prepare-Send)-Poll. This is the two-step variant using - NdbTransaction::executeAsynch and Ndb::pollNdb. - - Prepare-(Send-Poll). This is the two-step variant using - NdbTransaction::executeAsynchPrepare and Ndb::sendPollNdb. - - Prepare-Send-Poll. This is the three-step variant using - NdbTransaction::executeAsynchPrepare, Ndb::sendPreparedTransactions, and - Ndb::pollNdb. - - Transactions first has to be prepared by using method - NdbTransaction::executeAsynchPrepare or NdbTransaction::executeAsynch. - The difference between these is that - NdbTransaction::executeAsynch also sends the transaction to - the NDB kernel. - One of the arguments to these methods is a callback method. - The callback method is executed during polling (item 5 above). - - Note that NdbTransaction::executeAsynchPrepare does not - send the transaction to the NDB kernel. When using - NdbTransaction::executeAsynchPrepare, you either have to call - Ndb::sendPreparedTransactions or Ndb::sendPollNdb to send the - database operations. - (Ndb::sendPollNdb also polls Ndb for completed transactions.) - - The methods Ndb::pollNdb and Ndb::sendPollNdb checks if any - sent transactions are completed. The method Ndb::sendPollNdb - also send all prepared transactions before polling NDB. - Transactions still in the definition phase (i.e. items 1-3 above, - transactions which has not yet been sent to the NDB kernel) are not - affected by poll-calls. - The poll method invoked (either Ndb::pollNdb or Ndb::sendPollNdb) - will return when: - -# at least 'minNoOfEventsToWakeup' of the transactions - are finished processing, and - -# all of these transactions have executed their - callback methods. - - The poll method returns the number of transactions that - have finished processing and executed their callback methods. - - @note When an asynchronous transaction has been started and sent to - the NDB kernel, it is not allowed to execute any methods on - objects belonging to this transaction until the transaction - callback method have been executed. - (The transaction is stated and sent by either - NdbTransaction::executeAsynch or through the combination of - NdbTransaction::executeAsynchPrepare and either - Ndb::sendPreparedTransactions or Ndb::sendPollNdb). - - More about how transactions are sent the NDB Kernel is - available in section @ref secAdapt. -*/ -#endif - - -/** - - Put this back when real array ops are supported - i.e. get/setValue("kalle[3]"); - - @subsection secArrays Array Attributes - A table attribute in NDB Cluster can be of type <var>Array</var>, - meaning that the attribute consists of an ordered sequence of - elements. In such cases, <var>attribute size</var> is the size - (expressed in bits) of any one element making up the array; the - <var>array size</var> is the number of elements in the array. - -*/ - -#ifndef Ndb_H -#define Ndb_H - -#include <ndb_types.h> -#include <ndbapi_limits.h> -#include <ndb_cluster_connection.hpp> -#include <NdbError.hpp> -#include <NdbDictionary.hpp> - -class NdbObjectIdMap; -class NdbOperation; -class NdbEventOperationImpl; -class NdbScanOperation; -class NdbIndexScanOperation; -class NdbIndexOperation; -class NdbTransaction; -class NdbApiSignal; -class NdbRecAttr; -class NdbLabel; -class NdbBranch; -class NdbSubroutine; -class NdbCall; -class Table; -class BaseString; -class NdbEventOperation; -class NdbBlob; -class NdbReceiver; - -typedef void (* NdbEventCallback)(NdbEventOperation*, Ndb*, void*); - - -#if defined NDB_OSE -/** - * Default time to wait for response after request has been sent to - * NDB Cluster (Set to 10 seconds usually, but to 100 s in - * the OSE operating system) - */ -#define WAITFOR_RESPONSE_TIMEOUT 100000 // Milliseconds -#else -#define WAITFOR_RESPONSE_TIMEOUT 120000 // Milliseconds -#endif - -#define NDB_MAX_INTERNAL_TABLE_LENGTH NDB_MAX_DATABASE_NAME_SIZE + \ - NDB_MAX_SCHEMA_NAME_SIZE + \ - NDB_MAX_TAB_NAME_SIZE*2 - -/** - * @class Ndb - * @brief Represents the NDB kernel and is the main class of the NDB API. - * - * Always start your application program by creating an Ndb object. - * By using several Ndb objects it is possible to design - * a multi-threaded application, but note that Ndb objects - * cannot be shared by several threads. - * Different threads should use different Ndb objects. - * A thread might however use multiple Ndb objects. - * Currently there is a limit of maximum 128 Ndb objects - * per application process. - * - * @note It is not allowed to call methods in the NDB API - * on the same Ndb object in different threads - * simultaneously (without special handling of the - * Ndb object). - * - * @note The Ndb object is multi-thread safe in the following manner. - * Each Ndb object can ONLY be handled in one thread. - * If an Ndb object is handed over to another thread then the - * application must ensure that a memory barrier is used to - * ensure that the new thread see all updates performed by - * the previous thread. - * Semaphores, mutexes and so forth are easy ways of issuing memory - * barriers without having to bother about the memory barrier concept. - * - */ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -// to be documented later -/* - * If one Ndb object is used to handle parallel transactions through the - * asynchronous programming interface, please read the notes regarding - * asynchronous transactions (Section @ref secAsync). - * The asynchronous interface provides much higher performance - * in some situations, but is more complicated for the application designer. - * - * @note Each Ndb object should either use the methods for - * asynchronous transaction or the methods for - * synchronous transactions but not both. - */ -#endif - -class Ndb -{ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbReceiver; - friend class NdbOperation; - friend class NdbEventOperationImpl; - friend class NdbTransaction; - friend class Table; - friend class NdbApiSignal; - friend class NdbIndexOperation; - friend class NdbScanOperation; - friend class NdbIndexScanOperation; - friend class NdbDictionaryImpl; - friend class NdbDictInterface; - friend class NdbBlob; -#endif - -public: - /** - * @name General - * @{ - */ - /** - * The Ndb object represents a connection to a database. - * - * @note The init() method must be called before the Ndb object may actually be used. - * - * @param ndb_cluster_connection is a connection to the cluster containing - * the database to be used - * @param aCatalogName is the name of the catalog to be used. - * @note The catalog name provides a namespace for the tables and - * indexes created in any connection from the Ndb object. - * @param aSchemaName is the name of the schema you - * want to use. - * @note The schema name provides an additional namespace - * for the tables and indexes created in a given catalog. - */ - Ndb(Ndb_cluster_connection *ndb_cluster_connection, - const char* aCatalogName = "", const char* aSchemaName = "def"); - - ~Ndb(); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * The current catalog name can be fetched by getCatalogName. - * - * @return the current catalog name - */ - const char * getCatalogName() const; - - /** - * The current catalog name can be set by setCatalogName. - * - * @param aCatalogName is the new name of the current catalog - */ - void setCatalogName(const char * aCatalogName); - - /** - * The current schema name can be fetched by getSchemaName. - * - * @return the current schema name - */ - const char * getSchemaName() const; - - /** - * The current schema name can be set by setSchemaName. - * - * @param aSchemaName is the new name of the current schema - */ - void setSchemaName(const char * aSchemaName); -#endif - - /** - * The current database name can be fetched by getDatabaseName. - * - * @return the current database name - */ - const char * getDatabaseName() const; - - /** - * The current database name can be set by setDatabaseName. - * - * @param aDatabaseName is the new name of the current database - */ - void setDatabaseName(const char * aDatabaseName); - - /** - * The current database schema name can be fetched by getDatabaseSchemaName. - * - * @return the current database schema name - */ - const char * getDatabaseSchemaName() const; - - /** - * The current database schema name can be set by setDatabaseSchemaName. - * - * @param aDatabaseSchemaName is the new name of the current database schema - */ - void setDatabaseSchemaName(const char * aDatabaseSchemaName); - - /** - * Initializes the Ndb object - * - * @param maxNoOfTransactions - * Maximum number of parallel - * NdbTransaction objects that can be handled by the Ndb object. - * Maximum value is 1024. - * - * @note each scan or index scan operation uses one extra - * NdbTransaction object - * - * @return 0 if successful, -1 otherwise. - */ - int init(int maxNoOfTransactions = 4); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Wait for Ndb object to successfully set-up connections to - * the NDB kernel. - * Starting to use the Ndb object without using this method - * gives unspecified behavior. - * - * @param timeout The maximum time we will wait for - * the initiation process to finish. - * Timeout is expressed in seconds. - * @return 0: Ndb is ready and timeout has not occurred.<br> - * -1: Timeout has expired - */ - int waitUntilReady(int timeout = 60); -#endif - - /** @} *********************************************************************/ - - /** - * @name Meta Information - * @{ - */ - - /** - * Get an object for retrieving or manipulating database schema information - * - * @note this object operates outside any transaction - * - * @return Object containing meta information about all tables - * in NDB Cluster. - */ - class NdbDictionary::Dictionary* getDictionary() const; - - - /** @} *********************************************************************/ - - /** - * @name Event subscriptions - * @{ - */ - - /** - * Create a subcription to an event defined in the database - * - * @param eventName - * unique identifier of the event - * @param bufferLength - * circular buffer size for storing event data - * - * @return Object representing an event, NULL on failure - */ - NdbEventOperation* createEventOperation(const char* eventName, - const int bufferLength); - /** - * Drop a subscription to an event - * - * @param eventOp - * Event operation - * - * @return 0 on success - */ - int dropEventOperation(NdbEventOperation* eventOp); - - /** - * Wait for an event to occur. Will return as soon as an event - * is detected on any of the created events. - * - * @param aMillisecondNumber - * maximum time to wait - * - * @return the number of events that has occured, -1 on failure - */ - int pollEvents(int aMillisecondNumber); - - /** @} *********************************************************************/ - - /** - * @name Starting and Closing Transactions - * @{ - */ - - /** - * Start a transaction - * - * @note When the transaction is completed it must be closed using - * Ndb::closeTransaction or NdbTransaction::close. - * The transaction must be closed independent of its outcome, i.e. - * even if there is an error. - * - * @param table Pointer to table object used for deciding - * which node to run the Transaction Coordinator on - * @param keyData Pointer to partition key corresponding to - * <var>table</var> - * @param keyLen Length of partition key expressed in bytes - * - * @return NdbTransaction object, or NULL on failure. - */ - NdbTransaction* startTransaction(const NdbDictionary::Table *table= 0, - const char *keyData = 0, - Uint32 keyLen = 0); - - /** - * Close a transaction. - * - * @note should be called after the transaction has completed, irrespective - * of success or failure - */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * @note It is not allowed to call Ndb::closeTransaction after sending the - * transaction asynchronously with either - * Ndb::sendPreparedTransactions or - * Ndb::sendPollNdb before the callback method has been called. - * (The application should keep track of the number of - * outstanding transactions and wait until all of them - * has completed before calling Ndb::closeTransaction). - * If the transaction is not committed it will be aborted. - */ -#endif - void closeTransaction(NdbTransaction*); - - /** @} *********************************************************************/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - // to be documented later - /** - * @name Asynchronous Transactions - * @{ - */ - - /** - * Wait for prepared transactions. - * Will return as soon as at least 'minNoOfEventsToWakeUp' - * of them have completed, or the maximum time given as timeout has passed. - * - * @param aMillisecondNumber - * Maximum time to wait for transactions to complete. Polling - * without wait is achieved by setting the timer to zero. - * Time is expressed in milliseconds. - * @param minNoOfEventsToWakeup Minimum number of transactions - * which has to wake up before the poll-call will return. - * If minNoOfEventsToWakeup is - * set to a value larger than 1 then this is the minimum - * number of transactions that need to complete before the - * poll will return. - * Setting it to zero means that one should wait for all - * outstanding transactions to return before waking up. - * @return Number of transactions polled. - */ - int pollNdb(int aMillisecondNumber = WAITFOR_RESPONSE_TIMEOUT, - int minNoOfEventsToWakeup = 1); - - /** - * This send method will send all prepared database operations. - * The default method is to do it non-force and instead - * use the adaptive algorithm. (See Section @ref secAdapt.) - * The second option is to force the sending and - * finally there is the third alternative which is - * also non-force but also making sure that the - * adaptive algorithm do not notice the send. - * In this case the sending will be performed on a - * cyclical 10 millisecond event. - * - * @param forceSend When operations should be sent to NDB Kernel. - * (See @ref secAdapt.) - * - 0: non-force, adaptive algorithm notices it (default); - * - 1: force send, adaptive algorithm notices it; - * - 2: non-force, adaptive algorithm do not notice the send. - */ - void sendPreparedTransactions(int forceSend = 0); - - /** - * This is a send-poll variant that first calls - * Ndb::sendPreparedTransactions and then Ndb::pollNdb. - * It is however somewhat faster than calling the methods - * separately, since some mutex-operations are avoided. - * See documentation of Ndb::pollNdb and Ndb::sendPreparedTransactions - * for more details. - * - * @param aMillisecondNumber Timeout specifier - * Polling without wait is achieved by setting the - * millisecond timer to zero. - * @param minNoOfEventsToWakeup Minimum number of transactions - * which has to wake up before the poll-call will return. - * If minNoOfEventsToWakeup is - * set to a value larger than 1 then this is the minimum - * number of transactions that need to complete before the - * poll-call will return. - * Setting it to zero means that one should wait for all - * outstanding transactions to return before waking up. - * @param forceSend When operations should be sent to NDB Kernel. - * (See @ref secAdapt.) - * - 0: non-force, adaptive algorithm notices it (default); - * - 1: force send, adaptive algorithm notices it; - * - 2: non-force, adaptive algorithm does not notice the send. - * @return Number of transactions polled. - */ - int sendPollNdb(int aMillisecondNumber = WAITFOR_RESPONSE_TIMEOUT, - int minNoOfEventsToWakeup = 1, - int forceSend = 0); - /** @} *********************************************************************/ -#endif - - /** - * @name Error Handling - * @{ - */ - - /** - * Get the NdbError object - * - * @note The NdbError object is valid until a new NDB API method is called. - */ - const NdbError & getNdbError() const; - - /** - * Get a NdbError object for a specific error code - * - * The NdbError object is valid until you call a new NDB API method. - */ - const NdbError & getNdbError(int errorCode); - - - /** @} *********************************************************************/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Get the application node identity. - * - * @return Node id of this application. - */ - int getNodeId(); - - bool usingFullyQualifiedNames(); - - /** - * Different types of tampering with the NDB Cluster. - * <b>Only for debugging purposes only.</b> - */ - enum TamperType { - LockGlbChp = 1, ///< Lock GCP - UnlockGlbChp, ///< Unlock GCP - CrashNode, ///< Crash an NDB node - ReadRestartGCI, ///< Request the restart GCI id from NDB Cluster - InsertError ///< Execute an error in NDB Cluster - ///< (may crash system) - }; - - /** - * For testing purposes it is possible to tamper with the NDB Cluster - * (i.e. send a special signal to DBDIH, the NDB distribution handler). - * <b>This feature should only used for debugging purposes.</b> - * In a release versions of NDB Cluster, - * this call always return -1 and does nothing. - * - * @param aAction Action to be taken according to TamperType above - * - * @param aNode Which node the action will be taken - * -1: Master DIH. - * 0-16: Nodnumber. - * @return -1 indicates error, other values have meaning dependent - * on type of tampering. - */ - int NdbTamper(TamperType aAction, int aNode); - - /** - * Return a unique tuple id for a table. The id sequence is - * ascending but may contain gaps. - * - * @param aTableName table name - * - * @param cacheSize number of values to cache in this Ndb object - * - * @return tuple id or 0 on error - */ - Uint64 getAutoIncrementValue(const char* aTableName, - Uint32 cacheSize = 1); - Uint64 getAutoIncrementValue(const NdbDictionary::Table * aTable, - Uint32 cacheSize = 1); - Uint64 readAutoIncrementValue(const char* aTableName); - Uint64 readAutoIncrementValue(const NdbDictionary::Table * aTable); - bool setAutoIncrementValue(const char* aTableName, Uint64 val, - bool increase = false); - bool setAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 val, - bool increase = false); - Uint64 getTupleIdFromNdb(const char* aTableName, - Uint32 cacheSize = 1000); - Uint64 getTupleIdFromNdb(Uint32 aTableId, - Uint32 cacheSize = 1000); - Uint64 readTupleIdFromNdb(Uint32 aTableId); - bool setTupleIdInNdb(const char* aTableName, Uint64 val, - bool increase); - bool setTupleIdInNdb(Uint32 aTableId, Uint64 val, bool increase); - Uint64 opTupleIdOnNdb(Uint32 aTableId, Uint64 opValue, Uint32 op); - - /** - */ - NdbTransaction* hupp( NdbTransaction* ); - Uint32 getReference() const { return theMyRef;} -#endif - -/***************************************************************************** - * These are service routines used by the other classes in the NDBAPI. - ****************************************************************************/ -private: - - void setup(Ndb_cluster_connection *ndb_cluster_connection, - const char* aCatalogName, const char* aSchemaName); - - void connected(Uint32 block_reference); - - - NdbTransaction* startTransactionLocal(Uint32 aPrio, Uint32 aFragmentId); - -// Connect the connection object to the Database. - int NDB_connect(Uint32 tNode); - NdbTransaction* doConnect(Uint32 nodeId); - void doDisconnect(); - - NdbReceiver* getNdbScanRec();// Get a NdbScanReceiver from idle list - NdbLabel* getNdbLabel(); // Get a NdbLabel from idle list - NdbBranch* getNdbBranch(); // Get a NdbBranch from idle list - NdbSubroutine* getNdbSubroutine();// Get a NdbSubroutine from idle - NdbCall* getNdbCall(); // Get a NdbCall from idle list - NdbApiSignal* getSignal(); // Get an operation from idle list - NdbRecAttr* getRecAttr(); // Get a receeive attribute object from - // idle list of the Ndb object. - NdbOperation* getOperation(); // Get an operation from idle list - NdbIndexScanOperation* getScanOperation(); // Get a scan operation from idle - NdbIndexOperation* getIndexOperation();// Get an index operation from idle - - class NdbGlobalEventBufferHandle* getGlobalEventBufferHandle(); - NdbBlob* getNdbBlob();// Get a blob handle etc - - void releaseSignal(NdbApiSignal* anApiSignal); - void releaseSignalsInList(NdbApiSignal** pList); - void releaseNdbScanRec(NdbReceiver* aNdbScanRec); - void releaseNdbLabel(NdbLabel* anNdbLabel); - void releaseNdbBranch(NdbBranch* anNdbBranch); - void releaseNdbSubroutine(NdbSubroutine* anNdbSubroutine); - void releaseNdbCall(NdbCall* anNdbCall); - void releaseRecAttr (NdbRecAttr* aRecAttr); - void releaseOperation(NdbOperation* anOperation); - void releaseScanOperation(NdbIndexScanOperation*); - void releaseNdbBlob(NdbBlob* aBlob); - - void check_send_timeout(); - void remove_sent_list(Uint32); - Uint32 insert_completed_list(NdbTransaction*); - Uint32 insert_sent_list(NdbTransaction*); - - // Handle a received signal. Used by both - // synchronous and asynchronous interface - void handleReceivedSignal(NdbApiSignal* anApiSignal, struct LinearSectionPtr ptr[3]); - - // Receive response signals - int receiveResponse(int waitTime = WAITFOR_RESPONSE_TIMEOUT); - - int sendRecSignal(Uint16 aNodeId, - Uint32 aWaitState, - NdbApiSignal* aSignal, - Uint32 nodeSequence); - - // Sets Restart GCI in Ndb object - void RestartGCI(int aRestartGCI); - - // Get block number of this NDBAPI object - int getBlockNumber(); - - /**************************************************************************** - * These are local service routines used by this class. - ***************************************************************************/ - - int createConIdleList(int aNrOfCon); - int createOpIdleList( int nrOfOp ); - - void freeOperation(); // Free the first idle operation. - void freeScanOperation(); // Free the first idle scan operation. - void freeIndexOperation(); // Free the first idle index operation. - void freeNdbCon(); // Free the first idle connection. - void freeSignal(); // Free the first idle signal - void freeRecAttr(); // Free the first idle receive attr obj - void freeNdbLabel(); // Free the first idle NdbLabel obj - void freeNdbBranch();// Free the first idle NdbBranch obj - void freeNdbSubroutine();// Free the first idle NdbSubroutine obj - void freeNdbCall(); // Free the first idle NdbCall obj - void freeNdbScanRec(); // Free the first idle NdbScanRec obj - void freeNdbBlob(); // Free the first etc - - NdbTransaction* getNdbCon(); // Get a connection from idle list - - /** - * Get a connected NdbTransaction to nodeId - * Returns NULL if none found - */ - NdbTransaction* getConnectedNdbTransaction(Uint32 nodeId); - - // Release and disconnect from DBTC a connection - // and seize it to theConIdleList - void releaseConnectToNdb (NdbTransaction*); - - // Release a connection to idle list - void releaseNdbCon (NdbTransaction*); - - int checkInitState(); // Check that we are initialized - void report_node_failure(Uint32 node_id); // Report Failed node - void report_node_failure_completed(Uint32 node_id); // Report Failed node(NF comp.) - - void checkFailedNode(); // Check for failed nodes - - int NDB_connect(); // Perform connect towards NDB Kernel - - // Release arrays of NdbTransaction pointers - void releaseTransactionArrays(); - - Uint32 pollCompleted(NdbTransaction** aCopyArray); - void sendPrepTrans(int forceSend); - void reportCallback(NdbTransaction** aCopyArray, Uint32 aNoOfComplTrans); - void waitCompletedTransactions(int milliSecs, int noOfEventsToWaitFor); - void completedTransaction(NdbTransaction* aTransaction); - void completedScanTransaction(NdbTransaction* aTransaction); - - void abortTransactionsAfterNodeFailure(Uint16 aNodeId); - - static - const char * externalizeTableName(const char * internalTableName, bool fullyQualifiedNames); - const char * externalizeTableName(const char * internalTableName); - const char * internalizeTableName(const char * externalTableName); - - static - const char * externalizeIndexName(const char * internalIndexName, bool fullyQualifiedNames); - const char * externalizeIndexName(const char * internalIndexName); - const char * internalizeIndexName(const NdbTableImpl * table, - const char * externalIndexName); - - static - const BaseString getDatabaseFromInternalName(const char * internalName); - static - const BaseString getSchemaFromInternalName(const char * internalName); - - void* int2void (Uint32 val); - NdbReceiver* void2rec (void* val); - NdbTransaction* void2con (void* val); - NdbOperation* void2rec_op (void* val); - NdbIndexOperation* void2rec_iop (void* val); - -/****************************************************************************** - * These are the private variables in this class. - *****************************************************************************/ - NdbTransaction** thePreparedTransactionsArray; - NdbTransaction** theSentTransactionsArray; - NdbTransaction** theCompletedTransactionsArray; - - Uint32 theNoOfPreparedTransactions; - Uint32 theNoOfSentTransactions; - Uint32 theNoOfCompletedTransactions; - Uint32 theNoOfAllocatedTransactions; - Uint32 theMaxNoOfTransactions; - Uint32 theMinNoOfEventsToWakeUp; - - Uint32 theNextConnectNode; - - bool fullyQualifiedNames; - - // Ndb database name. - char theDataBase[NDB_MAX_DATABASE_NAME_SIZE]; - // Ndb database schema name. - char theDataBaseSchema[NDB_MAX_SCHEMA_NAME_SIZE]; - char prefixName[NDB_MAX_INTERNAL_TABLE_LENGTH]; - char * prefixEnd; - - class NdbImpl * theImpl; - class NdbDictionaryImpl* theDictionary; - class NdbGlobalEventBufferHandle* theGlobalEventBufferHandle; - - NdbTransaction* theConIdleList; // First connection in idle list. - - NdbOperation* theOpIdleList; // First operation in the idle list. - - NdbIndexScanOperation* theScanOpIdleList; // First scan operation in the idle list. - NdbIndexOperation* theIndexOpIdleList; // First index operation in the idle list. - NdbTransaction* theTransactionList; - NdbTransaction** theConnectionArray; - NdbRecAttr* theRecAttrIdleList; - NdbApiSignal* theSignalIdleList; // First signal in idlelist. - NdbLabel* theLabelList; // First label descriptor in list - NdbBranch* theBranchList; // First branch descriptor in list - NdbSubroutine* theSubroutineList; // First subroutine descriptor in - NdbCall* theCallList; // First call descriptor in list - NdbReceiver* theScanList; - NdbBlob* theNdbBlobIdleList; - - Uint32 theMyRef; // My block reference - Uint32 theNode; // The node number of our node - - Uint64 the_last_check_time; - Uint64 theFirstTransId; - - // The tupleId is retreived from DB the - // tupleId is unique for each tableid. - Uint64 theFirstTupleId[2048]; - Uint64 theLastTupleId[2048]; - - Uint32 theRestartGCI; // the Restart GCI used by DIHNDBTAMPER - - NdbError theError; - - Int32 theNdbBlockNumber; - - enum InitType { - NotConstructed, - NotInitialised, - StartingInit, - Initialised, - InitConfigError - } theInitState; - - NdbApiSignal* theCommitAckSignal; - - -#ifdef POORMANSPURIFY - int cfreeSignals; - int cnewSignals; - int cgetSignals; - int creleaseSignals; -#endif - - static void executeMessage(void*, NdbApiSignal *, - struct LinearSectionPtr ptr[3]); - static void statusMessage(void*, Uint32, bool, bool); -#ifdef VM_TRACE - void printState(const char* fmt, ...); -#endif -}; - -#endif diff --git a/ndb/include/ndbapi/NdbApi.hpp b/ndb/include/ndbapi/NdbApi.hpp deleted file mode 100644 index aed4d5efbd7..00000000000 --- a/ndb/include/ndbapi/NdbApi.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* 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 NdbApi_H -#define NdbApi_H - -#include "ndb_init.h" -#include "ndb_cluster_connection.hpp" -#include "ndbapi_limits.h" -#include "Ndb.hpp" -#include "NdbTransaction.hpp" -#include "NdbOperation.hpp" -#include "NdbScanOperation.hpp" -#include "NdbIndexOperation.hpp" -#include "NdbIndexScanOperation.hpp" -#include "NdbScanFilter.hpp" -#include "NdbRecAttr.hpp" -#include "NdbDictionary.hpp" -#include "NdbEventOperation.hpp" -#include "NdbPool.hpp" -#include "NdbBlob.hpp" -#endif diff --git a/ndb/include/ndbapi/NdbBlob.hpp b/ndb/include/ndbapi/NdbBlob.hpp deleted file mode 100644 index 271287b765c..00000000000 --- a/ndb/include/ndbapi/NdbBlob.hpp +++ /dev/null @@ -1,334 +0,0 @@ -/* 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 NdbBlob_H -#define NdbBlob_H - -#include <ndb_types.h> -#include <NdbDictionary.hpp> -#include <NdbTransaction.hpp> -#include <NdbError.hpp> - -class Ndb; -class NdbTransaction; -class NdbOperation; -class NdbRecAttr; -class NdbTableImpl; -class NdbColumnImpl; - -/** - * @class NdbBlob - * @brief Blob handle - * - * Blob data is stored in 2 places: - * - * - "header" and "inline bytes" stored in the blob attribute - * - "blob parts" stored in a separate table NDB$BLOB_<tid>_<cid> - * - * Inline and part sizes can be set via NdbDictionary::Column methods - * when the table is created. - * - * NdbBlob is a blob handle. To access blob data, the handle must be - * created using NdbOperation::getBlobHandle in operation prepare phase. - * The handle has following states: - * - * - prepared: before the operation is executed - * - active: after execute or next result but before transaction commit - * - closed: after transaction commit - * - invalid: after rollback or transaction close - * - * NdbBlob supports 3 styles of data access: - * - * - in prepare phase, NdbBlob methods getValue and setValue are used to - * prepare a read or write of a blob value of known size - * - * - in prepare phase, setActiveHook is used to define a routine which - * is invoked as soon as the handle becomes active - * - * - in active phase, readData and writeData are used to read or write - * blob data of arbitrary size - * - * The styles can be applied in combination (in above order). - * - * Blob operations take effect at next transaction execute. In some - * cases NdbBlob is forced to do implicit executes. To avoid this, - * operate on complete blob parts. - * - * Use NdbTransaction::executePendingBlobOps to flush your reads and - * writes. It avoids execute penalty if nothing is pending. It is not - * needed after execute (obviously) or after next scan result. - * - * NdbBlob methods return -1 on error and 0 on success, and use output - * parameters when necessary. - * - * Operation types: - * - insertTuple must use setValue if blob column is non-nullable - * - readTuple with exclusive lock can also update existing value - * - updateTuple can overwrite with setValue or update existing value - * - writeTuple always overwrites and must use setValue if non-nullable - * - deleteTuple creates implicit non-accessible blob handles - * - scan with exclusive lock can also update existing value - * - scan "lock takeover" update op must do its own getBlobHandle - * - * Bugs / limitations: - * - lock mode upgrade should be handled automatically - * - lock mode vs allowed operation is not checked - * - too many pending blob ops can blow up i/o buffers - * - table and its blob part tables are not created atomically - */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -/** - * - there is no support for an asynchronous interface - */ -#endif - -class NdbBlob { -public: - /** - * State. - */ - enum State { - Idle = 0, - Prepared = 1, - Active = 2, - Closed = 3, - Invalid = 9 - }; - /** - * Get the state of a NdbBlob object. - */ - State getState(); - /** - * Inline blob header. - */ - struct Head { - Uint64 length; - }; - /** - * Prepare to read blob value. The value is available after execute. - * Use getNull() to check for NULL and getLength() to get the real length - * and to check for truncation. Sets current read/write position to - * after the data read. - */ - int getValue(void* data, Uint32 bytes); - /** - * Prepare to insert or update blob value. An existing longer blob - * value will be truncated. The data buffer must remain valid until - * execute. Sets current read/write position to after the data. Set - * data to null pointer (0) to create a NULL value. - */ - int setValue(const void* data, Uint32 bytes); - /** - * Callback for setActiveHook(). Invoked immediately when the prepared - * operation has been executed (but not committed). Any getValue() or - * setValue() is done first. The blob handle is active so readData or - * writeData() etc can be used to manipulate blob value. A user-defined - * argument is passed along. Returns non-zero on error. - */ - typedef int ActiveHook(NdbBlob* me, void* arg); - /** - * Define callback for blob handle activation. The queue of prepared - * operations will be executed in no commit mode up to this point and - * then the callback is invoked. - */ - int setActiveHook(ActiveHook* activeHook, void* arg); - /** - * Check if blob is null. - */ - int getNull(bool& isNull); - /** - * Set blob to NULL. - */ - int setNull(); - /** - * Get current length in bytes. Use getNull to distinguish between - * length 0 blob and NULL blob. - */ - int getLength(Uint64& length); - /** - * Truncate blob to given length. Has no effect if the length is - * larger than current length. - */ - int truncate(Uint64 length = 0); - /** - * Get current read/write position. - */ - int getPos(Uint64& pos); - /** - * Set read/write position. Must be between 0 and current length. - * "Sparse blobs" are not supported. - */ - int setPos(Uint64 pos); - /** - * Read at current position and set new position to first byte after - * the data read. A read past blob end returns actual number of bytes - * read in the in/out bytes parameter. - */ - int readData(void* data, Uint32& bytes); - /** - * Write at current position and set new position to first byte after - * the data written. A write past blob end extends the blob value. - */ - int writeData(const void* data, Uint32 bytes); - /** - * Return the blob column. - */ - const NdbDictionary::Column* getColumn(); - /** - * Get blob parts table name. Useful only to test programs. - */ - static int getBlobTableName(char* btname, Ndb* anNdb, const char* tableName, const char* columnName); - /** - * Return error object. The error may be blob specific (below) or may - * be copied from a failed implicit operation. - */ - const NdbError& getNdbError() const; - /** - * Return info about all blobs in this operation. - * - * Get first blob in list. - */ - NdbBlob* blobsFirstBlob(); - /** - * Return info about all blobs in this operation. - * - * Get next blob in list. Initialize with blobsFirstBlob(). - */ - NdbBlob* blobsNextBlob(); - -private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbTransaction; - friend class NdbOperation; - friend class NdbScanOperation; - friend class NdbDictionaryImpl; - friend class NdbResultSet; // atNextResult -#endif - // state - State theState; - void setState(State newState); - // define blob table - static void getBlobTableName(char* btname, const NdbTableImpl* t, const NdbColumnImpl* c); - static void getBlobTable(NdbTableImpl& bt, const NdbTableImpl* t, const NdbColumnImpl* c); - // ndb api stuff - Ndb* theNdb; - NdbTransaction* theNdbCon; - NdbOperation* theNdbOp; - const NdbTableImpl* theTable; - const NdbTableImpl* theAccessTable; - const NdbTableImpl* theBlobTable; - const NdbColumnImpl* theColumn; - char theFillChar; - // sizes - Uint32 theInlineSize; - Uint32 thePartSize; - Uint32 theStripeSize; - // getValue/setValue - bool theGetFlag; - char* theGetBuf; - bool theSetFlag; - const char* theSetBuf; - Uint32 theGetSetBytes; - // pending ops - Uint8 thePendingBlobOps; - // activation callback - ActiveHook* theActiveHook; - void* theActiveHookArg; - // buffers - struct Buf { - char* data; - unsigned size; - unsigned maxsize; - Buf(); - ~Buf(); - void alloc(unsigned n); - void copyfrom(const Buf& src); - }; - Buf theKeyBuf; - Buf theAccessKeyBuf; - Buf theHeadInlineBuf; - Buf theHeadInlineCopyBuf; // for writeTuple - Buf thePartBuf; - Head* theHead; - char* theInlineData; - NdbRecAttr* theHeadInlineRecAttr; - NdbOperation* theHeadInlineReadOp; - bool theHeadInlineUpdateFlag; - // length and read/write position - int theNullFlag; - Uint64 theLength; - Uint64 thePos; - // errors - NdbError theError; - // for keeping in lists - NdbBlob* theNext; - // initialization - NdbBlob(); - void init(); - void release(); - // classify operations - bool isTableOp(); - bool isIndexOp(); - bool isKeyOp(); - bool isReadOp(); - bool isInsertOp(); - bool isUpdateOp(); - bool isWriteOp(); - bool isDeleteOp(); - bool isScanOp(); - // computations - Uint32 getPartNumber(Uint64 pos); - Uint32 getPartCount(); - Uint32 getDistKey(Uint32 part); - // getters and setters - int getTableKeyValue(NdbOperation* anOp); - int setTableKeyValue(NdbOperation* anOp); - int setAccessKeyValue(NdbOperation* anOp); - int setPartKeyValue(NdbOperation* anOp, Uint32 part); - int getHeadInlineValue(NdbOperation* anOp); - void getHeadFromRecAttr(); - int setHeadInlineValue(NdbOperation* anOp); - // data operations - int readDataPrivate(char* buf, Uint32& bytes); - int writeDataPrivate(const char* buf, Uint32 bytes); - int readParts(char* buf, Uint32 part, Uint32 count); - int insertParts(const char* buf, Uint32 part, Uint32 count); - int updateParts(const char* buf, Uint32 part, Uint32 count); - int deleteParts(Uint32 part, Uint32 count); - int deletePartsUnknown(Uint32 part); - // pending ops - int executePendingBlobReads(); - int executePendingBlobWrites(); - // callbacks - int invokeActiveHook(); - // blob handle maintenance - int atPrepare(NdbTransaction* aCon, NdbOperation* anOp, const NdbColumnImpl* aColumn); - int preExecute(NdbTransaction::ExecType anExecType, bool& batch); - int postExecute(NdbTransaction::ExecType anExecType); - int preCommit(); - int atNextResult(); - // errors - void setErrorCode(int anErrorCode, bool invalidFlag = true); - void setErrorCode(NdbOperation* anOp, bool invalidFlag = true); - void setErrorCode(NdbTransaction* aCon, bool invalidFlag = true); -#ifdef VM_TRACE - int getOperationType() const; - friend class NdbOut& operator<<(NdbOut&, const NdbBlob&); -#endif -}; - -#endif diff --git a/ndb/include/ndbapi/NdbDictionary.hpp b/ndb/include/ndbapi/NdbDictionary.hpp deleted file mode 100644 index 7a945c1c22e..00000000000 --- a/ndb/include/ndbapi/NdbDictionary.hpp +++ /dev/null @@ -1,1331 +0,0 @@ -/* 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 NdbDictionary_H -#define NdbDictionary_H - -#include <ndb_types.h> - -class Ndb; -struct charset_info_st; -typedef struct charset_info_st CHARSET_INFO; - -/** - * @class NdbDictionary - * @brief Data dictionary class - * - * The preferred and supported way to create and drop tables and indexes - * in ndb is through the - * MySQL Server (see MySQL reference Manual, section MySQL Cluster). - * - * Tables and indexes that are created directly through the - * NdbDictionary class - * can not be viewed from the MySQL Server. - * Dropping indexes directly via the NdbApi will cause inconsistencies - * if they were originally created from a MySQL Cluster. - * - * This class supports schema data enquiries such as: - * -# Enquiries about tables - * (Dictionary::getTable, Table::getNoOfColumns, - * Table::getPrimaryKey, and Table::getNoOfPrimaryKeys) - * -# Enquiries about indexes - * (Dictionary::getIndex, Index::getNoOfColumns, - * and Index::getColumn) - * - * This class supports schema data definition such as: - * -# Creating tables (Dictionary::createTable) and table columns - * -# Dropping tables (Dictionary::dropTable) - * -# Creating secondary indexes (Dictionary::createIndex) - * -# Dropping secondary indexes (Dictionary::dropIndex) - * - * NdbDictionary has several help (inner) classes to support this: - * -# NdbDictionary::Dictionary the dictionary handling dictionary objects - * -# NdbDictionary::Table for creating tables - * -# NdbDictionary::Column for creating table columns - * -# NdbDictionary::Index for creating secondary indexes - * - * See @ref ndbapi_simple_index.cpp for details of usage. - */ -class NdbDictionary { -public: - /** - * @class Object - * @brief Meta information about a database object (a table, index, etc) - */ - class Object { - public: - /** - * Status of object - */ - enum Status { - New, ///< The object only exist in memory and - ///< has not been created in the NDB Kernel - Changed, ///< The object has been modified in memory - ///< and has to be commited in NDB Kernel for - ///< changes to take effect - Retrieved ///< The object exist and has been read - ///< into main memory from NDB Kernel - }; - - /** - * Get status of object - */ - virtual Status getObjectStatus() const = 0; - - /** - * Get version of object - */ - virtual int getObjectVersion() const = 0; - - /** - * Object type - */ - enum Type { - TypeUndefined = 0, ///< Undefined - SystemTable = 1, ///< System table - UserTable = 2, ///< User table (may be temporary) - UniqueHashIndex = 3, ///< Unique un-ordered hash index - OrderedIndex = 6, ///< Non-unique ordered index - HashIndexTrigger = 7, ///< Index maintenance, internal - IndexTrigger = 8, ///< Index maintenance, internal - SubscriptionTrigger = 9,///< Backup or replication, internal - ReadOnlyConstraint = 10 ///< Trigger, internal - }; - - /** - * Object state - */ - enum State { - StateUndefined = 0, ///< Undefined - StateOffline = 1, ///< Offline, not usable - StateBuilding = 2, ///< Building, not yet usable - StateDropping = 3, ///< Offlining or dropping, not usable - StateOnline = 4, ///< Online, usable - StateBroken = 9 ///< Broken, should be dropped and re-created - }; - - /** - * Object store - */ - enum Store { - StoreUndefined = 0, ///< Undefined - StoreTemporary = 1, ///< Object or data deleted on system restart - StorePermanent = 2 ///< Permanent. logged to disk - }; - - /** - * Type of fragmentation. - * - * This parameter specifies how data in the table or index will - * be distributed among the db nodes in the cluster.<br> - * The bigger the table the more number of fragments should be used. - * Note that all replicas count as same "fragment".<br> - * For a table, default is FragAllMedium. For a unique hash index, - * default is taken from underlying table and cannot currently - * be changed. - */ - enum FragmentType { - FragUndefined = 0, ///< Fragmentation type undefined or default - FragSingle = 1, ///< Only one fragment - FragAllSmall = 2, ///< One fragment per node, default - FragAllMedium = 3, ///< two fragments per node - FragAllLarge = 4 ///< Four fragments per node. - }; - }; - - class Table; // forward declaration - - /** - * @class Column - * @brief Represents a column in an NDB Cluster table - * - * Each column has a type. The type of a column is determined by a number - * of type specifiers. - * The type specifiers are: - * - Builtin type - * - Array length or max length - * - Precision and scale (not used yet) - * - Character set for string types - * - Inline and part sizes for blobs - * - * Types in general correspond to MySQL types and their variants. - * Data formats are same as in MySQL. NDB API provides no support for - * constructing such formats. NDB kernel checks them however. - */ - class Column { - public: - /** - * The builtin column types - */ - enum Type { - Undefined = NDB_TYPE_UNDEFINED, ///< Undefined - Tinyint = NDB_TYPE_TINYINT, ///< 8 bit. 1 byte signed integer, can be used in array - Tinyunsigned = NDB_TYPE_TINYUNSIGNED, ///< 8 bit. 1 byte unsigned integer, can be used in array - Smallint = NDB_TYPE_SMALLINT, ///< 16 bit. 2 byte signed integer, can be used in array - Smallunsigned = NDB_TYPE_SMALLUNSIGNED, ///< 16 bit. 2 byte unsigned integer, can be used in array - Mediumint = NDB_TYPE_MEDIUMINT, ///< 24 bit. 3 byte signed integer, can be used in array - Mediumunsigned = NDB_TYPE_MEDIUMUNSIGNED,///< 24 bit. 3 byte unsigned integer, can be used in array - Int = NDB_TYPE_INT, ///< 32 bit. 4 byte signed integer, can be used in array - Unsigned = NDB_TYPE_UNSIGNED, ///< 32 bit. 4 byte unsigned integer, can be used in array - Bigint = NDB_TYPE_BIGINT, ///< 64 bit. 8 byte signed integer, can be used in array - Bigunsigned = NDB_TYPE_BIGUNSIGNED, ///< 64 Bit. 8 byte signed integer, can be used in array - Float = NDB_TYPE_FLOAT, ///< 32-bit float. 4 bytes float, can be used in array - Double = NDB_TYPE_DOUBLE, ///< 64-bit float. 8 byte float, can be used in array - Olddecimal = NDB_TYPE_OLDDECIMAL, ///< MySQL < 5.0 signed decimal, Precision, Scale - Olddecimalunsigned = NDB_TYPE_OLDDECIMALUNSIGNED, - Decimal = NDB_TYPE_DECIMAL, ///< MySQL >= 5.0 signed decimal, Precision, Scale - Decimalunsigned = NDB_TYPE_DECIMALUNSIGNED, - Char = NDB_TYPE_CHAR, ///< Len. A fixed array of 1-byte chars - Varchar = NDB_TYPE_VARCHAR, ///< Length bytes: 1, Max: 255 - Binary = NDB_TYPE_BINARY, ///< Len - Varbinary = NDB_TYPE_VARBINARY, ///< Length bytes: 1, Max: 255 - Datetime = NDB_TYPE_DATETIME, ///< Precision down to 1 sec (sizeof(Datetime) == 8 bytes ) - Date = NDB_TYPE_DATE, ///< Precision down to 1 day(sizeof(Date) == 4 bytes ) - Blob = NDB_TYPE_BLOB, ///< Binary large object (see NdbBlob) - Text = NDB_TYPE_TEXT, ///< Text blob - Bit = NDB_TYPE_BIT, ///< Bit, length specifies no of bits - Longvarchar = NDB_TYPE_LONGVARCHAR, ///< Length bytes: 2, little-endian - Longvarbinary = NDB_TYPE_LONGVARBINARY, ///< Length bytes: 2, little-endian - Time = NDB_TYPE_TIME, ///< Time without date - Year = NDB_TYPE_YEAR, ///< Year 1901-2155 (1 byte) - Timestamp = NDB_TYPE_TIMESTAMP ///< Unix time - }; - - /** - * @name General - * @{ - */ - - /** - * Get name of column - * @return Name of the column - */ - const char* getName() const; - - /** - * Get if the column is nullable or not - */ - bool getNullable() const; - - /** - * Check if column is part of primary key - */ - bool getPrimaryKey() const; - - /** - * Get number of column (horizontal position within table) - */ - int getColumnNo() const; - - /** - * Check if column is equal to some other column - * @param column Column to compare with - * @return true if column is equal to some other column otherwise false. - */ - bool equal(const Column& column) const; - - - /** @} *******************************************************************/ - /** - * @name Get Type Specifiers - * @{ - */ - - /** - * Get type of column - */ - Type getType() const; - - /** - * Get precision of column. - * @note Only applicable for decimal types - */ - int getPrecision() const; - - /** - * Get scale of column. - * @note Only applicable for decimal types - */ - int getScale() const; - - /** - * Get length for column - * Array length for column or max length for variable length arrays. - */ - int getLength() const; - - /** - * For Char or Varchar or Text, get MySQL CHARSET_INFO. This - * specifies both character set and collation. See get_charset() - * etc in MySQL. (The cs is not "const" in MySQL). - */ - CHARSET_INFO* getCharset() const; - - - /** - * For blob, get "inline size" i.e. number of initial bytes - * to store in table's blob attribute. This part is normally in - * main memory and can be indexed and interpreted. - */ - int getInlineSize() const; - - /** - * For blob, get "part size" i.e. number of bytes to store in - * each tuple of the "blob table". Can be set to zero to omit parts - * and to allow only inline bytes ("tinyblob"). - */ - int getPartSize() const; - - /** - * For blob, set or get "stripe size" i.e. number of consecutive - * <em>parts</em> to store in each node group. - */ - int getStripeSize() const; - - /** - * Get size of element - */ - int getSize() const; - - /** - * Check if column is part of partition key - * - * A <em>partition key</em> is a set of attributes which are used - * to distribute the tuples onto the NDB nodes. - * The partition key uses the NDB Cluster hashing function. - * - * An example where this is useful is TPC-C where it might be - * good to use the warehouse id and district id as the partition key. - * This would place all data for a specific district and warehouse - * in the same database node. - * - * Locally in the fragments the full primary key - * will still be used with the hashing algorithm. - * - * @return true then the column is part of - * the partition key. - */ - bool getPartitionKey() const; -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - inline bool getDistributionKey() const { return getPartitionKey(); }; -#endif - - /** @} *******************************************************************/ - - - /** - * @name Column creation - * @{ - * - * These operations should normally not be performed in an NbdApi program - * as results will not be visable in the MySQL Server - * - */ - - /** - * Constructor - * @param name Name of column - */ - Column(const char * name = ""); - /** - * Copy constructor - * @param column Column to be copied - */ - Column(const Column& column); - ~Column(); - - /** - * Set name of column - * @param name Name of the column - */ - void setName(const char * name); - - /** - * Set whether column is nullable or not - */ - void setNullable(bool); - - /** - * Set that column is part of primary key - */ - void setPrimaryKey(bool); - - /** - * Set type of column - * @param type Type of column - * - * @note setType resets <em>all</em> column attributes - * to (type dependent) defaults and should be the first - * method to call. Default type is Unsigned. - */ - void setType(Type type); - - /** - * Set precision of column. - * @note Only applicable for decimal types - */ - void setPrecision(int); - - /** - * Set scale of column. - * @note Only applicable for decimal types - */ - void setScale(int); - - /** - * Set length for column - * Array length for column or max length for variable length arrays. - */ - void setLength(int length); - - /** - * For Char or Varchar or Text, get MySQL CHARSET_INFO. This - * specifies both character set and collation. See get_charset() - * etc in MySQL. (The cs is not "const" in MySQL). - */ - void setCharset(CHARSET_INFO* cs); - - /** - * For blob, get "inline size" i.e. number of initial bytes - * to store in table's blob attribute. This part is normally in - * main memory and can be indexed and interpreted. - */ - void setInlineSize(int size); - - /** - * For blob, get "part size" i.e. number of bytes to store in - * each tuple of the "blob table". Can be set to zero to omit parts - * and to allow only inline bytes ("tinyblob"). - */ - void setPartSize(int size); - - /** - * For blob, get "stripe size" i.e. number of consecutive - * <em>parts</em> to store in each node group. - */ - void setStripeSize(int size); - - /** - * Set partition key - * @see getPartitionKey - * - * @param enable If set to true, then the column will be part of - * the partition key. - */ - void setPartitionKey(bool enable); -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - inline void setDistributionKey(bool enable) - { setPartitionKey(enable); }; -#endif - - /** @} *******************************************************************/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const Table * getBlobTable() const; - - void setAutoIncrement(bool); - bool getAutoIncrement() const; - void setAutoIncrementInitialValue(Uint64 val); - void setDefaultValue(const char*); - const char* getDefaultValue() const; - - static const Column * FRAGMENT; - static const Column * FRAGMENT_MEMORY; - static const Column * ROW_COUNT; - static const Column * COMMIT_COUNT; - static const Column * ROW_SIZE; - static const Column * RANGE_NO; - - int getSizeInBytes() const; -#endif - - private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbRecAttr; - friend class NdbColumnImpl; -#endif - class NdbColumnImpl & m_impl; - Column(NdbColumnImpl&); - Column& operator=(const Column&); - }; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * ??? - */ - typedef Column Attribute; -#endif - - /** - * @brief Represents a table in NDB Cluster - * - * <em>TableSize</em><br> - * When calculating the data storage one should add the size of all - * attributes (each attributeconsumes at least 4 bytes) and also an overhead - * of 12 byte. Variable size attributes (not supported yet) will have a - * size of 12 bytes plus the actual data storage parts where there is an - * additional overhead based on the size of the variable part.<br> - * An example table with 5 attributes: - * one 64 bit attribute, one 32 bit attribute, - * two 16 bit attributes and one array of 64 8 bits. - * This table will consume - * 12 (overhead) + 8 + 4 + 2*4 (4 is minimum) + 64 = 96 bytes per record. - * Additionally an overhead of about 2 % as page headers and waste should - * be allocated. Thus, 1 million records should consume 96 MBytes - * plus the overhead 2 MByte and rounded up to 100 000 kBytes.<br> - * - */ - class Table : public Object { - public: - /** - * @name General - * @{ - */ - - /** - * Get table name - */ - const char * getName() const; - - /** - * Get table id - */ - int getTableId() const; - - /** - * Get column definition via name. - * @return null if none existing name - */ - const Column* getColumn(const char * name) const; - - /** - * Get column definition via index in table. - * @return null if none existing name - */ - Column* getColumn(const int attributeId); - - /** - * Get column definition via name. - * @return null if none existing name - */ - Column* getColumn(const char * name); - - /** - * Get column definition via index in table. - * @return null if none existing name - */ - const Column* getColumn(const int attributeId) const; - - /** @} *******************************************************************/ - /** - * @name Storage - * @{ - */ - - /** - * If set to false, then the table is a temporary - * table and is not logged to disk. - * - * In case of a system restart the table will still - * be defined and exist but will be empty. - * Thus no checkpointing and no logging is performed on the table. - * - * The default value is true and indicates a normal table - * with full checkpointing and logging activated. - */ - bool getLogging() const; - - /** - * Get fragmentation type - */ - FragmentType getFragmentType() const; - - /** - * Get KValue (Hash parameter.) - * Only allowed value is 6. - * Later implementations might add flexibility in this parameter. - */ - int getKValue() const; - - /** - * Get MinLoadFactor (Hash parameter.) - * This value specifies the load factor when starting to shrink - * the hash table. - * It must be smaller than MaxLoadFactor. - * Both these factors are given in percentage. - */ - int getMinLoadFactor() const; - - /** - * Get MaxLoadFactor (Hash parameter.) - * This value specifies the load factor when starting to split - * the containers in the local hash tables. - * 100 is the maximum which will optimize memory usage. - * A lower figure will store less information in each container and thus - * find the key faster but consume more memory. - */ - int getMaxLoadFactor() const; - - /** @} *******************************************************************/ - /** - * @name Other - * @{ - */ - - /** - * Get number of columns in the table - */ - int getNoOfColumns() const; - - /** - * Get number of primary keys in the table - */ - int getNoOfPrimaryKeys() const; - - /** - * Get name of primary key - */ - const char* getPrimaryKey(int no) const; - - /** - * Check if table is equal to some other table - */ - bool equal(const Table&) const; - - /** - * Get frm file stored with this table - */ - const void* getFrmData() const; - Uint32 getFrmLength() const; - - /** @} *******************************************************************/ - - /** - * @name Table creation - * @{ - * - * These methods should normally not be used in an application as - * the result is not accessible from the MySQL Server - * - */ - - /** - * Constructor - * @param name Name of table - */ - Table(const char * name = ""); - - /** - * Copy constructor - * @param table Table to be copied - */ - Table(const Table& table); - virtual ~Table(); - - /** - * Assignment operator, deep copy - * @param table Table to be copied - */ - Table& operator=(const Table& table); - - /** - * Name of table - * @param name Name of table - */ - void setName(const char * name); - - /** - * Add a column definition to a table - * @note creates a copy - */ - void addColumn(const Column &); - - /** - * @see NdbDictionary::Table::getLogging. - */ - void setLogging(bool); - - /** - * Set fragmentation type - */ - void setFragmentType(FragmentType); - - /** - * Set KValue (Hash parameter.) - * Only allowed value is 6. - * Later implementations might add flexibility in this parameter. - */ - void setKValue(int kValue); - - /** - * Set MinLoadFactor (Hash parameter.) - * This value specifies the load factor when starting to shrink - * the hash table. - * It must be smaller than MaxLoadFactor. - * Both these factors are given in percentage. - */ - void setMinLoadFactor(int); - - /** - * Set MaxLoadFactor (Hash parameter.) - * This value specifies the load factor when starting to split - * the containers in the local hash tables. - * 100 is the maximum which will optimize memory usage. - * A lower figure will store less information in each container and thus - * find the key faster but consume more memory. - */ - void setMaxLoadFactor(int); - - /** - * Get table object type - */ - Object::Type getObjectType() const; - - /** - * Get object status - */ - virtual Object::Status getObjectStatus() const; - - /** - * Get object version - */ - virtual int getObjectVersion() const; - - /** - * Set frm file to store with this table - */ - void setFrm(const void* data, Uint32 len); - - /** - * Set table object type - */ - void setObjectType(Object::Type type); - - /** @} *******************************************************************/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - void setStoredTable(bool x) { setLogging(x); } - bool getStoredTable() const { return getLogging(); } - - int getRowSizeInBytes() const ; - int createTableInDb(Ndb*, bool existingEqualIsOk = true) const ; - - int getReplicaCount() const ; -#endif - - private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbTableImpl; -#endif - class NdbTableImpl & m_impl; - Table(NdbTableImpl&); - }; - - /** - * @class Index - * @brief Represents an index in an NDB Cluster - */ - class Index : public Object { - public: - - /** - * @name Getting Index properties - * @{ - */ - - /** - * Get the name of an index - */ - const char * getName() const; - - /** - * Get the name of the table being indexed - */ - const char * getTable() const; - - /** - * Get the number of columns in the index - */ - unsigned getNoOfColumns() const; - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get the number of columns in the index - * Depricated, use getNoOfColumns instead. - */ - int getNoOfIndexColumns() const; -#endif - - /** - * Get a specific column in the index - */ - const Column * getColumn(unsigned no) const ; - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get a specific column name in the index - * Depricated, use getColumn instead. - */ - const char * getIndexColumn(int no) const ; -#endif - - /** - * Represents type of index - */ - enum Type { - Undefined = 0, ///< Undefined object type (initial value) - UniqueHashIndex = 3, ///< Unique un-ordered hash index - ///< (only one currently supported) - OrderedIndex = 6 ///< Non-unique ordered index - }; - - /** - * Get index type of the index - */ - Type getType() const; - - /** - * Check if index is set to be stored on disk - * - * @return if true then logging id enabled - * - * @note Non-logged indexes are rebuilt at system restart. - * @note Ordered index does not currently support logging. - */ - bool getLogging() const; - - /** - * Get object status - */ - virtual Object::Status getObjectStatus() const; - - /** - * Get object version - */ - virtual int getObjectVersion() const; - - /** @} *******************************************************************/ - - /** - * @name Index creation - * @{ - * - * These methods should normally not be used in an application as - * the result will not be visible from the MySQL Server - * - */ - - /** - * Constructor - * @param name Name of index - */ - Index(const char * name = ""); - virtual ~Index(); - - /** - * Set the name of an index - */ - void setName(const char * name); - - /** - * Define the name of the table to be indexed - */ - void setTable(const char * name); - - /** - * Add a column to the index definition - * Note that the order of columns will be in - * the order they are added (only matters for ordered indexes). - */ - void addColumn(const Column & c); - - /** - * Add a column name to the index definition - * Note that the order of indexes will be in - * the order they are added (only matters for ordered indexes). - */ - void addColumnName(const char * name); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Add a column name to the index definition - * Note that the order of indexes will be in - * the order they are added (only matters for ordered indexes). - * Depricated, use addColumnName instead. - */ - void addIndexColumn(const char * name); -#endif - - /** - * Add several column names to the index definition - * Note that the order of indexes will be in - * the order they are added (only matters for ordered indexes). - */ - void addColumnNames(unsigned noOfNames, const char ** names); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Add several column names to the index definition - * Note that the order of indexes will be in - * the order they are added (only matters for ordered indexes). - * Depricated, use addColumnNames instead. - */ - void addIndexColumns(int noOfNames, const char ** names); -#endif - - /** - * Set index type of the index - */ - void setType(Type type); - - /** - * Enable/Disable index storage on disk - * - * @param enable If enable is set to true, then logging becomes enabled - * - * @see NdbDictionary::Index::getLogging - */ - void setLogging(bool enable); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - void setStoredIndex(bool x) { setLogging(x); } - bool getStoredIndex() const { return getLogging(); } -#endif - - /** @} *******************************************************************/ - - private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbIndexImpl; -#endif - class NdbIndexImpl & m_impl; - Index(NdbIndexImpl&); - }; - - /** - * @brief Represents an Event in NDB Cluster - * - */ - class Event : public Object { - public: - /** - * Specifies the type of database operations an Event listens to - */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** TableEvent must match 1 << TriggerEvent */ -#endif - enum TableEvent { - TE_INSERT=1, ///< Insert event on table - TE_DELETE=2, ///< Delete event on table - TE_UPDATE=4, ///< Update event on table - TE_ALL=7 ///< Any/all event on table (not relevant when - ///< events are received) - }; - /** - * Specifies the durability of an event - * (future version may supply other types) - */ - enum EventDurability { - ED_UNDEFINED -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = 0 -#endif -#if 0 // not supported - ,ED_SESSION = 1, - // Only this API can use it - // and it's deleted after api has disconnected or ndb has restarted - - ED_TEMPORARY = 2 - // All API's can use it, - // But's its removed when ndb is restarted -#endif - ,ED_PERMANENT ///< All API's can use it. - ///< It's still defined after a cluster system restart -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = 3 -#endif - }; - - /** - * Constructor - * @param name Name of event - */ - Event(const char *name); - /** - * Constructor - * @param name Name of event - * @param table Reference retrieved from NdbDictionary - */ - Event(const char *name, const NdbDictionary::Table& table); - virtual ~Event(); - /** - * Set unique identifier for the event - */ - void setName(const char *name); - /** - * Get unique identifier for the event - */ - const char *getName() const; - /** - * Define table on which events should be detected - * - * @note calling this method will default to detection - * of events on all columns. Calling subsequent - * addEventColumn calls will override this. - * - * @param table reference retrieved from NdbDictionary - */ - void setTable(const NdbDictionary::Table& table); - /** - * Set table for which events should be detected - * - * @note preferred way is using setTable(const NdbDictionary::Table&) - * or constructor with table object parameter - */ - void setTable(const char *tableName); - /** - * Get table name for events - * - * @return table name - */ - const char* getTableName() const; - /** - * Add type of event that should be detected - */ - void addTableEvent(const TableEvent te); - /** - * Set durability of the event - */ - void setDurability(EventDurability); - /** - * Get durability of the event - */ - EventDurability getDurability() const; -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - void addColumn(const Column &c); -#endif - /** - * Add a column on which events should be detected - * - * @param attrId Column id - * - * @note errors will mot be detected until createEvent() is called - */ - void addEventColumn(unsigned attrId); - /** - * Add a column on which events should be detected - * - * @param columnName Column name - * - * @note errors will not be detected until createEvent() is called - */ - void addEventColumn(const char * columnName); - /** - * Add several columns on which events should be detected - * - * @param n Number of columns - * @param columnNames Column names - * - * @note errors will mot be detected until - * NdbDictionary::Dictionary::createEvent() is called - */ - void addEventColumns(int n, const char ** columnNames); - - /** - * Get no of columns defined in an Event - * - * @return Number of columns, -1 on error - */ - int getNoOfEventColumns() const; - - /** - * Get object status - */ - virtual Object::Status getObjectStatus() const; - - /** - * Get object version - */ - virtual int getObjectVersion() const; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - void print(); -#endif - - private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbEventImpl; - friend class NdbEventOperationImpl; -#endif - class NdbEventImpl & m_impl; - Event(NdbEventImpl&); - }; - - /** - * @class Dictionary - * @brief Dictionary for defining and retreiving meta data - */ - class Dictionary { - public: - /** - * @class List - * @brief Structure for retrieving lists of object names - */ - struct List { - /** - * @struct Element - * @brief Object to be stored in an NdbDictionary::Dictionary::List - */ - struct Element { - unsigned id; ///< Id of object - Object::Type type; ///< Type of object - Object::State state; ///< State of object - Object::Store store; ///< How object is stored - char * database; ///< In what database the object resides - char * schema; ///< What schema the object is defined in - char * name; ///< Name of object - Element() : - id(0), - type(Object::TypeUndefined), - state(Object::StateUndefined), - store(Object::StoreUndefined), - database(0), - schema(0), - name(0) { - } - }; - unsigned count; ///< Number of elements in list - Element * elements; ///< Pointer to array of elements - List() : count(0), elements(0) {} - ~List() { - if (elements != 0) { - for (unsigned i = 0; i < count; i++) { - delete[] elements[i].database; - delete[] elements[i].schema; - delete[] elements[i].name; - elements[i].name = 0; - } - delete[] elements; - count = 0; - elements = 0; - } - } - }; - - /** - * @name General - * @{ - */ - - /** - * Fetch list of all objects, optionally restricted to given type. - * - * @param list List of objects returned in the dictionary - * @param type Restrict returned list to only contain objects of - * this type - * - * @return -1 if error. - * - */ - int listObjects(List & list, Object::Type type = Object::TypeUndefined); - int listObjects(List & list, - Object::Type type = Object::TypeUndefined) const; - - /** - * Get the latest error - * - * @return Error object. - */ - const struct NdbError & getNdbError() const; - - /** @} *******************************************************************/ - - /** - * @name Retrieving references to Tables and Indexes - * @{ - */ - - /** - * Get table with given name, NULL if undefined - * @param name Name of table to get - * @return table if successful otherwise NULL. - */ - const Table * getTable(const char * name) const; - - /** - * Get index with given name, NULL if undefined - * @param indexName Name of index to get. - * @param tableName Name of table that index belongs to. - * @return index if successful, otherwise 0. - */ - const Index * getIndex(const char * indexName, - const char * tableName) const; - - /** - * Fetch list of indexes of given table. - * @param list Reference to list where to store the listed indexes - * @param tableName Name of table that index belongs to. - * @return 0 if successful, otherwise -1 - */ - int listIndexes(List & list, const char * tableName); - int listIndexes(List & list, const char * tableName) const; - - /** @} *******************************************************************/ - /** - * @name Events - * @{ - */ - - /** - * Create event given defined Event instance - * @param event Event to create - * @return 0 if successful otherwise -1. - */ - int createEvent(const Event &event); - - /** - * Drop event with given name - * @param eventName Name of event to drop. - * @return 0 if successful otherwise -1. - */ - int dropEvent(const char * eventName); - - /** - * Get event with given name. - * @param eventName Name of event to get. - * @return an Event if successful, otherwise NULL. - */ - const Event * getEvent(const char * eventName); - - /** @} *******************************************************************/ - - /** - * @name Table creation - * @{ - * - * These methods should normally not be used in an application as - * the result will not be visible from the MySQL Server - */ - - /** - * Create defined table given defined Table instance - * @param table Table to create - * @return 0 if successful otherwise -1. - */ - int createTable(const Table &table); - - /** - * Drop table given retrieved Table instance - * @param table Table to drop - * @return 0 if successful otherwise -1. - */ - int dropTable(Table & table); - - /** - * Drop table given table name - * @param name Name of table to drop - * @return 0 if successful otherwise -1. - */ - int dropTable(const char * name); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Alter defined table given defined Table instance - * @param table Table to alter - * @return -2 (incompatible version) <br> - * -1 general error <br> - * 0 success - */ - int alterTable(const Table &table); - - /** - * Invalidate cached table object - * @param name Name of table to invalidate - */ - void invalidateTable(const char * name); -#endif - - /** - * Remove table from local cache - */ - void removeCachedTable(const char * table); - /** - * Remove index from local cache - */ - void removeCachedIndex(const char * index, const char * table); - - - /** @} *******************************************************************/ - /** - * @name Index creation - * @{ - * - * These methods should normally not be used in an application as - * the result will not be visible from the MySQL Server - * - */ - - /** - * Create index given defined Index instance - * @param index Index to create - * @return 0 if successful otherwise -1. - */ - int createIndex(const Index &index); - - /** - * Drop index with given name - * @param indexName Name of index to drop. - * @param tableName Name of table that index belongs to. - * @return 0 if successful otherwise -1. - */ - int dropIndex(const char * indexName, - const char * tableName); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Invalidate cached index object - */ - void invalidateIndex(const char * indexName, - const char * tableName); -#endif - - /** @} *******************************************************************/ - - protected: - Dictionary(Ndb & ndb); - ~Dictionary(); - - private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbDictionaryImpl; - friend class UtilTransactions; - friend class NdbBlob; -#endif - class NdbDictionaryImpl & m_impl; - Dictionary(NdbDictionaryImpl&); - const Table * getIndexTable(const char * indexName, - const char * tableName) const; - public: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const Table * getTable(const char * name, void **data) const; - void set_local_table_data_size(unsigned sz); -#endif - }; -}; - -class NdbOut& operator <<(class NdbOut& out, const NdbDictionary::Column& col); - -#endif diff --git a/ndb/include/ndbapi/NdbError.hpp b/ndb/include/ndbapi/NdbError.hpp deleted file mode 100644 index f67b3c4ccaa..00000000000 --- a/ndb/include/ndbapi/NdbError.hpp +++ /dev/null @@ -1,237 +0,0 @@ -/* 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 NDB_ERROR_HPP -#define NDB_ERROR_HPP - -#include <ndberror.h> - -/** - * @struct NdbError - * @brief Contains error information - * - * A NdbError consists of five parts: - * -# Error status : Application impact - * -# Error classification : Logical error group - * -# Error code : Internal error code - * -# Error message : Context independent description of error - * -# Error details : Context dependent information - * (not always available) - * - * <em>Error status</em> is usually used for programming against errors. - * If more detailed error control is needed, it is possible to - * use the <em>error classification</em>. - * - * It is not recommended to write application programs dependent on - * specific <em>error codes</em>. - * - * The <em>error messages</em> and <em>error details</em> may - * change without notice. - * - * For example of use, see @ref ndbapi_retries.cpp. - */ -struct NdbError { - /** - * Status categorizes error codes into status values reflecting - * what the application should do when encountering errors - */ - enum Status { - /** - * The error code indicate success<br> - * (Includes classification: NdbError::NoError) - */ - Success = ndberror_st_success, - - /** - * The error code indicates a temporary error. - * The application should typically retry.<br> - * (Includes classifications: NdbError::InsufficientSpace, - * NdbError::TemporaryResourceError, NdbError::NodeRecoveryError, - * NdbError::OverloadError, NdbError::NodeShutdown - * and NdbError::TimeoutExpired.) - */ - TemporaryError = ndberror_st_temporary, - - /** - * The error code indicates a permanent error.<br> - * (Includes classificatons: NdbError::PermanentError, - * NdbError::ApplicationError, NdbError::NoDataFound, - * NdbError::ConstraintViolation, NdbError::SchemaError, - * NdbError::UserDefinedError, NdbError::InternalError, and, - * NdbError::FunctionNotImplemented.) - */ - PermanentError = ndberror_st_permanent, - - /** - * The result/status is unknown.<br> - * (Includes classifications: NdbError::UnknownResultError, and - * NdbError::UnknownErrorCode.) - */ - UnknownResult = ndberror_st_unknown - }; - - /** - * Type of error - */ - enum Classification { - /** - * Success. No error occurred. - */ - NoError = ndberror_cl_none, - - /** - * Error in application program. - */ - ApplicationError = ndberror_cl_application, - - /** - * Read operation failed due to missing record. - */ - NoDataFound = ndberror_cl_no_data_found, - - /** - * E.g. inserting a tuple with a primary key already existing - * in the table. - */ - ConstraintViolation = ndberror_cl_constraint_violation, - - /** - * Error in creating table or usage of table. - */ - SchemaError = ndberror_cl_schema_error, - - /** - * Error occurred in interpreted program. - */ - UserDefinedError = ndberror_cl_user_defined, - - /** - * E.g. insufficient memory for data or indexes. - */ - InsufficientSpace = ndberror_cl_insufficient_space, - - /** - * E.g. too many active transactions. - */ - TemporaryResourceError = ndberror_cl_temporary_resource, - - /** - * Temporary failures which are probably inflicted by a node - * recovery in progress. Examples: information sent between - * application and NDB lost, distribution change. - */ - NodeRecoveryError = ndberror_cl_node_recovery, - - /** - * E.g. out of log file space. - */ - OverloadError = ndberror_cl_overload, - - /** - * Timeouts, often inflicted by deadlocks in NDB. - */ - TimeoutExpired = ndberror_cl_timeout_expired, - - /** - * Is is unknown whether the transaction was committed or not. - */ - UnknownResultError = ndberror_cl_unknown_result, - - /** - * A serious error in NDB has occurred. - */ - InternalError = ndberror_cl_internal_error, - - /** - * A function used is not yet implemented. - */ - FunctionNotImplemented = ndberror_cl_function_not_implemented, - - /** - * Error handler could not determine correct error code. - */ - UnknownErrorCode = ndberror_cl_unknown_error_code, - - /** - * Node shutdown - */ - NodeShutdown = ndberror_cl_node_shutdown, - - /** - * Schema object already exists - */ - SchemaObjectExists = ndberror_cl_schema_object_already_exists - }; - - /** - * Error status. - */ - Status status; - - /** - * Error type - */ - Classification classification; - - /** - * Error code - */ - int code; - - /** - * Error message - */ - const char * message; - - /** - * The detailed description. This is extra information regarding the - * error which is not included in the error message. - * - * @note Is NULL when no details specified - */ - char * details; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - NdbError(){ - status = UnknownResult; - classification = NoError; - code = 0; - message = 0; - details = 0; - } - NdbError(const ndberror_struct & ndberror){ - status = (NdbError::Status) ndberror.status; - classification = (NdbError::Classification) ndberror.classification; - code = ndberror.code; - message = ndberror.message; - details = ndberror.details; - } - operator ndberror_struct() const { - ndberror_struct ndberror; - ndberror.status = (ndberror_status_enum) status; - ndberror.classification = (ndberror_classification_enum) classification; - ndberror.code = code; - ndberror.message = message; - ndberror.details = details; - return ndberror; - } -#endif -}; - -class NdbOut& operator <<(class NdbOut&, const NdbError &); -class NdbOut& operator <<(class NdbOut&, const NdbError::Status&); -class NdbOut& operator <<(class NdbOut&, const NdbError::Classification&); -#endif diff --git a/ndb/include/ndbapi/NdbEventOperation.hpp b/ndb/include/ndbapi/NdbEventOperation.hpp deleted file mode 100644 index 55ee96b3144..00000000000 --- a/ndb/include/ndbapi/NdbEventOperation.hpp +++ /dev/null @@ -1,225 +0,0 @@ -/* 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 NdbEventOperation_H -#define NdbEventOperation_H - -class NdbGlobalEventBuffer; -class NdbEventOperationImpl; - -/** - * @class NdbEventOperation - * @brief Class of operations for getting change events from database. - * - * Brief description on how to work with events: - * - * - An event, represented by an NdbDictionary::Event, i created in the - * Database through - * NdbDictionary::Dictionary::createEvent() (note that this can be done - * by any application or thread and not necessarily by the "listener") - * - To listen to events, an NdbEventOperation object is instantiated by - * Ndb::createEventOperation() - * - execute() starts the event flow. Use Ndb::pollEvents() to wait - * for an event to occur. Use next() to iterate - * through the events that have occured. - * - The instance is removed by Ndb::dropEventOperation() - * - * For more info see: - * @ref ndbapi_event.cpp - * - * Known limitations: - * - * - Maximum number of active NdbEventOperations are now set at compile time. - * Today 100. This will become a configuration parameter later. - * - Maximum number of NdbEventOperations tied to same event are maximum 16 - * per process. - * - * Known issues: - * - * - When several NdbEventOperation's are tied to the same event in the same - * process they will share the circular buffer. The BufferLength will then - * be the same for all and decided by the first NdbEventOperation - * instantiation. Just make sure to instantiate the "largest" one first. - * - Today all events INSERT/DELETE/UPDATE and all changed attributes are - * sent to the API, even if only specific attributes have been specified. - * These are however hidden from the user and only relevant data is shown - * after next(). - * - "False" exits from Ndb::pollEvents() may occur and thus - * the subsequent next() will return zero, - * since there was no available data. Just do Ndb::pollEvents() again. - * - Event code does not check table schema version. Make sure to drop events - * after table is dropped. Will be fixed in later - * versions. - * - If a node failure has occured not all events will be recieved - * anymore. Drop NdbEventOperation and Create again after nodes are up - * again. Will be fixed in later versions. - * - * Test status: - * - * - Tests have been run on 1-node and 2-node systems - * - * Useful API programs: - * - * - ndb_select_all -d sys 'NDB$EVENTS_0' - * shows contents in the system table containing created events. - * - * @note this is an inteface to viewing events that is subject to change - */ -class NdbEventOperation { -public: - /** - * State of the NdbEventOperation object - */ - enum State { - EO_CREATED, ///< Created but execute() not called - EO_EXECUTING, ///< execute() called - EO_ERROR ///< An error has occurred. Object unusable. - }; - /** - * Retrieve current state of the NdbEventOperation object - */ - State getState(); - - /** - * Activates the NdbEventOperation to start receiving events. The - * changed attribute values may be retrieved after next() has returned - * a value greater than zero. The getValue() methods must be called - * prior to execute(). - * - * @return 0 if successful otherwise -1. - */ - int execute(); - - // about the event operation - // getting data - // NdbResultSet* getResultSet(); - - /** - * Defines a retrieval operation of an attribute value. - * The NDB API allocate memory for the NdbRecAttr object that - * will hold the returned attribute value. - * - * @note Note that it is the applications responsibility - * to allocate enough memory for aValue (if non-NULL). - * The buffer aValue supplied by the application must be - * aligned appropriately. The buffer is used directly - * (avoiding a copy penalty) only if it is aligned on a - * 4-byte boundary and the attribute size in bytes - * (i.e. NdbRecAttr::attrSize() times NdbRecAttr::arraySize() is - * a multiple of 4). - * - * @note There are two versions, getValue() and - * getPreValue() for retrieving the current and - * previous value repectively. - * - * @note This method does not fetch the attribute value from - * the database! The NdbRecAttr object returned by this method - * is <em>not</em> readable/printable before the - * execute() has been made and - * next() has returned a value greater than - * zero. If a specific attribute has not changed the corresponding - * NdbRecAttr will be in state UNDEFINED. This is checked by - * NdbRecAttr::isNULL() which then returns -1. - * - * @param anAttrName Attribute name - * @param aValue If this is non-NULL, then the attribute value - * will be returned in this parameter.<br> - * If NULL, then the attribute value will only - * be stored in the returned NdbRecAttr object. - * @return An NdbRecAttr object to hold the value of - * the attribute, or a NULL pointer - * (indicating error). - */ - NdbRecAttr *getValue(const char *anAttrName, char *aValue = 0); - /** - * See getValue(). - */ - NdbRecAttr *getPreValue(const char *anAttrName, char *aValue = 0); - - /** - * Retrieves event resultset if available, inserted into the NdbRecAttrs - * specified in getValue() and getPreValue(). To avoid polling for - * a resultset, one can use Ndb::pollEvents() - * which will wait on a mutex until an event occurs or the specified - * timeout occurs. - * - * @return >=0 if successful otherwise -1. Return value indicates number - * of available events. By sending pOverRun one may query for buffer - * overflow and *pOverRun will indicate the number of events that have - * overwritten. - * - * @return number of available events, -1 on failure - */ - int next(int *pOverRun=0); - - /** - * In the current implementation a nodefailiure may cause loss of events, - * in which case isConsistent() will return false - */ - bool isConsistent(); - - /** - * Query for occured event type. - * - * @note Only valid after next() has been called and returned value >= 0 - * - * @return type of event - */ - NdbDictionary::Event::TableEvent getEventType(); - - /** - * Retrieve the GCI of the latest retrieved event - * - * @return GCI number - */ - Uint32 getGCI(); - - /** - * Retrieve the complete GCI in the cluster (not necessarily - * associated with an event) - * - * @return GCI number - */ - Uint32 getLatestGCI(); - - /** - * Get the latest error - * - * @return Error object. - */ - const struct NdbError & getNdbError() const; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /* - * - */ - void print(); -#endif - -private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbEventOperationImpl; - friend class Ndb; -#endif - NdbEventOperation(Ndb *theNdb, const char* eventName,int bufferLength); - ~NdbEventOperation(); - static int wait(void *p, int aMillisecondNumber); - class NdbEventOperationImpl &m_impl; - NdbEventOperation(NdbEventOperationImpl& impl); -}; - -typedef void (* NdbEventCallback)(NdbEventOperation*, Ndb*, void*); -#endif diff --git a/ndb/include/ndbapi/NdbIndexOperation.hpp b/ndb/include/ndbapi/NdbIndexOperation.hpp deleted file mode 100644 index 3de6835238e..00000000000 --- a/ndb/include/ndbapi/NdbIndexOperation.hpp +++ /dev/null @@ -1,186 +0,0 @@ -/* 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 NdbIndexOperation_H -#define NdbIndexOperation_H - -#include "NdbOperation.hpp" - -class Index; -class NdbResultSet; - -/** - * @class NdbIndexOperation - * @brief Class of index operations for use in transactions - */ -class NdbIndexOperation : public NdbOperation -{ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbTransaction; -#endif - -public: - /** - * @name Define Standard Operation - * @{ - */ - - /** insert is not allowed */ - int insertTuple(); - - /** - * Define the NdbIndexOperation to be a standard operation of type readTuple. - * When calling NdbTransaction::execute, this operation - * reads a tuple. - * - * @return 0 if successful otherwise -1. - */ - int readTuple(LockMode); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Define the NdbIndexOperation to be a standard operation of type readTuple. - * When calling NdbTransaction::execute, this operation - * reads a tuple. - * - * @return 0 if successful otherwise -1. - */ - int readTuple(); - - /** - * Define the NdbIndexOperation to be a standard operation of type - * readTupleExclusive. - * When calling NdbTransaction::execute, this operation - * read a tuple using an exclusive lock. - * - * @return 0 if successful otherwise -1. - */ - int readTupleExclusive(); - - /** - * Define the NdbIndexOperation to be a standard operation of type simpleRead. - * When calling NdbTransaction::execute, this operation - * reads an existing tuple (using shared read lock), - * but releases lock immediately after read. - * - * @note Using this operation twice in the same transaction - * may produce different results (e.g. if there is another - * transaction which updates the value between the - * simple reads). - * - * Note that simpleRead can read the value from any database node while - * standard read always read the value on the database node which is - * primary for the record. - * - * @return 0 if successful otherwise -1. - */ - int simpleRead(); - - /** - * Define the NdbOperation to be a standard operation of type committedRead. - * When calling NdbTransaction::execute, this operation - * read latest committed value of the record. - * - * This means that if another transaction is updating the - * record, then the current transaction will not wait. - * It will instead use the latest committed value of the - * record. - * - * @return 0 if successful otherwise -1. - */ - int dirtyRead(); - - int committedRead(); -#endif - - /** - * Define the NdbIndexOperation to be a standard operation of type - * updateTuple. - * - * When calling NdbTransaction::execute, this operation - * updates a tuple in the table. - * - * @return 0 if successful otherwise -1. - */ - int updateTuple(); - - /** - * Define the NdbIndexOperation to be a standard operation of type - * deleteTuple. - * - * When calling NdbTransaction::execute, this operation - * deletes a tuple. - * - * @return 0 if successful otherwise -1. - */ - int deleteTuple(); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Define the NdbIndexOperation to be a standard operation of type - * dirtyUpdate. - * - * When calling NdbTransaction::execute, this operation - * updates without two-phase commit. - * - * @return 0 if successful otherwise -1. - */ - int dirtyUpdate(); -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** @} *********************************************************************/ - /** - * @name Define Interpreted Program Operation - * @{ - */ - - /** - * Update a tuple using an interpreted program. - * - * @return 0 if successful otherwise -1. - */ - int interpretedUpdateTuple(); - - /** - * Delete a tuple using an interpreted program. - * - * @return 0 if successful otherwise -1. - */ - int interpretedDeleteTuple(); -#endif - - /** @} *********************************************************************/ - -private: - NdbIndexOperation(Ndb* aNdb); - ~NdbIndexOperation(); - - int receiveTCINDXREF(NdbApiSignal* aSignal); - - // Overloaded methods from NdbCursorOperation - int indxInit(const class NdbIndexImpl* anIndex, - const class NdbTableImpl* aTable, - NdbTransaction*); - - int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); - - // Private attributes - const NdbIndexImpl* m_theIndex; -}; - -#endif diff --git a/ndb/include/ndbapi/NdbIndexScanOperation.hpp b/ndb/include/ndbapi/NdbIndexScanOperation.hpp deleted file mode 100644 index b91a2a90d11..00000000000 --- a/ndb/include/ndbapi/NdbIndexScanOperation.hpp +++ /dev/null @@ -1,155 +0,0 @@ -/* 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 NdbIndexScanOperation_H -#define NdbIndexScanOperation_H - -#include <NdbScanOperation.hpp> - -/** - * @class NdbIndexScanOperation - * @brief Class of scan operations for use to scan ordered index - */ -class NdbIndexScanOperation : public NdbScanOperation { -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbTransaction; - friend class NdbResultSet; - friend class NdbOperation; - friend class NdbScanOperation; -#endif - -public: - /** - * readTuples using ordered index - * - * @param lock_mode Lock mode - * @param batch No of rows to fetch from each fragment at a time - * @param parallel No of fragments to scan in parallel - * @param order_by Order result set in index order - * @param order_desc Order descending, ignored unless order_by - * @param read_range_no Enable reading of range no using @ref get_range_no - * @returns 0 for success and -1 for failure - * @see NdbScanOperation::readTuples - */ - int readTuples(LockMode lock_mode = LM_Read, - Uint32 batch = 0, - Uint32 parallel = 0, - bool order_by = false, - bool order_desc = false, - bool read_range_no = false); - - /** - * Type of ordered index key bound. The values (0-4) will not change - * and can be used explicitly (e.g. they could be computed). - */ - enum BoundType { - BoundLE = 0, ///< lower bound - BoundLT = 1, ///< lower bound, strict - BoundGE = 2, ///< upper bound - BoundGT = 3, ///< upper bound, strict - BoundEQ = 4 ///< equality - }; - - /** - * Define bound on index key in range scan. - * - * Each index key can have lower and/or upper bound. Setting the key - * equal to a value defines both upper and lower bounds. The bounds - * can be defined in any order. Conflicting definitions is an error. - * - * For equality, it is better to use BoundEQ instead of the equivalent - * pair of BoundLE and BoundGE. This is especially true when table - * partition key is an initial part of the index key. - * - * The sets of lower and upper bounds must be on initial sequences of - * index keys. All but possibly the last bound must be non-strict. - * So "a >= 2 and b > 3" is ok but "a > 2 and b >= 3" is not. - * - * The scan may currently return tuples for which the bounds are not - * satisfied. For example, "a <= 2 and b <= 3" scans the index up to - * (a=2, b=3) but also returns any (a=1, b=4). - * - * NULL is treated like a normal value which is less than any not-NULL - * value and equal to another NULL value. To compare against NULL use - * setBound with null pointer (0). - * - * An index stores also all-NULL keys. Doing index scan with empty - * bound set returns all table tuples. - * - * @param attr Attribute name, alternatively: - * @param type Type of bound - * @param value Pointer to bound value, 0 for NULL - * @param len Value length in bytes. - * Fixed per datatype and can be omitted - * @return 0 if successful otherwise -1 - */ - int setBound(const char* attr, int type, const void* value, Uint32 len = 0); - - /** - * Define bound on index key in range scan using index column id. - * See the other setBound() method for details. - */ - int setBound(Uint32 anAttrId, int type, const void* aValue, Uint32 len = 0); - - /** - * Reset bounds and put operation in list that will be - * sent on next execute - */ - int reset_bounds(bool forceSend = false); - - /** - * Marks end of a bound, - * used when batching index reads (multiple ranges) - */ - int end_of_bound(Uint32 range_no); - - /** - * Return range no for current row - */ - int get_range_no(); - - /** - * Is current scan sorted - */ - bool getSorted() const { return m_ordered; } - - /** - * Is current scan sorted descending - */ - bool getDescending() const { return m_descending; } -private: - NdbIndexScanOperation(Ndb* aNdb); - virtual ~NdbIndexScanOperation(); - - int setBound(const NdbColumnImpl*, int type, const void* aValue, Uint32 len); - int insertBOUNDS(Uint32 * data, Uint32 sz); - - virtual int equal_impl(const NdbColumnImpl*, const char*, Uint32); - virtual NdbRecAttr* getValue_impl(const NdbColumnImpl*, char*); - - void fix_get_values(); - int next_result_ordered(bool fetchAllowed, bool forceSend = false); - int send_next_scan_ordered(Uint32 idx, bool forceSend = false); - int compare(Uint32 key, Uint32 cols, const NdbReceiver*, const NdbReceiver*); - - Uint32 m_sort_columns; - - Uint32 m_this_bound_start; - Uint32 * m_first_bound_word; -}; - -#endif diff --git a/ndb/include/ndbapi/NdbOperation.hpp b/ndb/include/ndbapi/NdbOperation.hpp deleted file mode 100644 index fca610772cc..00000000000 --- a/ndb/include/ndbapi/NdbOperation.hpp +++ /dev/null @@ -1,1226 +0,0 @@ -/* 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 NdbOperation_H -#define NdbOperation_H - -#include <ndb_types.h> -#include "ndbapi_limits.h" -#include "NdbError.hpp" -#include "NdbReceiver.hpp" -#include "NdbDictionary.hpp" - -class Ndb; -class NdbApiSignal; -class NdbRecAttr; -class NdbOperation; -class NdbTransaction; -class NdbColumnImpl; -class NdbBlob; - -/** - * @class NdbOperation - * @brief Class of operations for use in transactions. - */ -class NdbOperation -{ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbTransaction; - friend class NdbScanOperation; - friend class NdbScanReceiver; - friend class NdbScanFilter; - friend class NdbScanFilterImpl; - friend class NdbReceiver; - friend class NdbBlob; -#endif - -public: - /** - * @name Define Standard Operation Type - * @{ - */ - - /** - * Lock when performing read - */ - - enum LockMode { - LM_Read ///< Read with shared lock -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = 0 -#endif - ,LM_Exclusive ///< Read with exclusive lock -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = 1 -#endif - ,LM_CommittedRead ///< Ignore locks, read last committed value -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = 2, - LM_Dirty = 2 -#endif - }; - - /** - * Define the NdbOperation to be a standard operation of type insertTuple. - * When calling NdbTransaction::execute, this operation - * adds a new tuple to the table. - * - * @return 0 if successful otherwise -1. - */ - virtual int insertTuple(); - - /** - * Define the NdbOperation to be a standard operation of type updateTuple. - * When calling NdbTransaction::execute, this operation - * updates a tuple in the table. - * - * @return 0 if successful otherwise -1. - */ - virtual int updateTuple(); - - /** - * Define the NdbOperation to be a standard operation of type writeTuple. - * When calling NdbTransaction::execute, this operation - * writes a tuple to the table. - * If the tuple exists, it updates it, otherwise an insert takes place. - * - * @return 0 if successful otherwise -1. - */ - virtual int writeTuple(); - - /** - * Define the NdbOperation to be a standard operation of type deleteTuple. - * When calling NdbTransaction::execute, this operation - * delete a tuple. - * - * @return 0 if successful otherwise -1. - */ - virtual int deleteTuple(); - - /** - * Define the NdbOperation to be a standard operation of type readTuple. - * When calling NdbTransaction::execute, this operation - * reads a tuple. - * - * @return 0 if successful otherwise -1. - */ - virtual int readTuple(LockMode); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Define the NdbOperation to be a standard operation of type readTuple. - * When calling NdbTransaction::execute, this operation - * reads a tuple. - * - * @return 0 if successful otherwise -1. - */ - virtual int readTuple(); - - /** - * Define the NdbOperation to be a standard operation of type - * readTupleExclusive. - * When calling NdbTransaction::execute, this operation - * read a tuple using an exclusive lock. - * - * @return 0 if successful otherwise -1. - */ - virtual int readTupleExclusive(); - - /** - * Define the NdbOperation to be a standard operation of type - * simpleRead. - * When calling NdbTransaction::execute, this operation - * reads an existing tuple (using shared read lock), - * but releases lock immediately after read. - * - * @note Using this operation twice in the same transaction - * may produce different results (e.g. if there is another - * transaction which updates the value between the - * simple reads). - * - * Note that simpleRead can read the value from any database node while - * standard read always read the value on the database node which is - * primary for the record. - * - * @return 0 if successful otherwise -1. - */ - virtual int simpleRead(); - - /** - * Define the NdbOperation to be a standard operation of type committedRead. - * When calling NdbTransaction::execute, this operation - * read latest committed value of the record. - * - * This means that if another transaction is updating the - * record, then the current transaction will not wait. - * It will instead use the latest committed value of the - * record. - * dirtyRead is a deprecated name for committedRead - * - * @return 0 if successful otherwise -1. - * @depricated - */ - virtual int dirtyRead(); - - /** - * Define the NdbOperation to be a standard operation of type committedRead. - * When calling NdbTransaction::execute, this operation - * read latest committed value of the record. - * - * This means that if another transaction is updating the - * record, then the current transaction will not wait. - * It will instead use the latest committed value of the - * record. - * - * @return 0 if successful otherwise -1. - */ - virtual int committedRead(); - - /** - * Define the NdbOperation to be a standard operation of type dirtyUpdate. - * When calling NdbTransaction::execute, this operation - * updates without two-phase commit. - * - * @return 0 if successful otherwise -1. - */ - virtual int dirtyUpdate(); - - /** - * Define the NdbOperation to be a standard operation of type dirtyWrite. - * When calling NdbTransaction::execute, this operation - * writes without two-phase commit. - * - * @return 0 if successful otherwise -1. - */ - virtual int dirtyWrite(); -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** @} *********************************************************************/ - /** - * @name Define Interpreted Program Operation Type - * @{ - */ - - /** - * Update a tuple using an interpreted program. - * - * @return 0 if successful otherwise -1. - */ - virtual int interpretedUpdateTuple(); - - /** - * Delete a tuple using an interpreted program. - * - * @return 0 if successful otherwise -1. - */ - virtual int interpretedDeleteTuple(); -#endif - - /** @} *********************************************************************/ - - /** - * @name Specify Search Conditions - * @{ - */ - /** - * Define a search condition with equality. - * The condition is true if the attribute has the given value. - * To set search conditions on multiple attributes, - * use several equals (then all of them must be satisfied for the - * tuple to be selected). - * - * @note For insertTuple() it is also allowed to define the - * search key by using setValue(). - * - * @note There are 10 versions of equal() with - * slightly different parameters. - * - * @note When using equal() with a string (char *) as - * second argument, the string needs to be padded with - * zeros in the following sense: - * @code - * // Equal needs strings to be padded with zeros - * strncpy(buf, str, sizeof(buf)); - * NdbOperation->equal("Attr1", buf); - * @endcode - * - * - * - * @param anAttrName Attribute name - * @param aValue Attribute value. - * @param len Attribute length expressed in bytes. - * @return -1 if unsuccessful. - */ - int equal(const char* anAttrName, const char* aValue, Uint32 len = 0); - int equal(const char* anAttrName, Uint32 aValue); - int equal(const char* anAttrName, Int32 aValue); - int equal(const char* anAttrName, Int64 aValue); - int equal(const char* anAttrName, Uint64 aValue); - int equal(Uint32 anAttrId, const char* aValue, Uint32 len = 0); - int equal(Uint32 anAttrId, Int32 aValue); - int equal(Uint32 anAttrId, Uint32 aValue); - int equal(Uint32 anAttrId, Int64 aValue); - int equal(Uint32 anAttrId, Uint64 aValue); - - /** @} *********************************************************************/ - /** - * @name Specify Attribute Actions for Operations - * @{ - */ - - /** - * Defines a retrieval operation of an attribute value. - * The NDB API allocate memory for the NdbRecAttr object that - * will hold the returned attribute value. - * - * @note Note that it is the applications responsibility - * to allocate enough memory for aValue (if non-NULL). - * The buffer aValue supplied by the application must be - * aligned appropriately. The buffer is used directly - * (avoiding a copy penalty) only if it is aligned on a - * 4-byte boundary and the attribute size in bytes - * (i.e. NdbRecAttr::attrSize times NdbRecAttr::arraySize is - * a multiple of 4). - * - * @note There are two versions of NdbOperation::getValue with - * slightly different parameters. - * - * @note This method does not fetch the attribute value from - * the database! The NdbRecAttr object returned by this method - * is <em>not</em> readable/printable before the - * transaction has been executed with NdbTransaction::execute. - * - * @param anAttrName Attribute name - * @param aValue If this is non-NULL, then the attribute value - * will be returned in this parameter.<br> - * If NULL, then the attribute value will only - * be stored in the returned NdbRecAttr object. - * @return An NdbRecAttr object to hold the value of - * the attribute, or a NULL pointer - * (indicating error). - */ - NdbRecAttr* getValue(const char* anAttrName, char* aValue = 0); - NdbRecAttr* getValue(Uint32 anAttrId, char* aValue = 0); - NdbRecAttr* getValue(const NdbDictionary::Column*, char* val = 0); - - /** - * Define an attribute to set or update in query. - * - * To set a NULL value, use the following construct: - * @code - * setValue("ATTR_NAME", (char*)NULL); - * @endcode - * - * There are a number of NdbOperation::setValue methods that - * take a certain type as input - * (pass by value rather than passing a pointer). - * As the interface is currently implemented it is the responsibility - * of the application programmer to use the correct types. - * - * The NDB API will however check that the application sends - * a correct length to the interface as given in the length parameter. - * The passing of char* as the value can contain any type or - * any type of array. - * If length is not provided or set to zero, - * then the API will assume that the pointer - * is correct and not bother with checking it. - * - * @note For insertTuple() the NDB API will automatically detect that - * it is supposed to use equal() instead. - * - * @note For insertTuple() it is not necessary to use - * setValue() on key attributes before other attributes. - * - * @note There are 14 versions of NdbOperation::setValue with - * slightly different parameters. - * - * @param anAttrName Name (or Id) of attribute. - * @param aValue Attribute value to set. - * @param len Attribute length expressed in bytes. - * @return -1 if unsuccessful. - */ - virtual int setValue(const char* anAttrName, const char* aValue, - Uint32 len = 0); - virtual int setValue(const char* anAttrName, Int32 aValue); - virtual int setValue(const char* anAttrName, Uint32 aValue); - virtual int setValue(const char* anAttrName, Uint64 aValue); - virtual int setValue(const char* anAttrName, Int64 aValue); - virtual int setValue(const char* anAttrName, float aValue); - virtual int setValue(const char* anAttrName, double aValue); - - virtual int setValue(Uint32 anAttrId, const char* aValue, Uint32 len = 0); - virtual int setValue(Uint32 anAttrId, Int32 aValue); - virtual int setValue(Uint32 anAttrId, Uint32 aValue); - virtual int setValue(Uint32 anAttrId, Uint64 aValue); - virtual int setValue(Uint32 anAttrId, Int64 aValue); - virtual int setValue(Uint32 anAttrId, float aValue); - virtual int setValue(Uint32 anAttrId, double aValue); - - /** - * This method replaces getValue/setValue for blobs. It creates - * a blob handle NdbBlob. A second call with same argument returns - * the previously created handle. The handle is linked to the - * operation and is maintained automatically. - * - * See NdbBlob for details. - */ - virtual NdbBlob* getBlobHandle(const char* anAttrName); - virtual NdbBlob* getBlobHandle(Uint32 anAttrId); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** @} *********************************************************************/ - /** - * @name Specify Interpreted Program Instructions - * @{ - */ - - /** - * Interpreted program instruction: Add a value to an attribute. - * - * @note Destroys the contents of registers 6 and 7. - * (The instruction uses these registers for its operation.) - * - * @note There are four versions of NdbOperation::incValue with - * slightly different parameters. - * - * @param anAttrName Attribute name. - * @param aValue Value to add. - * @return -1 if unsuccessful. - */ - int incValue(const char* anAttrName, Uint32 aValue); - int incValue(const char* anAttrName, Uint64 aValue); - int incValue(Uint32 anAttrId, Uint32 aValue); - int incValue(Uint32 anAttrId, Uint64 aValue); - - /** - * Interpreted program instruction: - * Subtract a value from an attribute in an interpreted operation. - * - * @note Destroys the contents of registers 6 and 7. - * (The instruction uses these registers for its operation.) - * - * @note There are four versions of NdbOperation::subValue with - * slightly different parameters. - * - * @param anAttrName Attribute name. - * @param aValue Value to subtract. - * @return -1 if unsuccessful. - */ - int subValue(const char* anAttrName, Uint32 aValue); - int subValue(const char* anAttrName, Uint64 aValue); - int subValue(Uint32 anAttrId, Uint32 aValue); - int subValue(Uint32 anAttrId, Uint64 aValue); - - /** - * Interpreted program instruction: - * Define a jump label in an interpreted operation. - * - * @note The labels are automatically numbered starting with 0. - * The parameter used by NdbOperation::def_label should - * match the automatic numbering to make it easier to - * debug the interpreted program. - * - * @param labelNumber Label number. - * @return -1 if unsuccessful. - */ - int def_label(int labelNumber); - - /** - * Interpreted program instruction: - * Add two registers into a third. - * - * @param RegSource1 First register. - * @param RegSource2 Second register. - * @param RegDest Destination register where the result will be stored. - * @return -1 if unsuccessful. - */ - int add_reg(Uint32 RegSource1, Uint32 RegSource2, Uint32 RegDest); - - /** - * Interpreted program instruction: - * Substract RegSource1 from RegSource2 and put the result in RegDest. - * - * @param RegSource1 First register. - * @param RegSource2 Second register. - * @param RegDest Destination register where the result will be stored. - * @return -1 if unsuccessful. - */ - int sub_reg(Uint32 RegSource1, Uint32 RegSource2, Uint32 RegDest); - - /** - * Interpreted program instruction: - * Load a constant into a register. - * - * @param RegDest Destination register. - * @param Constant Value to load. - * @return -1 if unsuccessful. - */ - int load_const_u32(Uint32 RegDest, Uint32 Constant); - int load_const_u64(Uint32 RegDest, Uint64 Constant); - - /** - * Interpreted program instruction: - * Load NULL value into a register. - * - * @param RegDest Destination register. - * @return -1 if unsuccessful. - */ - int load_const_null(Uint32 RegDest); - - /** - * Interpreted program instruction: - * Read an attribute into a register. - * - * @param anAttrName Attribute name. - * @param RegDest Destination register. - * @return -1 if unsuccessful. - */ - int read_attr(const char* anAttrName, Uint32 RegDest); - - /** - * Interpreted program instruction: - * Write an attribute from a register. - * - * @param anAttrName Attribute name. - * @param RegSource Source register. - * @return -1 if unsuccessful. - */ - int write_attr(const char* anAttrName, Uint32 RegSource); - - /** - * Interpreted program instruction: - * Read an attribute into a register. - * - * @param anAttrId the attribute id. - * @param RegDest the destination register. - * @return -1 if unsuccessful. - */ - int read_attr(Uint32 anAttrId, Uint32 RegDest); - - /** - * Interpreted program instruction: - * Write an attribute from a register. - * - * @param anAttrId the attribute id. - * @param RegSource the source register. - * @return -1 if unsuccessful. - */ - int write_attr(Uint32 anAttrId, Uint32 RegSource); - - /** - * Interpreted program instruction: - * Define a search condition. Last two letters in the function name - * describes the search condition. - * The condition compares RegR with RegL and therefore appears - * to be reversed. - * - * - ge RegR >= RegL - * - gt RegR > RegL - * - le RegR <= RegL - * - lt RegR < RegL - * - eq RegR = RegL - * - ne RegR <> RegL - * - * @param RegLvalue left value. - * @param RegRvalue right value. - * @param Label the label to jump to. - * @return -1 if unsuccessful. - */ - int branch_ge(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - int branch_gt(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - int branch_le(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - int branch_lt(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - int branch_eq(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - int branch_ne(Uint32 RegLvalue, Uint32 RegRvalue, Uint32 Label); - - /** - * Interpreted program instruction: - * Jump to Label if RegLvalue is not NULL. - * - * @param RegLvalue the value to check. - * @param Label the label to jump to. - * @return -1 if unsuccessful. - */ - int branch_ne_null(Uint32 RegLvalue, Uint32 Label); - - /** - * Interpreted program instruction: - * Jump to Label if RegLvalue is equal to NULL. - * - * @param RegLvalue Value to check. - * @param Label Label to jump to. - * @return -1 if unsuccessful. - */ - int branch_eq_null(Uint32 RegLvalue, Uint32 Label); - - /** - * Interpreted program instruction: - * Jump to Label. - * - * @param Label Label to jump to. - * @return -1 if unsuccessful. - */ - int branch_label(Uint32 Label); - - /** - * Interpreted program instruction: branch after memcmp - * @param ColId Column to check - * @param Label Label to jump to - * @return -1 if unsuccessful - */ - int branch_col_eq_null(Uint32 ColId, Uint32 Label); - int branch_col_ne_null(Uint32 ColId, Uint32 Label); - - /** - * Interpreted program instruction: branch after memcmp - * @param ColId column to check - * @param val search value - * @param len length of search value - * @param nopad force non-padded comparison for a Char column - * @param Label label to jump to - * @return -1 if unsuccessful - */ - int branch_col_eq(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_ne(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_lt(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_le(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_gt(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_ge(Uint32 ColId, const void * val, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_like(Uint32 ColId, const void *, Uint32 len, - bool nopad, Uint32 Label); - int branch_col_notlike(Uint32 ColId, const void *, Uint32 len, - bool nopad, Uint32 Label); - - /** - * Interpreted program instruction: Exit with Ok - * - * For scanning transactions, - * end interpreted operation and return the row to the application. - * - * For non-scanning transactions, - * exit interpreted program. - * - * @return -1 if unsuccessful. - */ - int interpret_exit_ok(); - - /** - * Interpreted program instruction: Exit with Not Ok - * - * For scanning transactions, - * continue with the next row without returning the current row. - * - * For non-scanning transactions, - * abort the whole transaction. - * - * @note A method also exists without the error parameter. - * - * @param ErrorCode An error code given by the application programmer. - * @return -1 if unsuccessful. - */ - int interpret_exit_nok(Uint32 ErrorCode); - int interpret_exit_nok(); - - - /** - * Interpreted program instruction: - * - * For scanning transactions, - * return this row, but no more from this fragment - * - * For non-scanning transactions, - * abort the whole transaction. - * - * @return -1 if unsuccessful. - */ - int interpret_exit_last_row(); - - /** - * Interpreted program instruction: - * Define a subroutine in an interpreted operation. - * - * @param SubroutineNumber the subroutine number. - * @return -1 if unsuccessful. - */ - int def_subroutine(int SubroutineNumber); - - /** - * Interpreted program instruction: - * Call a subroutine. - * - * @param Subroutine the subroutine to call. - * @return -1 if unsuccessful. - */ - int call_sub(Uint32 Subroutine); - - /** - * Interpreted program instruction: - * End a subroutine. - * - * @return -1 if unsuccessful. - */ - int ret_sub(); -#endif - - /** @} *********************************************************************/ - - /** - * @name Error Handling - * @{ - */ - - /** - * Get the latest error code. - * - * @return error code. - */ - const NdbError & getNdbError() const; - - /** - * Get the method number where the error occured. - * - * @return method number where the error occured. - */ - int getNdbErrorLine(); - - /** - * Get table name of this operation. - */ - const char* getTableName() const; - - /** - * Get table object for this operation - */ - const NdbDictionary::Table * getTable() const; - - /** @} *********************************************************************/ - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Type of operation - */ - enum OperationType { - ReadRequest = 0, ///< Read operation - UpdateRequest = 1, ///< Update Operation - InsertRequest = 2, ///< Insert Operation - DeleteRequest = 3, ///< Delete Operation - WriteRequest = 4, ///< Write Operation - ReadExclusive = 5, ///< Read exclusive - OpenScanRequest, ///< Scan Operation - OpenRangeScanRequest, ///< Range scan operation - NotDefined2, ///< Internal for debugging - NotDefined ///< Internal for debugging - }; -#endif - - /** - * Return lock mode for operation - */ - LockMode getLockMode() const { return theLockMode; } - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - void setAbortOption(Int8 ao) { m_abortOption = ao; } - - /** - * Set/get partition key - */ - void setPartitionId(Uint32 id); - void setPartitionHash(Uint32 key); - void setPartitionHash(const Uint64 *, Uint32 len); - Uint32 getPartitionId() const; -#endif -protected: - int handle_distribution_key(const Uint64 *, Uint32 len); -protected: -/****************************************************************************** - * These are the methods used to create and delete the NdbOperation objects. - *****************************************************************************/ - NdbOperation(Ndb* aNdb); - virtual ~NdbOperation(); - - bool needReply(); -/****************************************************************************** - * These methods are service routines used by the other NDB API classes. - *****************************************************************************/ -//-------------------------------------------------------------- -// Initialise after allocating operation to a transaction -//-------------------------------------------------------------- - int init(const class NdbTableImpl*, NdbTransaction* aCon); - void initInterpreter(); - - void next(NdbOperation*); // Set next pointer - NdbOperation* next(); // Get next pointer -public: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const NdbOperation* next() const; - const NdbRecAttr* getFirstRecAttr() const; -#endif -protected: - - enum OperationStatus - { - Init, - OperationDefined, - TupleKeyDefined, - GetValue, - SetValue, - ExecInterpretedValue, - SetValueInterpreted, - FinalGetValue, - SubroutineExec, - SubroutineEnd, - WaitResponse, - WaitCommitResponse, - Finished, - ReceiveFinished - }; - - OperationStatus Status(); // Read the status information - - void Status(OperationStatus); // Set the status information - - void NdbCon(NdbTransaction*); // Set reference to connection - // object. - - virtual void release(); // Release all operations - // connected to - // the operations object. - void setStartIndicator(); - -/****************************************************************************** - * The methods below is the execution part of the NdbOperation - * class. This is where the NDB signals are sent and received. The - * operation can send TC[KEY/INDX]REQ, [INDX]ATTRINFO. - * It can receive TC[KEY/INDX]CONF, TC[KEY/INDX]REF, [INDX]ATTRINFO. - * When an operation is received in its fulness or a refuse message - * was sent, then the connection object is told about this situation. - *****************************************************************************/ - - int doSend(int ProcessorId, Uint32 lastFlag); - virtual int prepareSend(Uint32 TC_ConnectPtr, - Uint64 TransactionId); - virtual void setLastFlag(NdbApiSignal* signal, Uint32 lastFlag); - - int prepareSendInterpreted(); // Help routine to prepare* - - int receiveTCKEYREF(NdbApiSignal*); - - int checkMagicNumber(bool b = true); // Verify correct object - - int checkState_TransId(NdbApiSignal* aSignal); - -/****************************************************************************** - * These are support methods only used locally in this class. -******************************************************************************/ - - virtual int equal_impl(const NdbColumnImpl*,const char* aValue, Uint32 len); - virtual NdbRecAttr* getValue_impl(const NdbColumnImpl*, char* aValue = 0); - int setValue(const NdbColumnImpl* anAttrObject, const char* aValue, Uint32 len); - NdbBlob* getBlobHandle(NdbTransaction* aCon, const NdbColumnImpl* anAttrObject); - int incValue(const NdbColumnImpl* anAttrObject, Uint32 aValue); - int incValue(const NdbColumnImpl* anAttrObject, Uint64 aValue); - int subValue(const NdbColumnImpl* anAttrObject, Uint32 aValue); - int subValue(const NdbColumnImpl* anAttrObject, Uint64 aValue); - int read_attr(const NdbColumnImpl* anAttrObject, Uint32 RegDest); - int write_attr(const NdbColumnImpl* anAttrObject, Uint32 RegSource); - int branch_reg_reg(Uint32 type, Uint32, Uint32, Uint32); - int branch_col(Uint32 type, Uint32, const void *, Uint32, bool, Uint32 Label); - int branch_col_null(Uint32 type, Uint32 col, Uint32 Label); - - // Handle ATTRINFO signals - int insertATTRINFO(Uint32 aData); - int insertATTRINFOloop(const Uint32* aDataPtr, Uint32 aLength); - - int insertKEYINFO(const char* aValue, - Uint32 aStartPosition, - Uint32 aKeyLenInByte); - - virtual void setErrorCode(int aErrorCode); - virtual void setErrorCodeAbort(int aErrorCode); - - void handleFailedAI_ElemLen(); // When not all attribute data - // were received - - int incCheck(const NdbColumnImpl* anAttrObject); - int initial_interpreterCheck(); - int intermediate_interpreterCheck(); - int read_attrCheck(const NdbColumnImpl* anAttrObject); - int write_attrCheck(const NdbColumnImpl* anAttrObject); - int labelCheck(); - int insertCall(Uint32 aCall); - int insertBranch(Uint32 aBranch); - - Uint32 ptr2int() { return theReceiver.getId(); }; - - // get table or index key from prepared signals - int getKeyFromTCREQ(Uint32* data, unsigned size); - -/****************************************************************************** - * These are the private variables that are defined in the operation objects. - *****************************************************************************/ - - NdbReceiver theReceiver; - - NdbError theError; // Errorcode - int theErrorLine; // Error line - - Ndb* theNdb; // Point back to the Ndb object. - NdbTransaction* theNdbCon; // Point back to the connection object. - NdbOperation* theNext; // Next pointer to operation. - - union { - NdbApiSignal* theTCREQ; // The TC[KEY/INDX]REQ signal object - NdbApiSignal* theSCAN_TABREQ; - }; - - NdbApiSignal* theFirstATTRINFO; // The first ATTRINFO signal object - NdbApiSignal* theCurrentATTRINFO; // The current ATTRINFO signal object - Uint32 theTotalCurrAI_Len; // The total number of attribute info - // words currently defined - Uint32 theAI_LenInCurrAI; // The number of words defined in the - // current ATTRINFO signal - NdbApiSignal* theLastKEYINFO; // The first KEYINFO signal object - - class NdbLabel* theFirstLabel; - class NdbLabel* theLastLabel; - class NdbBranch* theFirstBranch; - class NdbBranch* theLastBranch; - class NdbCall* theFirstCall; - class NdbCall* theLastCall; - class NdbSubroutine* theFirstSubroutine; - class NdbSubroutine* theLastSubroutine; - Uint32 theNoOfLabels; - Uint32 theNoOfSubroutines; - - Uint32* theKEYINFOptr; // Pointer to where to write KEYINFO - Uint32* theATTRINFOptr; // Pointer to where to write ATTRINFO - - const class NdbTableImpl* m_currentTable; // The current table - const class NdbTableImpl* m_accessTable; // Index table (== current for pk) - - // Set to TRUE when a tuple key attribute has been defined. - Uint32 theTupleKeyDefined[NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY][3]; - - Uint32 theTotalNrOfKeyWordInSignal; // The total number of - // keyword in signal. - - Uint32 theTupKeyLen; // Length of the tuple key in words - // left until done - Uint8 theNoOfTupKeyLeft; // The number of tuple key attributes - OperationType theOperationType; // Read Request, Update Req...... - - LockMode theLockMode; // Can be set to WRITE if read operation - OperationStatus theStatus; // The status of the operation. - - Uint32 theMagicNumber; // Magic number to verify that object - // is correct - Uint32 theScanInfo; // Scan info bits (take over flag etc) - Uint32 theDistributionKey; // Distribution Key size if used - - Uint32 theSubroutineSize; // Size of subroutines for interpretation - Uint32 theInitialReadSize; // Size of initial reads for interpretation - Uint32 theInterpretedSize; // Size of interpretation - Uint32 theFinalUpdateSize; // Size of final updates for interpretation - Uint32 theFinalReadSize; // Size of final reads for interpretation - - Uint8 theStartIndicator; // Indicator of whether start operation - Uint8 theCommitIndicator; // Indicator of whether commit operation - Uint8 theSimpleIndicator; // Indicator of whether simple operation - Uint8 theDirtyIndicator; // Indicator of whether dirty operation - Uint8 theInterpretIndicator; // Indicator of whether interpreted operation - Int8 theDistrKeyIndicator_; // Indicates whether distr. key is used - - Uint16 m_tcReqGSN; - Uint16 m_keyInfoGSN; - Uint16 m_attrInfoGSN; - - // Blobs in this operation - NdbBlob* theBlobList; - - /* - * Abort option per operation, used by blobs. Default -1. If set, - * overrides abort option on connection level. If set to IgnoreError, - * does not cause execute() to return failure. This is different from - * IgnoreError on connection level. - */ - Int8 m_abortOption; -}; - -#ifdef NDB_NO_DROPPED_SIGNAL -#include <stdlib.h> -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -inline -int -NdbOperation::checkMagicNumber(bool b) -{ - if (theMagicNumber != 0xABCDEF01){ -#ifdef NDB_NO_DROPPED_SIGNAL - if(b) abort(); -#endif - return -1; - } - return 0; -} - -inline -void -NdbOperation::setStartIndicator() -{ - theStartIndicator = 1; -} - -inline -int -NdbOperation::getNdbErrorLine() -{ - return theErrorLine; -} - -/****************************************************************************** -void next(NdbOperation* aNdbOperation); - -Parameters: aNdbOperation: Pointers to the NdbOperation object. -Remark: Set the next variable of the operation object. -******************************************************************************/ -inline -void -NdbOperation::next(NdbOperation* aNdbOperation) -{ - theNext = aNdbOperation; -} - -/****************************************************************************** -NdbOperation* next(); - -Return Value: Return next pointer to NdbOperation object. -Remark: Get the next variable of the operation object. -******************************************************************************/ -inline -NdbOperation* -NdbOperation::next() -{ - return theNext; -} - -inline -const NdbOperation* -NdbOperation::next() const -{ - return theNext; -} - -inline -const NdbRecAttr* -NdbOperation::getFirstRecAttr() const -{ - return theReceiver.theFirstRecAttr; -} - -/****************************************************************************** -OperationStatus Status(); - -Return Value Return the OperationStatus. -Parameters: aStatus: The status. -Remark: Sets Operation status. -******************************************************************************/ -inline -NdbOperation::OperationStatus -NdbOperation::Status() -{ - return theStatus; -} - -/****************************************************************************** -void Status(OperationStatus aStatus); - -Parameters: aStatus: The status. -Remark: Sets Operation - status. -******************************************************************************/ -inline -void -NdbOperation::Status( OperationStatus aStatus ) -{ - theStatus = aStatus; -} - -/****************************************************************************** -void NdbCon(NdbTransaction* aNdbCon); - -Parameters: aNdbCon: Pointers to NdbTransaction object. -Remark: Set the reference to the connection in the operation object. -******************************************************************************/ -inline -void -NdbOperation::NdbCon(NdbTransaction* aNdbCon) -{ - theNdbCon = aNdbCon; -} - -inline -int -NdbOperation::equal(const char* anAttrName, Int32 aPar) -{ - return equal(anAttrName, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::equal(const char* anAttrName, Uint32 aPar) -{ - return equal(anAttrName, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::equal(const char* anAttrName, Int64 aPar) -{ - return equal(anAttrName, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::equal(const char* anAttrName, Uint64 aPar) -{ - return equal(anAttrName, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::equal(Uint32 anAttrId, Int32 aPar) -{ - return equal(anAttrId, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::equal(Uint32 anAttrId, Uint32 aPar) -{ - return equal(anAttrId, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::equal(Uint32 anAttrId, Int64 aPar) -{ - return equal(anAttrId, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::equal(Uint32 anAttrId, Uint64 aPar) -{ - return equal(anAttrId, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, Int32 aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, Uint32 aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, Int64 aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, Uint64 aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, float aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(const char* anAttrName, double aPar) -{ - return setValue(anAttrName, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, Int32 aPar) -{ - return setValue(anAttrId, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, Uint32 aPar) -{ - return setValue(anAttrId, (const char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, Int64 aPar) -{ - return setValue(anAttrId, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, Uint64 aPar) -{ - return setValue(anAttrId, (const char*)&aPar, (Uint32)8); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, float aPar) -{ - return setValue(anAttrId, (char*)&aPar, (Uint32)4); -} - -inline -int -NdbOperation::setValue(Uint32 anAttrId, double aPar) -{ - return setValue(anAttrId, (const char*)&aPar, (Uint32)8); -} - -#endif // doxygen - -#endif diff --git a/ndb/include/ndbapi/NdbPool.hpp b/ndb/include/ndbapi/NdbPool.hpp deleted file mode 100644 index 64cba5a008c..00000000000 --- a/ndb/include/ndbapi/NdbPool.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* 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 */ - -class Ndb; -class NdbPool; - -bool -create_instance(Uint32 max_ndb_objects, - Uint32 no_conn_obj, - Uint32 init_no_ndb_objects); - -void -drop_instance(); - -Ndb* -get_ndb_object(Uint32 &hint_id, - const char* a_catalog_name, - const char* a_schema_name); - -void -return_ndb_object(Ndb* returned_object, Uint32 id); - diff --git a/ndb/include/ndbapi/NdbRecAttr.hpp b/ndb/include/ndbapi/NdbRecAttr.hpp deleted file mode 100644 index 50de4f3277e..00000000000 --- a/ndb/include/ndbapi/NdbRecAttr.hpp +++ /dev/null @@ -1,445 +0,0 @@ -/* 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 NdbRecAttr_H -#define NdbRecAttr_H - -#include <NdbDictionary.hpp> - -class NdbOperation; - -/** - * @class NdbRecAttr - * @brief Contains value of an attribute. - * - * NdbRecAttr objects are used to store the attribute value - * after retrieving the value from the NDB Cluster using the method - * NdbOperation::getValue. The objects are allocated by the NDB API. - * An example application program follows: - * - * @code - * MyRecAttr = MyOperation->getValue("ATTR2", NULL); - * if (MyRecAttr == NULL) goto error; - * - * if (MyTransaction->execute(Commit) == -1) goto error; - * - * ndbout << MyRecAttr->u_32_value(); - * @endcode - * For more examples, see - * @ref ndbapi_simple.cpp. - * - * @note The NdbRecAttr object is instantiated with its value when - * NdbTransaction::execute is called. Before this, the value is - * undefined. (NdbRecAttr::isNULL can be used to check - * if the value is defined or not.) - * This means that an NdbRecAttr object only has valid information - * between the time of calling NdbTransaction::execute and - * the time of Ndb::closeTransaction. - * The value of the null indicator is -1 until the - * NdbTransaction::execute method have been called. - * - * For simple types, there are methods which directly getting the value - * from the NdbRecAttr object. - * - * To get a reference to the value, there are two methods: - * NdbRecAttr::aRef (memory is released by NDB API) and - * NdbRecAttr::getAttributeObject (memory must be released - * by application program). - * The two methods may return different pointers. - * - * There are also methods to check attribute type, attribute size and - * array size. - * The method NdbRecAttr::arraySize returns the number of elements in the - * array (where each element is of size given by NdbRecAttr::attrSize). - * The NdbRecAttr::arraySize method is needed when reading variable-sized - * attributes. - * - * @note Variable-sized attributes are not yet supported. - */ -class NdbRecAttr -{ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbOperation; - friend class NdbIndexScanOperation; - friend class NdbEventOperationImpl; - friend class NdbReceiver; - friend class Ndb; - friend class NdbOut& operator<<(class NdbOut&, const class AttributeS&); -#endif - -public: - /** - * @name Getting meta information - * @{ - */ - const NdbDictionary::Column * getColumn() const; - - /** - * Get type of column - * @return Data type of the column - */ - NdbDictionary::Column::Type getType() const; - - /** - * Get attribute (element) size in bytes. - * - * @note For arrays, the method only gives the size of an element. - * The total attribute size is calculated by - * multiplying this value with the value - * returned by NdbRecAttr::arraySize. - * - * @return Attribute size in 32 bit unsigned int. - */ - Uint32 attrSize() const ; - - /** - * Get array size of attribute. - * For variable-sized arrays this method returns the - * size of the attribute read. - * - * @return array size in 32 unsigned int. - */ - Uint32 arraySize() const ; - Uint32 getLength() const ; - - /** @} *********************************************************************/ - /** - * @name Getting stored value - * @{ - */ - - /** - * Check if attribute value is NULL. - * - * @return -1 = Not defined (Failure or - * NdbTransaction::execute not yet called).<br> - * 0 = Attribute value is defined, but not equal to NULL.<br> - * 1 = Attribute value is defined and equal to NULL. - */ - int isNULL() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return 64 bit long value. - */ - Int64 int64_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return 32 bit int value. - */ - Int32 int32_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Short value. - */ - short short_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Char value. - */ - char char_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return 64 bit unsigned value. - */ - Uint64 u_64_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return 32 bit unsigned value. - */ - Uint32 u_32_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Unsigned short value. - */ - Uint16 u_short_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Unsigned char value. - */ - Uint8 u_char_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Float value. - */ - float float_value() const; - - /** - * Get value stored in NdbRecAttr object. - * - * @return Double value. - */ - double double_value() const; - - /** @} *********************************************************************/ - /** - * @name Getting reference to stored value - * @{ - */ - - /** - * Get reference to attribute value. - * - * Returns a char*-pointer to the value. - * The pointer is aligned appropriately for the data type. - * The memory is released when Ndb::closeTransaction is executed - * for the transaction which read the value. - * - * @note The memory is released by NDB API. - * - * @note The pointer to the attribute value stored in an NdbRecAttr - * object (i.e. the pointer returned by aRef) is constant. - * This means that this method can be called anytime after - * NdbOperation::getValue has been called. - * - * @return Pointer to attribute value. - */ - char* aRef() const; - - /** @} *********************************************************************/ - - /** - * Make a copy of RecAttr object including all data. - * - * @note Copy needs to be deleted by application program. - */ - NdbRecAttr * clone() const; - - /** - * Destructor - * - * @note You should only delete RecAttr-copies, - * i.e. objects that has been cloned. - */ - ~NdbRecAttr(); - -public: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const NdbRecAttr* next() const; -#endif -private: - NdbRecAttr(); - - Uint32 attrId() const; /* Get attribute id */ - bool setNULL(); /* Set NULL indicator */ - void setUNDEFINED(); /* Set UNDEFINED indicator */ - bool receive_data(const Uint32*, Uint32); - - void release(); /* Release memory if allocated */ - void init(); /* Initialise object when allocated */ - - void next(NdbRecAttr* aRecAttr); - NdbRecAttr* next(); - - int setup(const class NdbDictionary::Column* col, char* aValue); - int setup(const class NdbColumnImpl* anAttrInfo, char* aValue); - /* Set up attributes and buffers */ - bool copyoutRequired() const; /* Need to copy data to application */ - void copyout(); /* Copy from storage to application */ - - Uint64 theStorage[4]; /* The data storage here if <= 32 bytes */ - Uint64* theStorageX; /* The data storage here if > 32 bytes */ - char* theValue; /* The data storage in the application */ - void* theRef; /* Pointer to one of above */ - - NdbRecAttr* theNext; /* Next pointer */ - Uint32 theAttrId; /* The attribute id */ - - int theNULLind; - bool m_nullable; - Uint32 theAttrSize; - Uint32 theArraySize; - const NdbDictionary::Column* m_column; -}; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -inline -NdbDictionary::Column::Type -NdbRecAttr::getType() const { - return m_column->getType(); -} - -inline -const NdbDictionary::Column * -NdbRecAttr::getColumn() const { - return m_column; -} - -inline -Uint32 -NdbRecAttr::attrSize() const { - return theAttrSize; -} - -inline -Uint32 -NdbRecAttr::arraySize() const -{ - return theArraySize; -} - -inline -Int32 -NdbRecAttr::int32_value() const -{ - return *(Int32*)theRef; -} - -inline -short -NdbRecAttr::short_value() const -{ - return *(short*)theRef; -} - -inline -char -NdbRecAttr::char_value() const -{ - return *(char*)theRef; -} - -inline -Uint32 -NdbRecAttr::u_32_value() const -{ - return *(Uint32*)theRef; -} - -inline -Uint16 -NdbRecAttr::u_short_value() const -{ - return *(Uint16*)theRef; -} - -inline -Uint8 -NdbRecAttr::u_char_value() const -{ - return *(Uint8*)theRef; -} - -inline -void -NdbRecAttr::release() -{ - if (theStorageX != 0) { - delete [] theStorageX; - theStorageX = 0; - } -} - -inline -void -NdbRecAttr::init() -{ - theStorageX = 0; - theValue = 0; - theRef = 0; - theNext = 0; - theAttrId = 0xFFFF; - theNULLind = -1; -} - -inline -void -NdbRecAttr::next(NdbRecAttr* aRecAttr) -{ - theNext = aRecAttr; -} - -inline -NdbRecAttr* -NdbRecAttr::next() -{ - return theNext; -} - -inline -const NdbRecAttr* -NdbRecAttr::next() const -{ - return theNext; -} - -inline -char* -NdbRecAttr::aRef() const -{ - return (char*)theRef; -} - -inline -bool -NdbRecAttr::copyoutRequired() const -{ - return theRef != theValue && theValue != 0; -} - -inline -Uint32 -NdbRecAttr::attrId() const -{ - return theAttrId; -} - -inline -bool -NdbRecAttr::setNULL() -{ - theNULLind = 1; - return m_nullable; -} - -inline -void -NdbRecAttr::setUNDEFINED() -{ - theNULLind = -1; -} - -inline -int -NdbRecAttr::isNULL() const -{ - return theNULLind; -} - -class NdbOut& operator <<(class NdbOut&, const NdbRecAttr &); - -#endif // ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -#endif - diff --git a/ndb/include/ndbapi/NdbReceiver.hpp b/ndb/include/ndbapi/NdbReceiver.hpp deleted file mode 100644 index ff6debc7fd3..00000000000 --- a/ndb/include/ndbapi/NdbReceiver.hpp +++ /dev/null @@ -1,150 +0,0 @@ -/* 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 NdbReceiver_H -#define NdbReceiver_H -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL // Not part of public interface - -#include <ndb_types.h> - -class Ndb; -class NdbTransaction; - -class NdbReceiver -{ - friend class Ndb; - friend class NdbOperation; - friend class NdbScanOperation; - friend class NdbIndexOperation; - friend class NdbIndexScanOperation; - friend class NdbTransaction; -public: - enum ReceiverType { NDB_UNINITIALIZED, - NDB_OPERATION = 1, - NDB_SCANRECEIVER = 2, - NDB_INDEX_OPERATION = 3 - }; - - NdbReceiver(Ndb *aNdb); - void init(ReceiverType type, void* owner); - void release(); - ~NdbReceiver(); - - Uint32 getId(){ - return m_id; - } - - ReceiverType getType(){ - return m_type; - } - - inline NdbTransaction * getTransaction(); - void* getOwner(){ - return m_owner; - } - - bool checkMagicNumber() const; - - inline void next(NdbReceiver* next) { m_next = next;} - inline NdbReceiver* next() { return m_next; } - - void setErrorCode(int); -private: - Uint32 theMagicNumber; - Ndb* m_ndb; - Uint32 m_id; - Uint32 m_tcPtrI; - Uint32 m_hidden_count; - ReceiverType m_type; - void* m_owner; - NdbReceiver* m_next; - - /** - * At setup - */ - class NdbRecAttr * getValue(const class NdbColumnImpl*, char * user_dst_ptr); - void do_get_value(NdbReceiver*, Uint32 rows, Uint32 key_size, Uint32 range); - void prepareSend(); - void calculate_batch_size(Uint32, Uint32, Uint32&, Uint32&, Uint32&); - - int execKEYINFO20(Uint32 info, const Uint32* ptr, Uint32 len); - int execTRANSID_AI(const Uint32* ptr, Uint32 len); - int execTCOPCONF(Uint32 len); - int execSCANOPCONF(Uint32 tcPtrI, Uint32 len, Uint32 rows); - class NdbRecAttr* theFirstRecAttr; - class NdbRecAttr* theCurrentRecAttr; - class NdbRecAttr** m_rows; - - Uint32 m_list_index; // When using multiple - Uint32 m_current_row; - Uint32 m_result_rows; - Uint32 m_defined_rows; - - Uint32 m_expected_result_length; - Uint32 m_received_result_length; - - bool nextResult() const { return m_current_row < m_result_rows; } - NdbRecAttr* copyout(NdbReceiver&); -}; - -#ifdef NDB_NO_DROPPED_SIGNAL -#include <stdlib.h> -#endif - -inline -bool -NdbReceiver::checkMagicNumber() const { - bool retVal = (theMagicNumber == 0x11223344); -#ifdef NDB_NO_DROPPED_SIGNAL - if(!retVal){ - abort(); - } -#endif - return retVal; -} - -inline -void -NdbReceiver::prepareSend(){ - m_current_row = 0; - m_received_result_length = 0; - m_expected_result_length = 0; - theCurrentRecAttr = theFirstRecAttr; -} - -inline -int -NdbReceiver::execTCOPCONF(Uint32 len){ - Uint32 tmp = m_received_result_length; - m_expected_result_length = len; -#ifdef assert - assert(!(tmp && !len)); -#endif - return ((bool)len ^ (bool)tmp ? 0 : 1); -} - -inline -int -NdbReceiver::execSCANOPCONF(Uint32 tcPtrI, Uint32 len, Uint32 rows){ - m_tcPtrI = tcPtrI; - m_result_rows = rows; - Uint32 tmp = m_received_result_length; - m_expected_result_length = len; - return (tmp == len ? 1 : 0); -} - -#endif // DOXYGEN_SHOULD_SKIP_INTERNAL -#endif diff --git a/ndb/include/ndbapi/NdbScanFilter.hpp b/ndb/include/ndbapi/NdbScanFilter.hpp deleted file mode 100644 index b5457bab99b..00000000000 --- a/ndb/include/ndbapi/NdbScanFilter.hpp +++ /dev/null @@ -1,178 +0,0 @@ -/* 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 NDB_SCAN_FILTER_HPP -#define NDB_SCAN_FILTER_HPP - -#include <ndb_types.h> - -/** - * @class NdbScanFilter - * @brief A simple way to specify filters for scan operations - * - * @note This filter interface is under development and may change in - * the future! - * - */ -class NdbScanFilter { -public: - /** - * Constructor - * @param op The NdbOperation that the filter belongs to (is applied to). - */ - NdbScanFilter(class NdbOperation * op); - ~NdbScanFilter(); - - /** - * Group operators - */ - enum Group { - AND = 1, ///< (x1 AND x2 AND x3) - OR = 2, ///< (x1 OR x2 OR X3) - NAND = 3, ///< NOT (x1 AND x2 AND x3) - NOR = 4 ///< NOT (x1 OR x2 OR x3) - }; - - enum BinaryCondition - { - COND_LE = 0, ///< lower bound - COND_LT = 1, ///< lower bound, strict - COND_GE = 2, ///< upper bound - COND_GT = 3, ///< upper bound, strict - COND_EQ = 4, ///< equality - COND_NE = 5, ///< not equal - COND_LIKE = 6, ///< like - COND_NOT_LIKE = 7 ///< not like - }; - - /** - * @name Grouping - * @{ - */ - - /** - * Begin of compound. - * ®return 0 if successful, -1 otherwize - */ - int begin(Group group = AND); - - /** - * End of compound. - * ®return 0 if successful, -1 otherwize - */ - int end(); - - /** @} *********************************************************************/ - - /** - * <i>Explanation missing</i> - */ - int istrue(); - - /** - * <i>Explanation missing</i> - */ - int isfalse(); - - /** - * Compare column <b>ColId</b> with <b>val</b> - */ - int cmp(BinaryCondition cond, int ColId, const void *val, Uint32 len = 0); - - /** - * @name Integer Comparators - * @{ - */ - /** Compare column value with integer for equal - * ®return 0 if successful, -1 otherwize - */ - int eq(int ColId, Uint32 value) { return cmp(COND_EQ, ColId, &value, 4);} - - /** Compare column value with integer for not equal. - * ®return 0 if successful, -1 otherwize - */ - int ne(int ColId, Uint32 value) { return cmp(COND_NE, ColId, &value, 4);} - /** Compare column value with integer for less than. - * ®return 0 if successful, -1 otherwize - */ - int lt(int ColId, Uint32 value) { return cmp(COND_LT, ColId, &value, 4);} - /** Compare column value with integer for less than or equal. - * ®return 0 if successful, -1 otherwize - */ - int le(int ColId, Uint32 value) { return cmp(COND_LE, ColId, &value, 4);} - /** Compare column value with integer for greater than. - * ®return 0 if successful, -1 otherwize - */ - int gt(int ColId, Uint32 value) { return cmp(COND_GT, ColId, &value, 4);} - /** Compare column value with integer for greater than or equal. - * ®return 0 if successful, -1 otherwize - */ - int ge(int ColId, Uint32 value) { return cmp(COND_GE, ColId, &value, 4);} - - /** Compare column value with integer for equal. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int eq(int ColId, Uint64 value) { return cmp(COND_EQ, ColId, &value, 8);} - /** Compare column value with integer for not equal. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int ne(int ColId, Uint64 value) { return cmp(COND_NE, ColId, &value, 8);} - /** Compare column value with integer for less than. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int lt(int ColId, Uint64 value) { return cmp(COND_LT, ColId, &value, 8);} - /** Compare column value with integer for less than or equal. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int le(int ColId, Uint64 value) { return cmp(COND_LE, ColId, &value, 8);} - /** Compare column value with integer for greater than. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int gt(int ColId, Uint64 value) { return cmp(COND_GT, ColId, &value, 8);} - /** Compare column value with integer for greater than or equal. 64-bit. - * ®return 0 if successful, -1 otherwize - */ - int ge(int ColId, Uint64 value) { return cmp(COND_GE, ColId, &value, 8);} - /** @} *********************************************************************/ - - /** Check if column value is NULL */ - int isnull(int ColId); - /** Check if column value is non-NULL */ - int isnotnull(int ColId); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Like comparison operator. - * ®return 0 if successful, -1 otherwize - */ - int like(int ColId, const char * val, Uint32 len, bool nopad=false); - /** - * Notlike comparison operator. - * ®return 0 if successful, -1 otherwize - */ - int notlike(int ColId, const char * val, Uint32 len, bool nopad=false); - /** @} *********************************************************************/ -#endif - -private: -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class NdbScanFilterImpl; -#endif - class NdbScanFilterImpl & m_impl; - NdbScanFilter& operator=(const NdbScanFilter&); ///< Defined not implemented -}; - -#endif diff --git a/ndb/include/ndbapi/NdbScanOperation.hpp b/ndb/include/ndbapi/NdbScanOperation.hpp deleted file mode 100644 index 5da717148b5..00000000000 --- a/ndb/include/ndbapi/NdbScanOperation.hpp +++ /dev/null @@ -1,256 +0,0 @@ -/* 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 NdbScanOperation_H -#define NdbScanOperation_H - -#include <NdbOperation.hpp> - -class NdbBlob; -class NdbResultSet; - -/** - * @class NdbScanOperation - * @brief Class of scan operations for use in transactions. - */ -class NdbScanOperation : public NdbOperation { -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbTransaction; - friend class NdbResultSet; - friend class NdbOperation; - friend class NdbBlob; -#endif - -public: - /** - * readTuples - * - * @param lock_mode Lock mode - * @param batch No of rows to fetch from each fragment at a time - * @param parallel No of fragments to scan in parallell - * @note specifying 0 for batch and parallall means max performance - */ - int readTuples(LockMode lock_mode = LM_Read, - Uint32 batch = 0, Uint32 parallel = 0); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - inline int readTuples(int parallell){ - return readTuples(LM_Read, 0, parallell); - } - - inline int readTuplesExclusive(int parallell = 0){ - return readTuples(LM_Exclusive, 0, parallell); - } -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - NdbBlob* getBlobHandle(const char* anAttrName); - NdbBlob* getBlobHandle(Uint32 anAttrId); -#endif - - /** - * Get the next tuple in a scan transaction. - * - * After each call to nextResult - * the buffers and NdbRecAttr objects defined in - * NdbOperation::getValue are updated with values - * from the scanned tuple. - * - * @param fetchAllowed If set to false, then fetching is disabled - * @param forceSend If true send will occur immediately (see @ref secAdapt) - * - * The NDB API will contact the NDB Kernel for more tuples - * when necessary to do so unless you set the fetchAllowed - * to false. - * This will force NDB to process any records it - * already has in it's caches. When there are no more cached - * records it will return 2. You must then call nextResult - * with fetchAllowed = true in order to contact NDB for more - * records. - * - * fetchAllowed = false is useful when you want to update or - * delete all the records fetched in one transaction(This will save a - * lot of round trip time and make updates or deletes of scanned - * records a lot faster). - * While nextResult(false) - * returns 0 take over the record to another transaction. When - * nextResult(false) returns 2 you must execute and commit the other - * transaction. This will cause the locks to be transferred to the - * other transaction, updates or deletes will be made and then the - * locks will be released. - * After that, call nextResult(true) which will fetch new records and - * cache them in the NdbApi. - * - * @note If you don't take over the records to another transaction the - * locks on those records will be released the next time NDB Kernel - * is contacted for more records. - * - * @note Please contact for examples of efficient scan - * updates and deletes. - * - * @note See ndb/examples/ndbapi_scan_example for usage. - * - * @return - * - -1: if unsuccessful,<br> - * - 0: if another tuple was received, and<br> - * - 1: if there are no more tuples to scan. - * - 2: if there are no more cached records in NdbApi - */ - int nextResult(bool fetchAllowed = true, bool forceSend = false); - - /** - * Close scan - */ - void close(bool forceSend = false); - - /** - * Update current tuple - * - * @return an NdbOperation or NULL. - */ - NdbOperation* updateCurrentTuple(); - /** - * Update current tuple - * - * @param updateTrans Transaction that should perform the update - * - * @return an NdbOperation or NULL. - */ - NdbOperation* updateCurrentTuple(NdbTransaction* updateTrans); - - /** - * Delete current tuple - * @return 0 on success or -1 on failure - */ - int deleteCurrentTuple(); - /** - * Delete current tuple - * - * @param takeOverTransaction Transaction that should perform the delete - * - * @return 0 on success or -1 on failure - */ - int deleteCurrentTuple(NdbTransaction* takeOverTransaction); - - /** - * Restart scan with exactly the same - * getValues and search conditions - */ - int restart(bool forceSend = false); - -protected: - NdbScanOperation(Ndb* aNdb); - virtual ~NdbScanOperation(); - - int nextResultImpl(bool fetchAllowed = true, bool forceSend = false); - virtual void release(); - - int close_impl(class TransporterFacade*, bool forceSend = false); - - // Overloaded methods from NdbCursorOperation - int executeCursor(int ProcessorId); - - // Overloaded private methods from NdbOperation - int init(const NdbTableImpl* tab, NdbTransaction*); - int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); - int doSend(int ProcessorId); - void checkForceSend(bool forceSend); - - virtual void setErrorCode(int aErrorCode); - virtual void setErrorCodeAbort(int aErrorCode); - - NdbTransaction *m_transConnection; - - // Scan related variables - Uint32 theParallelism; - Uint32 m_keyInfo; - - int getFirstATTRINFOScan(); - int doSendScan(int ProcessorId); - int prepareSendScan(Uint32 TC_ConnectPtr, Uint64 TransactionId); - - int fix_receivers(Uint32 parallel); - void reset_receivers(Uint32 parallel, Uint32 ordered); - Uint32* m_array; // containing all arrays below - Uint32 m_allocated_receivers; - NdbReceiver** m_receivers; // All receivers - - Uint32* m_prepared_receivers; // These are to be sent - - /** - * owned by API/user thread - */ - Uint32 m_current_api_receiver; - Uint32 m_api_receivers_count; - NdbReceiver** m_api_receivers; // These are currently used by api - - /** - * owned by receiver thread - */ - Uint32 m_conf_receivers_count; // NOTE needs mutex to access - NdbReceiver** m_conf_receivers; // receive thread puts them here - - /** - * owned by receiver thread - */ - Uint32 m_sent_receivers_count; // NOTE needs mutex to access - NdbReceiver** m_sent_receivers; // receive thread puts them here - - int send_next_scan(Uint32 cnt, bool close, bool forceSend = false); - void receiver_delivered(NdbReceiver*); - void receiver_completed(NdbReceiver*); - void execCLOSE_SCAN_REP(); - - int getKeyFromKEYINFO20(Uint32* data, unsigned size); - NdbOperation* takeOverScanOp(OperationType opType, NdbTransaction*); - - bool m_ordered; - bool m_descending; - Uint32 m_read_range_no; - NdbRecAttr *m_curr_row; // Pointer to last returned row -}; - -inline -NdbOperation* -NdbScanOperation::updateCurrentTuple(){ - return updateCurrentTuple(m_transConnection); -} - -inline -NdbOperation* -NdbScanOperation::updateCurrentTuple(NdbTransaction* takeOverTrans){ - return takeOverScanOp(NdbOperation::UpdateRequest, - takeOverTrans); -} - -inline -int -NdbScanOperation::deleteCurrentTuple(){ - return deleteCurrentTuple(m_transConnection); -} - -inline -int -NdbScanOperation::deleteCurrentTuple(NdbTransaction * takeOverTrans){ - void * res = takeOverScanOp(NdbOperation::DeleteRequest, - takeOverTrans); - if(res == 0) - return -1; - return 0; -} - -#endif diff --git a/ndb/include/ndbapi/NdbTransaction.hpp b/ndb/include/ndbapi/NdbTransaction.hpp deleted file mode 100644 index 50e4e766803..00000000000 --- a/ndb/include/ndbapi/NdbTransaction.hpp +++ /dev/null @@ -1,1053 +0,0 @@ -/* 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 NdbTransaction_H -#define NdbTransaction_H - -#include <ndb_types.h> -#include <NdbError.hpp> -#include <NdbDictionary.hpp> - -class NdbTransaction; -class NdbOperation; -class NdbScanOperation; -class NdbIndexScanOperation; -class NdbIndexOperation; -class NdbApiSignal; -class Ndb; -class NdbBlob; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -// to be documented later -/** - * NdbAsynchCallback functions are used when executing asynchronous - * transactions (using NdbTransaction::executeAsynchPrepare, or - * NdbTransaction::executeAsynch). - * The functions are called when the execute has finished. - * See @ref secAsync for more information. - */ -typedef void (* NdbAsynchCallback)(int, NdbTransaction*, void*); -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL -enum AbortOption { - CommitIfFailFree= 0, - TryCommit= 0, - AbortOnError= 0, - CommitAsMuchAsPossible= 2, - AO_IgnoreError= 2 -}; -enum ExecType { - NoExecTypeDef = -1, - Prepare, - NoCommit, - Commit, - Rollback -}; -#endif - -/** - * @class NdbTransaction - * @brief Represents a transaction. - * - * A transaction (represented by an NdbTransaction object) - * belongs to an Ndb object and is created using - * Ndb::startTransaction(). - * A transaction consists of a list of operations - * (represented by NdbOperation, NdbScanOperation, NdbIndexOperation, - * and NdbIndexScanOperation objects). - * Each operation access exactly one table. - * - * After getting the NdbTransaction object, - * the first step is to get (allocate) an operation given the table name using - * one of the methods getNdbOperation(), getNdbScanOperation(), - * getNdbIndexOperation(), or getNdbIndexScanOperation(). - * Then the operation is defined. - * Several operations can be defined on the same - * NdbTransaction object, they will in that case be executed in parallell. - * When all operations are defined, the execute() - * method sends them to the NDB kernel for execution. - * - * The execute() method returns when the NDB kernel has - * completed execution of all operations defined before the call to - * execute(). All allocated operations should be properly defined - * before calling execute(). - * - * A call to execute() uses one out of three types of execution: - * -# NdbTransaction::NoCommit Executes operations without committing them. - * -# NdbTransaction::Commit Executes remaining operation and commits the - * complete transaction - * -# NdbTransaction::Rollback Rollbacks the entire transaction. - * - * execute() is equipped with an extra error handling parameter. - * There are two alternatives: - * -# NdbTransaction::AbortOnError (default). - * The transaction is aborted if there are any error during the - * execution - * -# NdbTransaction::AO_IgnoreError - * Continue execution of transaction even if operation fails - * - */ - -/* FUTURE IMPLEMENTATION: - * Later a prepare mode will be added when Ndb supports Prepare-To-Commit - * The NdbTransaction can deliver the Transaction Id of the transaction. - * After committing a transaction it is also possible to retrieve the - * global transaction checkpoint which the transaction was put in. - * - * FUTURE IMPLEMENTATION: - * There are three methods for acquiring the NdbOperation. - * -# The first method is the normal where a table name is - * provided. In this case the primary key must be supplied through - * the use of the NdbOperation::equal methods on the NdbOperation object. - * -# The second method provides the tuple identity of the tuple to be - * read. The tuple identity contains a table identifier and will - * thus be possible to use to ensure the attribute names provided - * are correct. If an object-oriented layer is put on top of NDB - * Cluster it is essential that all tables derived from a base - * class has the same attributes with the same type and the same - * name. Thus the application can use the tuple identity and need - * not known the table of the tuple. As long as the table is - * derived from the known base class everything is ok. - * It is not possible to provide any primary key since it is - * already supplied with the call to NdbTransaction::getNdbOperation. - * -# The third method is used when a scanned tuple is to be transferred to - * another transaction. In this case it is not possible to define the - * primary key since it came along from the scanned tuple. - * - */ - -class NdbTransaction -{ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - friend class Ndb; - friend class NdbOperation; - friend class NdbScanOperation; - friend class NdbIndexOperation; - friend class NdbIndexScanOperation; - friend class NdbBlob; -#endif - -public: - - /** - * Commit type of transaction - */ - enum AbortOption { - AbortOnError= ///< Abort transaction on failed operation -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - ::AbortOnError -#endif - ,AO_IgnoreError= ///< Transaction continues on failed operation -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - ::AO_IgnoreError -#endif - }; - - /** - * Execution type of transaction - */ - enum ExecType { -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - NoExecTypeDef= - ::NoExecTypeDef, ///< Erroneous type (Used for debugging only) - Prepare= ::Prepare, ///< <i>Missing explanation</i> -#endif - NoCommit= ///< Execute the transaction as far as it has - ///< been defined, but do not yet commit it -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - ::NoCommit -#endif - ,Commit= ///< Execute and try to commit the transaction -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - ::Commit -#endif - ,Rollback ///< Rollback transaction -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - = ::Rollback -#endif - }; - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get an NdbOperation for a table. - * Note that the operation has to be defined before it is executed. - * - * @note All operations within the same transaction need to - * be initialized with this method. - * - * @param aTableName The table name. - * @return Pointer to an NdbOperation object if successful, otherwise NULL. - */ - NdbOperation* getNdbOperation(const char* aTableName); -#endif - - /** - * Get an NdbOperation for a table. - * Note that the operation has to be defined before it is executed. - * - * @note All operations within the same transaction need to - * be initialized with this method. - * - * @param aTable - * A table object (fetched by NdbDictionary::Dictionary::getTable) - * @return Pointer to an NdbOperation object if successful, otherwise NULL. - */ - NdbOperation* getNdbOperation(const NdbDictionary::Table * aTable); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get an operation from NdbScanOperation idlelist and - * get the NdbTransaction object which - * was fetched by startTransaction pointing to this operation. - * - * @param aTableName The table name. - * @return pointer to an NdbOperation object if successful, otherwise NULL - */ - NdbScanOperation* getNdbScanOperation(const char* aTableName); -#endif - - /** - * Get an operation from NdbScanOperation idlelist and - * get the NdbTransaction object which - * was fetched by startTransaction pointing to this operation. - * - * @param aTable - * A table object (fetched by NdbDictionary::Dictionary::getTable) - * @return pointer to an NdbOperation object if successful, otherwise NULL - */ - NdbScanOperation* getNdbScanOperation(const NdbDictionary::Table * aTable); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get an operation from NdbIndexScanOperation idlelist and - * get the NdbTransaction object which - * was fetched by startTransaction pointing to this operation. - * - * @param anIndexName The index name. - * @param aTableName The table name. - * @return pointer to an NdbOperation object if successful, otherwise NULL - */ - NdbIndexScanOperation* getNdbIndexScanOperation(const char* anIndexName, - const char* aTableName); - NdbIndexScanOperation* getNdbIndexScanOperation - (const NdbDictionary::Index *anIndex, const NdbDictionary::Table *aTable); -#endif - - /** - * Get an operation from NdbIndexScanOperation idlelist and - * get the NdbTransaction object which - * was fetched by startTransaction pointing to this operation. - * - * @param anIndex - An index object (fetched by NdbDictionary::Dictionary::getIndex). - * @return pointer to an NdbOperation object if successful, otherwise NULL - */ - NdbIndexScanOperation* getNdbIndexScanOperation - (const NdbDictionary::Index *anIndex); - -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - /** - * Get an operation from NdbIndexOperation idlelist and - * get the NdbTransaction object that - * was fetched by startTransaction pointing to this operation. - * - * @param anIndexName The index name (as created by createIndex). - * @param aTableName The table name. - * @return Pointer to an NdbIndexOperation object if - * successful, otherwise NULL - */ - NdbIndexOperation* getNdbIndexOperation(const char* anIndexName, - const char* aTableName); - NdbIndexOperation* getNdbIndexOperation(const NdbDictionary::Index *anIndex, - const NdbDictionary::Table *aTable); -#endif - - /** - * Get an operation from NdbIndexOperation idlelist and - * get the NdbTransaction object that - * was fetched by startTransaction pointing to this operation. - * - * @param anIndex - * An index object (fetched by NdbDictionary::Dictionary::getIndex). - * @return Pointer to an NdbIndexOperation object if - * successful, otherwise NULL - */ - NdbIndexOperation* getNdbIndexOperation(const NdbDictionary::Index *anIndex); - - /** - * @name Execute Transaction - * @{ - */ - - /** - * Executes transaction. - * - * @param execType Execution type:<br> - * ExecType::NoCommit executes operations without - * committing them.<br> - * ExecType::Commit executes remaining operations and - * commits the complete transaction.<br> - * ExecType::Rollback rollbacks the entire transaction. - * @param abortOption Handling of error while excuting - * AbortOnError - Abort transaction if an operation fail - * IgnoreError - Accept failing operations - * @param force When operations should be sent to NDB Kernel. - * (See @ref secAdapt.) - * - 0: non-force, adaptive algorithm notices it - * (default); - * - 1: force send, adaptive algorithm notices it; - * - 2: non-force, adaptive algorithm do not notice - * the send. - * @return 0 if successful otherwise -1. - */ - int execute(ExecType execType, - AbortOption abortOption = AbortOnError, - int force = 0 ); -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - int execute(::ExecType execType, - ::AbortOption abortOption = ::AbortOnError, - int force = 0 ) - { return execute ((ExecType)execType,(AbortOption)abortOption,force); } -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - // to be documented later - /** - * Prepare an asynchronous transaction. - * - * See @ref secAsync for more information on - * how to use this method. - * - * @param execType Execution type:<br> - * ExecType::NoCommit executes operations without committing them.<br> - * ExecType::Commit executes remaining operations and commits the - * complete transaction.<br> - * ExecType::Rollback rollbacks the entire transaction. - * @param callback A callback method. This method gets - * called when the transaction has been - * executed. See @ref ndbapi_async1.cpp - * for an example on how to specify and use - * a callback method. - * @param anyObject A void pointer. This pointer is forwarded to the - * callback method and can be used to give - * the callback method some data to work on. - * It is up to the application programmer - * to decide on the use of this pointer. - * @param abortOption see @ref execute - */ - void executeAsynchPrepare(ExecType execType, - NdbAsynchCallback callback, - void* anyObject, - AbortOption abortOption = AbortOnError); -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - void executeAsynchPrepare(::ExecType execType, - NdbAsynchCallback callback, - void* anyObject, - ::AbortOption abortOption = ::AbortOnError) - { executeAsynchPrepare((ExecType)execType, callback, anyObject, - (AbortOption)abortOption); } -#endif - - /** - * Prepare and send an asynchronous transaction. - * - * This method perform the same action as - * NdbTransaction::executeAsynchPrepare - * but also sends the operations to the NDB kernel. - * - * See NdbTransaction::executeAsynchPrepare for information - * about the parameters of this method. - * - * See @ref secAsync for more information on - * how to use this method. - */ - void executeAsynch(ExecType aTypeOfExec, - NdbAsynchCallback aCallback, - void* anyObject, - AbortOption abortOption = AbortOnError); -#ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED - void executeAsynch(::ExecType aTypeOfExec, - NdbAsynchCallback aCallback, - void* anyObject, - ::AbortOption abortOption= ::AbortOnError) - { executeAsynch((ExecType)aTypeOfExec, aCallback, anyObject, - (AbortOption)abortOption); } -#endif -#endif - /** - * Refresh - * Update timeout counter of this transaction - * in the database. If you want to keep the transaction - * active in the database longer than the - * transaction abort timeout. - * @note It's not advised to take a lock on a record and keep it - * for a extended time since this can impact other transactions. - * - */ - int refresh(); - - /** - * Close transaction - * - * @note Equivalent to to calling Ndb::closeTransaction() - */ -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * @note It is not allowed to call NdbTransaction::close after sending the - * transaction asynchronously before the callback method has - * been called. - * (The application should keep track of the number of - * outstanding transactions and wait until all of them - * has completed before calling NdbTransaction::close). - * If the transaction is not committed it will be aborted. - */ -#endif - void close(); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - /** - * Restart transaction - * - * Once a transaction has been completed successfully - * it can be started again wo/ calling closeTransaction/startTransaction - * - * @note This method also releases completed operations - * - * @note This method does not close open scans, - * c.f. NdbScanOperation::close() - * - * @note This method can only be called _directly_ after commit - * and only if commit is successful - */ - int restart(); -#endif - - /** @} *********************************************************************/ - - /** - * @name Meta Information - * @{ - */ - - /** - * Get global checkpoint identity (GCI) of transaction. - * - * Each committed transaction belong to a GCI. - * The log for the committed transaction is saved on - * disk when a global checkpoint occurs. - * - * Whether or not the global checkpoint with this GCI has been - * saved on disk or not cannot be determined by this method. - * - * By comparing the GCI of a transaction with the value - * last GCI restored in a restarted NDB Cluster one can determine - * whether the transaction was restored or not. - * - * @note Global Checkpoint Identity is undefined for scan transactions - * (This is because no updates are performed in scan transactions.) - * - * @return GCI of transaction or -1 if GCI is not available. - * (Note that there has to be an NdbTransaction::execute call - * with Ndb::Commit for the GCI to be available.) - */ - int getGCI(); - - /** - * Get transaction identity. - * - * @return Transaction id. - */ - Uint64 getTransactionId(); - - /** - * The commit status of the transaction. - */ - enum CommitStatusType { - NotStarted, ///< Transaction not yet started - Started, ///< <i>Missing explanation</i> - Committed, ///< Transaction has been committed - Aborted, ///< Transaction has been aborted - NeedAbort ///< <i>Missing explanation</i> - }; - - /** - * Get the commit status of the transaction. - * - * @return The commit status of the transaction - */ - CommitStatusType commitStatus(); - - /** @} *********************************************************************/ - - /** - * @name Error Handling - * @{ - */ - - /** - * Get error object with information about the latest error. - * - * @return An error object with information about the latest error. - */ - const NdbError & getNdbError() const; - - /** - * Get the latest NdbOperation which had an error. - * This method is used on the NdbTransaction object to find the - * NdbOperation causing an error. - * To find more information about the - * actual error, use method NdbOperation::getNdbError() - * on the returned NdbOperation object. - * - * @return The NdbOperation causing the latest error. - */ - NdbOperation* getNdbErrorOperation(); - - /** - * Get the method number where the latest error occured. - * - * @return Line number where latest error occured. - */ - int getNdbErrorLine(); - - /** - * Get completed (i.e. executed) operations of a transaction - * - * This method should only be used <em>after</em> a transaction - * has been executed. - * - NdbTransaction::getNextCompletedOperation(NULL) returns the - * first NdbOperation object. - * - NdbTransaction::getNextCompletedOperation(op) returns the - * NdbOperation object defined after the NdbOperation "op". - * - * This method is typically used to fetch all NdbOperation:s of - * a transaction to check for errors (use NdbOperation::getNdbError - * to fetch the NdbError object of an NdbOperation). - * - * @note This method should only be used after the transaction has been - * executed and before the transaction has been closed. - * - * @param op Operation, NULL means get first operation - * @return Operation "after" op - */ - const NdbOperation * getNextCompletedOperation(const NdbOperation * op)const; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const NdbOperation* getFirstDefinedOperation()const{return theFirstOpInList;} - const NdbOperation* getLastDefinedOperation()const{return theLastOpInList;} - - /** @} *********************************************************************/ - - /** - * Execute the transaction in NoCommit mode if there are any not-yet - * executed blob part operations of given types. Otherwise do - * nothing. The flags argument is bitwise OR of (1 << optype) where - * optype comes from NdbOperation::OperationType. Only the basic PK - * ops are used (read, insert, update, delete). - */ - int executePendingBlobOps(Uint8 flags = 0xFF); - - /** - * Get nodeId of TC for this transaction - */ - Uint32 getConnectedNodeId(); // Get Connected node id -#endif - -private: - /** - * Release completed operations - */ - void releaseCompletedOperations(); - - typedef Uint64 TimeMillis_t; - /************************************************************************** - * These methods are service methods to other classes in the NDBAPI. * - **************************************************************************/ - - /************************************************************************** - * These are the create and delete methods of this class. * - **************************************************************************/ - - NdbTransaction(Ndb* aNdb); - - ~NdbTransaction(); - - void init(); // Initialize connection object for new transaction - - int executeNoBlobs(ExecType execType, - AbortOption abortOption = AbortOnError, - int force = 0 ); - - /** - * Set Connected node id - * and sequence no - */ - void setConnectedNodeId( Uint32 nodeId, Uint32 sequence); - - void setMyBlockReference( int ); // Set my block refrerence - void setTC_ConnectPtr( Uint32 ); // Sets TC Connect pointer - int getTC_ConnectPtr(); // Gets TC Connect pointer - void setBuddyConPtr(Uint32); // Sets Buddy Con Ptr - Uint32 getBuddyConPtr(); // Gets Buddy Con Ptr - NdbTransaction* next(); // Returns the next pointer - void next(NdbTransaction*); // Sets the next pointer - - enum ConStatusType { - NotConnected, - Connecting, - Connected, - DisConnecting, - ConnectFailure - }; - ConStatusType Status(); // Read the status information - void Status(ConStatusType); // Set the status information - - Uint32 get_send_size(); // Get size to send - void set_send_size(Uint32); // Set size to send; - - int receiveDIHNDBTAMPER(NdbApiSignal* anApiSignal); - int receiveTCSEIZECONF(NdbApiSignal* anApiSignal); - int receiveTCSEIZEREF(NdbApiSignal* anApiSignal); - int receiveTCRELEASECONF(NdbApiSignal* anApiSignal); - int receiveTCRELEASEREF(NdbApiSignal* anApiSignal); - int receiveTC_COMMITCONF(const class TcCommitConf *); - int receiveTCKEYCONF(const class TcKeyConf *, Uint32 aDataLength); - int receiveTCKEY_FAILCONF(const class TcKeyFailConf *); - int receiveTCKEY_FAILREF(NdbApiSignal* anApiSignal); - int receiveTC_COMMITREF(NdbApiSignal* anApiSignal); - int receiveTCROLLBACKCONF(NdbApiSignal* anApiSignal); // Rec TCPREPARECONF ? - int receiveTCROLLBACKREF(NdbApiSignal* anApiSignal); // Rec TCPREPAREREF ? - int receiveTCROLLBACKREP(NdbApiSignal* anApiSignal); - int receiveTCINDXCONF(const class TcIndxConf *, Uint32 aDataLength); - int receiveTCINDXREF(NdbApiSignal*); - int receiveSCAN_TABREF(NdbApiSignal*); - int receiveSCAN_TABCONF(NdbApiSignal*, const Uint32*, Uint32 len); - - int doSend(); // Send all operations - int sendROLLBACK(); // Send of an ROLLBACK - int sendTC_HBREP(); // Send a TCHBREP signal; - int sendCOMMIT(); // Send a TC_COMMITREQ signal; - void setGCI(int GCI); // Set the global checkpoint identity - - int OpCompleteFailure(Uint8 abortoption, bool setFailure = true); - int OpCompleteSuccess(); - void CompletedOperations(); // Move active ops to list of completed - - void OpSent(); // Operation Sent with success - - // Free connection related resources and close transaction - void release(); - - // Release all operations in connection - void releaseOperations(); - - // Release all cursor operations in connection - void releaseOps(NdbOperation*); - void releaseScanOperations(NdbIndexScanOperation*); - - // Set the transaction identity of the transaction - void setTransactionId(Uint64 aTransactionId); - - // Indicate something went wrong in the definition phase - void setErrorCode(int anErrorCode); - - // Indicate something went wrong in the definition phase - void setOperationErrorCode(int anErrorCode); - - // Indicate something went wrong in the definition phase - void setOperationErrorCodeAbort(int anErrorCode, int abortOption = -1); - - int checkMagicNumber(); // Verify correct object - NdbOperation* getNdbOperation(const class NdbTableImpl* aTable, - NdbOperation* aNextOp = 0); - NdbIndexScanOperation* getNdbScanOperation(const class NdbTableImpl* aTable); - NdbIndexOperation* getNdbIndexOperation(const class NdbIndexImpl* anIndex, - const class NdbTableImpl* aTable, - NdbOperation* aNextOp = 0); - NdbIndexScanOperation* getNdbIndexScanOperation(const NdbIndexImpl* index, - const NdbTableImpl* table); - - void handleExecuteCompletion(); - - /**************************************************************************** - * These are the private variables of this class. - ****************************************************************************/ - - Uint32 ptr2int(); - Uint32 theId; - - // Keeps track of what the send method should do. - enum SendStatusType { - NotInit, - InitState, - sendOperations, - sendCompleted, - sendCOMMITstate, - sendABORT, - sendABORTfail, - sendTC_ROLLBACK, - sendTC_COMMIT, - sendTC_OP - }; - SendStatusType theSendStatus; - NdbAsynchCallback theCallbackFunction; // Pointer to the callback function - void* theCallbackObject; // The callback object pointer - Uint32 theTransArrayIndex; // Current index in a transaction - // array for this object - TimeMillis_t theStartTransTime; // Start time of the transaction - - NdbError theError; // Errorcode on transaction - int theErrorLine; // Method number of last error in NdbOperation - NdbOperation* theErrorOperation; // The NdbOperation where the error occurred - - Ndb* theNdb; // Pointer to Ndb object - NdbTransaction* theNext; // Next pointer. Used in idle list. - - NdbOperation* theFirstOpInList; // First operation in defining list. - NdbOperation* theLastOpInList; // Last operation in defining list. - - NdbOperation* theFirstExecOpInList; // First executing operation in list - NdbOperation* theLastExecOpInList; // Last executing operation in list. - - - NdbOperation* theCompletedFirstOp; // First & last operation in completed - NdbOperation* theCompletedLastOp; // operation list. - - Uint32 theNoOfOpSent; // How many operations have been sent - Uint32 theNoOfOpCompleted; // How many operations have completed - Uint32 theNoOfOpFetched; // How many operations was actually fetched - Uint32 theMyRef; // Our block reference - Uint32 theTCConPtr; // Transaction Co-ordinator connection pointer. - Uint64 theTransactionId; // theTransactionId of the transaction - Uint32 theGlobalCheckpointId; // The gloabl checkpoint identity of the transaction - ConStatusType theStatus; // The status of the connection - enum CompletionStatus { - NotCompleted, - CompletedSuccess, - CompletedFailure, - DefinitionFailure - } theCompletionStatus; // The Completion status of the transaction - CommitStatusType theCommitStatus; // The commit status of the transaction - Uint32 theMagicNumber; // Magic Number to verify correct object - - Uint32 thePriority; // Transaction Priority - - enum ReturnType { ReturnSuccess, ReturnFailure }; - ReturnType theReturnStatus; // Did we have any read/update/delete failing - // to find the tuple. - bool theTransactionIsStarted; - bool theInUseState; - bool theSimpleState; - Uint8 m_abortOption; // Type of commit - - enum ListState { - NotInList, - InPreparedList, - InSendList, - InCompletedList - } theListState; - - Uint32 theDBnode; // The database node we are connected to - Uint32 theNodeSequence; // The sequence no of the db node - bool theReleaseOnClose; - - /** - * handle transaction spanning - * multiple TC/db nodes - * - * 1) Bitmask with used nodes - * 2) Bitmask with nodes failed during op - */ - Uint32 m_db_nodes[2]; - Uint32 m_failed_db_nodes[2]; - - int report_node_failure(Uint32 id); - - // Scan operations - bool m_waitForReply; - NdbIndexScanOperation* m_theFirstScanOperation; - NdbIndexScanOperation* m_theLastScanOperation; - - NdbIndexScanOperation* m_firstExecutedScanOp; - - // Scan operations - // The operation actually performing the scan - NdbScanOperation* theScanningOp; - Uint32 theBuddyConPtr; - // optim: any blobs - bool theBlobFlag; - Uint8 thePendingBlobOps; - - static void sendTC_COMMIT_ACK(NdbApiSignal *, - Uint32 transId1, Uint32 transId2, - Uint32 aBlockRef); - - void completedFail(const char * s); -#ifdef VM_TRACE - void printState(); -#endif - bool checkState_TransId(const Uint32 * transId) const; - - void remove_list(NdbOperation*& head, NdbOperation*); - void define_scan_op(NdbIndexScanOperation*); - - friend class HugoOperations; -}; - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -inline -Uint32 -NdbTransaction::get_send_size() -{ - return 0; -} - -inline -void -NdbTransaction::set_send_size(Uint32 send_size) -{ - return; -} - -#ifdef NDB_NO_DROPPED_SIGNAL -#include <stdlib.h> -#endif - -inline -int -NdbTransaction::checkMagicNumber() -{ - if (theMagicNumber == 0x37412619) - return 0; - else { -#ifdef NDB_NO_DROPPED_SIGNAL - abort(); -#endif - return -1; - } -} - -inline -bool -NdbTransaction::checkState_TransId(const Uint32 * transId) const { - const Uint32 tTmp1 = transId[0]; - const Uint32 tTmp2 = transId[1]; - Uint64 tRecTransId = (Uint64)tTmp1 + ((Uint64)tTmp2 << 32); - bool b = theStatus == Connected && theTransactionId == tRecTransId; - return b; -} - -/************************************************************************************************ -void setTransactionId(Uint64 aTransactionId); - -Remark: Set the transaction identity. -************************************************************************************************/ -inline -void -NdbTransaction::setTransactionId(Uint64 aTransactionId) -{ - theTransactionId = aTransactionId; -} - -inline -void -NdbTransaction::setConnectedNodeId(Uint32 aNode, Uint32 aSequenceNo) -{ - theDBnode = aNode; - theNodeSequence = aSequenceNo; -} -/****************************************************************************** -int getConnectedNodeId(); - -Return Value: Return theDBnode. -Remark: Get Connected node id. -******************************************************************************/ -inline -Uint32 -NdbTransaction::getConnectedNodeId() -{ - return theDBnode; -} -/****************************************************************************** -void setMyBlockReference(int aBlockRef); - -Parameters: aBlockRef: The block refrerence. -Remark: Set my block refrerence. -******************************************************************************/ -inline -void -NdbTransaction::setMyBlockReference(int aBlockRef) -{ - theMyRef = aBlockRef; -} -/****************************************************************************** -void setTC_ConnectPtr(Uint32 aTCConPtr); - -Parameters: aTCConPtr: The connection pointer. -Remark: Sets TC Connect pointer. -******************************************************************************/ -inline -void -NdbTransaction::setTC_ConnectPtr(Uint32 aTCConPtr) -{ - theTCConPtr = aTCConPtr; -} - -/****************************************************************************** -int getTC_ConnectPtr(); - -Return Value: Return theTCConPtr. -Remark: Gets TC Connect pointer. -******************************************************************************/ -inline -int -NdbTransaction::getTC_ConnectPtr() -{ - return theTCConPtr; -} - -inline -void -NdbTransaction::setBuddyConPtr(Uint32 aBuddyConPtr) -{ - theBuddyConPtr = aBuddyConPtr; -} - -inline -Uint32 NdbTransaction::getBuddyConPtr() -{ - return theBuddyConPtr; -} - -/****************************************************************************** -NdbTransaction* next(); - -inline -void -NdbTransaction::setBuddyConPtr(Uint32 aBuddyConPtr) -{ - theBuddyConPtr = aBuddyConPtr; -} - -inline -Uint32 NdbTransaction::getBuddyConPtr() -{ - return theBuddyConPtr; -} - -Return Value: Return next pointer to NdbTransaction object. -Remark: Get the next pointer. -******************************************************************************/ -inline -NdbTransaction* -NdbTransaction::next() -{ - return theNext; -} - -/****************************************************************************** -void next(NdbTransaction aTransaction); - -Parameters: aTransaction: The connection object. -Remark: Sets the next pointer. -******************************************************************************/ -inline -void -NdbTransaction::next(NdbTransaction* aTransaction) -{ - theNext = aTransaction; -} - -/****************************************************************************** -ConStatusType Status(); - -Return Value Return the ConStatusType. -Parameters: aStatus: The status. -Remark: Sets Connect status. -******************************************************************************/ -inline -NdbTransaction::ConStatusType -NdbTransaction::Status() -{ - return theStatus; -} - -/****************************************************************************** -void Status(ConStatusType aStatus); - -Parameters: aStatus: The status. -Remark: Sets Connect status. -******************************************************************************/ -inline -void -NdbTransaction::Status( ConStatusType aStatus ) -{ - theStatus = aStatus; -} - - -/****************************************************************************** - void setGCI(); - -Remark: Set global checkpoint identity of the transaction -******************************************************************************/ -inline -void -NdbTransaction::setGCI(int aGlobalCheckpointId) -{ - theGlobalCheckpointId = aGlobalCheckpointId; -} - -/****************************************************************************** -void OpSent(); - -Remark: An operation was sent with success that expects a response. -******************************************************************************/ -inline -void -NdbTransaction::OpSent() -{ - theNoOfOpSent++; -} - -/****************************************************************************** -void executePendingBlobOps(); -******************************************************************************/ -#include <stdlib.h> -inline -int -NdbTransaction::executePendingBlobOps(Uint8 flags) -{ - if (thePendingBlobOps & flags) { - // not executeNoBlobs because there can be new ops with blobs - return execute(NoCommit); - } - return 0; -} - -inline -Uint32 -NdbTransaction::ptr2int(){ - return theId; -} - -typedef NdbTransaction NdbConnection; - -#endif // ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -#endif diff --git a/ndb/include/ndbapi/ndb_cluster_connection.hpp b/ndb/include/ndbapi/ndb_cluster_connection.hpp deleted file mode 100644 index 97db76563aa..00000000000 --- a/ndb/include/ndbapi/ndb_cluster_connection.hpp +++ /dev/null @@ -1,100 +0,0 @@ -/* 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 CLUSTER_CONNECTION_HPP -#define CLUSTER_CONNECTION_HPP - -/** - * @class Ndb_cluster_connection - * @brief Represents a connection to a cluster of storage nodes. - * - * Any NDB application program should begin with the creation of a - * single Ndb_cluster_connection object, and should make use of one - * and only one Ndb_cluster_connection. The application connects to - * a cluster management server when this object's connect() method is called. - * By using the wait_until_ready() method it is possible to wait - * for the connection to reach one or more storage nodes. - */ -class Ndb_cluster_connection { -public: - /** - * Create a connection to a cluster of storage nodes - * - * @param connectstring The connectstring for where to find the - * management server - */ - Ndb_cluster_connection(const char * connectstring = 0); - ~Ndb_cluster_connection(); - - /** - * Connect to a cluster management server - * - * @param no_retries specifies the number of retries to attempt - * in the event of connection failure; a negative value - * will result in the attempt to connect being repeated - * indefinitely - * - * @param retry_delay_in_seconds specifies how often retries should - * be performed - * - * @param verbose specifies if the method should print a report of its progess - * - * @return 0 = success, - * 1 = recoverable error, - * -1 = non-recoverable error - */ - int connect(int no_retries=0, int retry_delay_in_seconds=1, int verbose=0); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - int start_connect_thread(int (*connect_callback)(void)= 0); -#endif - - /** - * Wait until the requested connection with one or more storage nodes is successful - * - * @param timeout_for_first_alive Number of seconds to wait until - * first live node is detected - * @param timeout_after_first_alive Number of seconds to wait after - * first live node is detected - * - * @return = 0 all nodes live, - * > 0 at least one node live, - * < 0 error - */ - int wait_until_ready(int timeout_for_first_alive, - int timeout_after_first_alive); - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - const char *get_connectstring(char *buf, int buf_sz) const; - int get_connected_port() const; - const char *get_connected_host() const; - - void set_optimized_node_selection(int val); - - unsigned no_db_nodes(); - unsigned node_id(); -#endif - -private: - friend class Ndb; - friend class NdbImpl; - friend class Ndb_cluster_connection_impl; - class Ndb_cluster_connection_impl & m_impl; - Ndb_cluster_connection(Ndb_cluster_connection_impl&); -}; - -#endif diff --git a/ndb/include/ndbapi/ndb_opt_defaults.h b/ndb/include/ndbapi/ndb_opt_defaults.h deleted file mode 100644 index d03a9dcc36f..00000000000 --- a/ndb/include/ndbapi/ndb_opt_defaults.h +++ /dev/null @@ -1,23 +0,0 @@ -/* 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 NDB_OPT_DEFAULTS_H -#define NDB_OPT_DEFAULTS_H - -#define OPT_NDB_SHM_SIGNUM_DEFAULT 0 -#define OPT_NDB_SHM_DEFAULT 0 - -#endif diff --git a/ndb/include/ndbapi/ndbapi_limits.h b/ndb/include/ndbapi/ndbapi_limits.h deleted file mode 100644 index d1cb135b39d..00000000000 --- a/ndb/include/ndbapi/ndbapi_limits.h +++ /dev/null @@ -1,34 +0,0 @@ -/* 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 NDBAPI_LIMITS_H -#define NDBAPI_LIMITS_H - -#define NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY 32 -#define NDB_MAX_ATTRIBUTES_IN_INDEX NDB_MAX_NO_OF_ATTRIBUTES_IN_KEY -#define NDB_MAX_DATABASE_NAME_SIZE 128 -#define NDB_MAX_SCHEMA_NAME_SIZE 128 -#define NDB_MAX_TAB_NAME_SIZE 128 -#define NDB_MAX_ATTR_NAME_SIZE 32 -#define NDB_MAX_ATTRIBUTES_IN_TABLE 128 - -#define NDB_MAX_TUPLE_SIZE_IN_WORDS 2013 -#define NDB_MAX_KEYSIZE_IN_WORDS 1023 -#define NDB_MAX_KEY_SIZE (NDB_MAX_KEYSIZE_IN_WORDS*4) -#define NDB_MAX_TUPLE_SIZE (NDB_MAX_TUPLE_SIZE_IN_WORDS*4) -#define NDB_MAX_ACTIVE_EVENTS 100 - -#endif diff --git a/ndb/include/ndbapi/ndberror.h b/ndb/include/ndbapi/ndberror.h deleted file mode 100644 index 2225f68f08d..00000000000 --- a/ndb/include/ndbapi/ndberror.h +++ /dev/null @@ -1,104 +0,0 @@ -/* 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 NDBERROR_H -#define NDBERROR_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL - -typedef enum -{ - ndberror_st_success = 0, - ndberror_st_temporary = 1, - ndberror_st_permanent = 2, - ndberror_st_unknown = 3 -} ndberror_status_enum; - -typedef enum -{ - ndberror_cl_none = 0, - ndberror_cl_application = 1, - ndberror_cl_no_data_found = 2, - ndberror_cl_constraint_violation = 3, - ndberror_cl_schema_error = 4, - ndberror_cl_user_defined = 5, - ndberror_cl_insufficient_space = 6, - ndberror_cl_temporary_resource = 7, - ndberror_cl_node_recovery = 8, - ndberror_cl_overload = 9, - ndberror_cl_timeout_expired = 10, - ndberror_cl_unknown_result = 11, - ndberror_cl_internal_error = 12, - ndberror_cl_function_not_implemented = 13, - ndberror_cl_unknown_error_code = 14, - ndberror_cl_node_shutdown = 15, - ndberror_cl_configuration = 16, - ndberror_cl_schema_object_already_exists = 17 -} ndberror_classification_enum; - - -typedef struct { - - /** - * Error status. - */ - ndberror_status_enum status; - - /** - * Error type - */ - ndberror_classification_enum classification; - - /** - * Error code - */ - int code; - - /** - * Error message - */ - const char * message; - - /** - * The detailed description. This is extra information regarding the - * error which is not included in the error message. - * - * @note Is NULL when no details specified - */ - char * details; - -} ndberror_struct; - - -typedef ndberror_status_enum ndberror_status; -typedef ndberror_classification_enum ndberror_classification; - -const char *ndberror_status_message(ndberror_status); -const char *ndberror_classification_message(ndberror_classification); -void ndberror_update(ndberror_struct *); -int ndb_error_string(int err_no, char *str, unsigned int size); - -#endif /* doxygen skip internal*/ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/newtonapi/dba.h b/ndb/include/newtonapi/dba.h deleted file mode 100644 index 4cfc0ec8eb9..00000000000 --- a/ndb/include/newtonapi/dba.h +++ /dev/null @@ -1,730 +0,0 @@ -/* 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 */ - -/** - * @mainpage DBA User Guide - * - * @section secIntro Introduction - * DBA is an API to access the NDB Cluster. - * - * DBA supports transactions using an asynchronous execution model. - * Everything but transactions is synchronous. - * - * DBA uses the concept of bindings to simplify database access. - * A <em>binding</em> is a relation between a database table and - * one or several C structs. - * A binding is created initially and then used multiple time during - * application execution. - * - * Each of the data accessing functions in DBA is implemented as a - * transaction, i.e. the call will either fully complete or - * nothing happens (the transaction fails). - * - * DBA also supports "read as much as possible" with bulk read. - * With bulk read the application can specify a set of primary keys and - * try to read all of the corresponding rows. The bulk read will not fail - * if a row does not exist but will instead inform the application using a - * RowFoundIndicator variable. - * - * A <em>request</em> is a transaction or a bulk read. - * - * @section secError Error Handling - * When a synchronous method in DBA fails these methods are applicable: - * -# DBA_GetLatestError() - * -# DBA_GetLatestNdbError() - * -# DBA_GetLatestErrorMsg() - * - * The DBA_GetLatestErrorMsg() will then return a description of - * what has failed. - * - * For asynchronous methods the application should: - * -# check that the RequestId returned by function is not - * @ref DBA_INVALID_REQID - * -# check Status supplied in callback (see @ref DBA_AsyncCallbackFn_t) - * - * If @ref DBA_INVALID_REQID is returned, - * the details of error can be found using - * "latest"-functions. - * - * If error is indicated in callback (using Status), when the - * "latest"-functions are <b>NOT</b> applicable. - * - * @section secExamples Example Programs - * - * - @ref common.hpp - * - @ref basic.cpp - * - @ref br_test.cpp - * - @ref ptr_binding_test.cpp - * - */ - -/** - * @page basic.cpp basic.cpp - * @include basic.cpp - */ - -/** - * @page common.hpp common.hpp - * @include common.hpp - */ - -/** - * @page br_test.cpp br_test.cpp - * @include br_test.cpp - */ - -/** - * @page ptr_binding_test.cpp ptr_binding_test.cpp - * @include ptr_binding_test.cpp - */ - -/** @addtogroup DBA - * @{ - */ - -/****** THIS LINE IS 80 CHARACTERS WIDE - DO *NOT* EXCEED 80 CHARACTERS! ****/ - -#ifndef DBA_H -#define DBA_H - -/* --- Include files ---- */ - -#include <ndb_global.h> -#include <defs/pcn_types.h> - -/* --- Types and definitions --- */ - -/** - * Possible error status for DBA functions. - */ -typedef enum { - DBA_NO_ERROR = 0, /**< Success */ - - DBA_NOT_IMPLEMENTED = -1, /**< Function not implemented */ - DBA_NDB_ERROR = -2, /**< Uncategorised error from NDB */ - DBA_ERROR = -3, /**< Uncategorised error from DBA implementation */ - - DBA_APPLICATION_ERROR = 1, /**< Function called with invalid argument(s) - or other application errors */ - DBA_NO_DATA = 2, /**< No row with specified PK existed */ - DBA_CONSTRAINT_VIOLATION = 3, /**< There already exists a row with that PK*/ - - DBA_SCHEMA_ERROR = 4, /**< Table already exists */ - DBA_INSUFFICIENT_SPACE = 5, /**< The DB is full */ - DBA_TEMPORARY_ERROR = 6, /**< Some temporary problem occured */ - DBA_TIMEOUT = 7, /**< The request timed out, probably due to - dead-lock */ - DBA_OVERLOAD = 8, /**< The DB is overloaded */ - DBA_UNKNOWN_RESULT = 9 /**< It is unknown wheater transaction was - commited or aborted */ -} DBA_Error_t; - -/** - * Error code. This is the error code that is returned by NDB. - * Not to be confused by the status returned by the DBA implementation. - */ -typedef int DBA_ErrorCode_t; - -/** - * DBA column types - */ -typedef enum { - DBA_CHAR, /**< String */ - DBA_INT /**< Integer */ -} DBA_DataTypes_t; - - -/** - * Column description. - * Used for creating tables. - */ -typedef struct DBA_ColumnDesc { - - const char* Name; /**< Name of table column */ - DBA_DataTypes_t DataType; /**< Datatype of table column*/ - Size_t Size; /**< Column size in bytes */ - Boolean_t IsKey; /**< True if column is part of primary key */ - -} DBA_ColumnDesc_t; - -/** - * Used to simplify binding definitions. See @ref DBA_ColumnBinding - * for example. - * - * @param ColName Name of column in db table - * @param Type Column/field type. - * @param Struct Structure - * @param Field Field in structure - * @return Arg list for defining binding of type @ref DBA_Binding_t - */ -#define DBA_BINDING( ColName, Type, Struct, Field ) \ - { ColName, Type, PCN_SIZE_OF( Struct, Field ), \ - PCN_OFFSET_OF( Struct, Field ), 0, 0 } - -/** - * Used to simplify ptr binding definitions. See @ref DBA_ColumnBinding - * for example. - * - * @param Struct Structure - * @param Field Field in structure - * @return Arg list for defining binding of type @ref DBA_Binding_t - */ -#define DBA_BINDING_PTR(Struct, Field, ColBindings, NbCBindings) \ - { 0, DBA_CHAR, NbCBindings, PCN_OFFSET_OF( Struct, Field ), \ - 1, ColBindings } - -/** - * The @ref DBA_ColumnBinding_t is used to describe a binding between one - * column and one field of a C struct. - * - *<pre> - * typedef struct Address { - * char StreetName[30]; - * int StreetNumber; - * } Address_t; - * - * typdef struct Person { - * char Name[30]; - * Address_t * AddressPtr; - * } Person_t; </pre> - * - * - * For example, if the field Name of a Person_t data structure is - * bound to the column "NAME", the corresponding binding would be - * defined as: - * - *<pre> - * DBA_ColumnBinding_t NameBinding = - * DBA_BINDING( "name", DBA_CHAR, Person_t, Name ); </pre> - * - * - * There is also the @ref DBA_BINDING_PTR which is used when - * several linked structures should be put into one table. - * - * For example, if data in a Person_t data structure should be saved - * in the same table as the Address_t data structure - * (as the address belongs to the person), the corresponding binding would be - * defined as: - * - *<pre> - * DBA_ColumnBinding_t AddrBinding[AddrLen]; This binding describes how the - * fields in the Address_t - * structure is linked to the - * table PERSON_ADDRESS - * - * DBA_ColumnBinding_t AddressBinding = - * DBA_BINDING_PTR(Person_t, AddressPtr, AddrBinding, AddrLen); </pre> - * - * - */ -struct DBA_ColumnBinding { - const char* Name; /**< Name of table column */ - DBA_DataTypes_t DataType; /**< Type of member in structure */ - Size_t Size; /**< Size in bytes of member - or no of @ref DBA_ColumnBinding's - when doing ptr binding */ - Size_t Offset; /**< Offset of the member */ - - Boolean_t Ptr; /**< True if binding is of ptr type */ - const struct DBA_ColumnBinding * SubBinding; /**< Address of Binding Ptr - valid if Ptr is true */ -}; - -/** - * Typedef: @ref DBA_ColumnBinding - */ -typedef struct DBA_ColumnBinding DBA_ColumnBinding_t; - -/** - * A @ref DBA_Binding_t object is used to establish a binding between - * one or more columns of a table to the fields of C structs. - * - * It is used with insert, and update and read transactions to define - * on which columns of the table the operations is performed, and to - * which members of a C data structure they map. - * - * All key columns must be bound to a field of the struct. - * - * The function @ref DBA_CreateBinding is used to create this binding. - */ -typedef struct DBA_Binding DBA_Binding_t; - -/* --- Exported functions --- */ - -/** - * Set DBA configuration parameter - *<pre> - * Id Description Default Min Max - * == =========================== ======= ==== ==== - * 0 NBP Interval 10 4 - - * 1 Operations/Bulkread 1000 1 5000 - * 2 Start transaction timeout 0 0 - - * 3 Force send algorithm 1 0 2 - *</pre> - * @return Status - */ -DBA_Error_t DBA_SetParameter(int ParameterId, int Value); - -/** - * Set DBA configuration parameter. - * See @ref DBA_SetParameter for description of parameters. - * - * @return Status - */ -DBA_Error_t DBA_GetParameter(int ParameterId, int * Value); - -/** - * Initialize DBA library and connect to NDB Cluster. - * - * @return Status - */ -DBA_Error_t DBA_Open( ); - -/** - * Close connection to NDB cluster and free allocated memory. - * - * @return Error status - */ -DBA_Error_t DBA_Close(void); - -/** - * Get latest DBA error. - * - * @note Only applicable to synchronous methods - */ -DBA_Error_t DBA_GetLatestError(); - -/** - * Get latest NDB error. - * - * @note Only applicable to synchronous methods - */ -DBA_ErrorCode_t DBA_GetLatestNdbError(); - -/** - * Get latest error string associated with DBA_GetLatestError(). - * - * @note String must not be free by caller of this method. - * @note Only applicable to synchronous methods. - */ -const char * DBA_GetLatestErrorMsg(); - -/** - * Get error msg associated with code - * - * @note String must not be free by caller of this method - */ -const char * DBA_GetErrorMsg(DBA_Error_t); - -/** - * Get error msg associated with code - * - * @note String must not be free by caller of this method - */ -const char * DBA_GetNdbErrorMsg(DBA_ErrorCode_t); - -/** - * Create a table. - * - * @param TableName Name of table to create. - * @param NbColumns numbers of columns. - * @param Columns Column descriptions. - * @return Status. - */ -DBA_Error_t -DBA_CreateTable( const char* TableName, int NbColumns, - const DBA_ColumnDesc_t Columns[] ); - -/** - * Destroy a table. - * - * @param TableName Table name. - * @return Status. - * @note Not implemented - */ -DBA_Error_t -DBA_DropTable( const char* TableName ); - - -/** - * Test for existence of a table. - * - * @param TableName Table name. - * @return Boolean value indicating if table exists or not. - */ -Boolean_t -DBA_TableExists( const char* TableName ); - -/** - * Define a binding between the columns of a table and a C structure. - * - * @param TableName table - * @param NbCol number of columns bindings - * @param ColBinding bindings - * @param StructSz Sizeof structure. - * @return Created binding, or NULL if binding could not be created. - */ -DBA_Binding_t* -DBA_CreateBinding( const char* TableName, - int NbCol, const DBA_ColumnBinding_t ColsBinding[], - Size_t StructSz ); - -/** - * Destroys a @ref DBA_Binding_t allocated with @ref - * DBA_CreateBinding. - * - * @param pBinding Pointer to binding. - * @return Status. - */ -DBA_Error_t -DBA_DestroyBinding( DBA_Binding_t* Binding ); - -/** - * Used to identify a pending db request - */ -typedef long DBA_ReqId_t; - -/** - * An asynchronous call returning this means that the function was called - * with invalid arguments. The application should check error status - * with DBA_GetLatestError() etc. - */ -#define DBA_INVALID_REQID 0 - -/** - * Callback function for transactions. - * Will be called in NBP process (Newton Batch Process). - * - * @note The implementation of the callback function is not allowed to - * make an asynchronous database call. - * - * @param ReqId Request identifier - * @param Status Status of the request - * @param ErrorCode Error code given by NDB - * @see DBA_Error_t - */ -typedef void (*DBA_AsyncCallbackFn_t)( DBA_ReqId_t ReqId, - DBA_Error_t Status, - DBA_ErrorCode_t ErrorCode ); -/** - * Insert row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of pointers to structures. - * @param NbRows No of rows to insert (i.e. length of pData array) - * @return Request identifier - * - * @note All the table columns must be part of the binding. - */ -DBA_ReqId_t -DBA_InsertRows( const DBA_Binding_t* pBinding, const void * const pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Insert row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of structures. - * @param NbRows No of rows to insert (i.e. length of pData array) - * @return Request identifier - * - * @note All the table columns must be part of the binding. - */ -DBA_ReqId_t -DBA_ArrayInsertRows( const DBA_Binding_t* pBinding, const void * pData, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Update row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of pointers to structures. Fields that are part of the - * key are used to generate the where clause, the - * other fields are used to update the row. - * @param NbRows No of rows to update (i.e. length of pData array). - * @return Request identifier - */ -DBA_ReqId_t -DBA_UpdateRows( const DBA_Binding_t* pBinding, const void * const pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Update row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of structures. Fields that are part of the - * key are used to generate the where clause, the - * other fields are used to update the row. - * @param NbRows No of rows to update (i.e. length of pData array). - * @return Request identifier - */ -DBA_ReqId_t -DBA_ArrayUpdateRows( const DBA_Binding_t* pBinding, const void * pData, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Delete row(s) from the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of pointers to structures. - * Only fields part of the primary key needs to be set. - * @param NbRows No of rows to delete (i.e. length of pData array) - * @return Request identifier - */ -DBA_ReqId_t -DBA_DeleteRows( const DBA_Binding_t* pBinding, const void * const pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - - -/** - * Delete row(s) from the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of structures. Only fields part of the primary - * key needs to be set. - * @param NbRows No of rows to delete (i.e. length of pData array) - * @return Request identifier - */ -DBA_ReqId_t -DBA_ArrayDeleteRows( const DBA_Binding_t* pBinding, const void * pData, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Updates/Inserts row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of pointers to structures. - * @param NbRows No of rows to update/insert (i.e. length of pData array) - * @return Request identifier - * @note All the table columns must be part of the binding. - */ -DBA_ReqId_t -DBA_WriteRows( const DBA_Binding_t* pBinding, const void * const pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Update/Insert row(s) in the table (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of structures. - * @param NbRows No of rows to update/insert (i.e. length of pData array) - * @return Request identifier - * @note All the table columns must be part of the binding. - */ -DBA_ReqId_t -DBA_ArrayWriteRows( const DBA_Binding_t* pBinding, const void * pData, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Read row(s) from a table of the database (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of pointers to structures. - * Only fields part of the primary key needs to be set. - * The other fields in the binding will be populated. - * @param NbRows No of rows to read (i.e. length of pData array) - * @return Request identifier - */ -DBA_ReqId_t -DBA_ReadRows( const DBA_Binding_t* pBinding, void * const pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Read row(s) from a table of the database (one transaction) - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of structures. - * Only fields part of the primary key needs to be set. - * The other fields in the binding will be populated. - * @param NbRows No of rows to read (i.e. length of pData array) - * @return Request identifier - */ -DBA_ReqId_t -DBA_ArrayReadRows( const DBA_Binding_t* pBinding, void * pData, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/****** THIS LINE IS 80 CHARACTERS WIDE - DO *NOT* EXCEED 80 CHARACTERS! ****/ - -/** - * Insert <b>one</b> row for each specified binding (as one transaction). - * - * @param pBindings Array of pointers to bindings. - * @param pData Array of pointers to structures. - * @param NbBindings No of bindings (tables) to insert into, - * i.e. length of arrays pBindings and pData - * @return Request identifier - * @note It is valid to specify the same binding twice - * (with corresponding data pointer) if you want to insert two - * rows in one table - */ -DBA_ReqId_t -DBA_MultiInsertRow(const DBA_Binding_t * const pBindings[], - const void * const pData[], - int NbBindings, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Update <b>one</b> row for each specified binding (as one transaction). - * - * @param pBindings Array of pointers to bindings. - * @param pData Array of pointers to structures. - * @param NbBindings No of bindings (tables) to insert into - * i.e. length of arrays pBindings and pData - * @return Request identifier - * @note It is valid to specify the same binding twice - * (with corresponding data pointer) if you want to update two - * rows in one table - */ -DBA_ReqId_t -DBA_MultiUpdateRow(const DBA_Binding_t * const pBindings[], - const void * const pData[], - int NbBindings, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Update/insert <b>one</b> row for each specified binding (as one transaction). - * - * @param pBindings Array of pointers to bindings. - * @param pData Array of pointers to structures. - * @param NbBindings No of bindings (tables) to insert into - * i.e. length of arrays pBindings and pData - * @return Request identifier - * @note It is valid to specify the same binding twice - * (with corresponding data pointer) if you want to update/insert two - * rows in one table - */ -DBA_ReqId_t -DBA_MultiWriteRow(const DBA_Binding_t * const pBindings[], - const void * const pData[], - int NbBindings, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Delete <b>one</b> row for each specified binding (as one transaction). - * - * @param pBindings Array of pointers to bindings. - * @param pData Array of pointers to structures. - * @param NbBindings No of bindings (tables) to insert into - * i.e. length of arrays pBindings and pData - * @return Request identifier - * @note It is valid to specify the same binding twice - * (with corresponding data pointer) if you want to delete two - * rows in one table - */ -DBA_ReqId_t -DBA_MultiDeleteRow(const DBA_Binding_t * const pBindings[], - const void * const pData[], - int NbBindings, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Read <b>one</b> row for each specified binding (as one transaction). - * - * @param pBindings Array of pointers to bindings. - * @param pData Array of pointers to structures. - * @param NbBindings No of bindings (tables) to insert into - * i.e. length of arrays pBindings and pData - * @return Request identifier - * @note It is valid to specify the same binding twice - * (with corresponding data pointer) if you want to read two - * rows in one table - */ -DBA_ReqId_t -DBA_MultiReadRow(const DBA_Binding_t * const pBindings[], - void * const pData[], - int NbBindings, - DBA_AsyncCallbackFn_t CbFunc ); - -/****** THIS LINE IS 80 CHARACTERS WIDE - DO *NOT* EXCEED 80 CHARACTERS! ****/ - -/** - * A structure used for bulk reads. - * The structure contains a pointer to the data and an indicator. - * After the bulk read has completed, the indicator is set to 1 if the row - * was found and to 0 if the row was not found. - * - */ -typedef struct DBA_BulkReadResultSet { - void * DataPtr; /**< Pointer to data. Only fields part of - primary key members needs - to be set before bulk read. */ - Boolean_t RowFoundIndicator; /**< This indicator has a valid value - only after bulk read has completed. - If the value is 1 then the row was found */ -} DBA_BulkReadResultSet_t; - -/** - * Read rows from a table of the database (potentially multiple transactions) - * The users should for each NbRows specify the fields part of the primary key - * - * @param pBinding Binding between table columns and struct fields. - * @param pData Array of DBA_BulkReadResultSet_t, with DataPtr pointing to - * structure. Only the fields which are part of the - * primary key need be set. - * The RowFoundIndicator will be set when the request returns. - * @param NbRows No of rows to read (i.e. length of pData array) - * @return Request identifier - * - */ -DBA_ReqId_t -DBA_BulkReadRows(const DBA_Binding_t * pBinding, - DBA_BulkReadResultSet_t pData[], - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** - * Read rows from several tables of the database in potentially multiple - * transactions. - * - *<pre> - * The pData array <b>must</b> be organized as follows: - * NbRows with DataPtr pointing to structure of type pBindings[0] - * NbRows with DataPtr pointing to structure of type pBindings[1] - * ... </pre> - * Meaning that the pData array must be (NbBindings * NbRows) in length. - * - * The user should for each (NbRows * NbBindings) specify the primary key - * fields. - * - * @param pBindings Array of pointers to bindings - * @param pData Array of DBA_BulkReadResultSet_t. - * With DataPtr pointing to structure. Only the fields which - * are part of the key need be set. - * The RowFoundIndicator will be set when the operations returns. - * @param NbBindings No of bindings (i.e. length of pBindings array) - * @param NbRows No of rows per binding to read - * @return Request identifier - */ -DBA_ReqId_t -DBA_BulkMultiReadRows(const DBA_Binding_t * const pBindings[], - DBA_BulkReadResultSet_t pData[], - int NbBindings, - int NbRows, - DBA_AsyncCallbackFn_t CbFunc ); - -/** @} */ - -#endif diff --git a/ndb/include/newtonapi/defs/pcn_types.h b/ndb/include/newtonapi/defs/pcn_types.h deleted file mode 100644 index eae6c67899d..00000000000 --- a/ndb/include/newtonapi/defs/pcn_types.h +++ /dev/null @@ -1,34 +0,0 @@ -/* 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 PCN_TYPES_H -#define PCN_TYPES_H - -#include <ndb_global.h> - -typedef size_t Size_t; - -typedef int Boolean_t; - -typedef unsigned UInt32_t; - -#define PCN_TRUE true -#define PCN_FALSE false - -#define PCN_SIZE_OF(s, m ) sizeof(((s *)0)->m) -#define PCN_OFFSET_OF(s, m) offsetof(s, m) - -#endif diff --git a/ndb/include/portlib/NdbCondition.h b/ndb/include/portlib/NdbCondition.h deleted file mode 100644 index 3d959a0db41..00000000000 --- a/ndb/include/portlib/NdbCondition.h +++ /dev/null @@ -1,94 +0,0 @@ -/* 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 NDB_CONDITION_H -#define NDB_CONDITION_H - -#include "NdbMutex.h" - -#ifdef __cplusplus -extern "C" { -#endif - -struct NdbCondition; - - -/** - * Create a condition - * - * returnvalue: pointer to the condition structure - */ -struct NdbCondition* NdbCondition_Create(void); - -/** - * Wait for a condition, allows a thread to wait for - * a condition and atomically releases the associated mutex. - * - * p_cond: pointer to the condition structure - * p_mutex: pointer to the mutex structure - * returnvalue: 0 = succeeded, 1 = failed - */ -int NdbCondition_Wait(struct NdbCondition* p_cond, - NdbMutex* p_mutex); - -/* - * Wait for a condition with timeout, allows a thread to - * wait for a condition and atomically releases the associated mutex. - * - * @param p_cond - pointer to the condition structure - * @param p_mutex - pointer to the mutex structure - * @param msec - Wait for msec milli seconds the most - * @return 0 = succeeded, 1 = failed - * @ - */ -int -NdbCondition_WaitTimeout(struct NdbCondition* p_cond, - NdbMutex* p_mutex, - int msec); - - -/** - * Signal a condition - * - * p_cond: pointer to the condition structure - * returnvalue: 0 = succeeded, 1 = failed - */ -int NdbCondition_Signal(struct NdbCondition* p_cond); - - -/** - * Broadcast a condition - * - * p_cond: pointer to the condition structure - * returnvalue: 0 = succeeded, 1 = failed - */ -int NdbCondition_Broadcast(struct NdbCondition* p_cond); - -/** - * Destroy a condition - * - * p_cond: pointer to the condition structure - * returnvalue: 0 = succeeded, 1 = failed - */ -int NdbCondition_Destroy(struct NdbCondition* p_cond); - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/ndb/include/portlib/NdbConfig.h b/ndb/include/portlib/NdbConfig.h deleted file mode 100644 index 1bca825ab8d..00000000000 --- a/ndb/include/portlib/NdbConfig.h +++ /dev/null @@ -1,39 +0,0 @@ -/* 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 NDB_CONFIG_H -#define NDB_CONFIG_H - -#ifdef __cplusplus -extern "C" { -#endif - -const char* NdbConfig_get_path(int *len); -void NdbConfig_SetPath(const char *path); -char* NdbConfig_NdbCfgName(int with_ndb_home); -char* NdbConfig_ErrorFileName(int node_id); -char* NdbConfig_ClusterLogFileName(int node_id); -char* NdbConfig_SignalLogFileName(int node_id); -char* NdbConfig_TraceFileName(int node_id, int file_no); -char* NdbConfig_NextTraceFileName(int node_id); -char* NdbConfig_PidFileName(int node_id); -char* NdbConfig_StdoutFileName(int node_id); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/portlib/NdbDaemon.h b/ndb/include/portlib/NdbDaemon.h deleted file mode 100644 index 74ea3f06419..00000000000 --- a/ndb/include/portlib/NdbDaemon.h +++ /dev/null @@ -1,72 +0,0 @@ -/* 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 NDB_DAEMON_H -#define NDB_DAEMON_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Become a daemon. - * lockfile the "pid file" or other resource to lock exclusively - * logfile daemon output is directed here (input is set to /dev/null) - * if NULL, output redirection is not done - * flags none currently - * returns 0 on success, on error -1 - */ -extern int -NdbDaemon_Make(const char* lockfile, const char* logfile, unsigned flags); - -/* - * Test if the daemon is running (file is locked). - * lockfile the "pid file" - * flags none currently - * return 0 no, 1 yes, -1 - */ -extern int -NdbDaemon_Test(const char* lockfile, unsigned flags); - -/* - * Kill the daemon. - * lockfile the "pid file" - * flags none currently - * return 0 killed, 1 not running, -1 other error - */ -extern int -NdbDaemon_Kill(const char* lockfile, unsigned flags); - -/* - * Pid from last call, either forked off or found in lock file. - */ -extern long NdbDaemon_DaemonPid; - -/* - * Error code from last failed call. - */ -extern int NdbDaemon_ErrorCode; - -/* - * Error text from last failed call. - */ -extern char NdbDaemon_ErrorText[]; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/portlib/NdbEnv.h b/ndb/include/portlib/NdbEnv.h deleted file mode 100644 index 1611bf3152e..00000000000 --- a/ndb/include/portlib/NdbEnv.h +++ /dev/null @@ -1,34 +0,0 @@ -/* 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 NDB_ENV_H -#define NDB_ENV_H - - -#ifdef __cplusplus -extern "C" { -#endif - - const char* NdbEnv_GetEnv(const char* name, char * buf, int buflen); - -#ifdef __cplusplus - } -#endif - -#endif - - - diff --git a/ndb/include/portlib/NdbHost.h b/ndb/include/portlib/NdbHost.h deleted file mode 100644 index 90e7b781137..00000000000 --- a/ndb/include/portlib/NdbHost.h +++ /dev/null @@ -1,43 +0,0 @@ -/* 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 NDB_HOST_H -#define NDB_HOST_H - -#ifndef NDB_WIN32 -#include <sys/param.h> -#include <netdb.h> -#endif - -#ifndef MAXHOSTNAMELEN -#define MAXHOSTNAMELEN 255 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - int NdbHost_GetHostName(char*); - int NdbHost_GetProcessId(); - -#ifdef __cplusplus - } -#endif - -#endif - - - diff --git a/ndb/include/portlib/NdbMain.h b/ndb/include/portlib/NdbMain.h deleted file mode 100644 index 7cc7a877750..00000000000 --- a/ndb/include/portlib/NdbMain.h +++ /dev/null @@ -1,66 +0,0 @@ -/* 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 NDBMAIN_H -#define NDBMAIN_H - -#if defined NDB_SOFTOSE || defined NDB_OSE -#include <ose.h> -#include <shell.h> - -/* Define an OSE_PROCESS that can be started from osemain.con */ -#define NDB_MAIN(name) \ -int main_ ## name(int argc, const char** argv); \ -OS_PROCESS(name){ \ - main_ ## name(0, 0); \ - stop(current_process()); \ - exit(0); \ -} \ -int main_ ## name(int argc, const char** argv) - -/* Define an function that can be started from the command line */ -#define NDB_COMMAND(name, str_name, syntax, description, stacksize) \ -int main_ ## name(int argc, const char** argv); \ - \ -static int run_ ## name(int argc, char *argv[]){ \ - return main_ ## name (argc, argv); \ -} \ - \ -OS_PROCESS(init_ ## name){ \ - shell_add_cmd_attrs(str_name, syntax, description, \ - run_ ## name, OS_PRI_PROC, 25, stacksize); \ - stop(current_process()); \ - return; \ -} \ - \ -int main_ ## name(int argc, const char** argv) - - - - -#else - -#define NDB_MAIN(name) \ -int main(int argc, const char** argv) - -#define NDB_COMMAND(name, str_name, syntax, description, stacksize) \ -int main(int argc, const char** argv) - - -#endif - - -#endif diff --git a/ndb/include/portlib/NdbMem.h b/ndb/include/portlib/NdbMem.h deleted file mode 100644 index 0f2de80200e..00000000000 --- a/ndb/include/portlib/NdbMem.h +++ /dev/null @@ -1,81 +0,0 @@ -/* 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 NDB_MEM_H -#define NDB_MEM_H - -#include <ndb_global.h> - -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * NdbMem_Create - * Create and initalise internal data structures for Ndb - */ -void NdbMem_Create(void); - - -/** - * NdbMem_Destroy - * Destroy all memory allocated by NdbMem - */ -void NdbMem_Destroy(void); - -/** - * NdbMem_Allocate - * Allocate size of memory - * @parameter size - size in bytes of memory to allocate - * @returns - pointer to memory if succesful otherwise NULL - */ -void* NdbMem_Allocate(size_t size); - -/** - * NdbMem_AllocateAlign - * Allocate size of memory - * @parameter size - size in bytes of memory to allocate - * @paramter alignment - byte boundary to align the data at - * @returns - pointer to memory if succesful otherwise NULL - */ -void* NdbMem_AllocateAlign(size_t size, size_t alignment); - - -/** - * NdbMem_Free - * Free the memory that ptr points to - * @parameter ptr - pointer to the memory to free - */ -void NdbMem_Free(void* ptr); - -/** - * NdbMem_MemLockAll - * Locks virtual memory in main memory - */ -int NdbMem_MemLockAll(void); - -/** - * NdbMem_MemUnlockAll - * Unlocks virtual memory - */ -int NdbMem_MemUnlockAll(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/portlib/NdbMutex.h b/ndb/include/portlib/NdbMutex.h deleted file mode 100644 index b0b985ecef5..00000000000 --- a/ndb/include/portlib/NdbMutex.h +++ /dev/null @@ -1,113 +0,0 @@ -/* 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 NDB_MUTEX_H -#define NDB_MUTEX_H - -#include <ndb_global.h> - -#ifdef NDB_WIN32 -#include <winsock2.h> -#include <ws2tcpip.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined NDB_OSE || defined NDB_SOFTOSE -#include <ose.h> -typedef SEMAPHORE NdbMutex; -#elif defined NDB_WIN32 -typedef CRITICAL_SECTION NdbMutex; -#else -#include <pthread.h> -typedef pthread_mutex_t NdbMutex; -#endif - -/** - * Create a mutex - * - * p_mutex: pointer to the mutex structure - * returnvalue: pointer to the mutex structure - */ -NdbMutex* NdbMutex_Create(void); - -/** - * Destroy a mutex - * - * * p_mutex: pointer to the mutex structure - * * returnvalue: 0 = succeeded, -1 = failed - */ -int NdbMutex_Destroy(NdbMutex* p_mutex); - -/** - * Lock a mutex - * - * * p_mutex: pointer to the mutex structure - * * returnvalue: 0 = succeeded, -1 = failed - */ -int NdbMutex_Lock(NdbMutex* p_mutex); - -/** - * Unlock a mutex - * - * * p_mutex: pointer to the mutex structure - * * returnvalue: 0 = succeeded, -1 = failed - */ -int NdbMutex_Unlock(NdbMutex* p_mutex); - -/** - * Try to lock a mutex - * - * * p_mutex: pointer to the mutex structure - * * returnvalue: 0 = succeeded, -1 = failed - */ -int NdbMutex_Trylock(NdbMutex* p_mutex); - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -class NdbLockable { - friend class Guard; -public: - NdbLockable() { m_mutex = NdbMutex_Create(); } - ~NdbLockable() { NdbMutex_Destroy(m_mutex); } - - void lock() { NdbMutex_Lock(m_mutex); } - void unlock(){ NdbMutex_Unlock(m_mutex);} - bool tryLock(){ return NdbMutex_Trylock(m_mutex) == 0;} - - NdbMutex* getMutex() {return m_mutex;}; - -protected: - NdbMutex * m_mutex; -}; - -class Guard { -public: - Guard(NdbMutex *mtx) : m_mtx(mtx) { NdbMutex_Lock(m_mtx); }; - Guard(NdbLockable & l) : m_mtx(l.m_mutex) { NdbMutex_Lock(m_mtx); }; - ~Guard() { NdbMutex_Unlock(m_mtx); }; -private: - NdbMutex *m_mtx; -}; - -#endif - -#endif diff --git a/ndb/include/portlib/NdbSleep.h b/ndb/include/portlib/NdbSleep.h deleted file mode 100644 index 3b26710154f..00000000000 --- a/ndb/include/portlib/NdbSleep.h +++ /dev/null @@ -1,38 +0,0 @@ -/* 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 NDBSLEEP_H -#define NDBSLEEP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Sleep for some time - * - * returnvalue: true = time is up, false = failed - */ -int NdbSleep_MicroSleep(int microseconds); -int NdbSleep_MilliSleep(int milliseconds); -int NdbSleep_SecSleep(int seconds); - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/ndb/include/portlib/NdbTCP.h b/ndb/include/portlib/NdbTCP.h deleted file mode 100644 index 8138a2ef354..00000000000 --- a/ndb/include/portlib/NdbTCP.h +++ /dev/null @@ -1,96 +0,0 @@ -/* 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 NDB_TCP_H -#define NDB_TCP_H - -#include <ndb_global.h> -#include <ndb_net.h> - -#if defined NDB_OSE || defined NDB_SOFTOSE -/** - * Include files needed - */ -#include "inet.h" - -#include <netdb.h> - -#define NDB_NONBLOCK FNDELAY -#define NDB_SOCKET_TYPE int -#define NDB_INVALID_SOCKET -1 -#define NDB_CLOSE_SOCKET(x) close(x) - -/** - * socklen_t not defined in the header files of OSE - */ -typedef int socklen_t; - -#define InetErrno (* inet_errno()) - -#elif defined NDB_WIN32 - -/** - * Include files needed - */ -#include <winsock2.h> -#include <ws2tcpip.h> - -#define InetErrno WSAGetLastError() -#define EWOULDBLOCK WSAEWOULDBLOCK -#define NDB_SOCKET_TYPE SOCKET -#define NDB_INVALID_SOCKET INVALID_SOCKET -#define NDB_CLOSE_SOCKET(x) closesocket(x) - -#else - -/** - * Include files needed - */ -#include <netdb.h> - -#define NDB_NONBLOCK O_NONBLOCK -#define NDB_SOCKET_TYPE int -#define NDB_INVALID_SOCKET -1 -#define NDB_CLOSE_SOCKET(x) ::close(x) - -#define InetErrno errno - -#endif - -#define NDB_SOCKLEN_T SOCKET_SIZE_TYPE - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Convert host name or ip address to in_addr - * - * Returns 0 on success - * -1 on failure - * - * Implemented as: - * gethostbyname - * if not success - * inet_addr - */ -int Ndb_getInAddr(struct in_addr * dst, const char *address); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/portlib/NdbThread.h b/ndb/include/portlib/NdbThread.h deleted file mode 100644 index e86deee4354..00000000000 --- a/ndb/include/portlib/NdbThread.h +++ /dev/null @@ -1,102 +0,0 @@ -/* 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 NDB_THREAD_H -#define NDB_THREAD_H - -#include <ndb_global.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum NDB_THREAD_PRIO_ENUM { - NDB_THREAD_PRIO_HIGHEST, - NDB_THREAD_PRIO_HIGH, - NDB_THREAD_PRIO_MEAN, - NDB_THREAD_PRIO_LOW, - NDB_THREAD_PRIO_LOWEST -} NDB_THREAD_PRIO; - -typedef void* (NDB_THREAD_FUNC)(void*); -typedef void* NDB_THREAD_ARG; -typedef size_t NDB_THREAD_STACKSIZE; - -struct NdbThread; - -/** - * Create a thread - * - * * p_thread_func: pointer of the function to run in the thread - * * p_thread_arg: pointer to argument to be passed to the thread - * * thread_stack_size: stack size for this thread - * * p_thread_name: pointer to name of this thread - * * returnvalue: pointer to the created thread - */ -struct NdbThread* NdbThread_Create(NDB_THREAD_FUNC *p_thread_func, - NDB_THREAD_ARG *p_thread_arg, - const NDB_THREAD_STACKSIZE thread_stack_size, - const char* p_thread_name, - NDB_THREAD_PRIO thread_prio); - -/** - * Destroy a thread - * Deallocates memory for thread - * And NULL the pointer - * - */ -void NdbThread_Destroy(struct NdbThread** p_thread); - - -/** - * Waitfor a thread, suspend the execution of the calling thread - * until the wait_thread_id completes - * - * * p_wait_thread, pointer to the thread to wait for - * * status: exit code from thread waited for - * * returnvalue: true = succeded, false = failed - */ -int NdbThread_WaitFor(struct NdbThread* p_wait_thread, void** status); - -/** - * Exit thread, terminates the calling thread - * - * * status: exit code - */ -void NdbThread_Exit(void *status); - -/** - * Set thread concurrency level - * - * * - */ -int NdbThread_SetConcurrencyLevel(int level); - - -#ifdef __cplusplus -} -#endif - -#endif - - - - - - - - - diff --git a/ndb/include/portlib/NdbTick.h b/ndb/include/portlib/NdbTick.h deleted file mode 100644 index 9bd8eca22bd..00000000000 --- a/ndb/include/portlib/NdbTick.h +++ /dev/null @@ -1,69 +0,0 @@ -/* 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 NDB_TICK_H -#define NDB_TICK_H - -#include <ndb_types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined NDB_OSE || defined NDB_SOFTOSE -typedef unsigned long NDB_TICKS; -#else -typedef Uint64 NDB_TICKS; -#endif - -/** - * Returns the current millisecond since 1970 - */ -NDB_TICKS NdbTick_CurrentMillisecond(void); - -/** - * Get current micro second - * Second method is simply abstraction on top of the first - * - * Returns 0 - Success - */ -int NdbTick_CurrentMicrosecond(NDB_TICKS * secs, Uint32 * micros); - - /*#define TIME_MEASUREMENT*/ -#ifdef TIME_MEASUREMENT - -struct MicroSecondTimer { - NDB_TICKS seconds; - NDB_TICKS micro_seconds; -}; - -/** - * Get time between start and stop time in microseconds - * Abstraction to get time in struct - * - * 0 means stop happened at or before start time - */ -NDB_TICKS NdbTick_getMicrosPassed(struct MicroSecondTimer start, - struct MicroSecondTimer stop); -int NdbTick_getMicroTimer(struct MicroSecondTimer* time_now); -#endif - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/ndb/include/portlib/PortDefs.h b/ndb/include/portlib/PortDefs.h deleted file mode 100644 index a115c60cfe1..00000000000 --- a/ndb/include/portlib/PortDefs.h +++ /dev/null @@ -1,53 +0,0 @@ -/* 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 PORT_DEFS_H -#define PORT_DEFS_H -/* - This file contains varoius declarations/definitions needed in the port of AXEVM to NT, as well as backporting - to Solaris... - - $Id: PortDefs.h,v 1.5 2003/10/07 07:59:59 mikael Exp $ -*/ - -#ifdef NDB_ALPHA -#ifdef NDB_GCC /* only for NDB_ALPHA */ -extern int gnuShouldNotUseRPCC(); -#define RPCC() gnuShouldNotUseRPCC(); -#else -#define RPCC() ((int)__asm(" rpcc v0;")) -#define MB() __asm(" mb;"); -#define WMB() __asm(" wmb;"); -#ifdef USE_INITIALSP -#define IS_IP() (__asm(" mov sp,v0;") < IPinitialSP) -#else /* USE_INITIALSP */ -#define IS_IP() (((__asm(" rpcc v0;") >> 32) & 0x7) == IP_CPU) -#endif -#endif /* NDB_GCC */ -#else /* NDB_ALPHA */ -#if defined NDB_SPARC -#define MB() asm ("membar 0x0;"); /* LoadLoad */ -#define WMB() asm ("membar 0x3;"); /* StoreStore */ -#else /* NDB_SPARC */ -#define MB() -#define WMB() -#endif /* NDB_SPARC */ -#define IS_IP() (1==1) -extern int shouldNotUseRPCC(); -#define RPCC() shouldNotUseRPCC(); -#endif /* NDB_ALPHA */ - -#endif diff --git a/ndb/include/portlib/prefetch.h b/ndb/include/portlib/prefetch.h deleted file mode 100644 index 729c80bd93e..00000000000 --- a/ndb/include/portlib/prefetch.h +++ /dev/null @@ -1,69 +0,0 @@ -/* 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 PREFETCH_H -#define PREFETCH_H - -#ifdef NDB_FORTE6 -#include <sun_prefetch.h> -#endif - -#ifdef USE_PREFETCH -#define PREFETCH(addr) prefetch(addr) -#else -#define PREFETCH(addr) -#endif - -#ifdef USE_PREFETCH -#define WRITEHINT(addr) writehint(addr) -#else -#define WRITEHINT(addr) -#endif - -#include "PortDefs.h" - -#ifdef NDB_FORTE6 -#pragma optimize("", off) -#endif -inline void prefetch(void* p) -{ -#ifdef NDB_ALPHA - __asm(" ldl r31,0(a0);", p); -#endif /* NDB_ALPHA */ -#ifdef NDB_FORTE6 - sparc_prefetch_read_once(p); -#else - (void)p; -#endif -} - -inline void writehint(void* p) -{ -#ifdef NDB_ALPHA - __asm(" wh64 (a0);", p); -#endif /* NDB_ALPHA */ -#ifdef NDB_FORTE6 - sparc_prefetch_write_once(p); -#else - (void)p; -#endif -} -#ifdef NDB_FORTE6 -#pragma optimize("", on) -#endif - -#endif - diff --git a/ndb/include/transporter/TransporterCallback.hpp b/ndb/include/transporter/TransporterCallback.hpp deleted file mode 100644 index 9f910f31728..00000000000 --- a/ndb/include/transporter/TransporterCallback.hpp +++ /dev/null @@ -1,345 +0,0 @@ -/* 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 */ - -//**************************************************************************** -// -// AUTHOR -// Åsa Fransson -// -// NAME -// TransporterCallback -// -// -//***************************************************************************/ -#ifndef TRANSPORTER_CALLBACK_H -#define TRANSPORTER_CALLBACK_H - -#include <kernel_types.h> -#include "TransporterDefinitions.hpp" - - -/** - * Call back functions - */ - -/** - * The execute function - */ -void -execute(void * callbackObj, - SignalHeader * const header, - Uint8 prio, - Uint32 * const signalData, - LinearSectionPtr ptr[3]); - -/** - * A function to avoid job buffer overflow in NDB kernel, empty in API - * Non-zero return means we executed signals. This is necessary information - * to the transporter to ensure that it properly uses the transporter after - * coming back again. - */ -int -checkJobBuffer(); - -/** - * Report send length - */ -void -reportSendLen(void * callbackObj, - NodeId nodeId, Uint32 count, Uint64 bytes); - -/** - * Report average receive length - */ -void -reportReceiveLen(void * callbackObj, - NodeId nodeId, Uint32 count, Uint64 bytes); - -/** - * Report connection established - */ -void -reportConnect(void * callbackObj, NodeId nodeId); - -/** - * Report connection broken - */ - -void -reportDisconnect(void * callbackObj, - NodeId nodeId, Uint32 errNo); - -enum TransporterError { - TE_NO_ERROR = 0, - /** - * TE_ERROR_CLOSING_SOCKET - * - * Error found during closing of socket - * - * Recommended behavior: Ignore - */ - TE_ERROR_CLOSING_SOCKET = 0x1, - - /** - * TE_ERROR_IN_SELECT_BEFORE_ACCEPT - * - * Error found during accept (just before) - * The transporter will retry. - * - * Recommended behavior: Ignore - * (or possible do setPerformState(PerformDisconnect) - */ - TE_ERROR_IN_SELECT_BEFORE_ACCEPT = 0x2, - - /** - * TE_INVALID_MESSAGE_LENGTH - * - * Error found in message (message length) - * - * Recommended behavior: setPerformState(PerformDisconnect) - */ - TE_INVALID_MESSAGE_LENGTH = 0x8003, - - /** - * TE_INVALID_CHECKSUM - * - * Error found in message (checksum) - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - TE_INVALID_CHECKSUM = 0x8004, - - /** - * TE_COULD_NOT_CREATE_SOCKET - * - * Error found while creating socket - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - TE_COULD_NOT_CREATE_SOCKET = 0x8005, - - /** - * TE_COULD_NOT_BIND_SOCKET - * - * Error found while binding server socket - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - TE_COULD_NOT_BIND_SOCKET = 0x8006, - - /** - * TE_LISTEN_FAILED - * - * Error found while listening to server socket - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - TE_LISTEN_FAILED = 0x8007, - - /** - * TE_ACCEPT_RETURN_ERROR - * - * Error found during accept - * The transporter will retry. - * - * Recommended behavior: Ignore - * (or possible do setPerformState(PerformDisconnect) - */ - TE_ACCEPT_RETURN_ERROR = 0x8008 - - /** - * TE_SHM_DISCONNECT - * - * The remote node has disconnected - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SHM_DISCONNECT = 0x800b - - /** - * TE_SHM_IPC_STAT - * - * Unable to check shm segment - * probably because remote node - * has disconnected and removed it - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SHM_IPC_STAT = 0x800c - - /** - * TE_SHM_UNABLE_TO_CREATE_SEGMENT - * - * Unable to create shm segment - * probably os something error - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SHM_UNABLE_TO_CREATE_SEGMENT = 0x800d - - /** - * TE_SHM_UNABLE_TO_ATTACH_SEGMENT - * - * Unable to attach shm segment - * probably invalid group / user - * - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SHM_UNABLE_TO_ATTACH_SEGMENT = 0x800e - - /** - * TE_SHM_UNABLE_TO_REMOVE_SEGMENT - * - * Unable to remove shm segment - * - * Recommended behavior: Ignore (not much to do) - * Print warning to logfile - */ - ,TE_SHM_UNABLE_TO_REMOVE_SEGMENT = 0x800f - - ,TE_TOO_SMALL_SIGID = 0x0010 - ,TE_TOO_LARGE_SIGID = 0x0011 - ,TE_WAIT_STACK_FULL = 0x8012 - ,TE_RECEIVE_BUFFER_FULL = 0x8013 - - /** - * TE_SIGNAL_LOST_SEND_BUFFER_FULL - * - * Send buffer is full, and trying to force send fails - * a signal is dropped!! very bad very bad - * - */ - ,TE_SIGNAL_LOST_SEND_BUFFER_FULL = 0x8014 - - /** - * TE_SIGNAL_LOST - * - * Send failed for unknown reason - * a signal is dropped!! very bad very bad - * - */ - ,TE_SIGNAL_LOST = 0x8015 - - /** - * TE_SEND_BUFFER_FULL - * - * The send buffer was full, but sleeping for a while solved it - */ - ,TE_SEND_BUFFER_FULL = 0x0016 - - /** - * TE_SCI_UNABLE_TO_CLOSE_CHANNEL - * - * Unable to close the sci channel and the resources allocated by - * the sisci api. - */ - ,TE_SCI_UNABLE_TO_CLOSE_CHANNEL = 0x8016 - - /** - * TE_SCI_LINK_ERROR - * - * There is no link from this node to the switch. - * No point in continuing. Must check the connections. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_LINK_ERROR = 0x8017 - - /** - * TE_SCI_UNABLE_TO_START_SEQUENCE - * - * Could not start a sequence, because system resources - * are exumed or no sequence has been created. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNABLE_TO_START_SEQUENCE = 0x8018 - - /** - * TE_SCI_UNABLE_TO_REMOVE_SEQUENCE - * - * Could not remove a sequence - */ - ,TE_SCI_UNABLE_TO_REMOVE_SEQUENCE = 0x8019 - - /** - * TE_SCI_UNABLE_TO_CREATE_SEQUENCE - * - * Could not create a sequence, because system resources are - * exempted. Must reboot. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNABLE_TO_CREATE_SEQUENCE = 0x801a - - /** - * TE_SCI_UNRECOVERABLE_DATA_TFX_ERROR - * - * Tried to send data on redundant link but failed. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNRECOVERABLE_DATA_TFX_ERROR = 0x801b - - /** - * TE_SCI_CANNOT_INIT_LOCALSEGMENT - * - * Cannot initialize local segment. A whole lot of things has - * gone wrong (no system resources). Must reboot. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_CANNOT_INIT_LOCALSEGMENT = 0x801c - - /** - * TE_SCI_CANNOT_MAP_REMOTESEGMENT - * - * Cannot map remote segment. No system resources are left. - * Must reboot system. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_CANNOT_MAP_REMOTESEGMENT = 0x801d - - /** - * TE_SCI_UNABLE_TO_UNMAP_SEGMENT - * - * Cannot free the resources used by this segment (step 1). - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNABLE_TO_UNMAP_SEGMENT = 0x801e - - /** - * TE_SCI_UNABLE_TO_REMOVE_SEGMENT - * - * Cannot free the resources used by this segment (step 2). - * Cannot guarantee that enough resources exist for NDB - * to map more segment - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNABLE_TO_REMOVE_SEGMENT = 0x801f - - /** - * TE_SCI_UNABLE_TO_DISCONNECT_SEGMENT - * - * Cannot disconnect from a remote segment. - * Recommended behavior: setPerformState(PerformDisonnect) - */ - ,TE_SCI_UNABLE_TO_DISCONNECT_SEGMENT = 0x8020 - -}; - -/** - * Report error - */ -void -reportError(void * callbackObj, NodeId nodeId, TransporterError errorCode); - -#endif diff --git a/ndb/include/transporter/TransporterDefinitions.hpp b/ndb/include/transporter/TransporterDefinitions.hpp deleted file mode 100644 index 18d1ec76a3c..00000000000 --- a/ndb/include/transporter/TransporterDefinitions.hpp +++ /dev/null @@ -1,126 +0,0 @@ -/* 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 TransporterDefinitions_H -#define TransporterDefinitions_H - -#include <ndb_global.h> -#include <kernel_types.h> -#include <NdbOut.hpp> - -/** - * The maximum number of transporters allowed - * A maximum is needed to be able to allocate the array of transporters - */ -const int MAX_NTRANSPORTERS = 128; - -/** - * The sendbuffer limit after which the contents of the buffer is sent - */ -const int TCP_SEND_LIMIT = 64000; - -enum SendStatus { - SEND_OK = 0, - SEND_BLOCKED = 1, - SEND_DISCONNECTED = 2, - SEND_BUFFER_FULL = 3, - SEND_MESSAGE_TOO_BIG = 4, - SEND_UNKNOWN_NODE = 5 -}; - -/** - * Protocol6 Header + - * (optional signal id) + (optional checksum) + (signal data) - */ -//const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25)); -const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25)+(3*4)+4*4096); - -/** - * TransporterConfiguration - * - * used for setting up a transporter. the union member specific is for - * information specific to a transporter type. - */ -struct TransporterConfiguration { - Uint32 port; - const char *remoteHostName; - const char *localHostName; - NodeId remoteNodeId; - NodeId localNodeId; - NodeId serverNodeId; - bool checksum; - bool signalId; - bool isMgmConnection; // is a mgm connection, requires transforming - - union { // Transporter specific configuration information - - struct { - Uint32 sendBufferSize; // Size of SendBuffer of priority B - Uint32 maxReceiveSize; // Maximum no of bytes to receive - } tcp; - - struct { - Uint32 shmKey; - Uint32 shmSize; - int signum; - } shm; - - struct { - Uint32 prioASignalSize; - Uint32 prioBSignalSize; - } ose; - - struct { - Uint32 sendLimit; // Packet size - Uint32 bufferSize; // Buffer size - - Uint32 nLocalAdapters; // 1 or 2, the number of adapters on local host - - Uint32 remoteSciNodeId0; // SCInodeId for adapter 1 - Uint32 remoteSciNodeId1; // SCInodeId for adapter 2 - } sci; - }; -}; - -struct SignalHeader { - Uint32 theVerId_signalNumber; // 4 bit ver id - 16 bit gsn - Uint32 theReceiversBlockNumber; // Only 16 bit blocknum - Uint32 theSendersBlockRef; - Uint32 theLength; - Uint32 theSendersSignalId; - Uint32 theSignalId; - Uint16 theTrace; - Uint8 m_noOfSections; - Uint8 m_fragmentInfo; -}; /** 7x4 = 28 Bytes */ - -struct LinearSectionPtr { - Uint32 sz; - Uint32 * p; -}; - -struct SegmentedSectionPtr { - Uint32 sz; - Uint32 i; - struct SectionSegment * p; - - void setNull() { p = 0;} - bool isNull() const { return p == 0;} -}; - -class NdbOut & operator <<(class NdbOut & out, SignalHeader & sh); - -#endif // Define of TransporterDefinitions_H diff --git a/ndb/include/transporter/TransporterRegistry.hpp b/ndb/include/transporter/TransporterRegistry.hpp deleted file mode 100644 index 363cdabe10a..00000000000 --- a/ndb/include/transporter/TransporterRegistry.hpp +++ /dev/null @@ -1,357 +0,0 @@ -/* 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 */ - -//**************************************************************************** -// -// NAME -// TransporterRegistry -// -// DESCRIPTION -// TransporterRegistry (singelton) is the interface to the -// transporter layer. It handles transporter states and -// holds the transporter arrays. -// -//***************************************************************************/ -#ifndef TransporterRegistry_H -#define TransporterRegistry_H - -#include "TransporterDefinitions.hpp" -#include <SocketServer.hpp> -#include <SocketClient.hpp> - -#include <NdbTCP.h> - -#include <mgmapi/mgmapi.h> - -// A transporter is always in an IOState. -// NoHalt is used initially and as long as it is no restrictions on -// sending or receiving. -enum IOState { - NoHalt = 0, - HaltInput = 1, - HaltOutput = 2, - HaltIO = 3 -}; - -enum TransporterType { - tt_TCP_TRANSPORTER = 1, - tt_SCI_TRANSPORTER = 2, - tt_SHM_TRANSPORTER = 3, - tt_OSE_TRANSPORTER = 4 -}; - -static const char *performStateString[] = - { "is connected", - "is trying to connect", - "does nothing", - "is trying to disconnect" }; - -class Transporter; -class TCP_Transporter; -class SCI_Transporter; -class SHM_Transporter; -class OSE_Transporter; - -class TransporterRegistry; -class SocketAuthenticator; - -class TransporterService : public SocketServer::Service { - SocketAuthenticator * m_auth; - TransporterRegistry * m_transporter_registry; -public: - TransporterService(SocketAuthenticator *auth= 0) - { - m_auth= auth; - m_transporter_registry= 0; - } - void setTransporterRegistry(TransporterRegistry *t) - { - m_transporter_registry= t; - } - SocketServer::Session * newSession(NDB_SOCKET_TYPE socket); -}; - -/** - * @class TransporterRegistry - * @brief ... - */ -class TransporterRegistry { - friend class OSE_Receiver; - friend class SHM_Transporter; - friend class Transporter; - friend class TransporterService; -public: - /** - * Constructor - */ - TransporterRegistry(void * callback = 0 , - unsigned maxTransporters = MAX_NTRANSPORTERS, - unsigned sizeOfLongSignalMemory = 100); - - /** - * this handle will be used in the client connect thread - * to fetch information on dynamic ports. The old handle - * (if set) is destroyed, and this is destroyed by the destructor - */ - void set_mgm_handle(NdbMgmHandle h); - NdbMgmHandle get_mgm_handle(void) { return m_mgm_handle; }; - - bool init(NodeId localNodeId); - - /** - * after a connect from client, perform connection using correct transporter - */ - bool connect_server(NDB_SOCKET_TYPE sockfd); - - bool connect_client(NdbMgmHandle *h); - - /** - * Given a SocketClient, creates a NdbMgmHandle, turns it into a transporter - * and returns the socket. - */ - NDB_SOCKET_TYPE connect_ndb_mgmd(SocketClient *sc); - - /** - * Given a connected NdbMgmHandle, turns it into a transporter - * and returns the socket. - */ - NDB_SOCKET_TYPE connect_ndb_mgmd(NdbMgmHandle *h); - - /** - * Remove all transporters - */ - void removeAll(); - - /** - * Disconnect all transporters - */ - void disconnectAll(); - - /** - * Stops the server, disconnects all the transporter - * and deletes them and remove it from the transporter arrays - */ - ~TransporterRegistry(); - - bool start_service(SocketServer& server); - bool start_clients(); - bool stop_clients(); - void start_clients_thread(); - void update_connections(); - - /** - * Start/Stop receiving - */ - void startReceiving(); - void stopReceiving(); - - /** - * Start/Stop sending - */ - void startSending(); - void stopSending(); - - // A transporter is always in a PerformState. - // PerformIO is used initially and as long as any of the events - // PerformConnect, ... - enum PerformState { - CONNECTED = 0, - CONNECTING = 1, - DISCONNECTED = 2, - DISCONNECTING = 3 - }; - const char *getPerformStateString(NodeId nodeId) const - { return performStateString[(unsigned)performStates[nodeId]]; }; - - /** - * Get and set methods for PerformState - */ - void do_connect(NodeId node_id); - void do_disconnect(NodeId node_id); - bool is_connected(NodeId node_id) { return performStates[node_id] == CONNECTED; }; - void report_connect(NodeId node_id); - void report_disconnect(NodeId node_id, int errnum); - - /** - * Get and set methods for IOState - */ - IOState ioState(NodeId nodeId); - void setIOState(NodeId nodeId, IOState state); - - /** - * createTransporter - * - * If the config object indicates that the transporter - * to be created will act as a server and no server is - * started, startServer is called. A transporter of the selected kind - * is created and it is put in the transporter arrays. - */ - bool createTCPTransporter(struct TransporterConfiguration * config); - bool createSCITransporter(struct TransporterConfiguration * config); - bool createSHMTransporter(struct TransporterConfiguration * config); - bool createOSETransporter(struct TransporterConfiguration * config); - - /** - * prepareSend - * - * When IOState is HaltOutput or HaltIO do not send or insert any - * signals in the SendBuffer, unless it is intended for the remote - * CMVMI block (blockno 252) - * Perform prepareSend on the transporter. - * - * NOTE signalHeader->xxxBlockRef should contain block numbers and - * not references - */ - SendStatus prepareSend(const SignalHeader * const signalHeader, Uint8 prio, - const Uint32 * const signalData, - NodeId nodeId, - const LinearSectionPtr ptr[3]); - - SendStatus prepareSend(const SignalHeader * const signalHeader, Uint8 prio, - const Uint32 * const signalData, - NodeId nodeId, - class SectionSegmentPool & pool, - const SegmentedSectionPtr ptr[3]); - - /** - * external_IO - * - * Equal to: poll(...); perform_IO() - * - */ - void external_IO(Uint32 timeOutMillis); - - Uint32 pollReceive(Uint32 timeOutMillis); - void performReceive(); - void performSend(); - - /** - * Force sending if more than or equal to sendLimit - * number have asked for send. Returns 0 if not sending - * and 1 if sending. - */ - int forceSendCheck(int sendLimit); - -#ifdef DEBUG_TRANSPORTER - void printState(); -#endif - - class Transporter_interface { - public: - NodeId m_remote_nodeId; - int m_s_service_port; // signed port number - const char *m_interface; - }; - Vector<Transporter_interface> m_transporter_interface; - void add_transporter_interface(NodeId remoteNodeId, const char *interf, - int s_port); // signed port. <0 is dynamic - Transporter* get_transporter(NodeId nodeId); - NodeId get_localNodeId() { return localNodeId; }; - -protected: - -private: - void * callbackObj; - - NdbMgmHandle m_mgm_handle; - - struct NdbThread *m_start_clients_thread; - bool m_run_start_clients_thread; - - int sendCounter; - NodeId localNodeId; - bool nodeIdSpecified; - unsigned maxTransporters; - int nTransporters; - int nTCPTransporters; - int nSCITransporters; - int nSHMTransporters; - int nOSETransporters; - - /** - * Arrays holding all transporters in the order they are created - */ - TCP_Transporter** theTCPTransporters; - SCI_Transporter** theSCITransporters; - SHM_Transporter** theSHMTransporters; - OSE_Transporter** theOSETransporters; - - /** - * Array, indexed by nodeId, holding all transporters - */ - TransporterType* theTransporterTypes; - Transporter** theTransporters; - - /** - * OSE Receiver - */ - class OSE_Receiver * theOSEReceiver; - - /** - * In OSE you for some bizar reason needs to create a socket - * the first thing you do when using inet functions. - * - * Furthermore a process doing select has to "own" a socket - * - */ - int theOSEJunkSocketSend; - int theOSEJunkSocketRecv; -#if defined NDB_OSE || defined NDB_SOFTOSE - PROCESS theReceiverPid; -#endif - - /** - * State arrays, index by host id - */ - PerformState* performStates; - IOState* ioStates; - - /** - * Unpack signal data - */ - Uint32 unpack(Uint32 * readPtr, - Uint32 bufferSize, - NodeId remoteNodeId, - IOState state); - - Uint32 * unpack(Uint32 * readPtr, - Uint32 * eodPtr, - NodeId remoteNodeId, - IOState state); - - /** - * Disconnect the transporter and remove it from - * theTransporters array. Do not allow any holes - * in theTransporters. Delete the transporter - * and remove it from theIndexedTransporters array - */ - void removeTransporter(NodeId nodeId); - - /** - * Used in polling if exists TCP_Transporter - */ - int tcpReadSelectReply; - fd_set tcpReadset; - - Uint32 poll_OSE(Uint32 timeOutMillis); - Uint32 poll_TCP(Uint32 timeOutMillis); - Uint32 poll_SCI(Uint32 timeOutMillis); - Uint32 poll_SHM(Uint32 timeOutMillis); - - int m_shm_own_pid; -}; - -#endif // Define of TransporterRegistry_H diff --git a/ndb/include/util/Base64.hpp b/ndb/include/util/Base64.hpp deleted file mode 100644 index f4b11ad9214..00000000000 --- a/ndb/include/util/Base64.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* 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 __BASE64_HPP_INCLUDED__ -#define __BASE64_HPP_INCLUDED__ - -#include <UtilBuffer.hpp> -#include <BaseString.hpp> - -int base64_encode(const UtilBuffer &src, BaseString &dst); -int base64_encode(const void * s, size_t src_len, BaseString &dst); -int base64_decode(const BaseString &src, UtilBuffer &dst); -int base64_decode(const char * s, size_t len, UtilBuffer &dst); - -#endif /* !__BASE64_HPP_INCLUDED__ */ diff --git a/ndb/include/util/BaseString.hpp b/ndb/include/util/BaseString.hpp deleted file mode 100644 index 02a6a3b3e66..00000000000 --- a/ndb/include/util/BaseString.hpp +++ /dev/null @@ -1,266 +0,0 @@ -/* 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 __UTIL_BASESTRING_HPP_INCLUDED__ -#define __UTIL_BASESTRING_HPP_INCLUDED__ - -#include <ndb_global.h> -#include <Vector.hpp> - -/** - * @class BaseString - * @brief Null terminated strings - */ -class BaseString { -public: - /** @brief Constructs an empty string */ - BaseString(); - - /** @brief Constructs a copy of a char * */ - BaseString(const char* s); - - /** @brief Constructs a copy of another BaseString */ - BaseString(const BaseString& str); - - /** @brief Destructor */ - ~BaseString(); - - /** @brief Returns a C-style string */ - const char* c_str() const; - - /** @brief Returns the length of the string */ - unsigned length() const; - - /** @brief Checks if the string is empty */ - bool empty() const; - - /** @brief Convert to uppercase */ - BaseString& ndb_toupper(); - - /** @brief Convert to lowercase */ - BaseString& ndb_tolower(); - - /** @brief Assigns from a char * */ - BaseString& assign(const char* s); - - /** @brief Assigns from another BaseString */ - BaseString& assign(const BaseString& str); - - /** @brief Assigns from char *s, with maximum length n */ - BaseString& assign(const char* s, size_t n); - - /** @brief Assigns from another BaseString, with maximum length n */ - BaseString& assign(const BaseString& str, size_t n); - - /** - * Assings from a Vector of BaseStrings, each Vector entry - * separated by separator. - * - * @param vector Vector of BaseStrings to append - * @param separator Separation between appended strings - */ - BaseString& assign(const Vector<BaseString> &vector, - const BaseString &separator = BaseString(" ")); - - /** @brief Appends a char * to the end */ - BaseString& append(const char* s); - - /** @brief Appends a char to the end */ - BaseString& append(char c); - - /** @brief Appends another BaseString to the end */ - BaseString& append(const BaseString& str); - - /** - * Appends a Vector of BaseStrings to the end, each Vector entry - * separated by separator. - * - * @param vector Vector of BaseStrings to append - * @param separator Separation between appended strings - */ - BaseString& append(const Vector<BaseString> &vector, - const BaseString &separator = BaseString(" ")); - - /** @brief Assigns from a format string a la printf() */ - BaseString& assfmt(const char* ftm, ...); - - /** @brief Appends a format string a la printf() to the end */ - BaseString& appfmt(const char* ftm, ...); - - /** - * Split a string into a vector of strings. Separate the string where - * any character included in separator exists. - * Maximally maxSize entries are added to the vector, if more separators - * exist in the string, the remainder of the string will be appended - * to the last entry in the vector. - * The vector will not be cleared, so any existing strings in the - * vector will remain. - * - * @param separator characters separating the entries - * @param vector where the separated strings will be stored - * @param maximum number of strings extracted - * - * @returns the number of string added to the vector - */ - int split(Vector<BaseString> &vector, - const BaseString &separator = BaseString(" "), - int maxSize = -1) const; - - /** - * Returns the index of the first occurance of the character c. - * - * @params c character to look for - * @returns index of character, of -1 if no character found - */ - ssize_t indexOf(char c); - - /** - * Returns the index of the last occurance of the character c. - * - * @params c character to look for - * @returns index of character, of -1 if no character found - */ - ssize_t lastIndexOf(char c); - - /** - * Returns a subset of a string - * - * @param start index of first character - * @param stop index of last character - * @return a new string - */ - BaseString substr(ssize_t start, ssize_t stop = -1); - - /** - * @brief Assignment operator - */ - BaseString& operator=(const BaseString& str); - - /** @brief Compare two strings */ - bool operator<(const BaseString& str) const; - /** @brief Are two strings equal? */ - bool operator==(const BaseString& str) const; - /** @brief Are two strings equal? */ - bool operator==(const char *str) const; - /** @brief Are two strings not equal? */ - bool operator!=(const BaseString& str) const; - /** @brief Are two strings not equal? */ - bool operator!=(const char *str) const; - - /** - * Trim string from <i>delim</i> - */ - BaseString& trim(const char * delim = " \t"); - - /** - * Return c-array with strings suitable for execve - * When whitespace is detected, the characters '"' and '\' are honored, - * to make it possible to give arguments containing whitespace. - * The semantics of '"' and '\' match that of most Unix shells. - */ - static char** argify(const char *argv0, const char *src); - - /** - * Trim string from <i>delim</i> - */ - static char* trim(char * src, const char * delim); - - /** - * snprintf on some platforms need special treatment - */ - static int snprintf(char *str, size_t size, const char *format, ...); - static int vsnprintf(char *str, size_t size, const char *format, va_list ap); -private: - char* m_chr; - unsigned m_len; -}; - -inline const char* -BaseString::c_str() const -{ - return m_chr; -} - -inline unsigned -BaseString::length() const -{ - return m_len; -} - -inline bool -BaseString::empty() const -{ - return m_len == 0; -} - -inline BaseString& -BaseString::ndb_toupper() { - for(unsigned i = 0; i < length(); i++) - m_chr[i] = toupper(m_chr[i]); - return *this; -} - -inline BaseString& -BaseString::ndb_tolower() { - for(unsigned i = 0; i < length(); i++) - m_chr[i] = tolower(m_chr[i]); - return *this; -} - -inline bool -BaseString::operator<(const BaseString& str) const -{ - return strcmp(m_chr, str.m_chr) < 0; -} - -inline bool -BaseString::operator==(const BaseString& str) const -{ - return strcmp(m_chr, str.m_chr) == 0; -} - -inline bool -BaseString::operator==(const char *str) const -{ - return strcmp(m_chr, str) == 0; -} - -inline bool -BaseString::operator!=(const BaseString& str) const -{ - return strcmp(m_chr, str.m_chr) != 0; -} - -inline bool -BaseString::operator!=(const char *str) const -{ - return strcmp(m_chr, str) != 0; -} - -inline BaseString& -BaseString::assign(const BaseString& str) -{ - return assign(str.m_chr); -} - -inline BaseString& -BaseString::assign(const Vector<BaseString> &vector, - const BaseString &separator) { - assign(""); - return append(vector, separator); -} - -#endif /* !__UTIL_BASESTRING_HPP_INCLUDED__ */ diff --git a/ndb/include/util/Bitmask.hpp b/ndb/include/util/Bitmask.hpp deleted file mode 100644 index ade57a5ee57..00000000000 --- a/ndb/include/util/Bitmask.hpp +++ /dev/null @@ -1,854 +0,0 @@ -/* 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 NDB_BITMASK_H -#define NDB_BITMASK_H - -#include <ndb_global.h> - -/** - * Bitmask implementation. Size is given explicitly - * (as first argument). All methods are static. - */ -class BitmaskImpl { -public: - STATIC_CONST( NotFound = (unsigned)-1 ); - - /** - * get - Check if bit n is set. - */ - static bool get(unsigned size, const Uint32 data[], unsigned n); - - /** - * set - Set bit n to given value (true/false). - */ - static void set(unsigned size, Uint32 data[], unsigned n, bool value); - - /** - * set - Set bit n. - */ - static void set(unsigned size, Uint32 data[], unsigned n); - - /** - * set - Set all bits. - */ - static void set(unsigned size, Uint32 data[]); - - /** - * assign - Set all bits in <em>dst</em> to corresponding in <em>src/<em> - */ - static void assign(unsigned size, Uint32 dst[], const Uint32 src[]); - - /** - * clear - Clear bit n. - */ - static void clear(unsigned size, Uint32 data[], unsigned n); - - /** - * clear - Clear all bits. - */ - static void clear(unsigned size, Uint32 data[]); - - /** - * isclear - Check if all bits are clear. This is faster - * than checking count() == 0. - */ - static bool isclear(unsigned size, const Uint32 data[]); - - /** - * count - Count number of set bits. - */ - static unsigned count(unsigned size, const Uint32 data[]); - - /** - * find - Find first set bit, starting at given position. - * Returns NotFound when not found. - */ - static unsigned find(unsigned size, const Uint32 data[], unsigned n); - - /** - * equal - Bitwise equal. - */ - static bool equal(unsigned size, const Uint32 data[], const Uint32 data2[]); - - /** - * bitOR - Bitwise (x | y) into first operand. - */ - static void bitOR(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * bitAND - Bitwise (x & y) into first operand. - */ - static void bitAND(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * bitANDC - Bitwise (x & ~y) into first operand. - */ - static void bitANDC(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * bitXOR - Bitwise (x ^ y) into first operand. - */ - static void bitXOR(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * bitXORC - Bitwise (x ^ ~y) into first operand. - */ - static void bitXORC(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * contains - Check if all bits set in data2 are set in data - */ - static bool contains(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * overlaps - Check if any bit set in data is set in data2 - */ - static bool overlaps(unsigned size, Uint32 data[], const Uint32 data2[]); - - /** - * getField - Get bitfield at given position and length (max 32 bits) - */ - static Uint32 getField(unsigned size, const Uint32 data[], - unsigned pos, unsigned len); - - /** - * setField - Set bitfield at given position and length (max 32 bits) - */ - static void setField(unsigned size, Uint32 data[], - unsigned pos, unsigned len, Uint32 val); - - - /** - * getField - Get bitfield at given position and length - */ - static void getField(unsigned size, const Uint32 data[], - unsigned pos, unsigned len, Uint32 dst[]); - - /** - * setField - Set bitfield at given position and length - */ - static void setField(unsigned size, Uint32 data[], - unsigned pos, unsigned len, const Uint32 src[]); - - /** - * getText - Return as hex-digits (only for debug routines). - */ - static char* getText(unsigned size, const Uint32 data[], char* buf); -private: - static void getFieldImpl(const Uint32 data[], unsigned, unsigned, Uint32 []); - static void setFieldImpl(Uint32 data[], unsigned, unsigned, const Uint32 []); -}; - -inline bool -BitmaskImpl::get(unsigned size, const Uint32 data[], unsigned n) -{ - assert(n < (size << 5)); - return (data[n >> 5] & (1 << (n & 31))) != 0; -} - -inline void -BitmaskImpl::set(unsigned size, Uint32 data[], unsigned n, bool value) -{ - value ? set(size, data, n) : clear(size, data, n); -} - -inline void -BitmaskImpl::set(unsigned size, Uint32 data[], unsigned n) -{ - assert(n < (size << 5)); - data[n >> 5] |= (1 << (n & 31)); -} - -inline void -BitmaskImpl::set(unsigned size, Uint32 data[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] = ~0; - } -} - -inline void -BitmaskImpl::assign(unsigned size, Uint32 dst[], const Uint32 src[]) -{ - for (unsigned i = 0; i < size; i++) { - dst[i] = src[i]; - } -} - -inline void -BitmaskImpl::clear(unsigned size, Uint32 data[], unsigned n) -{ - assert(n < (size << 5)); - data[n >> 5] &= ~(1 << (n & 31)); -} - -inline void -BitmaskImpl::clear(unsigned size, Uint32 data[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] = 0; - } -} - -inline bool -BitmaskImpl::isclear(unsigned size, const Uint32 data[]) -{ - for (unsigned i = 0; i < size; i++) { - if (data[i] != 0) - return false; - } - return true; -} - -inline unsigned -BitmaskImpl::count(unsigned size, const Uint32 data[]) -{ - unsigned cnt = 0; - for (unsigned i = 0; i < size; i++) { - Uint32 x = data[i]; - while (x) { - x &= (x - 1); - cnt++; - } - } - return cnt; -} - -inline unsigned -BitmaskImpl::find(unsigned size, const Uint32 data[], unsigned n) -{ - while (n < (size << 5)) { // XXX make this smarter - if (get(size, data, n)) { - return n; - } - n++; - } - return NotFound; -} - -inline bool -BitmaskImpl::equal(unsigned size, const Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - if (data[i] != data2[i]) - return false; - } - return true; -} - -inline void -BitmaskImpl::bitOR(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] |= data2[i]; - } -} - -inline void -BitmaskImpl::bitAND(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] &= data2[i]; - } -} - -inline void -BitmaskImpl::bitANDC(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] &= ~data2[i]; - } -} - -inline void -BitmaskImpl::bitXOR(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] ^= data2[i]; - } -} - -inline void -BitmaskImpl::bitXORC(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned i = 0; i < size; i++) { - data[i] ^= ~data2[i]; - } -} - -inline bool -BitmaskImpl::contains(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned int i = 0; i < size; i++) - if ((data[i] & data2[i]) != data2[i]) - return false; - return true; -} - -inline bool -BitmaskImpl::overlaps(unsigned size, Uint32 data[], const Uint32 data2[]) -{ - for (unsigned int i = 0; i < size; i++) - if ((data[i] & data2[i]) != 0) - return true; - return false; -} - -inline Uint32 -BitmaskImpl::getField(unsigned size, const Uint32 data[], - unsigned pos, unsigned len) -{ - Uint32 val = 0; - for (unsigned i = 0; i < len; i++) - val |= get(size, data, pos + i) << i; - return val; -} - -inline void -BitmaskImpl::setField(unsigned size, Uint32 data[], - unsigned pos, unsigned len, Uint32 val) -{ - for (unsigned i = 0; i < len; i++) - set(size, data, pos + i, val & (1 << i)); -} - -inline char * -BitmaskImpl::getText(unsigned size, const Uint32 data[], char* buf) -{ - char * org = buf; - const char* const hex = "0123456789abcdef"; - for (int i = (size-1); i >= 0; i--) { - Uint32 x = data[i]; - for (unsigned j = 0; j < 8; j++) { - buf[7-j] = hex[x & 0xf]; - x >>= 4; - } - buf += 8; - } - *buf = 0; - return org; -} - -/** - * Bitmasks. The size is number of 32-bit words (Uint32). - * Unused bits in the last word must be zero. - * - * XXX replace size by length in bits - */ -template <unsigned size> -struct BitmaskPOD { -public: - /** - * POD data representation - */ - struct Data { - Uint32 data[size]; -#if 0 - Data & operator=(const BitmaskPOD<size> & src) { - src.copyto(size, data); - return *this; - } -#endif - }; -private: - - Data rep; -public: - STATIC_CONST( Size = size ); - STATIC_CONST( NotFound = BitmaskImpl::NotFound ); - STATIC_CONST( TextLength = size * 8 ); - - /** - * assign - Set all bits in <em>dst</em> to corresponding in <em>src/<em> - */ - void assign(const typename BitmaskPOD<size>::Data & src); - - /** - * assign - Set all bits in <em>dst</em> to corresponding in <em>src/<em> - */ - static void assign(Uint32 dst[], const Uint32 src[]); - static void assign(Uint32 dst[], const BitmaskPOD<size> & src); - void assign(const BitmaskPOD<size> & src); - - /** - * copy this to <em>dst</em> - */ - void copyto(unsigned sz, Uint32 dst[]) const; - - /** - * assign <em>this</em> according to <em>src/em> - */ - void assign(unsigned sz, const Uint32 src[]); - - /** - * get - Check if bit n is set. - */ - static bool get(const Uint32 data[], unsigned n); - bool get(unsigned n) const; - - /** - * set - Set bit n to given value (true/false). - */ - static void set(Uint32 data[], unsigned n, bool value); - void set(unsigned n, bool value); - - /** - * set - Set bit n. - */ - static void set(Uint32 data[], unsigned n); - void set(unsigned n); - - /** - * set - set all bits. - */ - static void set(Uint32 data[]); - void set(); - - /** - * clear - Clear bit n. - */ - static void clear(Uint32 data[], unsigned n); - void clear(unsigned n); - - /** - * clear - Clear all bits. - */ - static void clear(Uint32 data[]); - void clear(); - - /** - * isclear - Check if all bits are clear. This is faster - * than checking count() == 0. - */ - static bool isclear(const Uint32 data[]); - bool isclear() const; - - /** - * count - Count number of set bits. - */ - static unsigned count(const Uint32 data[]); - unsigned count() const; - - /** - * find - Find first set bit, starting at given position. - * Returns NotFound when not found. - */ - static unsigned find(const Uint32 data[], unsigned n); - unsigned find(unsigned n) const; - - /** - * equal - Bitwise equal. - */ - static bool equal(const Uint32 data[], const Uint32 data2[]); - bool equal(const BitmaskPOD<size>& mask2) const; - - /** - * bitOR - Bitwise (x | y) into first operand. - */ - static void bitOR(Uint32 data[], const Uint32 data2[]); - BitmaskPOD<size>& bitOR(const BitmaskPOD<size>& mask2); - - /** - * bitAND - Bitwise (x & y) into first operand. - */ - static void bitAND(Uint32 data[], const Uint32 data2[]); - BitmaskPOD<size>& bitAND(const BitmaskPOD<size>& mask2); - - /** - * bitANDC - Bitwise (x & ~y) into first operand. - */ - static void bitANDC(Uint32 data[], const Uint32 data2[]); - BitmaskPOD<size>& bitANDC(const BitmaskPOD<size>& mask2); - - /** - * bitXOR - Bitwise (x ^ y) into first operand. - */ - static void bitXOR(Uint32 data[], const Uint32 data2[]); - BitmaskPOD<size>& bitXOR(const BitmaskPOD<size>& mask2); - - /** - * bitXORC - Bitwise (x ^ ~y) into first operand. - */ - static void bitXORC(Uint32 data[], const Uint32 data2[]); - BitmaskPOD<size>& bitXORC(const BitmaskPOD<size>& mask2); - - /** - * contains - Check if all bits set in data2 (that) are also set in data (this) - */ - static bool contains(Uint32 data[], const Uint32 data2[]); - bool contains(BitmaskPOD<size> that); - - /** - * overlaps - Check if any bit set in this BitmaskPOD (data) is also set in that (data2) - */ - static bool overlaps(Uint32 data[], const Uint32 data2[]); - bool overlaps(BitmaskPOD<size> that); - - /** - * getText - Return as hex-digits (only for debug routines). - */ - static char* getText(const Uint32 data[], char* buf); - char* getText(char* buf) const; -}; - -template <unsigned size> -inline void -BitmaskPOD<size>::assign(Uint32 dst[], const Uint32 src[]) -{ - BitmaskImpl::assign(size, dst, src); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::assign(Uint32 dst[], const BitmaskPOD<size> & src) -{ - BitmaskImpl::assign(size, dst, src.rep.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::assign(const typename BitmaskPOD<size>::Data & src) -{ - BitmaskPOD<size>::assign(rep.data, src.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::assign(const BitmaskPOD<size> & src) -{ - BitmaskPOD<size>::assign(rep.data, src.rep.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::copyto(unsigned sz, Uint32 dst[]) const -{ - BitmaskImpl::assign(sz, dst, rep.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::assign(unsigned sz, const Uint32 src[]) -{ - BitmaskImpl::assign(sz, rep.data, src); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::get(const Uint32 data[], unsigned n) -{ - return BitmaskImpl::get(size, data, n); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::get(unsigned n) const -{ - return BitmaskPOD<size>::get(rep.data, n); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set(Uint32 data[], unsigned n, bool value) -{ - BitmaskImpl::set(size, data, n, value); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set(unsigned n, bool value) -{ - BitmaskPOD<size>::set(rep.data, n, value); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set(Uint32 data[], unsigned n) -{ - BitmaskImpl::set(size, data, n); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set(unsigned n) -{ - BitmaskPOD<size>::set(rep.data, n); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set(Uint32 data[]) -{ - BitmaskImpl::set(size, data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::set() -{ - BitmaskPOD<size>::set(rep.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::clear(Uint32 data[], unsigned n) -{ - BitmaskImpl::clear(size, data, n); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::clear(unsigned n) -{ - BitmaskPOD<size>::clear(rep.data, n); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::clear(Uint32 data[]) -{ - BitmaskImpl::clear(size, data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::clear() -{ - BitmaskPOD<size>::clear(rep.data); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::isclear(const Uint32 data[]) -{ - return BitmaskImpl::isclear(size, data); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::isclear() const -{ - return BitmaskPOD<size>::isclear(rep.data); -} - -template <unsigned size> -unsigned -BitmaskPOD<size>::count(const Uint32 data[]) -{ - return BitmaskImpl::count(size, data); -} - -template <unsigned size> -inline unsigned -BitmaskPOD<size>::count() const -{ - return BitmaskPOD<size>::count(rep.data); -} - -template <unsigned size> -unsigned -BitmaskPOD<size>::find(const Uint32 data[], unsigned n) -{ - return BitmaskImpl::find(size, data, n); -} - -template <unsigned size> -inline unsigned -BitmaskPOD<size>::find(unsigned n) const -{ - return BitmaskPOD<size>::find(rep.data, n); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::equal(const Uint32 data[], const Uint32 data2[]) -{ - return BitmaskImpl::equal(size, data, data2); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::equal(const BitmaskPOD<size>& mask2) const -{ - return BitmaskPOD<size>::equal(rep.data, mask2.rep.data); -} - -template <unsigned size> -inline void -BitmaskPOD<size>::bitOR(Uint32 data[], const Uint32 data2[]) -{ - BitmaskImpl::bitOR(size,data, data2); -} - -template <unsigned size> -inline BitmaskPOD<size>& -BitmaskPOD<size>::bitOR(const BitmaskPOD<size>& mask2) -{ - BitmaskPOD<size>::bitOR(rep.data, mask2.rep.data); - return *this; -} - -template <unsigned size> -inline void -BitmaskPOD<size>::bitAND(Uint32 data[], const Uint32 data2[]) -{ - BitmaskImpl::bitAND(size,data, data2); -} - -template <unsigned size> -inline BitmaskPOD<size>& -BitmaskPOD<size>::bitAND(const BitmaskPOD<size>& mask2) -{ - BitmaskPOD<size>::bitAND(rep.data, mask2.rep.data); - return *this; -} - -template <unsigned size> -inline void -BitmaskPOD<size>::bitANDC(Uint32 data[], const Uint32 data2[]) -{ - BitmaskImpl::bitANDC(size,data, data2); -} - -template <unsigned size> -inline BitmaskPOD<size>& -BitmaskPOD<size>::bitANDC(const BitmaskPOD<size>& mask2) -{ - BitmaskPOD<size>::bitANDC(rep.data, mask2.rep.data); - return *this; -} - -template <unsigned size> -inline void -BitmaskPOD<size>::bitXOR(Uint32 data[], const Uint32 data2[]) -{ - BitmaskImpl::bitXOR(size,data, data2); -} - -template <unsigned size> -inline BitmaskPOD<size>& -BitmaskPOD<size>::bitXOR(const BitmaskPOD<size>& mask2) -{ - BitmaskPOD<size>::bitXOR(rep.data, mask2.rep.data); - return *this; -} - -template <unsigned size> -inline void -BitmaskPOD<size>::bitXORC(Uint32 data[], const Uint32 data2[]) -{ - BitmaskImpl::bitXORC(size,data, data2); -} - -template <unsigned size> -inline BitmaskPOD<size>& -BitmaskPOD<size>::bitXORC(const BitmaskPOD<size>& mask2) -{ - BitmaskPOD<size>::bitXORC(rep.data, mask2.rep.data); - return *this; -} - -template <unsigned size> -char * -BitmaskPOD<size>::getText(const Uint32 data[], char* buf) -{ - return BitmaskImpl::getText(size, data, buf); -} - -template <unsigned size> -inline char * -BitmaskPOD<size>::getText(char* buf) const -{ - return BitmaskPOD<size>::getText(rep.data, buf); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::contains(Uint32 data[], const Uint32 data2[]) -{ - return BitmaskImpl::contains(size, data, data2); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::contains(BitmaskPOD<size> that) -{ - return BitmaskPOD<size>::contains(this->rep.data, that.rep.data); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::overlaps(Uint32 data[], const Uint32 data2[]) -{ - return BitmaskImpl::overlaps(size, data, data2); -} - -template <unsigned size> -inline bool -BitmaskPOD<size>::overlaps(BitmaskPOD<size> that) -{ - return BitmaskPOD<size>::overlaps(this->rep.data, that.rep.data); -} - -template <unsigned size> -class Bitmask : public BitmaskPOD<size> { -public: - Bitmask() { this->clear();} -}; - -inline void -BitmaskImpl::getField(unsigned size, const Uint32 src[], - unsigned pos, unsigned len, Uint32 dst[]) -{ - assert(pos + len < (size << 5)); - - src += (pos >> 5); - Uint32 offset = pos & 31; - * dst = (* src >> offset) & (len >= 32 ? ~0 : (1 << len) - 1); - - if(offset + len <= 32) - { - return; - } - Uint32 used = (32 - offset); - assert(len > used); - getFieldImpl(src+1, used & 31, len-used, dst+(used >> 5)); -} - -inline void -BitmaskImpl::setField(unsigned size, Uint32 dst[], - unsigned pos, unsigned len, const Uint32 src[]) -{ - assert(pos + len < (size << 5)); - - dst += (pos >> 5); - Uint32 offset = pos & 31; - Uint32 mask = (len >= 32 ? ~0 : (1 << len) - 1) << offset; - - * dst = (* dst & ~mask) | ((*src << offset) & mask); - - if(offset + len <= 32) - { - return; - } - Uint32 used = (32 - offset); - assert(len > used); - setFieldImpl(dst+1, used & 31, len-used, src+(used >> 5)); -} - - -#endif diff --git a/ndb/include/util/ConfigValues.hpp b/ndb/include/util/ConfigValues.hpp deleted file mode 100644 index 457488e3c42..00000000000 --- a/ndb/include/util/ConfigValues.hpp +++ /dev/null @@ -1,254 +0,0 @@ -#ifndef __CONFIG_VALUES_HPP -#define __CONFIG_VALUES_HPP - -#include <ndb_types.h> -#include <UtilBuffer.hpp> - -class ConfigValues { - friend class ConfigValuesFactory; - ConfigValues(Uint32 sz, Uint32 data); - -public: - ~ConfigValues(); - - enum ValueType { - InvalidType = 0, - IntType = 1, - StringType = 2, - SectionType = 3, - Int64Type = 4 - }; - - struct Entry { - Uint32 m_key; - ValueType m_type; - union { - Uint32 m_int; - Uint64 m_int64; - const char * m_string; - }; - }; - - class ConstIterator { - friend class ConfigValuesFactory; - const ConfigValues & m_cfg; - public: - Uint32 m_currentSection; - ConstIterator(const ConfigValues&c) : m_cfg(c) { m_currentSection = 0;} - - bool openSection(Uint32 key, Uint32 no); - bool closeSection(); - - bool get(Uint32 key, Entry *) const; - - bool get(Uint32 key, Uint32 * value) const; - bool get(Uint32 key, Uint64 * value) const; - bool get(Uint32 key, const char ** value) const; - bool getTypeOf(Uint32 key, ValueType * type) const; - - Uint32 get(Uint32 key, Uint32 notFound) const; - Uint64 get64(Uint32 key, Uint64 notFound) const; - const char * get(Uint32 key, const char * notFound) const; - ValueType getTypeOf(Uint32 key) const; - }; - - class Iterator : public ConstIterator { - ConfigValues & m_cfg; - public: - Iterator(ConfigValues&c) : ConstIterator(c), m_cfg(c) {} - Iterator(ConfigValues&c, const ConstIterator& i):ConstIterator(c),m_cfg(c){ - m_currentSection = i.m_currentSection; - } - - bool set(Uint32 key, Uint32 value); - bool set(Uint32 key, Uint64 value); - bool set(Uint32 key, const char * value); - }; - - Uint32 getPackedSize() const; // get size in bytes needed to pack - Uint32 pack(UtilBuffer&) const; - Uint32 pack(void * dst, Uint32 len) const;// pack into dst(of len %d); - -private: - friend class Iterator; - friend class ConstIterator; - - bool getByPos(Uint32 pos, Entry *) const; - Uint64 * get64(Uint32 index) const; - char ** getString(Uint32 index) const; - - Uint32 m_size; - Uint32 m_dataSize; - Uint32 m_stringCount; - Uint32 m_int64Count; - - Uint32 m_values[1]; - void * m_data[1]; -}; - -class ConfigValuesFactory { - Uint32 m_currentSection; -public: - Uint32 m_sectionCounter; - Uint32 m_freeKeys; - Uint32 m_freeData; - -public: - ConfigValuesFactory(Uint32 keys = 50, Uint32 data = 10); // Initial - ConfigValuesFactory(ConfigValues * m_cfg); // - - ConfigValues * m_cfg; - ConfigValues * getConfigValues(); - - bool openSection(Uint32 key, Uint32 no); - bool put(const ConfigValues::Entry & ); - bool put(Uint32 key, Uint32 value); - bool put64(Uint32 key, Uint64 value); - bool put(Uint32 key, const char * value); - bool closeSection(); - - void expand(Uint32 freeKeys, Uint32 freeData); - void shrink(); - - bool unpack(const UtilBuffer&); - bool unpack(const void * src, Uint32 len); - - static ConfigValues * extractCurrentSection(const ConfigValues::ConstIterator &); - -private: - static ConfigValues * create(Uint32 keys, Uint32 data); - void put(const ConfigValues & src); -}; - -inline -bool -ConfigValues::ConstIterator::get(Uint32 key, Uint32 * value) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == IntType){ - * value = tmp.m_int; - return true; - } - return false; -} - -inline -bool -ConfigValues::ConstIterator::get(Uint32 key, Uint64 * value) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == Int64Type){ - * value = tmp.m_int64; - return true; - } - return false; -} - -inline -bool -ConfigValues::ConstIterator::get(Uint32 key, const char ** value) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == StringType){ - * value = tmp.m_string; - return true; - } - return false; -} - -inline -bool -ConfigValues::ConstIterator::getTypeOf(Uint32 key, ValueType * type) const{ - Entry tmp; - if(get(key, &tmp)){ - * type = tmp.m_type; - return true; - } - return false; -} - -inline -Uint32 -ConfigValues::ConstIterator::get(Uint32 key, Uint32 notFound) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == IntType){ - return tmp.m_int; - } - return notFound; -} - -inline -Uint64 -ConfigValues::ConstIterator::get64(Uint32 key, Uint64 notFound) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == Int64Type){ - return tmp.m_int64; - } - return notFound; -} - -inline -const char * -ConfigValues::ConstIterator::get(Uint32 key, const char * notFound) const { - Entry tmp; - if(get(key, &tmp) && tmp.m_type == StringType){ - return tmp.m_string; - } - return notFound; -} - -inline -ConfigValues::ValueType -ConfigValues::ConstIterator::getTypeOf(Uint32 key) const{ - Entry tmp; - if(get(key, &tmp)){ - return tmp.m_type; - } - return ConfigValues::InvalidType; -} - -inline -bool -ConfigValuesFactory::put(Uint32 key, Uint32 val){ - ConfigValues::Entry tmp; - tmp.m_key = key; - tmp.m_type = ConfigValues::IntType; - tmp.m_int = val; - return put(tmp); -} - -inline -bool -ConfigValuesFactory::put64(Uint32 key, Uint64 val){ - ConfigValues::Entry tmp; - tmp.m_key = key; - tmp.m_type = ConfigValues::Int64Type; - tmp.m_int64 = val; - return put(tmp); -} - -inline -bool -ConfigValuesFactory::put(Uint32 key, const char * val){ - ConfigValues::Entry tmp; - tmp.m_key = key; - tmp.m_type = ConfigValues::StringType; - tmp.m_string = val; - return put(tmp); -} - -inline -Uint32 -ConfigValues::pack(UtilBuffer& buf) const { - Uint32 len = getPackedSize(); - void * tmp = buf.append(len); - if(tmp == 0){ - return 0; - } - return pack(tmp, len); -} - -inline -bool -ConfigValuesFactory::unpack(const UtilBuffer& buf){ - return unpack(buf.get_data(), buf.length()); -} - -#endif diff --git a/ndb/include/util/File.hpp b/ndb/include/util/File.hpp deleted file mode 100644 index 3ed0ad7a6f9..00000000000 --- a/ndb/include/util/File.hpp +++ /dev/null @@ -1,205 +0,0 @@ -/* 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 FILE_H -#define FILE_H - -#include <ndb_global.h> - -/** - * This class provides a file abstraction . It has operations - * to create, read, write and delete a file. - * - * @version #@ $Id: File.hpp,v 1.5 2002/04/26 13:15:38 ejonore Exp $ - */ -class File_class -{ -public: - /** - * Returns true if the file exist. - * - * @param aFileName a filename to check. - * @return true if the file exists. - */ - static bool exists(const char* aFileName); - - /** - * Returns the size of a file. - * - * @param f a pointer to a FILE descriptor. - * @return the size of the file. - */ - static long size(FILE* f); - - /** - * Renames a file. - * - * @param currFileName the current name of the file. - * @param newFileName the new name of the file. - * @return true if successful. - */ - static bool rename(const char* currFileName, const char* newFileName); - - /** - * Removes/deletes a file. - * - * @param aFileName the file to remove. - * @return true if successful. - */ - static bool remove(const char* aFileName); - - /** - * Default constructor. - */ - File_class(); - - /** - * Creates a new File with the specified filename and file mode. - * The real file itself will not be created unless open() is called! - * - * To see the available file modes use 'man 3 fopen'. - * - * @param aFileName a filename. - * @param mode the mode which the file should be opened/created with, default "r". - */ - File_class(const char* aFileName, const char* mode = "r"); - - /** - * Destructor. - */ - ~File_class(); - - /** - * Opens/creates the file. If open() fails then 'errno' and perror() - * should be used to determine the exact failure cause. - * - * @return true if successful. Check errno if unsuccessful. - */ - bool open(); - - /** - * Opens/creates the file with the specified name and mode. - * If open() fails then 'errno' and perror() should be used to - * determine the exact failure cause. - * - * @param aFileName the file to open. - * @param mode the file mode to use. - * @return true if successful. Check errno if unsuccessful. - */ - bool open(const char* aFileName, const char* mode); - - /** - * Removes the file. - * - * @return true if successful. - */ - bool remove(); - - /** - * Closes the file, i.e., the FILE descriptor is closed. - */ - bool close(); - - /** - * Read from the file. See fread() for more info. - * - * @param buf the buffer to read into. - * @param itemSize the size of each item. - * @param nitems read max n number of items. - * @return 0 if successful. - */ - int read(void* buf, size_t itemSize, size_t nitems) const; - - /** - * Read char from the file. See fread() for more info. - * - * @param buf the buffer to read into. - * @param start the start index of the buf. - * @param length the length of the buffer. - * @return 0 if successful. - */ - int readChar(char* buf, long start, long length) const; - - /** - * Read chars from the file. See fread() for more info. - * - * @param buf the buffer to read into. - * @return 0 if successful. - */ - int readChar(char* buf); - - /** - * Write to file. See fwrite() for more info. - * - * @param buf the buffer to read from. - * @param itemSize the size of each item. - * @param nitems write max n number of items. - * @return 0 if successful. - */ - int write(const void* buf, size_t itemSize, size_t nitems); - - /** - * Write chars to file. See fwrite() for more info. - * - * @param buf the buffer to read from. - * @param start the start index of the buf. - * @param length the length of the buffer. - * @return 0 if successful. - */ - int writeChar(const char* buf, long start, long length); - - /** - * Write chars to file. See fwrite() for more info. - * - * @param buf the buffer to read from. - * @return 0 if successful. - */ - int writeChar(const char* buf); - - /** - * Returns the file size. - * - * @return the file size. - */ - long size() const; - - /** - * Returns the filename. - * - * @return the filename. - */ - const char* getName() const; - - /** - * Flush the buffer. - * - * @return 0 if successful. - */ - int flush() const; - -private: - STATIC_CONST( MAX_FILE_NAME_SIZE = 128 ); - - FILE* m_file; - char m_fileName[MAX_FILE_NAME_SIZE]; - const char* m_fileMode; - /* Prohibit */ - File_class (const File_class& aCopy); - File_class operator = (const File_class&); - bool operator == (const File_class&); -}; -#endif - diff --git a/ndb/include/util/InputStream.hpp b/ndb/include/util/InputStream.hpp deleted file mode 100644 index b2a56b1e433..00000000000 --- a/ndb/include/util/InputStream.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* 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 INPUT_STREAM_HPP -#define INPUT_STREAM_HPP - -#include <ndb_global.h> -#include <NdbTCP.h> - -/** - * Input stream - */ -class InputStream { -public: - virtual char* gets(char * buf, int bufLen) = 0; -}; - -class FileInputStream : public InputStream { - FILE * f; -public: - FileInputStream(FILE * file = stdin); - char* gets(char * buf, int bufLen); -}; - -extern FileInputStream Stdin; - -class SocketInputStream : public InputStream { - NDB_SOCKET_TYPE m_socket; - unsigned m_timeout; -public: - SocketInputStream(NDB_SOCKET_TYPE socket, unsigned readTimeout = 1000); - char* gets(char * buf, int bufLen); -}; - -#endif diff --git a/ndb/include/util/NdbAutoPtr.hpp b/ndb/include/util/NdbAutoPtr.hpp deleted file mode 100644 index ff747e3de68..00000000000 --- a/ndb/include/util/NdbAutoPtr.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* 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 __NDB_AUTO_PTR_HPP -#define __NDB_AUTO_PTR_HPP - -#include <ndb_global.h> -#include <my_sys.h> - -template<typename T> -class NdbAutoPtr { - T * m_obj; -public: - NdbAutoPtr(T * obj = 0){ m_obj = obj;} - void reset(T * obj = 0) { if (m_obj) free(m_obj); m_obj = obj; } - ~NdbAutoPtr() { if (m_obj) free(m_obj);} -}; - -template<typename T> -class NdbAutoObjPtr { - T * m_obj; -public: - NdbAutoObjPtr(T * obj = 0){ m_obj = obj;} - void reset(T * obj = 0) { if (m_obj) delete m_obj; m_obj = obj; } - ~NdbAutoObjPtr() { if (m_obj) delete m_obj;} -}; - -template<typename T> -class NdbAutoObjArrayPtr { - T * m_obj; -public: - NdbAutoObjArrayPtr(T * obj = 0){ m_obj = obj;} - void reset(T * obj = 0) { if (m_obj) delete[] m_obj; m_obj = obj; } - ~NdbAutoObjArrayPtr() { if (m_obj) delete[] m_obj;} -}; - -template<typename T> -class My_auto_ptr { - T * m_obj; -public: - My_auto_ptr(T * obj = 0){ m_obj = obj;} - void reset(T * obj = 0) { if (m_obj) my_free(m_obj,MYF(0)); m_obj = obj; } - ~My_auto_ptr() { if (m_obj) my_free(m_obj,MYF(0));} -}; - -#endif diff --git a/ndb/include/util/NdbOut.hpp b/ndb/include/util/NdbOut.hpp deleted file mode 100644 index d85d5cc6305..00000000000 --- a/ndb/include/util/NdbOut.hpp +++ /dev/null @@ -1,132 +0,0 @@ -/* 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 NDBOUT_H -#define NDBOUT_H - -#ifdef __cplusplus - -#include <ndb_types.h> -#include <util/BaseString.hpp> - -/** - * Class used for outputting logging messages to screen. - * Since the output capabilities are different on different platforms - * this middle layer class should be used for all output messages - */ - -/* - Example usage: - - #include "NdbOut.hpp" - - / * Use ndbout as you would use cout: - - ndbout << "Hello World! "<< 1 << " Hello again" - << 67 << anIntegerVar << "Hup << endl; - - - / * Use ndbout_c as you would use printf: - - ndbout_c("Hello World %d\n", 1); -*/ - -class NdbOut; -class OutputStream; -class NullOutputStream; - -/* Declare a static variable of NdbOut as ndbout */ -extern NdbOut ndbout; - -class NdbOut -{ -public: - NdbOut& operator<<(NdbOut& (* _f)(NdbOut&)); - NdbOut& operator<<(Int8); - NdbOut& operator<<(Uint8); - NdbOut& operator<<(Int16); - NdbOut& operator<<(Uint16); - NdbOut& operator<<(Int32); - NdbOut& operator<<(Uint32); - NdbOut& operator<<(Int64); - NdbOut& operator<<(Uint64); - NdbOut& operator<<(long unsigned int); - NdbOut& operator<<(const char*); - NdbOut& operator<<(const unsigned char*); - NdbOut& operator<<(BaseString &); - NdbOut& operator<<(const void*); - NdbOut& operator<<(float); - NdbOut& operator<<(double); - NdbOut& endline(void); - NdbOut& flushline(void); - NdbOut& setHexFormat(int _format); - - NdbOut(OutputStream &); - virtual ~NdbOut(); - - void print(const char * fmt, ...); - void println(const char * fmt, ...); - - OutputStream * m_out; -private: - int isHex; -}; - -inline NdbOut& NdbOut::operator<<(NdbOut& (* _f)(NdbOut&)) { - (* _f)(*this); - return * this; -} - -inline NdbOut& endl(NdbOut& _NdbOut) { - return _NdbOut.endline(); -} - -inline NdbOut& flush(NdbOut& _NdbOut) { - return _NdbOut.flushline(); -} - -inline NdbOut& hex(NdbOut& _NdbOut) { - return _NdbOut.setHexFormat(1); -} - -inline NdbOut& dec(NdbOut& _NdbOut) { - return _NdbOut.setHexFormat(0); -} -extern "C" -void ndbout_c(const char * fmt, ...); - -class FilteredNdbOut : public NdbOut { -public: - FilteredNdbOut(OutputStream &, int threshold = 0, int level = 0); - virtual ~FilteredNdbOut(); - - void setLevel(int i); - void setThreshold(int i); - - int getLevel() const; - int getThreshold() const; - -private: - int m_threshold, m_level; - OutputStream * m_org; - NullOutputStream * m_null; -}; - -#else -void ndbout_c(const char * fmt, ...); -#endif - -#endif diff --git a/ndb/include/util/NdbSqlUtil.hpp b/ndb/include/util/NdbSqlUtil.hpp deleted file mode 100644 index 3e98dcd1805..00000000000 --- a/ndb/include/util/NdbSqlUtil.hpp +++ /dev/null @@ -1,188 +0,0 @@ -/* 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 NDB_SQL_UTIL_HPP -#define NDB_SQL_UTIL_HPP - -#include <ndb_global.h> -#include <kernel/ndb_limits.h> - -struct charset_info_st; -typedef struct charset_info_st CHARSET_INFO; - -class NdbSqlUtil { -public: - /** - * Compare attribute values. Returns -1, 0, +1 for less, equal, - * greater, respectively. Parameters are pointers to values and their - * lengths in bytes. The lengths can differ. - * - * First value is a full value but second value can be partial. If - * the partial value is not enough to determine the result, CmpUnknown - * will be returned. A shorter second value is not necessarily - * partial. Partial values are allowed only for types where prefix - * comparison is possible (basically, binary strings). - * - * First parameter is a pointer to type specific extra info. Char - * types receive CHARSET_INFO in it. - * - * If a value cannot be parsed, it compares like NULL i.e. less than - * any valid value. - */ - typedef int Cmp(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2, bool full); - - /** - * Prototype for "like" comparison. Defined for string types. Second - * argument must have same type-specific format. Returns 0 on match, - * +1 on no match, and -1 on bad data. - * - * Uses default special chars ( \ % _ ). - * - * TODO convert special chars to the cs so that ucs2 etc works - * TODO allow user-defined escape ( \ ) - */ - typedef int Like(const void* info, const void* p1, unsigned n1, const void* p2, unsigned n2); - - enum CmpResult { - CmpLess = -1, - CmpEqual = 0, - CmpGreater = 1, - CmpUnknown = 2 // insufficient partial data - }; - - struct Type { - enum Enum { - Undefined = NDB_TYPE_UNDEFINED, - Tinyint = NDB_TYPE_TINYINT, - Tinyunsigned = NDB_TYPE_TINYUNSIGNED, - Smallint = NDB_TYPE_SMALLINT, - Smallunsigned = NDB_TYPE_SMALLUNSIGNED, - Mediumint = NDB_TYPE_MEDIUMINT, - Mediumunsigned = NDB_TYPE_MEDIUMUNSIGNED, - Int = NDB_TYPE_INT, - Unsigned = NDB_TYPE_UNSIGNED, - Bigint = NDB_TYPE_BIGINT, - Bigunsigned = NDB_TYPE_BIGUNSIGNED, - Float = NDB_TYPE_FLOAT, - Double = NDB_TYPE_DOUBLE, - Olddecimal = NDB_TYPE_OLDDECIMAL, - Char = NDB_TYPE_CHAR, - Varchar = NDB_TYPE_VARCHAR, - Binary = NDB_TYPE_BINARY, - Varbinary = NDB_TYPE_VARBINARY, - Datetime = NDB_TYPE_DATETIME, - Date = NDB_TYPE_DATE, - Blob = NDB_TYPE_BLOB, - Text = NDB_TYPE_TEXT, - Bit = NDB_TYPE_BIT, - Longvarchar = NDB_TYPE_LONGVARCHAR, - Longvarbinary = NDB_TYPE_LONGVARBINARY, - Time = NDB_TYPE_TIME, - Year = NDB_TYPE_YEAR, - Timestamp = NDB_TYPE_TIMESTAMP, - Olddecimalunsigned = NDB_TYPE_OLDDECIMALUNSIGNED, - Decimal = NDB_TYPE_DECIMAL, - Decimalunsigned = NDB_TYPE_DECIMALUNSIGNED - }; - Enum m_typeId; // redundant - Cmp* m_cmp; // comparison method - Like* m_like; // "like" comparison method - }; - - /** - * Get type by id. Can return the Undefined type. - */ - static const Type& getType(Uint32 typeId); - - /** - * Get the normalized type used in hashing and key comparisons. - * Maps all string types to Binary. This includes Var* strings - * because strxfrm result is padded to fixed (maximum) length. - */ - static const Type& getTypeBinary(Uint32 typeId); - - /** - * Check character set. - */ - static bool usable_in_pk(Uint32 typeId, const void* info); - static bool usable_in_hash_index(Uint32 typeId, const void* info); - static bool usable_in_ordered_index(Uint32 typeId, const void* info); - - /** - * Get number of length bytes and length from variable length string. - * Returns false on error (invalid data). For other types returns - * zero length bytes and the fixed attribute length. - */ - static bool get_var_length(Uint32 typeId, const void* p, unsigned attrlen, Uint32& lb, Uint32& len); - - /** - * Temporary workaround for bug#7284. - */ - static int strnxfrm_bug7284(CHARSET_INFO* cs, unsigned char* dst, unsigned dstLen, const unsigned char*src, unsigned srcLen); - - /** - * Compare decimal numbers. - */ - static int cmp_olddecimal(const uchar* s1, const uchar* s2, unsigned n); - -private: - /** - * List of all types. Must match Type::Enum. - */ - static const Type m_typeList[]; - /** - * Comparison methods. - */ - static Cmp cmpTinyint; - static Cmp cmpTinyunsigned; - static Cmp cmpSmallint; - static Cmp cmpSmallunsigned; - static Cmp cmpMediumint; - static Cmp cmpMediumunsigned; - static Cmp cmpInt; - static Cmp cmpUnsigned; - static Cmp cmpBigint; - static Cmp cmpBigunsigned; - static Cmp cmpFloat; - static Cmp cmpDouble; - static Cmp cmpOlddecimal; - static Cmp cmpChar; - static Cmp cmpVarchar; - static Cmp cmpBinary; - static Cmp cmpVarbinary; - static Cmp cmpDatetime; - static Cmp cmpDate; - static Cmp cmpBlob; - static Cmp cmpText; - static Cmp cmpBit; - static Cmp cmpLongvarchar; - static Cmp cmpLongvarbinary; - static Cmp cmpTime; - static Cmp cmpYear; - static Cmp cmpTimestamp; - static Cmp cmpOlddecimalunsigned; - static Cmp cmpDecimal; - static Cmp cmpDecimalunsigned; - // - static Like likeChar; - static Like likeBinary; - static Like likeVarchar; - static Like likeVarbinary; - static Like likeLongvarchar; - static Like likeLongvarbinary; -}; - -#endif diff --git a/ndb/include/util/OutputStream.hpp b/ndb/include/util/OutputStream.hpp deleted file mode 100644 index c7e009d4537..00000000000 --- a/ndb/include/util/OutputStream.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* 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 OUTPUT_STREAM_HPP -#define OUTPUT_STREAM_HPP - -#include <ndb_global.h> -#include <NdbTCP.h> - -/** - * Output stream - */ -class OutputStream { -public: - virtual int print(const char * fmt, ...) = 0; - virtual int println(const char * fmt, ...) = 0; - virtual void flush() {}; -}; - -class FileOutputStream : public OutputStream { - FILE * f; -public: - FileOutputStream(FILE * file = stdout); - - int print(const char * fmt, ...); - int println(const char * fmt, ...); - void flush() { fflush(f); } -}; - -class SocketOutputStream : public OutputStream { - NDB_SOCKET_TYPE m_socket; - unsigned m_timeout; -public: - SocketOutputStream(NDB_SOCKET_TYPE socket, unsigned writeTimeout = 1000); - - int print(const char * fmt, ...); - int println(const char * fmt, ...); -}; - -class SoftOseOutputStream : public OutputStream { -public: - SoftOseOutputStream(); - - int print(const char * fmt, ...); - int println(const char * fmt, ...); -}; - -class NullOutputStream : public OutputStream { -public: - int print(const char * /* unused */, ...) { return 1;} - int println(const char * /* unused */, ...) { return 1;} -}; - -#endif diff --git a/ndb/include/util/Parser.hpp b/ndb/include/util/Parser.hpp deleted file mode 100644 index c117498e1ba..00000000000 --- a/ndb/include/util/Parser.hpp +++ /dev/null @@ -1,291 +0,0 @@ -/* 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 CPCD_PARSER_HPP -#define CPCD_PARSER_HPP - -#include "Vector.hpp" -#include "Properties.hpp" -#include "InputStream.hpp" -#include "NdbOut.hpp" - -class ParserImpl; -template<class T> struct ParserRow; - -//#define PARSER_DEBUG -#ifdef PARSER_DEBUG -#define DEBUG(x) \ - ndbout_c("%s:%d:%s", __FILE__, __LINE__, x); -#else -#define DEBUG(x) -#endif - -/** - * A generic parser - */ -template<class T> -class Parser { -public: - /** - * Status for parser - */ - enum ParserStatus { - Ok = 0, - Eof = 1, - NoLine = 2, - EmptyLine = 3, - UnknownCommand = 4, - UnknownArgument = 5, - TypeMismatch = 6, - InvalidArgumentFormat = 7, - UnknownArgumentType = 8, - CommandWithoutFunction = 9, - ArgumentGivenTwice = 10, - ExternalStop = 11, - MissingMandatoryArgument = 12 - }; - - /** - * Context for parse - */ - struct Context { - ParserStatus m_status; - const ParserRow<T> * m_currentCmd; - const ParserRow<T> * m_currentArg; - char * m_currentToken; - char m_tokenBuffer[512]; - - Vector<const ParserRow<T> *> m_aliasUsed; - }; - - /** - * Initialize parser - */ - Parser(const ParserRow<T> rows[], class InputStream & in = Stdin, - bool breakOnCommand = false, - bool breakOnEmptyLine = true, - bool breakOnInvalidArg = false); - ~Parser(); - - /** - * Run parser - */ - bool run(Context &, T &, volatile bool * stop = 0) const; - - /** - * Parse only one entry and return Properties object representing - * the message - */ - const Properties *parse(Context &, T &); - - bool getBreakOnCommand() const; - void setBreakOnCommand(bool v); - - bool getBreakOnEmptyLine() const; - void setBreakOnEmptyLine(bool v); - - bool getBreakOnInvalidArg() const; - void setBreakOnInvalidArg(bool v); - -private: - ParserImpl * impl; -}; - -template<class T> -struct ParserRow { -public: - enum Type { Cmd, Arg, CmdAlias, ArgAlias }; - enum ArgType { String, Int, Properties }; - enum ArgRequired { Mandatory, Optional }; - enum ArgMinMax { CheckMinMax, IgnoreMinMax }; - - const char * name; - const char * realName; - Type type; - ArgType argType; - ArgRequired argRequired; - ArgMinMax argMinMax; - int minVal; - int maxVal; - void (T::* function)(typename Parser<T>::Context & ctx, - const class Properties& args); - const char * description; - void *user_value; -}; - -/** - * The void* equivalent implementation - */ -class ParserImpl { -public: - class Dummy {}; - typedef ParserRow<Dummy> DummyRow; - typedef Parser<Dummy>::Context Context; - - - ParserImpl(const DummyRow rows[], class InputStream & in, - bool b_cmd, bool b_empty, bool b_iarg); - ~ParserImpl(); - - bool run(Context *ctx, const class Properties **, volatile bool *) const ; - - static const DummyRow* matchCommand(Context*, const char*, const DummyRow*); - static const DummyRow* matchArg(Context*, const char *, const DummyRow *); - static bool parseArg(Context*, char*, const DummyRow*, Properties*); - static bool checkMandatory(Context*, const Properties*); -private: - const DummyRow * const m_rows; - class ParseInputStream & input; - bool m_breakOnEmpty; - bool m_breakOnCmd; - bool m_breakOnInvalidArg; -}; - -template<class T> -inline -Parser<T>::Parser(const ParserRow<T> rows[], class InputStream & in, - bool b_cmd, bool b_empty, bool b_iarg){ - impl = new ParserImpl((ParserImpl::DummyRow *)rows, in, - b_cmd, b_empty, b_iarg); -} - -template<class T> -inline -Parser<T>::~Parser(){ - delete impl; -} - -template<class T> -inline -bool -Parser<T>::run(Context & ctx, T & t, volatile bool * stop) const { - const Properties * p; - DEBUG("Executing Parser<T>::run"); - if(impl->run((ParserImpl::Context*)&ctx, &p, stop)){ - const ParserRow<T> * cmd = ctx.m_currentCmd; // Cast to correct type - if(cmd == 0){ - /** - * Should happen if run returns true - */ - abort(); - } - - for(unsigned i = 0; i<ctx.m_aliasUsed.size(); i++){ - const ParserRow<T> * alias = ctx.m_aliasUsed[i]; - if(alias->function != 0){ - /** - * Report alias usage with callback (if specified by user) - */ - DEBUG("Alias usage with callback"); - (t.* alias->function)(ctx, * p); - } - } - - if(cmd->function == 0){ - ctx.m_status = CommandWithoutFunction; - DEBUG("CommandWithoutFunction"); - delete p; - return false; - } - (t.* cmd->function)(ctx, * p); // Call the function - delete p; - return true; - } - DEBUG(""); - return false; -} - -template<class T> -inline -const Properties * -Parser<T>::parse(Context &ctx, T &t) { - const Properties * p; - volatile bool stop = false; - DEBUG("Executing Parser<T>::parse"); - - if(impl->run((ParserImpl::Context*)&ctx, &p, &stop)){ - const ParserRow<T> * cmd = ctx.m_currentCmd; // Cast to correct type - if(cmd == 0){ - /** - * Should happen if run returns true - */ - abort(); - } - - for(unsigned i = 0; i<ctx.m_aliasUsed.size(); i++){ - const ParserRow<T> * alias = ctx.m_aliasUsed[i]; - if(alias->function != 0){ - /** - * Report alias usage with callback (if specified by user) - */ - DEBUG("Alias usage with callback"); - (t.* alias->function)(ctx, * p); - } - } - - if(cmd->function == 0){ - DEBUG("CommandWithoutFunction"); - ctx.m_status = CommandWithoutFunction; - return p; - } - return p; - } - DEBUG(""); - return NULL; -} - -template<class T> -inline -bool -Parser<T>::getBreakOnCommand() const{ - return impl->m_breakOnCmd; -} - -template<class T> -inline -void -Parser<T>::setBreakOnCommand(bool v){ - impl->m_breakOnCmd = v; -} - -template<class T> -inline -bool -Parser<T>::getBreakOnEmptyLine() const{ - return impl->m_breakOnEmpty; -} -template<class T> -inline -void -Parser<T>::setBreakOnEmptyLine(bool v){ - impl->m_breakOnEmpty = v; -} - -template<class T> -inline -bool -Parser<T>::getBreakOnInvalidArg() const{ - return impl->m_breakOnInvalidArg; -} - -template<class T> -inline -void -Parser<T>::setBreakOnInvalidArg(bool v){ - impl->m_breakOnInvalidArg; -} - -#endif diff --git a/ndb/include/util/Properties.hpp b/ndb/include/util/Properties.hpp deleted file mode 100644 index e6668744211..00000000000 --- a/ndb/include/util/Properties.hpp +++ /dev/null @@ -1,250 +0,0 @@ -/* 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 PROPERTIES_HPP -#define PROPERTIES_HPP - -#include <ndb_global.h> -#include <BaseString.hpp> -#include <UtilBuffer.hpp> - -enum PropertiesType { - PropertiesType_Uint32 = 0, - PropertiesType_char = 1, - PropertiesType_Properties = 2, - PropertiesType_Uint64 = 3 -}; - -/** - * @struct Property - * @brief Stores one (name, value)-pair - * - * Value can be of type Properties, i.e. a Property may contain - * a Properties object. - */ -struct Property { - Property(const char* name, Uint32 val); - Property(const char* name, Uint64 val); - Property(const char* name, const char * value); - Property(const char* name, const class Properties * value); - ~Property(); -private: - friend class Properties; - struct PropertyImpl * impl; -}; - -/** - * @class Properties - * @brief Stores information in (name, value)-pairs - */ -class Properties { -public: - static const char delimiter; - static const char version[]; - - Properties(bool case_insensitive= false); - Properties(const Properties &); - Properties(const Property *, int len); - virtual ~Properties(); - - /** - * Set/Get wheather names in the Properties should be compared - * w/o case. - * NOTE: The property is automatically applied to all propoerties put - * into this after a called to setCaseInsensitiveNames has been made - * But properties already in when calling setCaseInsensitiveNames will - * not be affected - */ - void setCaseInsensitiveNames(bool value); - bool getCaseInsensitiveNames() const; - - /** - * Insert an array of value(s) - */ - void put(const Property *, int len); - - bool put(const char * name, Uint32 value, bool replace = false); - bool put64(const char * name, Uint64 value, bool replace = false); - bool put(const char * name, const char * value, bool replace = false); - bool put(const char * name, const Properties * value, bool replace = false); - - /** - * Same as put above, - * except that _%d (where %d is a number) is added to the name - * Compare get(name, no) - */ - bool put(const char *, Uint32 no, Uint32, bool replace = false); - bool put64(const char *, Uint32 no, Uint64, bool replace = false); - bool put(const char *, Uint32 no, const char *, bool replace = false); - bool put(const char *, Uint32 no, const Properties *, bool replace = false); - - - bool getTypeOf(const char * name, PropertiesType * type) const; - - /** @return true if Properties object contains name */ - bool contains(const char * name) const; - - bool get(const char * name, Uint32 * value) const; - bool get(const char * name, Uint64 * value) const; - bool get(const char * name, const char ** value) const; - bool get(const char * name, BaseString & value) const; - bool get(const char * name, const Properties ** value) const; - - bool getCopy(const char * name, char ** value) const; - bool getCopy(const char * name, Properties ** value) const; - - /** - * Same as get above - * except that _%d (where %d = no) is added to the name - */ - bool getTypeOf(const char * name, Uint32 no, PropertiesType * type) const; - bool contains(const char * name, Uint32 no) const; - - bool get(const char * name, Uint32 no, Uint32 * value) const; - bool get(const char * name, Uint32 no, Uint64 * value) const; - bool get(const char * name, Uint32 no, const char ** value) const; - bool get(const char * name, Uint32 no, const Properties ** value) const; - - bool getCopy(const char * name, Uint32 no, char ** value) const; - bool getCopy(const char * name, Uint32 no, Properties ** value) const; - - void clear(); - - void remove(const char * name); - - void print(FILE * file = stdout, const char * prefix = 0) const; - /** - * Iterator over names - */ - class Iterator { - public: - Iterator(const Properties* prop); - - const char* first(); - const char* next(); - private: - const Properties* m_prop; - Uint32 m_iterator; - }; - friend class Properties::Iterator; - - Uint32 getPackedSize() const; - bool pack(Uint32 * buf) const; - bool pack(UtilBuffer &buf) const; - bool unpack(const Uint32 * buf, Uint32 bufLen); - bool unpack(UtilBuffer &buf); - - Uint32 getPropertiesErrno() const { return propErrno; } - Uint32 getOSErrno() const { return osErrno; } -private: - Uint32 propErrno; - Uint32 osErrno; - - friend class PropertiesImpl; - class PropertiesImpl * impl; - class Properties * parent; - - void setErrno(Uint32 pErr, Uint32 osErr = 0) const ; -}; - -/** - * Error code for properties - */ - -/** - * No error - */ -extern const Uint32 E_PROPERTIES_OK; - -/** - * Invalid name in put, names can not contain Properties::delimiter - */ -extern const Uint32 E_PROPERTIES_INVALID_NAME; - -/** - * Element did not exist when using get - */ -extern const Uint32 E_PROPERTIES_NO_SUCH_ELEMENT; - -/** - * Element had wrong type when using get - */ -extern const Uint32 E_PROPERTIES_INVALID_TYPE; - -/** - * Element already existed when using put, and replace was not specified - */ -extern const Uint32 E_PROPERTIES_ELEMENT_ALREADY_EXISTS; - -/** - * Invalid version on properties file you are trying to read - */ -extern const Uint32 E_PROPERTIES_INVALID_VERSION_WHILE_UNPACKING; - -/** - * When unpacking an buffer - * found that buffer is to short - * - * Probably an invlaid buffer - */ -extern const Uint32 E_PROPERTIES_INVALID_BUFFER_TO_SHORT; - -/** - * Error when packing, can not allocate working buffer - * - * Note: OS error is set - */ -extern const Uint32 E_PROPERTIES_ERROR_MALLOC_WHILE_PACKING; - -/** - * Error when unpacking, can not allocate working buffer - * - * Note: OS error is set - */ -extern const Uint32 E_PROPERTIES_ERROR_MALLOC_WHILE_UNPACKING; - -/** - * Error when unpacking, invalid checksum - * - */ -extern const Uint32 E_PROPERTIES_INVALID_CHECKSUM; - -/** - * Error when unpacking - * No of items > 0 while size of buffer (left) <= 0 - */ -extern const Uint32 E_PROPERTIES_BUFFER_TO_SMALL_WHILE_UNPACKING; - -inline bool -Properties::unpack(UtilBuffer &buf) { - return unpack((const Uint32 *)buf.get_data(), buf.length()); -} - -inline bool -Properties::pack(UtilBuffer &buf) const { - Uint32 size = getPackedSize(); - void *tmp_buf = buf.append(size); - if(tmp_buf == 0) - return false; - bool ret = pack((Uint32 *)tmp_buf); - if(ret == false) - return false; - return true; -} - - - -#endif diff --git a/ndb/include/util/SimpleProperties.hpp b/ndb/include/util/SimpleProperties.hpp deleted file mode 100644 index 356f3406f38..00000000000 --- a/ndb/include/util/SimpleProperties.hpp +++ /dev/null @@ -1,289 +0,0 @@ -/* 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 SIMPLE_PROPERTIES_HPP -#define SIMPLE_PROPERTIES_HPP - -#include <ndb_global.h> -#include <NdbOut.hpp> - -/** - * @class SimpleProperties - * @brief Key-value-pair container. Actully a list of named elements. - * - * SimpleProperties: - * - The keys are Uint16 - * - The values are either Uint32 or null terminated c-strings - * - * @note Keys may be repeated. - * - * Examples of things that can be stored in a SimpleProperties object: - * - Lists like: ((1, "foo"), (2, "bar"), (3, 32), (2, "baz")) - */ -class SimpleProperties { -public: - /** - * Value types - */ - enum ValueType { - Uint32Value = 0, - StringValue = 1, - BinaryValue = 2, - InvalidValue = 3 - }; - - /** - * Struct for defining mapping to be used with unpack - */ - struct SP2StructMapping { - Uint16 Key; - Uint32 Offset; - ValueType Type; - Uint32 minValue; - Uint32 maxValue; - Uint32 Length_Offset; // Offset used for looking up length of - // data if Type = BinaryValue - }; - - /** - * UnpackStatus - Value returned from unpack - */ - enum UnpackStatus { - Eof = 0, // Success, end of SimpleProperties object reached - Break = 1, // Success - TypeMismatch = 2, - ValueTooLow = 3, - ValueTooHigh = 4, - UnknownKey = 5, - OutOfMemory = 6 // Only used when packing - }; - - /** - * Unpack - */ - class Reader; - static UnpackStatus unpack(class Reader & it, - void * dst, - const SP2StructMapping[], Uint32 mapSz, - bool ignoreMinMax, - bool ignoreUnknownKeys); - - class Writer; - static UnpackStatus pack(class Writer &, - const void * src, - const SP2StructMapping[], Uint32 mapSz, - bool ignoreMinMax); - - /** - * Reader class - */ - class Reader { - public: - /** - * Move to first element - * Return true if element exist - */ - bool first(); - - /** - * Move to next element - * Return true if element exist - */ - bool next(); - - /** - * Is this valid - */ - bool valid() const; - - /** - * Get key - * Note only valid is valid() == true - */ - Uint16 getKey() const; - - /** - * Get value length in bytes - (including terminating 0 for strings) - * Note only valid is valid() == true - */ - Uint16 getValueLen() const; - - /** - * Get value type - * Note only valid is valid() == true - */ - ValueType getValueType() const; - - /** - * Get value - * Note only valid is valid() == true - */ - Uint32 getUint32() const; - char * getString(char * dst) const; - - /** - * Print the complete simple properties (for debugging) - */ - void printAll(NdbOut& ndbout); - - private: - bool readValue(); - - Uint16 m_key; - Uint16 m_itemLen; - union { - Uint32 m_ui32_value; - Uint32 m_strLen; // Including 0-byte in words - }; - ValueType m_type; - protected: - Reader(); - virtual void reset() = 0; - - virtual bool step(Uint32 len) = 0; - virtual bool getWord(Uint32 * dst) = 0; - virtual bool peekWord(Uint32 * dst) const = 0; - virtual bool peekWords(Uint32 * dst, Uint32 len) const = 0; - }; - - /** - * Writer class - */ - class Writer { - public: - bool first(); - bool add(Uint16 key, Uint32 value); - bool add(Uint16 key, const char * value); - bool add(Uint16 key, const void* value, int len); - protected: - virtual bool reset() = 0; - virtual bool putWord(Uint32 val) = 0; - virtual bool putWords(const Uint32 * src, Uint32 len) = 0; - }; -}; - -/** - * Reader for linear memory - */ -class SimplePropertiesLinearReader : public SimpleProperties::Reader { -public: - SimplePropertiesLinearReader(const Uint32 * src, Uint32 len); - - virtual void reset(); - virtual bool step(Uint32 len); - virtual bool getWord(Uint32 * dst); - virtual bool peekWord(Uint32 * dst) const ; - virtual bool peekWords(Uint32 * dst, Uint32 len) const; -private: - Uint32 m_len; - Uint32 m_pos; - const Uint32 * m_src; -}; - -/** - * Writer for linear memory - */ -class LinearWriter : public SimpleProperties::Writer { -public: - LinearWriter(Uint32 * src, Uint32 len); - - virtual bool reset(); - virtual bool putWord(Uint32 val); - virtual bool putWords(const Uint32 * src, Uint32 len); - Uint32 getWordsUsed() const; -private: - Uint32 m_len; - Uint32 m_pos; - Uint32 * m_src; -}; - -/** - * Writer for linear memory - */ -class UtilBufferWriter : public SimpleProperties::Writer { -public: - UtilBufferWriter(class UtilBuffer & buf); - - virtual bool reset(); - virtual bool putWord(Uint32 val); - virtual bool putWords(const Uint32 * src, Uint32 len); - Uint32 getWordsUsed() const; -private: - class UtilBuffer & m_buf; -}; - -/** - * Reader for long signal section memory - * - * - * Implemented in kernel/vm/SimplePropertiesSection.cpp - */ -class SimplePropertiesSectionReader : public SimpleProperties::Reader { -public: - SimplePropertiesSectionReader(struct SegmentedSectionPtr &, - class SectionSegmentPool &); - - virtual void reset(); - virtual bool step(Uint32 len); - virtual bool getWord(Uint32 * dst); - virtual bool peekWord(Uint32 * dst) const ; - virtual bool peekWords(Uint32 * dst, Uint32 len) const; - Uint32 getSize() const; - bool getWords(Uint32 * dst, Uint32 len); - -private: - Uint32 m_pos; - Uint32 m_len; - class SectionSegmentPool & m_pool; - struct SectionSegment * m_head; - struct SectionSegment * m_currentSegment; -}; - -inline -Uint32 SimplePropertiesSectionReader::getSize() const -{ - return m_len; -} - -/** - * Writer for long signal section memory - * - * - * Implemented in kernel/vm/SimplePropertiesSection.cpp - */ -class SimplePropertiesSectionWriter : public SimpleProperties::Writer { -public: - SimplePropertiesSectionWriter(class SectionSegmentPool &); - - virtual bool reset(); - virtual bool putWord(Uint32 val); - virtual bool putWords(const Uint32 * src, Uint32 len); - - /** - * This "unlinks" the writer from the memory - */ - void getPtr(struct SegmentedSectionPtr & dst); - -private: - Int32 m_pos; - Uint32 m_sz; - class SectionSegmentPool & m_pool; - struct SectionSegment * m_head; - Uint32 m_prevPtrI; // Prev to m_currentSegment - struct SectionSegment * m_currentSegment; -}; - -#endif diff --git a/ndb/include/util/SocketAuthenticator.hpp b/ndb/include/util/SocketAuthenticator.hpp deleted file mode 100644 index 1b82567feaa..00000000000 --- a/ndb/include/util/SocketAuthenticator.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* 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 SOCKET_AUTHENTICATOR_HPP -#define SOCKET_AUTHENTICATOR_HPP - -class SocketAuthenticator -{ -public: - virtual ~SocketAuthenticator() {}; - virtual bool client_authenticate(int sockfd) = 0; - virtual bool server_authenticate(int sockfd) = 0; -}; - -class SocketAuthSimple : public SocketAuthenticator -{ - const char *m_passwd; - const char *m_username; -public: - SocketAuthSimple(const char *username, const char *passwd); - virtual ~SocketAuthSimple(); - virtual bool client_authenticate(int sockfd); - virtual bool server_authenticate(int sockfd); -}; - -#endif // SOCKET_AUTHENTICATOR_HPP diff --git a/ndb/include/util/SocketClient.hpp b/ndb/include/util/SocketClient.hpp deleted file mode 100644 index bf1ad7d45d6..00000000000 --- a/ndb/include/util/SocketClient.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* 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 SOCKET_CLIENT_HPP -#define SOCKET_CLIENT_HPP - -#include <NdbTCP.h> -class SocketAuthenticator; - -class SocketClient -{ - NDB_SOCKET_TYPE m_sockfd; - struct sockaddr_in m_servaddr; - unsigned short m_port; - char *m_server_name; - SocketAuthenticator *m_auth; -public: - SocketClient(const char *server_name, unsigned short port, SocketAuthenticator *sa = 0); - ~SocketClient(); - bool init(); - void set_port(unsigned short port) { - m_port = port; - m_servaddr.sin_port = htons(m_port); - }; - unsigned short get_port() { return m_port; }; - char *get_server_name() { return m_server_name; }; - NDB_SOCKET_TYPE connect(); - bool close(); -}; - -#endif // SOCKET_ClIENT_HPP diff --git a/ndb/include/util/SocketServer.hpp b/ndb/include/util/SocketServer.hpp deleted file mode 100644 index 2e1afb74945..00000000000 --- a/ndb/include/util/SocketServer.hpp +++ /dev/null @@ -1,133 +0,0 @@ -/* 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 SOCKET_SERVER_HPP -#define SOCKET_SERVER_HPP - -#include <NdbTCP.h> -#include <NdbMutex.h> -#include <NdbThread.h> -#include <Vector.hpp> - -extern "C" void* sessionThread_C(void*); -extern "C" void* socketServerThread_C(void*); - -/** - * Socket Server - */ -class SocketServer { -public: - /** - * A Session - */ - class Session { - public: - virtual ~Session() {} - virtual void runSession(){} - virtual void stopSession(){ m_stop = true; } - protected: - friend class SocketServer; - friend void* sessionThread_C(void*); - Session(NDB_SOCKET_TYPE sock): m_socket(sock){ m_stop = m_stopped = false;} - - bool m_stop; // Has the session been ordered to stop? - bool m_stopped; // Has the session stopped? - - NDB_SOCKET_TYPE m_socket; - }; - - /** - * A service i.e. a session factory - */ - class Service { - public: - virtual ~Service(){} - - /** - * Returned Session will be ran in own thread - * - * To manage threads self, just return NULL - */ - virtual Session * newSession(NDB_SOCKET_TYPE theSock) = 0; - virtual void stopSessions(){} - }; - - /** - * Constructor / Destructor - */ - SocketServer(int maxSessions = 32); - ~SocketServer(); - - /** - * Setup socket and bind it - * then close the socket - * Returns true if succeding in binding - */ - static bool tryBind(unsigned short port, const char * intface = 0); - - /** - * Setup socket - * bind & listen - * Returns false if no success - */ - bool setup(Service *, unsigned short *port, const char * pinterface = 0); - - /** - * start/stop the server - */ - void startServer(); - void stopServer(); - - /** - * stop sessions - * - * Note: Implies stopServer - */ - void stopSessions(bool wait = false); - - void foreachSession(void (*f)(Session*, void*), void *data); - -private: - struct SessionInstance { - Service * m_service; - Session * m_session; - NdbThread * m_thread; - }; - struct ServiceInstance { - Service * m_service; - NDB_SOCKET_TYPE m_socket; - }; - MutexVector<SessionInstance> m_sessions; - MutexVector<ServiceInstance> m_services; - unsigned m_maxSessions; - - void doAccept(); - void checkSessions(); - void startSession(SessionInstance &); - - /** - * Note, this thread is only used when running interactive - * - */ - bool m_stopThread; - struct NdbThread * m_thread; - NdbLockable m_threadLock; - void doRun(); - friend void* socketServerThread_C(void*); - friend void* sessionThread_C(void*); -}; - -#endif diff --git a/ndb/include/util/UtilBuffer.hpp b/ndb/include/util/UtilBuffer.hpp deleted file mode 100644 index f43fc960a16..00000000000 --- a/ndb/include/util/UtilBuffer.hpp +++ /dev/null @@ -1,97 +0,0 @@ -/* 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 __BUFFER_HPP_INCLUDED__ -#define __BUFFER_HPP_INCLUDED__ - -#include <ndb_global.h> - -/* This class represents a buffer of binary data, where you can append - * data at the end, and later read the entire bunch. - * It will take care of the hairy details of realloc()ing the space - * for you - */ -class UtilBuffer { -public: - UtilBuffer() { data = NULL; len = 0; alloc_size = 0; }; - ~UtilBuffer() { if(data) free(data); data = NULL; len = 0; alloc_size = 0; }; - - - int reallocate(size_t newsize) { - if(newsize < len) { - errno = EINVAL; - return -1; - } - void *newdata; - if((newdata = realloc(data, newsize)) == NULL) { - errno = ENOMEM; - return -1; - } - alloc_size = newsize; - data = newdata; - return 0; - }; - - int grow(size_t l) { - if(l > alloc_size) - return reallocate(l); - return 0; - }; - - int append(const void *d, size_t l) { - int ret; - ret = grow(len+l); - if(ret != 0) - return ret; - - memcpy((char *)data+len, d, l); - len+=l; - - return 0; - }; - - void * append(size_t l){ - if(grow(len+l) != 0) - return 0; - - void * ret = (char*)data+len; - len += l; - return ret; - } - - int assign(const void * d, size_t l) { - if (data) free(data); - data = NULL; - len = 0; - alloc_size = 0; - return append(d, l); - } - - void clear() { - len = 0; - } - - int length() const { return len; }; - - void *get_data() const { return data; }; -private: - void *data; /* Pointer to data storage */ - size_t len; /* Size of the stored data */ - size_t alloc_size; /* Size of the allocated space, - * i.e. len can grow to this size */ -}; - -#endif /* !__BUFFER_HPP_INCLUDED__ */ diff --git a/ndb/include/util/Vector.hpp b/ndb/include/util/Vector.hpp deleted file mode 100644 index 480dddf8243..00000000000 --- a/ndb/include/util/Vector.hpp +++ /dev/null @@ -1,296 +0,0 @@ -/* 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 NDB_VECTOR_HPP -#define NDB_VECTOR_HPP - -#include <ndb_global.h> -#include <NdbMutex.h> - -template<class T> -struct Vector { -public: - Vector(int sz = 10); - ~Vector(); - - T& operator[](unsigned i); - const T& operator[](unsigned i) const; - unsigned size() const { return m_size; }; - - void push_back(const T &); - T& back(); - - void erase(unsigned index); - - void clear(); - - void fill(unsigned new_size, T & obj); - - Vector<T>& operator=(const Vector<T>&); - - T* getBase() { return m_items;} - const T* getBase() const { return m_items;} -private: - T * m_items; - unsigned m_size; - unsigned m_incSize; - unsigned m_arraySize; -}; - -template<class T> -Vector<T>::Vector(int i){ - m_items = new T[i]; - m_size = 0; - m_arraySize = i; - m_incSize = 50; -} - -template<class T> -Vector<T>::~Vector(){ - delete[] m_items; - // safety for placement new usage - m_items = 0; - m_size = 0; - m_arraySize = 0; -} - -template<class T> -T & -Vector<T>::operator[](unsigned i){ - if(i >= m_size) - abort(); - return m_items[i]; -} - -template<class T> -const T & -Vector<T>::operator[](unsigned i) const { - if(i >= m_size) - abort(); - return m_items[i]; -} - -template<class T> -T & -Vector<T>::back(){ - return (* this)[m_size - 1]; -} - -template<class T> -void -Vector<T>::push_back(const T & t){ - if(m_size == m_arraySize){ - T * tmp = new T [m_arraySize + m_incSize]; - for (unsigned k = 0; k < m_size; k++) - tmp[k] = m_items[k]; - delete[] m_items; - m_items = tmp; - m_arraySize = m_arraySize + m_incSize; - } - m_items[m_size] = t; - m_size++; -} - -template<class T> -void -Vector<T>::erase(unsigned i){ - if(i >= m_size) - abort(); - - for (unsigned k = i; k + 1 < m_size; k++) - m_items[k] = m_items[k + 1]; - m_size--; -} - -template<class T> -void -Vector<T>::clear(){ - m_size = 0; -} - -template<class T> -void -Vector<T>::fill(unsigned new_size, T & obj){ - while(m_size <= new_size) - push_back(obj); -} - -template<class T> -Vector<T>& -Vector<T>::operator=(const Vector<T>& obj){ - if(this != &obj){ - clear(); - for(size_t i = 0; i<obj.size(); i++){ - push_back(obj[i]); - } - } - return * this; -} - -template<class T> -struct MutexVector : public NdbLockable { - MutexVector(int sz = 10); - ~MutexVector(); - - T& operator[](unsigned i); - const T& operator[](unsigned i) const; - unsigned size() const { return m_size; }; - - void push_back(const T &); - void push_back(const T &, bool lockMutex); - T& back(); - - void erase(unsigned index); - void erase(unsigned index, bool lockMutex); - - void clear(); - void clear(bool lockMutex); - - void fill(unsigned new_size, T & obj); -private: - T * m_items; - unsigned m_size; - unsigned m_incSize; - unsigned m_arraySize; -}; - -template<class T> -MutexVector<T>::MutexVector(int i){ - m_items = new T[i]; - m_size = 0; - m_arraySize = i; - m_incSize = 50; -} - -template<class T> -MutexVector<T>::~MutexVector(){ - delete[] m_items; - // safety for placement new usage - m_items = 0; - m_size = 0; - m_arraySize = 0; -} - -template<class T> -T & -MutexVector<T>::operator[](unsigned i){ - if(i >= m_size) - abort(); - return m_items[i]; -} - -template<class T> -const T & -MutexVector<T>::operator[](unsigned i) const { - if(i >= m_size) - abort(); - return m_items[i]; -} - -template<class T> -T & -MutexVector<T>::back(){ - return (* this)[m_size - 1]; -} - -template<class T> -void -MutexVector<T>::push_back(const T & t){ - lock(); - if(m_size == m_arraySize){ - T * tmp = new T [m_arraySize + m_incSize]; - for (unsigned k = 0; k < m_size; k++) - tmp[k] = m_items[k]; - delete[] m_items; - m_items = tmp; - m_arraySize = m_arraySize + m_incSize; - } - m_items[m_size] = t; - m_size++; - unlock(); -} - -template<class T> -void -MutexVector<T>::push_back(const T & t, bool lockMutex){ - if(lockMutex) - lock(); - if(m_size == m_arraySize){ - T * tmp = new T [m_arraySize + m_incSize]; - for (unsigned k = 0; k < m_size; k++) - tmp[k] = m_items[k]; - delete[] m_items; - m_items = tmp; - m_arraySize = m_arraySize + m_incSize; - } - m_items[m_size] = t; - m_size++; - if(lockMutex) - unlock(); -} - -template<class T> -void -MutexVector<T>::erase(unsigned i){ - if(i >= m_size) - abort(); - - lock(); - for (unsigned k = i; k + 1 < m_size; k++) - m_items[k] = m_items[k + 1]; - m_size--; - unlock(); -} - -template<class T> -void -MutexVector<T>::erase(unsigned i, bool _lock){ - if(i >= m_size) - abort(); - - if(_lock) - lock(); - for (unsigned k = i; k + 1 < m_size; k++) - m_items[k] = m_items[k + 1]; - m_size--; - if(_lock) - unlock(); -} - -template<class T> -void -MutexVector<T>::clear(){ - lock(); - m_size = 0; - unlock(); -} - -template<class T> -void -MutexVector<T>::clear(bool l){ - if(l) lock(); - m_size = 0; - if(l) unlock(); -} - -template<class T> -void -MutexVector<T>::fill(unsigned new_size, T & obj){ - while(m_size <= new_size) - push_back(obj); -} - -#endif diff --git a/ndb/include/util/basestring_vsnprintf.h b/ndb/include/util/basestring_vsnprintf.h deleted file mode 100644 index 7c804f22841..00000000000 --- a/ndb/include/util/basestring_vsnprintf.h +++ /dev/null @@ -1,29 +0,0 @@ -/* 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 BASESTRING_VSNPRINTF_H -#define BASESTRING_VSNPRINTF_H -#include <stdarg.h> -#if defined(__cplusplus) -extern "C" -{ -#endif -int basestring_snprintf(char*, size_t, const char*, ...); -int basestring_vsnprintf(char*,size_t, const char*,va_list); -#if defined(__cplusplus) -} -#endif -#endif diff --git a/ndb/include/util/md5_hash.hpp b/ndb/include/util/md5_hash.hpp deleted file mode 100644 index b79dce3b5a9..00000000000 --- a/ndb/include/util/md5_hash.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/* 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 MD5_HASH_H -#define MD5_HASH_H - -#include <ndb_types.h> - -// External declaration of hash function -void md5_hash(Uint32 result[4], const Uint64* keybuf, Uint32 no_of_32_words); - -inline -Uint32 -md5_hash(const Uint64* keybuf, Uint32 no_of_32_words) -{ - Uint32 result[4]; - md5_hash(result, keybuf, no_of_32_words); - return result[0]; -} - -#endif diff --git a/ndb/include/util/ndb_opts.h b/ndb/include/util/ndb_opts.h deleted file mode 100644 index 72abd6d5d7a..00000000000 --- a/ndb/include/util/ndb_opts.h +++ /dev/null @@ -1,167 +0,0 @@ -/* 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 _NDB_OPTS_H -#define _NDB_OPTS_H - -#include <ndb_global.h> -#include <my_sys.h> -#include <my_getopt.h> -#include <mysql_version.h> -#include <ndb_version.h> -#include <ndb_opt_defaults.h> - -#define NDB_STD_OPTS_VARS \ -my_bool opt_ndb_optimized_node_selection - -int opt_ndb_nodeid; -my_bool opt_ndb_shm; -const char *opt_ndb_connectstring= 0; -const char *opt_connect_str= 0; -const char *opt_ndb_mgmd= 0; -char opt_ndb_constrbuf[1024]; -unsigned opt_ndb_constrbuf_len= 0; - -#ifndef DBUG_OFF -const char *opt_debug= 0; -#endif - -#define OPT_NDB_CONNECTSTRING 'c' - -#define NDB_STD_OPTS_COMMON \ - { "usage", '?', "Display this help and exit.", \ - 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \ - { "help", '?', "Display this help and exit.", \ - 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \ - { "version", 'V', "Output version information and exit.", 0, 0, 0, \ - GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \ - { "ndb-connectstring", OPT_NDB_CONNECTSTRING, \ - "Set connect string for connecting to ndb_mgmd. " \ - "Syntax: \"[nodeid=<id>;][host=]<hostname>[:<port>]\". " \ - "Overides specifying entries in NDB_CONNECTSTRING and Ndb.cfg", \ - (gptr*) &opt_ndb_connectstring, (gptr*) &opt_ndb_connectstring, \ - 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\ - { "ndb-mgmd-host", OPT_NDB_MGMD, \ - "Set host and port for connecting to ndb_mgmd. " \ - "Syntax: <hostname>[:<port>].", \ - (gptr*) &opt_ndb_mgmd, (gptr*) &opt_ndb_mgmd, 0, \ - GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\ - { "ndb-nodeid", OPT_NDB_NODEID, \ - "Set node id for this node.", \ - (gptr*) &opt_ndb_nodeid, (gptr*) &opt_ndb_nodeid, 0, \ - GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\ - { "ndb-shm", OPT_NDB_SHM,\ - "Allow optimizing using shared memory connections when available",\ - (gptr*) &opt_ndb_shm, (gptr*) &opt_ndb_shm, 0,\ - GET_BOOL, NO_ARG, OPT_NDB_SHM_DEFAULT, 0, 0, 0, 0, 0 },\ - {"ndb-optimized-node-selection", OPT_NDB_OPTIMIZED_NODE_SELECTION,\ - "Select nodes for transactions in a more optimal way",\ - (gptr*) &opt_ndb_optimized_node_selection,\ - (gptr*) &opt_ndb_optimized_node_selection, 0,\ - GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\ - { "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\ - (gptr*) &opt_ndb_connectstring, (gptr*) &opt_ndb_connectstring, \ - 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 } - -#ifndef DBUG_OFF -#define NDB_STD_OPTS(prog_name) \ - { "debug", '#', "Output debug log. Often this is 'd:t:o,filename'.", \ - (gptr*) &opt_debug, (gptr*) &opt_debug, \ - 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0 }, \ - NDB_STD_OPTS_COMMON -#else -#define NDB_STD_OPTS(prog_name) NDB_STD_OPTS_COMMON -#endif - -static void ndb_std_print_version() -{ - printf("MySQL distrib %s, for %s (%s)\n", - MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE); -} - -static void usage(); - -enum ndb_std_options { - OPT_NDB_SHM= 256, - OPT_NDB_SHM_SIGNUM, - OPT_NDB_OPTIMIZED_NODE_SELECTION, - OPT_NDB_MGMD, - OPT_NDB_NODEID, - NDB_STD_OPTIONS_LAST /* should always be last in this enum */ -}; - -static my_bool -ndb_std_get_one_option(int optid, - const struct my_option *opt __attribute__((unused)), - char *argument) -{ - switch (optid) { -#ifndef DBUG_OFF - case '#': - if (opt_debug) - { - DBUG_PUSH(opt_debug); - } - else - { - DBUG_PUSH("d:t"); - } - break; -#endif - case 'V': - ndb_std_print_version(); - exit(0); - case '?': - usage(); - exit(0); - case OPT_NDB_SHM: - if (opt_ndb_shm) - { -#ifndef NDB_SHM_TRANSPORTER - printf("Warning: binary not compiled with shared memory support,\n" - "Tcp connections will now be used instead\n"); - opt_ndb_shm= 0; -#endif - } - break; - case OPT_NDB_MGMD: - case OPT_NDB_NODEID: - { - int len= my_snprintf(opt_ndb_constrbuf+opt_ndb_constrbuf_len, - sizeof(opt_ndb_constrbuf)-opt_ndb_constrbuf_len, - "%s%s%s",opt_ndb_constrbuf_len > 0 ? ",":"", - optid == OPT_NDB_NODEID ? "nodeid=" : "", - argument); - opt_ndb_constrbuf_len+= len; - } - /* fall through to add the connectstring to the end - * and set opt_ndbcluster_connectstring - */ - case OPT_NDB_CONNECTSTRING: - if (opt_ndb_connectstring && opt_ndb_connectstring[0]) - my_snprintf(opt_ndb_constrbuf+opt_ndb_constrbuf_len, - sizeof(opt_ndb_constrbuf)-opt_ndb_constrbuf_len, - "%s%s", opt_ndb_constrbuf_len > 0 ? ",":"", - opt_ndb_connectstring); - else - opt_ndb_constrbuf[opt_ndb_constrbuf_len]= 0; - opt_connect_str= opt_ndb_constrbuf; - break; - } - return 0; -} - -#endif /*_NDB_OPTS_H */ diff --git a/ndb/include/util/random.h b/ndb/include/util/random.h deleted file mode 100644 index 1b83e5fec93..00000000000 --- a/ndb/include/util/random.h +++ /dev/null @@ -1,84 +0,0 @@ -/* 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 RANDOM_H -#define RANDOM_H - -/*************************************************************** -* I N C L U D E D F I L E S * -***************************************************************/ - -/*************************************************************** -* M A C R O S * -***************************************************************/ - -/***************************************************************/ -/* C O N S T A N T S */ -/***************************************************************/ - - -/*************************************************************** -* D A T A S T R U C T U R E S * -***************************************************************/ - -typedef struct { - unsigned int length; - unsigned int *values; - unsigned int currentIndex; -}RandomSequence; - -typedef struct { - unsigned int length; - unsigned int value; -}SequenceValues; - -/*************************************************************** -* P U B L I C F U N C T I O N S * -***************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - - -extern double getTps(unsigned int count, double timeValue); - -/*----------------------------*/ -/* Random Sequences Functions */ -/*----------------------------*/ -extern int initSequence(RandomSequence *seq, SequenceValues *inputValues); -extern unsigned int getNextRandom(RandomSequence *seq); -extern void printSequence(RandomSequence *seq, unsigned int numPerRow); - -/*---------------------------------------------------*/ -/* Code from the glibc, to make sure the same random */ -/* number generator is used by all */ -/*---------------------------------------------------*/ -extern void myRandom48Init(long int seedval); -extern long int myRandom48(unsigned int maxValue); - -#ifdef __cplusplus -} -#endif - -/*************************************************************** -* E X T E R N A L D A T A * -***************************************************************/ - - - -#endif /* RANDOM_H */ - diff --git a/ndb/include/util/socket_io.h b/ndb/include/util/socket_io.h deleted file mode 100644 index a0e6c4e369d..00000000000 --- a/ndb/include/util/socket_io.h +++ /dev/null @@ -1,41 +0,0 @@ -/* 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 _SOCKET_IO_H -#define _SOCKET_IO_H - -#include <ndb_global.h> - -#include <NdbTCP.h> - -#ifdef __cplusplus -extern "C" { -#endif - - int read_socket(NDB_SOCKET_TYPE, int timeout_ms, char *, int len); - int readln_socket(NDB_SOCKET_TYPE, int timeout_ms, char *, int len); - int write_socket(NDB_SOCKET_TYPE, int timeout_ms, const char[], int len); - - int print_socket(NDB_SOCKET_TYPE, int timeout_ms, const char *, ...); - int println_socket(NDB_SOCKET_TYPE, int timeout_ms, const char *, ...); - int vprint_socket(NDB_SOCKET_TYPE, int timeout_ms, const char *, va_list); - int vprintln_socket(NDB_SOCKET_TYPE, int timeout_ms, const char *, va_list); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/util/uucode.h b/ndb/include/util/uucode.h deleted file mode 100644 index f5569d033a5..00000000000 --- a/ndb/include/util/uucode.h +++ /dev/null @@ -1,36 +0,0 @@ -/* 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 UUCODE_H -#define UUCODE_H - -#include <ndb_global.h> - -#ifdef __cplusplus -extern "C" { -#endif - - void uuencode(const char * data, int dataLen, FILE * out); - int uudecode(FILE * input, char * outBuf, int bufLen); - - int uuencode_mem(char * dst, const char * src, int src_len); - int uudecode_mem(char * dst, int dst_len, const char * src); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/ndb/include/util/version.h b/ndb/include/util/version.h deleted file mode 100644 index 5459e44b818..00000000000 --- a/ndb/include/util/version.h +++ /dev/null @@ -1,50 +0,0 @@ -/* 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 VERSION_H -#define VERSION_H -#include <ndb_types.h> -#ifdef __cplusplus -extern "C" { -#endif - - Uint32 getMajor(Uint32 version); - - Uint32 getMinor(Uint32 version); - - Uint32 getBuild(Uint32 version); - - Uint32 makeVersion(Uint32 major, Uint32 minor, Uint32 build); - - const char* getVersionString(Uint32 version, const char * status); - - void ndbPrintVersion(); - Uint32 ndbGetOwnVersion(); - - int ndbCompatible_mgmt_ndb(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_ndb_mgmt(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_mgmt_api(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_api_mgmt(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_api_ndb(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_ndb_api(Uint32 ownVersion, Uint32 otherVersion); - int ndbCompatible_ndb_ndb(Uint32 ownVersion, Uint32 otherVersion); - -#ifdef __cplusplus -} -#endif - -#endif |