diff options
author | unknown <jimw@mysql.com> | 2006-04-18 12:12:46 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2006-04-18 12:12:46 -0700 |
commit | b709511e406552f8d8884e80befd78f98604eeeb (patch) | |
tree | e53c2d408d22d66f7260c608a71f2561220320bd /storage/ndb/tools/old_dirs/ndbnet/lib/NDB | |
parent | 3e21b9d0dad908d1e0b0d414bf2186fa24e05616 (diff) | |
download | mariadb-git-b709511e406552f8d8884e80befd78f98604eeeb.tar.gz |
Nuke all of the old_* directories in the ndb tree.
BitKeeper/deleted/.del-Makefile~6c2778d2bf4954a2:
Delete: storage/ndb/src/old_files/client/Makefile
BitKeeper/deleted/.del-Extra.mk~eabbb28986ca817d:
Delete: storage/ndb/src/old_files/client/odbc/Extra.mk
BitKeeper/deleted/.del-Makefile~9bc928a18aa88d66:
Delete: storage/ndb/src/old_files/client/odbc/Makefile
BitKeeper/deleted/.del-NdbOdbc.cpp~aa491b06c9172d11:
Delete: storage/ndb/src/old_files/client/odbc/NdbOdbc.cpp
BitKeeper/deleted/.del-NdbOdbc.def~cd3eed2c4a0121e9:
Delete: storage/ndb/src/old_files/client/odbc/NdbOdbc.def
BitKeeper/deleted/.del-CodeGen.cpp~170c83c0765b9160:
Delete: storage/ndb/src/old_files/client/odbc/codegen/CodeGen.cpp
BitKeeper/deleted/.del-CodeGen.hpp~738f834f80cceba8:
Delete: storage/ndb/src/old_files/client/odbc/codegen/CodeGen.hpp
BitKeeper/deleted/.del-Code_base.cpp~96f8ceaac8138bfe:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_base.cpp
BitKeeper/deleted/.del-Code_base.hpp~794baaed32588409:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_base.hpp
BitKeeper/deleted/.del-Code_column.cpp~5dd0e5c1215bd8bf:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_column.cpp
BitKeeper/deleted/.del-Code_column.hpp~5d5816d1c496e588:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_column.hpp
BitKeeper/deleted/.del-Code_comp_op.cpp~6ab02cc3b1e08985:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_comp_op.cpp
BitKeeper/deleted/.del-Code_comp_op.hpp~37cf1e4cee3a6bf1:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_comp_op.hpp
BitKeeper/deleted/.del-Code_create_index.cpp~d1f95c5917afab9:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_index.cpp
BitKeeper/deleted/.del-Code_create_index.hpp~12bcb33350fc35c1:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_index.hpp
BitKeeper/deleted/.del-Code_create_row.cpp~33f73454f8ddf2d5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_row.cpp
BitKeeper/deleted/.del-Code_create_row.hpp~38cb00cc1baa9ee7:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_row.hpp
BitKeeper/deleted/.del-Code_create_table.cpp~c25e7cc06414a927:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_table.cpp
BitKeeper/deleted/.del-Code_create_table.hpp~9648f467f3f0418e:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_create_table.hpp
BitKeeper/deleted/.del-Code_data_type.cpp~9e46a7ef85345d4:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_data_type.cpp
BitKeeper/deleted/.del-Code_data_type.hpp~5e8928968d3c0107:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_data_type.hpp
BitKeeper/deleted/.del-Code_ddl.cpp~c38ee5368efaf688:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl.cpp
BitKeeper/deleted/.del-Code_ddl.hpp~75482ddd87b65036:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl.hpp
BitKeeper/deleted/.del-Code_ddl_column.cpp~c524862773dd9f38:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_column.cpp
BitKeeper/deleted/.del-Code_ddl_column.hpp~c9e534e381b21599:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_column.hpp
BitKeeper/deleted/.del-Code_ddl_constr.cpp~80ae32f83a6c2f00:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_constr.cpp
BitKeeper/deleted/.del-Code_ddl_constr.hpp~bca16806c57bc97e:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_constr.hpp
BitKeeper/deleted/.del-Code_ddl_row.cpp~ec2fbc3b8ab08a52:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_row.cpp
BitKeeper/deleted/.del-Code_ddl_row.hpp~c18a43b3770ad25a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_ddl_row.hpp
BitKeeper/deleted/.del-Code_delete.cpp~feac77b440d04327:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete.cpp
BitKeeper/deleted/.del-Code_delete.hpp~c852ee069a761aab:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete.hpp
BitKeeper/deleted/.del-Code_delete_index.cpp~17ed96eca90fe4e7:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_index.cpp
BitKeeper/deleted/.del-Code_delete_index.hpp~18a9bb119b04636:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_index.hpp
BitKeeper/deleted/.del-Code_delete_lookup.cpp~1a3728f8c896684:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_lookup.cpp
BitKeeper/deleted/.del-Code_delete_lookup.hpp~1be71525ed9ee69:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_lookup.hpp
BitKeeper/deleted/.del-Code_delete_scan.cpp~b040ad7670c24eb5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_scan.cpp
BitKeeper/deleted/.del-Code_delete_scan.hpp~b9a11b4ec895d159:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_delete_scan.hpp
BitKeeper/deleted/.del-Code_dml.cpp~6826ad60f0f566e7:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml.cpp
BitKeeper/deleted/.del-Code_dml.hpp~8fdbf19ad3174ca2:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml.hpp
BitKeeper/deleted/.del-Code_dml_column.cpp~b71ce6186edf1655:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml_column.cpp
BitKeeper/deleted/.del-Code_dml_column.hpp~a843b3418b30b7a3:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml_column.hpp
BitKeeper/deleted/.del-Code_dml_row.cpp~17c791507b36cc06:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml_row.cpp
BitKeeper/deleted/.del-Code_dml_row.hpp~33c4cffdd238728d:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_dml_row.hpp
BitKeeper/deleted/.del-Code_drop_index.cpp~fc5cab67ae58d9f6:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_drop_index.cpp
BitKeeper/deleted/.del-Code_drop_index.hpp~377c9eb280ec2ee2:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_drop_index.hpp
BitKeeper/deleted/.del-Code_drop_table.cpp~9637d93efa68996a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_drop_table.cpp
BitKeeper/deleted/.del-Code_drop_table.hpp~d671379125e4bbbe:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_drop_table.hpp
BitKeeper/deleted/.del-Code_expr.cpp~fafd271880c70cf3:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr.cpp
BitKeeper/deleted/.del-Code_expr.hpp~9e8243e99e0ec84:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr.hpp
BitKeeper/deleted/.del-Code_expr_column.cpp~4c4fbcd5741cc8cf:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_column.cpp
BitKeeper/deleted/.del-Code_expr_column.hpp~9c4cbbdf432dc475:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_column.hpp
BitKeeper/deleted/.del-Code_expr_const.cpp~bdb29dcd94ac5e73:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_const.cpp
BitKeeper/deleted/.del-Code_expr_const.hpp~9c8789cff376b832:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_const.hpp
BitKeeper/deleted/.del-Code_expr_conv.cpp~d252fbfe8ef55fff:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_conv.cpp
BitKeeper/deleted/.del-Code_expr_conv.hpp~5cbea39eecb92a43:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_conv.hpp
BitKeeper/deleted/.del-Code_expr_func.cpp~5d3996f062fa3f52:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_func.cpp
BitKeeper/deleted/.del-Code_expr_func.hpp~22aee1e4f92c49b9:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_func.hpp
BitKeeper/deleted/.del-Code_expr_op.cpp~e1aaa0244f2efa4:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_op.cpp
BitKeeper/deleted/.del-Code_expr_op.hpp~4eb8c02dd0602f:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_op.hpp
BitKeeper/deleted/.del-Code_expr_param.cpp~a5e94ee7c5821611:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_param.cpp
BitKeeper/deleted/.del-Code_expr_param.hpp~ec441ad8ef21aa2b:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_param.hpp
BitKeeper/deleted/.del-Code_expr_row.cpp~bc73d8f9c681d418:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_row.cpp
BitKeeper/deleted/.del-Code_expr_row.hpp~c541c49ea8c0c4f2:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_expr_row.hpp
BitKeeper/deleted/.del-Code_idx_column.cpp~7d4d074ce5daea0a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_idx_column.cpp
BitKeeper/deleted/.del-Code_idx_column.hpp~caabaafa34722be7:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_idx_column.hpp
BitKeeper/deleted/.del-Code_insert.cpp~7d0ef7cc8f657fd5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_insert.cpp
BitKeeper/deleted/.del-Code_insert.hpp~cc96fa9b81169471:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_insert.hpp
BitKeeper/deleted/.del-Code_pred.cpp~56faa755aa42ddfa:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_pred.cpp
BitKeeper/deleted/.del-Code_pred.hpp~eada43753e8b1e6c:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_pred.hpp
BitKeeper/deleted/.del-Code_pred_op.cpp~47d693dde1a6d907:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_pred_op.cpp
BitKeeper/deleted/.del-Code_pred_op.hpp~b42256983d2bda7b:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_pred_op.hpp
BitKeeper/deleted/.del-Code_query.cpp~4ac293821c9b4602:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query.cpp
BitKeeper/deleted/.del-Code_query.hpp~f86fbd9a108206c0:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query.hpp
BitKeeper/deleted/.del-Code_query_count.cpp~9fa96a57d2dde660:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_count.cpp
BitKeeper/deleted/.del-Code_query_count.hpp~bdbe6e4734abc0c5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_count.hpp
BitKeeper/deleted/.del-Code_query_distinct.cpp~3ba18528aa67b9dd:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_distinct.cpp
BitKeeper/deleted/.del-Code_query_distinct.hpp~c12b2b7ff6b2e7b3:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_distinct.hpp
BitKeeper/deleted/.del-Code_query_filter.cpp~a3d067d5d8fb40c:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_filter.cpp
BitKeeper/deleted/.del-Code_query_filter.hpp~d0a341f2e40f0183:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_filter.hpp
BitKeeper/deleted/.del-Code_query_group.cpp~4443c844308f9a98:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_group.cpp
BitKeeper/deleted/.del-Code_query_group.hpp~ba4691be942c6e2a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_group.hpp
BitKeeper/deleted/.del-Code_query_index.cpp~f0312c9e2f22daf6:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_index.cpp
BitKeeper/deleted/.del-Code_query_index.hpp~6baaf1abbb704bb1:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_index.hpp
BitKeeper/deleted/.del-Code_query_join.cpp~36e07422c67d6838:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_join.cpp
BitKeeper/deleted/.del-Code_query_join.hpp~c4d17d18c4e3b4a0:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_join.hpp
BitKeeper/deleted/.del-Code_query_lookup.cpp~3d80e3ddbdae531d:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_lookup.cpp
BitKeeper/deleted/.del-Code_query_lookup.hpp~73332533e5196630:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_lookup.hpp
BitKeeper/deleted/.del-Code_query_project.cpp~ebc22f71bb7ec98c:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_project.cpp
BitKeeper/deleted/.del-Code_query_project.hpp~2734cdf1f907e0a4:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_project.hpp
BitKeeper/deleted/.del-Code_query_range.cpp~62ddafd2d17063cc:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_range.cpp
BitKeeper/deleted/.del-Code_query_range.hpp~81546843616efefa:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_range.hpp
BitKeeper/deleted/.del-Code_query_repeat.cpp~ce8f2a065897d6e3:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_repeat.cpp
BitKeeper/deleted/.del-Code_query_repeat.hpp~c20e10d0db9ad53c:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_repeat.hpp
BitKeeper/deleted/.del-Code_query_scan.cpp~855e56d6f56de938:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_scan.cpp
BitKeeper/deleted/.del-Code_query_scan.hpp~b93c277da5b2509b:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_scan.hpp
BitKeeper/deleted/.del-Code_query_sort.cpp~c08fc07f739de097:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_sort.cpp
BitKeeper/deleted/.del-Code_query_sort.hpp~84edb5e128eda962:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_sort.hpp
BitKeeper/deleted/.del-Code_query_sys.cpp~1d6a4a1cec789001:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_sys.cpp
BitKeeper/deleted/.del-Code_query_sys.hpp~f5182823da25f097:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_query_sys.hpp
BitKeeper/deleted/.del-Code_root.cpp~4c26a01ced583e41:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_root.cpp
BitKeeper/deleted/.del-Code_root.hpp~de1fd878505d9e26:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_root.hpp
BitKeeper/deleted/.del-Code_select.cpp~75b2a39f282d8ef5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_select.cpp
BitKeeper/deleted/.del-Code_select.hpp~f9fadc322d78033a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_select.hpp
BitKeeper/deleted/.del-Code_set_row.cpp~1bda7e6f86f18aef:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_set_row.cpp
BitKeeper/deleted/.del-Code_set_row.hpp~32ac3de384b91229:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_set_row.hpp
BitKeeper/deleted/.del-Code_stmt.cpp~c0e9903aa90df90b:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_stmt.cpp
BitKeeper/deleted/.del-Code_stmt.hpp~fab11fc487e74d05:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_stmt.hpp
BitKeeper/deleted/.del-Code_table.cpp~c46b7a6e2ecf4f61:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_table.cpp
BitKeeper/deleted/.del-Code_table.hpp~a48d57a0375a6d56:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_table.hpp
BitKeeper/deleted/.del-Code_table_list.cpp~40948eccedfae7bb:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_table_list.cpp
BitKeeper/deleted/.del-Code_table_list.hpp~c1e880e9949d3a:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_table_list.hpp
BitKeeper/deleted/.del-Code_update.cpp~ed36f4a7a928a91b:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update.cpp
BitKeeper/deleted/.del-Code_update.hpp~c1de760c7b580b0c:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update.hpp
BitKeeper/deleted/.del-Code_update_index.cpp~a0c6ad33ffbbc00e:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_index.cpp
BitKeeper/deleted/.del-Code_update_index.hpp~b57bbe5c8d927df9:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_index.hpp
BitKeeper/deleted/.del-Code_update_lookup.cpp~3491782088e97384:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_lookup.cpp
BitKeeper/deleted/.del-Code_update_lookup.hpp~ee335822c3496863:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_lookup.hpp
BitKeeper/deleted/.del-Code_update_scan.cpp~35e5b7d4619b3e09:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_scan.cpp
BitKeeper/deleted/.del-Code_update_scan.hpp~287f193ad48fbefd:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Code_update_scan.hpp
BitKeeper/deleted/.del-Makefile~420b8378d374f069:
Delete: storage/ndb/src/old_files/client/odbc/codegen/Makefile
BitKeeper/deleted/.del-SimpleGram.ypp~6301cedf92524710:
Delete: storage/ndb/src/old_files/client/odbc/codegen/SimpleGram.ypp
BitKeeper/deleted/.del-SimpleParser.cpp~549f93e2a7fd01b5:
Delete: storage/ndb/src/old_files/client/odbc/codegen/SimpleParser.cpp
BitKeeper/deleted/.del-SimpleParser.hpp~4fdff7ee3839efc4:
Delete: storage/ndb/src/old_files/client/odbc/codegen/SimpleParser.hpp
BitKeeper/deleted/.del-SimpleScan.lpp~e11862b97fe39faf:
Delete: storage/ndb/src/old_files/client/odbc/codegen/SimpleScan.lpp
BitKeeper/deleted/.del-AttrArea.cpp~1570da617a1a6c4b:
Delete: storage/ndb/src/old_files/client/odbc/common/AttrArea.cpp
BitKeeper/deleted/.del-AttrArea.hpp~f3d78ccd37af4e6:
Delete: storage/ndb/src/old_files/client/odbc/common/AttrArea.hpp
BitKeeper/deleted/.del-CodeTree.cpp~1a4912632b0a61ee:
Delete: storage/ndb/src/old_files/client/odbc/common/CodeTree.cpp
BitKeeper/deleted/.del-CodeTree.hpp~dcb603cce390eafa:
Delete: storage/ndb/src/old_files/client/odbc/common/CodeTree.hpp
BitKeeper/deleted/.del-ConnArea.cpp~103182cf445f0bc3:
Delete: storage/ndb/src/old_files/client/odbc/common/ConnArea.cpp
BitKeeper/deleted/.del-ConnArea.hpp~ffe99deedf7dc1ee:
Delete: storage/ndb/src/old_files/client/odbc/common/ConnArea.hpp
BitKeeper/deleted/.del-Ctx.cpp~ce1c13ba8a312eba:
Delete: storage/ndb/src/old_files/client/odbc/common/Ctx.cpp
BitKeeper/deleted/.del-Ctx.hpp~bc88aba55ab71063:
Delete: storage/ndb/src/old_files/client/odbc/common/Ctx.hpp
BitKeeper/deleted/.del-DataField.cpp~6bb1fe1cb971c8f9:
Delete: storage/ndb/src/old_files/client/odbc/common/DataField.cpp
BitKeeper/deleted/.del-DataField.hpp~d324898a9a86463d:
Delete: storage/ndb/src/old_files/client/odbc/common/DataField.hpp
BitKeeper/deleted/.del-DataRow.cpp~8764a23cee4f9481:
Delete: storage/ndb/src/old_files/client/odbc/common/DataRow.cpp
BitKeeper/deleted/.del-DataRow.hpp~66a65eee1a1b2f23:
Delete: storage/ndb/src/old_files/client/odbc/common/DataRow.hpp
BitKeeper/deleted/.del-DataType.cpp~29b8ddd51fdd3a2f:
Delete: storage/ndb/src/old_files/client/odbc/common/DataType.cpp
BitKeeper/deleted/.del-DataType.hpp~adef26bc1dc940eb:
Delete: storage/ndb/src/old_files/client/odbc/common/DataType.hpp
BitKeeper/deleted/.del-DescArea.cpp~aab4edd7e336acdd:
Delete: storage/ndb/src/old_files/client/odbc/common/DescArea.cpp
BitKeeper/deleted/.del-DescArea.hpp~20ba9b6484762f0f:
Delete: storage/ndb/src/old_files/client/odbc/common/DescArea.hpp
BitKeeper/deleted/.del-DiagArea.cpp~e3662d8977947e67:
Delete: storage/ndb/src/old_files/client/odbc/common/DiagArea.cpp
BitKeeper/deleted/.del-DiagArea.hpp~1c6595b5fac06eb2:
Delete: storage/ndb/src/old_files/client/odbc/common/DiagArea.hpp
BitKeeper/deleted/.del-Makefile~8505f6b38fe5c219:
Delete: storage/ndb/src/old_files/client/odbc/common/Makefile
BitKeeper/deleted/.del-OdbcData.cpp~e557009c1ed1e017:
Delete: storage/ndb/src/old_files/client/odbc/common/OdbcData.cpp
BitKeeper/deleted/.del-OdbcData.hpp~2125814c1293c0b3:
Delete: storage/ndb/src/old_files/client/odbc/common/OdbcData.hpp
BitKeeper/deleted/.del-ResultArea.cpp~8bcc2a2d9a98b9b0:
Delete: storage/ndb/src/old_files/client/odbc/common/ResultArea.cpp
BitKeeper/deleted/.del-ResultArea.hpp~8d4646b94be475d1:
Delete: storage/ndb/src/old_files/client/odbc/common/ResultArea.hpp
BitKeeper/deleted/.del-Sqlstate.cpp~b844144af963c22c:
Delete: storage/ndb/src/old_files/client/odbc/common/Sqlstate.cpp
BitKeeper/deleted/.del-Sqlstate.hpp~60006ee1c27c6e5:
Delete: storage/ndb/src/old_files/client/odbc/common/Sqlstate.hpp
BitKeeper/deleted/.del-StmtArea.cpp~5c5f8613156e06b2:
Delete: storage/ndb/src/old_files/client/odbc/common/StmtArea.cpp
BitKeeper/deleted/.del-StmtArea.hpp~9662e56ae164eb7f:
Delete: storage/ndb/src/old_files/client/odbc/common/StmtArea.hpp
BitKeeper/deleted/.del-StmtInfo.cpp~54ee4040e5807214:
Delete: storage/ndb/src/old_files/client/odbc/common/StmtInfo.cpp
BitKeeper/deleted/.del-DictCatalog.cpp~9804b0ff3eac2f8:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictCatalog.cpp
BitKeeper/deleted/.del-DictCatalog.hpp~cace2fb2f6bb65e5:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictCatalog.hpp
BitKeeper/deleted/.del-StmtInfo.hpp~6698d657391692fc:
Delete: storage/ndb/src/old_files/client/odbc/common/StmtInfo.hpp
BitKeeper/deleted/.del-common.cpp~4792b9ecddd99482:
Delete: storage/ndb/src/old_files/client/odbc/common/common.cpp
BitKeeper/deleted/.del-common.hpp~25369fa6c80eff53:
Delete: storage/ndb/src/old_files/client/odbc/common/common.hpp
BitKeeper/deleted/.del-DictColumn.cpp~b69d90c53e5b618:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictColumn.cpp
BitKeeper/deleted/.del-DictColumn.hpp~c2da1b7bd0408bd1:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictColumn.hpp
BitKeeper/deleted/.del-DictIndex.cpp~a456d3039e6a39e3:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictIndex.cpp
BitKeeper/deleted/.del-DictIndex.hpp~f53b91a41bb96663:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictIndex.hpp
BitKeeper/deleted/.del-DictSchema.cpp~639403c84a47dfdd:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictSchema.cpp
BitKeeper/deleted/.del-DictSchema.hpp~5aa7dc8ade17e94c:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictSchema.hpp
BitKeeper/deleted/.del-DictSys.cpp~fb89465b10c32bb0:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictSys.cpp
BitKeeper/deleted/.del-DictSys.hpp~76583ba8aa88fd6f:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictSys.hpp
BitKeeper/deleted/.del-DictTable.cpp~8f4a9ee5a8038f87:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictTable.cpp
BitKeeper/deleted/.del-DictTable.hpp~cf99a9ac3dd49206:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/DictTable.hpp
BitKeeper/deleted/.del-Makefile~4c1a6148787bdc2f:
Delete: storage/ndb/src/old_files/client/odbc/dictionary/Makefile
BitKeeper/deleted/.del-class.fig~c0754ccad74d380a:
Delete: storage/ndb/src/old_files/client/odbc/docs/class.fig
BitKeeper/deleted/.del-descfield.pl~e0bd59c2824824cc:
Delete: storage/ndb/src/old_files/client/odbc/docs/descfield.pl
BitKeeper/deleted/.del-diag.txt~b66a7e227391335f:
Delete: storage/ndb/src/old_files/client/odbc/docs/diag.txt
BitKeeper/deleted/.del-getinfo.pl~2142ecf1567a66f6:
Delete: storage/ndb/src/old_files/client/odbc/docs/getinfo.pl
BitKeeper/deleted/.del-gettypeinfo.pl~2ea4c0589eac4e73:
Delete: storage/ndb/src/old_files/client/odbc/docs/gettypeinfo.pl
BitKeeper/deleted/.del-handleattr.pl~b0c2a2901b68342e:
Delete: storage/ndb/src/old_files/client/odbc/docs/handleattr.pl
BitKeeper/deleted/.del-main.hpp~7b15eb7ffad488a0:
Delete: storage/ndb/src/old_files/client/odbc/docs/main.hpp
BitKeeper/deleted/.del-ndbodbc.html~a2f14fdd978b62cc:
Delete: storage/ndb/src/old_files/client/odbc/docs/ndbodbc.html
BitKeeper/deleted/.del-select.fig~34f5222b5012e1d7:
Delete: storage/ndb/src/old_files/client/odbc/docs/select.fig
BitKeeper/deleted/.del-Func.data~9e75f15d921063f3:
Delete: storage/ndb/src/old_files/client/odbc/driver/Func.data
BitKeeper/deleted/.del-Func.pl~aefb901bc3941d32:
Delete: storage/ndb/src/old_files/client/odbc/driver/Func.pl
BitKeeper/deleted/.del-systables.pl~1fa2191648bdb629:
Delete: storage/ndb/src/old_files/client/odbc/docs/systables.pl
BitKeeper/deleted/.del-type.txt~feec700c81f5095f:
Delete: storage/ndb/src/old_files/client/odbc/docs/type.txt
BitKeeper/deleted/.del-Makefile~80d21270fc3ad931:
Delete: storage/ndb/src/old_files/client/odbc/driver/Makefile
BitKeeper/deleted/.del-SQLAllocConnect.cpp~246af836b028d810:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLAllocConnect.cpp
BitKeeper/deleted/.del-SQLAllocEnv.cpp~eaf36cf2285ec2ac:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLAllocEnv.cpp
BitKeeper/deleted/.del-SQLAllocHandle.cpp~c0921921e84d1a10:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLAllocHandle.cpp
BitKeeper/deleted/.del-SQLAllocHandleStd.cpp~7d145f6e3640d913:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLAllocHandleStd.cpp
BitKeeper/deleted/.del-SQLAllocStmt.cpp~362331ef456ec879:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLAllocStmt.cpp
BitKeeper/deleted/.del-SQLBindCol.cpp~fec3a78088d4951d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLBindCol.cpp
BitKeeper/deleted/.del-SQLBindParam.cpp~a50b619a23efaab:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLBindParam.cpp
BitKeeper/deleted/.del-SQLBindParameter.cpp~533b1992496e2775:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLBindParameter.cpp
BitKeeper/deleted/.del-SQLBrowseConnect.cpp~120b61a1ff6edee3:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLBrowseConnect.cpp
BitKeeper/deleted/.del-SQLBulkOperations.cpp~7a96be04250a388:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLBulkOperations.cpp
BitKeeper/deleted/.del-SQLCancel.cpp~27eab683f6fa6ec6:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLCancel.cpp
BitKeeper/deleted/.del-SQLCloseCursor.cpp~6cbf193aadaf1058:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLCloseCursor.cpp
BitKeeper/deleted/.del-SQLColAttribute.cpp~f2c858b16a9360d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLColAttribute.cpp
BitKeeper/deleted/.del-SQLColAttributes.cpp~d4007908ee1309d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLColAttributes.cpp
BitKeeper/deleted/.del-SQLColumnPrivileges.cpp~39a3020da4c3485b:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLColumnPrivileges.cpp
BitKeeper/deleted/.del-SQLColumns.cpp~1c31107df60bb544:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLColumns.cpp
BitKeeper/deleted/.del-SQLConnect.cpp~868e02a519b72743:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLConnect.cpp
BitKeeper/deleted/.del-SQLCopyDesc.cpp~286522b25a029761:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLCopyDesc.cpp
BitKeeper/deleted/.del-SQLDataSources.cpp~12792108aac5b2ca:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDataSources.cpp
BitKeeper/deleted/.del-SQLDescribeCol.cpp~1d1faafbcd3ecb3c:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDescribeCol.cpp
BitKeeper/deleted/.del-SQLDescribeParam.cpp~70b016fa795ed275:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDescribeParam.cpp
BitKeeper/deleted/.del-SQLDisconnect.cpp~9fb4c3d7a84db50a:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDisconnect.cpp
BitKeeper/deleted/.del-SQLDriverConnect.cpp~8dad42af7d17a9d9:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDriverConnect.cpp
BitKeeper/deleted/.del-SQLDrivers.cpp~400e7453e70f6e99:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLDrivers.cpp
BitKeeper/deleted/.del-SQLEndTran.cpp~c37cce04cc303c01:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLEndTran.cpp
BitKeeper/deleted/.del-SQLError.cpp~593b81885c15187b:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLError.cpp
BitKeeper/deleted/.del-SQLExecDirect.cpp~5e6274e76315339d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLExecDirect.cpp
BitKeeper/deleted/.del-SQLExecute.cpp~1692a85f8639f71:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLExecute.cpp
BitKeeper/deleted/.del-SQLExtendedFetch.cpp~8b9d604580a83cfd:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLExtendedFetch.cpp
BitKeeper/deleted/.del-SQLFetch.cpp~fa1606aa2dd901db:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFetch.cpp
BitKeeper/deleted/.del-SQLFetchScroll.cpp~cdb16803511963a1:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFetchScroll.cpp
BitKeeper/deleted/.del-SQLForeignKeys.cpp~4b8a9af2f6bf92cb:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLForeignKeys.cpp
BitKeeper/deleted/.del-SQLFreeConnect.cpp~92359420501ebc5b:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFreeConnect.cpp
BitKeeper/deleted/.del-SQLFreeEnv.cpp~64f1776817464807:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFreeEnv.cpp
BitKeeper/deleted/.del-SQLFreeHandle.cpp~2dc029edf912c2d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFreeHandle.cpp
BitKeeper/deleted/.del-SQLFreeStmt.cpp~8f8cb0a43c02a67:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLFreeStmt.cpp
BitKeeper/deleted/.del-SQLGetConnectAttr.cpp~b29ff18aeedd8966:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetConnectAttr.cpp
BitKeeper/deleted/.del-SQLGetConnectOption.cpp~3e0bc4e1af95c682:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetConnectOption.cpp
BitKeeper/deleted/.del-SQLGetCursorName.cpp~8266b920671b6d01:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetCursorName.cpp
BitKeeper/deleted/.del-SQLGetData.cpp~3d837348460c219d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetData.cpp
BitKeeper/deleted/.del-SQLGetDescField.cpp~62828192a7d1d954:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetDescField.cpp
BitKeeper/deleted/.del-SQLGetDescRec.cpp~f54cc69bcd1238ad:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetDescRec.cpp
BitKeeper/deleted/.del-SQLGetDiagField.cpp~673e1ea0f9d5121f:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetDiagField.cpp
BitKeeper/deleted/.del-SQLGetDiagRec.cpp~bea0f68f5b940ab8:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetDiagRec.cpp
BitKeeper/deleted/.del-SQLGetEnvAttr.cpp~e742277d8bdf234d:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetEnvAttr.cpp
BitKeeper/deleted/.del-SQLGetFunctions.cpp~72de050fbfb4a9bb:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetFunctions.cpp
BitKeeper/deleted/.del-SQLGetInfo.cpp~e4e09d6bedbf02b1:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetInfo.cpp
BitKeeper/deleted/.del-SQLGetStmtAttr.cpp~de7dabc8c2acea7:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetStmtAttr.cpp
BitKeeper/deleted/.del-SQLGetStmtOption.cpp~2ff900ebdd167077:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetStmtOption.cpp
BitKeeper/deleted/.del-SQLGetTypeInfo.cpp~333196b07473dff6:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLGetTypeInfo.cpp
BitKeeper/deleted/.del-SQLMoreResults.cpp~483d94cb57379e81:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLMoreResults.cpp
BitKeeper/deleted/.del-SQLNativeSql.cpp~eeae6067f4a85c:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLNativeSql.cpp
BitKeeper/deleted/.del-SQLNumParams.cpp~8921304c3bcf4835:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLNumParams.cpp
BitKeeper/deleted/.del-SQLNumResultCols.cpp~4d2b6527ffe81059:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLNumResultCols.cpp
BitKeeper/deleted/.del-SQLParamData.cpp~163b046513f1e4ae:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLParamData.cpp
BitKeeper/deleted/.del-SQLParamOptions.cpp~bdcbccb961fff044:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLParamOptions.cpp
BitKeeper/deleted/.del-SQLPrepare.cpp~1d339fe24888087:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLPrepare.cpp
BitKeeper/deleted/.del-SQLPrimaryKeys.cpp~5d7b2a0ae08a267:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLPrimaryKeys.cpp
BitKeeper/deleted/.del-SQLProcedureColumns.cpp~c7a0535e9f50ff39:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLProcedureColumns.cpp
BitKeeper/deleted/.del-SQLProcedures.cpp~c59d025b22e2d1a6:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLProcedures.cpp
BitKeeper/deleted/.del-SQLPutData.cpp~9dbf69ea9d369dbd:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLPutData.cpp
BitKeeper/deleted/.del-SQLRowCount.cpp~d4ac5b273afdb154:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLRowCount.cpp
BitKeeper/deleted/.del-SQLSetConnectAttr.cpp~c2c520c34c41bd88:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetConnectAttr.cpp
BitKeeper/deleted/.del-SQLSetConnectOption.cpp~dadc980d9f9cad1b:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetConnectOption.cpp
BitKeeper/deleted/.del-SQLSetCursorName.cpp~ccfc33dd2cf6abeb:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetCursorName.cpp
BitKeeper/deleted/.del-SQLSetDescField.cpp~c4db694d1b9e8f77:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetDescField.cpp
BitKeeper/deleted/.del-SQLSetDescRec.cpp~f8dd72467d5012ab:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetDescRec.cpp
BitKeeper/deleted/.del-SQLSetEnvAttr.cpp~7b50aeae6228c2db:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetEnvAttr.cpp
BitKeeper/deleted/.del-SQLSetParam.cpp~e0dd2d5e8d3ec450:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetParam.cpp
BitKeeper/deleted/.del-SQLSetPos.cpp~39a3e69960041aa7:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetPos.cpp
BitKeeper/deleted/.del-SQLSetScrollOptions.cpp~6f8250379bb0cac8:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetScrollOptions.cpp
BitKeeper/deleted/.del-SQLSetStmtAttr.cpp~e99b7e6025a1ae1f:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetStmtAttr.cpp
BitKeeper/deleted/.del-SQLSetStmtOption.cpp~87af3125a48c27fa:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSetStmtOption.cpp
BitKeeper/deleted/.del-SQLSpecialColumns.cpp~1877b4c368825de5:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLSpecialColumns.cpp
BitKeeper/deleted/.del-SQLStatistics.cpp~87e0359f237aa66a:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLStatistics.cpp
BitKeeper/deleted/.del-SQLTablePrivileges.cpp~fa16ea0fffa4edeb:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLTablePrivileges.cpp
BitKeeper/deleted/.del-SQLTables.cpp~c8b201068baec393:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLTables.cpp
BitKeeper/deleted/.del-SQLTransact.cpp~eb33c2f66ee85738:
Delete: storage/ndb/src/old_files/client/odbc/driver/SQLTransact.cpp
BitKeeper/deleted/.del-Exec_comp_op.cpp~eacbd7512b32d68b:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_comp_op.cpp
BitKeeper/deleted/.del-Exec_create_index.cpp~c6b8e670198adfa9:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_create_index.cpp
BitKeeper/deleted/.del-driver.cpp~f8f1eeec35b08f18:
Delete: storage/ndb/src/old_files/client/odbc/driver/driver.cpp
BitKeeper/deleted/.del-driver.hpp~f108f4eef34ec8ea:
Delete: storage/ndb/src/old_files/client/odbc/driver/driver.hpp
BitKeeper/deleted/.del-Exec_create_table.cpp~76904d417bc0a59a:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_create_table.cpp
BitKeeper/deleted/.del-Exec_delete_index.cpp~1ffe5af6eb160a68:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_delete_index.cpp
BitKeeper/deleted/.del-Exec_delete_lookup.cpp~5d24028ce16b6623:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_delete_lookup.cpp
BitKeeper/deleted/.del-Exec_delete_scan.cpp~810aa4058f73c941:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_delete_scan.cpp
BitKeeper/deleted/.del-Exec_drop_index.cpp~3a3871ec6ee48c28:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_drop_index.cpp
BitKeeper/deleted/.del-Exec_drop_table.cpp~639a2faba4da14f4:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_drop_table.cpp
BitKeeper/deleted/.del-Exec_expr_conv.cpp~b5452bd4fbd7c945:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_expr_conv.cpp
BitKeeper/deleted/.del-Exec_expr_func.cpp~c78ab0e67d54f38c:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_expr_func.cpp
BitKeeper/deleted/.del-Exec_expr_op.cpp~5e341b2e63495ba4:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_expr_op.cpp
BitKeeper/deleted/.del-Exec_insert.cpp~71dd4bf2fb913f2e:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_insert.cpp
BitKeeper/deleted/.del-Exec_pred_op.cpp~ebe7b65ba81e5185:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_pred_op.cpp
BitKeeper/deleted/.del-Exec_query_index.cpp~4cada676fa178001:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_query_index.cpp
BitKeeper/deleted/.del-Exec_query_lookup.cpp~79dfe29b088d832:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_query_lookup.cpp
BitKeeper/deleted/.del-Exec_query_range.cpp~7c4e148e81a292d6:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_query_range.cpp
BitKeeper/deleted/.del-Exec_query_scan.cpp~7c66194f7f93346f:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_query_scan.cpp
BitKeeper/deleted/.del-Exec_query_sys.cpp~d66abe07cd519163:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_query_sys.cpp
BitKeeper/deleted/.del-Exec_update_index.cpp~86140a945f790890:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_update_index.cpp
BitKeeper/deleted/.del-Exec_update_lookup.cpp~b7a7387620cf42ab:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_update_lookup.cpp
BitKeeper/deleted/.del-Exec_update_scan.cpp~2285c72106cffe0:
Delete: storage/ndb/src/old_files/client/odbc/executor/Exec_update_scan.cpp
BitKeeper/deleted/.del-Executor.cpp~ccb54cc8ffe18bae:
Delete: storage/ndb/src/old_files/client/odbc/executor/Executor.cpp
BitKeeper/deleted/.del-Executor.hpp~c94d916ae5af2506:
Delete: storage/ndb/src/old_files/client/odbc/executor/Executor.hpp
BitKeeper/deleted/.del-AttrDbc.cpp~24a034fbb22cdb23:
Delete: storage/ndb/src/old_files/client/odbc/handles/AttrDbc.cpp
BitKeeper/deleted/.del-AttrEnv.cpp~7d74bcba78e149d0:
Delete: storage/ndb/src/old_files/client/odbc/handles/AttrEnv.cpp
BitKeeper/deleted/.del-AttrRoot.cpp~5def5d7e228eedf0:
Delete: storage/ndb/src/old_files/client/odbc/handles/AttrRoot.cpp
BitKeeper/deleted/.del-Makefile~a08f437558c2d3b4:
Delete: storage/ndb/src/old_files/client/odbc/executor/Makefile
BitKeeper/deleted/.del-AttrStmt.cpp~5363ba63b35ff8f4:
Delete: storage/ndb/src/old_files/client/odbc/handles/AttrStmt.cpp
BitKeeper/deleted/.del-DescSpec.cpp~cd50c1c855f1905:
Delete: storage/ndb/src/old_files/client/odbc/handles/DescSpec.cpp
BitKeeper/deleted/.del-FuncTab.cpp~e77abea11a532708:
Delete: storage/ndb/src/old_files/client/odbc/handles/FuncTab.cpp
BitKeeper/deleted/.del-HandleBase.cpp~2ba63dce2dfec07b:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleBase.cpp
BitKeeper/deleted/.del-HandleBase.hpp~8cf9a1e94d272328:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleBase.hpp
BitKeeper/deleted/.del-HandleDbc.cpp~2a79fea6477b2c63:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleDbc.cpp
BitKeeper/deleted/.del-HandleDbc.hpp~9abc692ac6b0abb3:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleDbc.hpp
BitKeeper/deleted/.del-HandleDesc.cpp~e77eb1d73d171a98:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleDesc.cpp
BitKeeper/deleted/.del-HandleDesc.hpp~553aeb842b3da88e:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleDesc.hpp
BitKeeper/deleted/.del-HandleEnv.cpp~6b96fc6b188f252b:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleEnv.cpp
BitKeeper/deleted/.del-HandleEnv.hpp~572a7b4af6816f8b:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleEnv.hpp
BitKeeper/deleted/.del-HandleRoot.cpp~aa5044f74554fa9c:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleRoot.cpp
BitKeeper/deleted/.del-HandleRoot.hpp~2fcfca742c13cfb3:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleRoot.hpp
BitKeeper/deleted/.del-HandleStmt.cpp~782f96bda9eaf13c:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleStmt.cpp
BitKeeper/deleted/.del-HandleStmt.hpp~6508fc97f3c772e1:
Delete: storage/ndb/src/old_files/client/odbc/handles/HandleStmt.hpp
BitKeeper/deleted/.del-InfoTab.cpp~f89104b9c6fe7489:
Delete: storage/ndb/src/old_files/client/odbc/handles/InfoTab.cpp
BitKeeper/deleted/.del-Makefile~3d8d1529ad26ce76:
Delete: storage/ndb/src/old_files/client/odbc/handles/Makefile
BitKeeper/deleted/.del-PoolNdb.cpp~793fa032699b7d98:
Delete: storage/ndb/src/old_files/client/odbc/handles/PoolNdb.cpp
BitKeeper/deleted/.del-PoolNdb.hpp~db9e1a04d2fe705d:
Delete: storage/ndb/src/old_files/client/odbc/handles/PoolNdb.hpp
BitKeeper/deleted/.del-handles.hpp~bfe0b6a7a95ac142:
Delete: storage/ndb/src/old_files/client/odbc/handles/handles.hpp
BitKeeper/deleted/.del-Makefile~4b92d5e5b416dd0:
Delete: storage/ndb/src/old_files/ndbbaseclient/Makefile
BitKeeper/deleted/.del-Makefile~f993f3afae0d4308:
Delete: storage/ndb/src/old_files/ndbclient/Makefile
BitKeeper/deleted/.del-ndbbaseclient_dummy.cpp~daee9eb6acbc94:
Delete: storage/ndb/src/old_files/ndbbaseclient/ndbbaseclient_dummy.cpp
BitKeeper/deleted/.del-ndbclient_dummy.cpp~73154070f5d0bfbf:
Delete: storage/ndb/src/old_files/ndbclient/ndbclient_dummy.cpp
BitKeeper/deleted/.del-Makefile~bcbd9a7282094cc:
Delete: storage/ndb/src/old_files/newtonapi/Makefile
BitKeeper/deleted/.del-dba_binding.cpp~dcc4fb57f9ab6cba:
Delete: storage/ndb/src/old_files/newtonapi/dba_binding.cpp
BitKeeper/deleted/.del-dba_bulkread.cpp~4ddfe02a93d2ba11:
Delete: storage/ndb/src/old_files/newtonapi/dba_bulkread.cpp
BitKeeper/deleted/.del-dba_config.cpp~38acf2ad3a932420:
Delete: storage/ndb/src/old_files/newtonapi/dba_config.cpp
BitKeeper/deleted/.del-dba_dac.cpp~4615e3d0d8a15bff:
Delete: storage/ndb/src/old_files/newtonapi/dba_dac.cpp
BitKeeper/deleted/.del-dba_error.cpp~a58b4a1628a2d4b9:
Delete: storage/ndb/src/old_files/newtonapi/dba_error.cpp
BitKeeper/deleted/.del-dba_init.cpp~80da7e3fa0775346:
Delete: storage/ndb/src/old_files/newtonapi/dba_init.cpp
BitKeeper/deleted/.del-dba_internal.hpp~54884404e30c8823:
Delete: storage/ndb/src/old_files/newtonapi/dba_internal.hpp
BitKeeper/deleted/.del-dba_process.cpp~509e54294bc7efd2:
Delete: storage/ndb/src/old_files/newtonapi/dba_process.cpp
BitKeeper/deleted/.del-ExtSender.cpp~1851d559cfddae43:
Delete: storage/ndb/src/old_files/rep/ExtSender.cpp
BitKeeper/deleted/.del-ExtSender.hpp~10ae62ec85ee6692:
Delete: storage/ndb/src/old_files/rep/ExtSender.hpp
BitKeeper/deleted/.del-dba_process.hpp~f0ddefb3b2d6a662:
Delete: storage/ndb/src/old_files/newtonapi/dba_process.hpp
BitKeeper/deleted/.del-dba_schema.cpp~1c3b8399853c108:
Delete: storage/ndb/src/old_files/newtonapi/dba_schema.cpp
BitKeeper/deleted/.del-Makefile~954f853c2d812c2c:
Delete: storage/ndb/src/old_files/rep/Makefile
BitKeeper/deleted/.del-NodeConnectInfo.hpp~9c4318dd55f3f84:
Delete: storage/ndb/src/old_files/rep/NodeConnectInfo.hpp
BitKeeper/deleted/.del-README~6939b06d192a6b99:
Delete: storage/ndb/src/old_files/rep/README
BitKeeper/deleted/.del-RepApiInterpreter.cpp~8ba561cb831ae353:
Delete: storage/ndb/src/old_files/rep/RepApiInterpreter.cpp
BitKeeper/deleted/.del-RepApiInterpreter.hpp~31be5af2ba72d263:
Delete: storage/ndb/src/old_files/rep/RepApiInterpreter.hpp
BitKeeper/deleted/.del-RepApiService.cpp~93d4005333167a0f:
Delete: storage/ndb/src/old_files/rep/RepApiService.cpp
BitKeeper/deleted/.del-RepApiService.hpp~42f5ffb7e3baa54e:
Delete: storage/ndb/src/old_files/rep/RepApiService.hpp
BitKeeper/deleted/.del-RepCommandInterpreter.cpp~f661a8ff312213f8:
Delete: storage/ndb/src/old_files/rep/RepCommandInterpreter.cpp
BitKeeper/deleted/.del-RepCommandInterpreter.hpp~fb6f22895e8c8679:
Delete: storage/ndb/src/old_files/rep/RepCommandInterpreter.hpp
BitKeeper/deleted/.del-RepComponents.cpp~fb067aee8e5a4a1f:
Delete: storage/ndb/src/old_files/rep/RepComponents.cpp
BitKeeper/deleted/.del-RepComponents.hpp~9e632beac4f8bbf8:
Delete: storage/ndb/src/old_files/rep/RepComponents.hpp
BitKeeper/deleted/.del-RepMain.cpp~de79cb7b6f3acd18:
Delete: storage/ndb/src/old_files/rep/RepMain.cpp
BitKeeper/deleted/.del-Requestor.cpp~c653fa987f84ce43:
Delete: storage/ndb/src/old_files/rep/Requestor.cpp
BitKeeper/deleted/.del-Requestor.hpp~a499054c9a128dbd:
Delete: storage/ndb/src/old_files/rep/Requestor.hpp
BitKeeper/deleted/.del-RequestorSubscriptions.cpp~f0643f7cc9aa9654:
Delete: storage/ndb/src/old_files/rep/RequestorSubscriptions.cpp
BitKeeper/deleted/.del-SignalQueue.cpp~6d32d876acc1a598:
Delete: storage/ndb/src/old_files/rep/SignalQueue.cpp
BitKeeper/deleted/.del-AppNDB.cpp~1db5eafacdeda3b7:
Delete: storage/ndb/src/old_files/rep/adapters/AppNDB.cpp
BitKeeper/deleted/.del-SignalQueue.hpp~b92204ff36f399d1:
Delete: storage/ndb/src/old_files/rep/SignalQueue.hpp
BitKeeper/deleted/.del-TODO~187896dd2e5dfd02:
Delete: storage/ndb/src/old_files/rep/TODO
BitKeeper/deleted/.del-dbug_hack.cpp~f090906a24103f0:
Delete: storage/ndb/src/old_files/rep/dbug_hack.cpp
BitKeeper/deleted/.del-rep_version.hpp~82a23fe4dbb13cab:
Delete: storage/ndb/src/old_files/rep/rep_version.hpp
BitKeeper/deleted/.del-AppNDB.hpp~2c3081224b4ff75f:
Delete: storage/ndb/src/old_files/rep/adapters/AppNDB.hpp
BitKeeper/deleted/.del-ExtAPI.cpp~d98f38669b10ca97:
Delete: storage/ndb/src/old_files/rep/adapters/ExtAPI.cpp
BitKeeper/deleted/.del-ExtAPI.hpp~32bcb96bcd2d60c:
Delete: storage/ndb/src/old_files/rep/adapters/ExtAPI.hpp
BitKeeper/deleted/.del-ExtNDB.cpp~38cccb80529c02c6:
Delete: storage/ndb/src/old_files/rep/adapters/ExtNDB.cpp
BitKeeper/deleted/.del-ExtNDB.hpp~ee245e7e2c707685:
Delete: storage/ndb/src/old_files/rep/adapters/ExtNDB.hpp
BitKeeper/deleted/.del-Makefile~25c4b35b84d945b4:
Delete: storage/ndb/src/old_files/rep/repapi/Makefile
BitKeeper/deleted/.del-Makefile~bcb9d87fd69a7911:
Delete: storage/ndb/src/old_files/rep/adapters/Makefile
BitKeeper/deleted/.del-TableInfoPs.hpp~56b1f8f75fe7cb1c:
Delete: storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp
BitKeeper/deleted/.del-Channel.cpp~1d5f62245962b839:
Delete: storage/ndb/src/old_files/rep/state/Channel.cpp
BitKeeper/deleted/.del-Channel.hpp~71c1d63ef4b2cbfe:
Delete: storage/ndb/src/old_files/rep/state/Channel.hpp
BitKeeper/deleted/.del-repapi.cpp~82b9b00c67cfdcf7:
Delete: storage/ndb/src/old_files/rep/repapi/repapi.cpp
BitKeeper/deleted/.del-repapi.h~6f8cf6b53a86a5ae:
Delete: storage/ndb/src/old_files/rep/repapi/repapi.h
BitKeeper/deleted/.del-Interval.cpp~3d079ca9cc21124d:
Delete: storage/ndb/src/old_files/rep/state/Interval.cpp
BitKeeper/deleted/.del-Interval.hpp~85aa46fc419bb109:
Delete: storage/ndb/src/old_files/rep/state/Interval.hpp
BitKeeper/deleted/.del-Makefile~6a9cedaeedcc4650:
Delete: storage/ndb/src/old_files/rep/state/Makefile
BitKeeper/deleted/.del-RepState.cpp~3d60b0a46e9477c1:
Delete: storage/ndb/src/old_files/rep/state/RepState.cpp
BitKeeper/deleted/.del-Makefile~e33e587a7947ac36:
Delete: storage/ndb/src/old_files/rep/state/testInterval/Makefile
BitKeeper/deleted/.del-RepState.hpp~94d7c472c8a7367:
Delete: storage/ndb/src/old_files/rep/state/RepState.hpp
BitKeeper/deleted/.del-RepStateEvent.cpp~f51d7eb7b7aca0b:
Delete: storage/ndb/src/old_files/rep/state/RepStateEvent.cpp
BitKeeper/deleted/.del-RepStateRequests.cpp~393882166df6929:
Delete: storage/ndb/src/old_files/rep/state/RepStateRequests.cpp
BitKeeper/deleted/.del-Makefile~f5a6d9415d7e0977:
Delete: storage/ndb/src/old_files/rep/state/testRepState/Makefile
BitKeeper/deleted/.del-testInterval.cpp~993f4118f616e80:
Delete: storage/ndb/src/old_files/rep/state/testInterval/testInterval.cpp
BitKeeper/deleted/.del-testRequestor.cpp~4a943fae5be63c79:
Delete: storage/ndb/src/old_files/rep/state/testRepState/testRequestor.cpp
BitKeeper/deleted/.del-testRequestor.hpp~583208c83ff5b554:
Delete: storage/ndb/src/old_files/rep/state/testRepState/testRequestor.hpp
BitKeeper/deleted/.del-GCIBuffer.cpp~6e8c6f38ab63d1d6:
Delete: storage/ndb/src/old_files/rep/storage/GCIBuffer.cpp
BitKeeper/deleted/.del-GCIBuffer.hpp~703e2016a7ec616f:
Delete: storage/ndb/src/old_files/rep/storage/GCIBuffer.hpp
BitKeeper/deleted/.del-GCIContainer.cpp~9c53acd16fc5ac74:
Delete: storage/ndb/src/old_files/rep/storage/GCIContainer.cpp
BitKeeper/deleted/.del-GCIContainer.hpp~ac28cea9114659fd:
Delete: storage/ndb/src/old_files/rep/storage/GCIContainer.hpp
BitKeeper/deleted/.del-GCIContainerPS.cpp~116168903a2c617a:
Delete: storage/ndb/src/old_files/rep/storage/GCIContainerPS.cpp
BitKeeper/deleted/.del-GCIContainerPS.hpp~9a801ffe939e192e:
Delete: storage/ndb/src/old_files/rep/storage/GCIContainerPS.hpp
BitKeeper/deleted/.del-GCIPage.cpp~42fa918fbf36828a:
Delete: storage/ndb/src/old_files/rep/storage/GCIPage.cpp
BitKeeper/deleted/.del-GCIPage.hpp~4197e2278326515e:
Delete: storage/ndb/src/old_files/rep/storage/GCIPage.hpp
BitKeeper/deleted/.del-LogRecord.hpp~11644fe7c5f5d36:
Delete: storage/ndb/src/old_files/rep/storage/LogRecord.hpp
BitKeeper/deleted/.del-Makefile~a955d34726662aba:
Delete: storage/ndb/src/old_files/rep/storage/Makefile
BitKeeper/deleted/.del-NodeConnectInfo.hpp~35a7682fd9dba464:
Delete: storage/ndb/src/old_files/rep/storage/NodeConnectInfo.hpp
BitKeeper/deleted/.del-NodeGroup.cpp~adebbefb11cd1670:
Delete: storage/ndb/src/old_files/rep/storage/NodeGroup.cpp
BitKeeper/deleted/.del-NodeGroup.hpp~3fcddc2da5d10e45:
Delete: storage/ndb/src/old_files/rep/storage/NodeGroup.hpp
BitKeeper/deleted/.del-Makefile~6b43df78ea480db1:
Delete: storage/ndb/src/old_files/rep/transfer/Makefile
BitKeeper/deleted/.del-NodeGroupInfo.cpp~b1130e3c42777658:
Delete: storage/ndb/src/old_files/rep/storage/NodeGroupInfo.cpp
BitKeeper/deleted/.del-NodeGroupInfo.hpp~7fd3b74f4b59a503:
Delete: storage/ndb/src/old_files/rep/storage/NodeGroupInfo.hpp
BitKeeper/deleted/.del-TransPS.cpp~7a88ca746987ac10:
Delete: storage/ndb/src/old_files/rep/transfer/TransPS.cpp
BitKeeper/deleted/.del-TransPS.hpp~846b26eaa80632a1:
Delete: storage/ndb/src/old_files/rep/transfer/TransPS.hpp
BitKeeper/deleted/.del-TransSS.cpp~8f12a062b240eecf:
Delete: storage/ndb/src/old_files/rep/transfer/TransSS.cpp
BitKeeper/deleted/.del-TransSS.hpp~7718b5e4ce9a4007:
Delete: storage/ndb/src/old_files/rep/transfer/TransSS.hpp
BitKeeper/deleted/.del-TransSSSubscriptions.cpp~6bc55e474f33e023:
Delete: storage/ndb/src/old_files/rep/transfer/TransSSSubscriptions.cpp
BitKeeper/deleted/.del-Makefile~4cef97177c0cd8d1:
Delete: storage/ndb/test/ndbapi/old_dirs/acid2/Makefile
BitKeeper/deleted/.del-Makefile~5823323f9308952b:
Delete: storage/ndb/test/ndbapi/old_dirs/acid/Makefile
BitKeeper/deleted/.del-Makefile~53e91df162e177a4:
Delete: storage/ndb/test/ndbapi/old_dirs/bulk_copy/Makefile
BitKeeper/deleted/.del-Makefile~d86129c4e794eaaf:
Delete: storage/ndb/test/ndbapi/old_dirs/basicAsynch/Makefile
BitKeeper/deleted/.del-TraceNdbApi.hpp~7a7f0ae5b70358bc:
Delete: storage/ndb/test/ndbapi/old_dirs/acid2/TraceNdbApi.hpp
BitKeeper/deleted/.del-VerifyNdbApi.hpp~f417f78f7cd05935:
Delete: storage/ndb/test/ndbapi/old_dirs/acid2/VerifyNdbApi.hpp
BitKeeper/deleted/.del-Makefile~15b0005e7dc1fbf8:
Delete: storage/ndb/test/ndbapi/old_dirs/flexAsynch/Makefile
BitKeeper/deleted/.del-Makefile~1bcf05f0a26d7d6f:
Delete: storage/ndb/test/ndbapi/old_dirs/create_tab/Makefile
BitKeeper/deleted/.del-Makefile~8ede26305d647424:
Delete: storage/ndb/test/ndbapi/old_dirs/create_all_tabs/Makefile
BitKeeper/deleted/.del-Makefile~e4f93944b8c44f09:
Delete: storage/ndb/test/ndbapi/old_dirs/drop_all_tabs/Makefile
BitKeeper/deleted/.del-Makefile.am~ae6c03d81bf83c09:
Delete: storage/ndb/test/ndbapi/old_dirs/flexBench/Makefile.am
BitKeeper/deleted/.del-Makefile~99efd87dd2a67e6:
Delete: storage/ndb/test/ndbapi/old_dirs/flexHammer/Makefile
BitKeeper/deleted/.del-README~d85a7f1125dc7a50:
Delete: storage/ndb/test/ndbapi/old_dirs/flexHammer/README
BitKeeper/deleted/.del-ndbplot.pl~ef4de5b461b880c1:
Delete: storage/ndb/test/ndbapi/old_dirs/flexBench/ndbplot.pl
BitKeeper/deleted/.del-Makefile~c05a674b968916ec:
Delete: storage/ndb/test/ndbapi/old_dirs/flexTT/Makefile
BitKeeper/deleted/.del-Makefile~d36727b854d37c9:
Delete: storage/ndb/test/ndbapi/old_dirs/flexScan/Makefile
BitKeeper/deleted/.del-README~a6f5f72344539aae:
Delete: storage/ndb/test/ndbapi/old_dirs/flexScan/README
BitKeeper/deleted/.del-Makefile~d254d59f274b1d3:
Delete: storage/ndb/test/ndbapi/old_dirs/flex_bench_mysql/Makefile
BitKeeper/deleted/.del-Makefile~d280c4556dcab9cd:
Delete: storage/ndb/test/ndbapi/old_dirs/flexTimedAsynch/Makefile
BitKeeper/deleted/.del-Makefile~7cd666ff39dc1c5d:
Delete: storage/ndb/test/ndbapi/old_dirs/indexTest2/Makefile
BitKeeper/deleted/.del-Makefile~837866d85a01b2c:
Delete: storage/ndb/test/ndbapi/old_dirs/indexTest/Makefile
BitKeeper/deleted/.del-Makefile~b384a346d7cc0f3c:
Delete: storage/ndb/test/ndbapi/old_dirs/interpreterInTup/Makefile
BitKeeper/deleted/.del-Makefile~b77f2b2aa6db29a7:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/Makefile
BitKeeper/deleted/.del-Makefile~607887f555e1a07f:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/Makefile
BitKeeper/deleted/.del-Makefile~fe3f7192bcd1e342:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/generator/Makefile
BitKeeper/deleted/.del-dbGenerator.h~63f1aeb98260bcb7:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/dbGenerator.h
BitKeeper/deleted/.del-testData.h~898b71d7c639319e:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/testData.h
BitKeeper/deleted/.del-Makefile~16dd9625cf816bed:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/Makefile
BitKeeper/deleted/.del-macros.h~742871fab0681964:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/macros.h
BitKeeper/deleted/.del-ndb_error.hpp~45a2fef922beae3:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/ndb_error.hpp
BitKeeper/deleted/.del-userInterface.h~49139f029bbdaabc:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/userInterface.h
BitKeeper/deleted/.del-.empty~9401b7f68791202e:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/lib/.empty
BitKeeper/deleted/.del-.empty~f804b62cd167f0b3:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/bin/.empty
BitKeeper/deleted/.del-ndb_schema.hpp~de9c21185d6bfe4e:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/include/ndb_schema.hpp
BitKeeper/deleted/.del-testDefinitions.h~f18a4553579a3725:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/include/testDefinitions.h
BitKeeper/deleted/.del-Makefile~28e0b82e1322e47:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/Makefile
BitKeeper/deleted/.del-async-lmc-bench-l-p10.sh~8f06283d361eec9e:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l-p10.sh
BitKeeper/deleted/.del-async-lmc-bench-l.sh~9b204c8488dfdb86:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l.sh
BitKeeper/deleted/.del-async-lmc-bench-p10.sh~45cfc4a130b43f6a:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-p10.sh
BitKeeper/deleted/.del-Makefile~a3e9f0384cf8455d:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/Makefile
BitKeeper/deleted/.del-README~3c1d85ad9efb4a23:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/README
BitKeeper/deleted/.del-async-lmc-bench.sh~40ca1b63e69d2bdd:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench.sh
BitKeeper/deleted/.del-makevars.linux~9a7c7e0df35184fa:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.linux
BitKeeper/deleted/.del-Makefile~e5ecf4cfa15f5316:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/Makefile
BitKeeper/deleted/.del-dbGenerator.c~7509c19f70cad0bf:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.c
BitKeeper/deleted/.del-dbGenerator.h~e1aaa6725999d458:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.h
BitKeeper/deleted/.del-mainGenerator.c~2d1c8016f72b2517:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/mainGenerator.c
BitKeeper/deleted/.del-makevars.sparc~42a7f929ba44ea5:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.sparc
BitKeeper/deleted/.del-Makefile~c3c3d76f731f62:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/Makefile
BitKeeper/deleted/.del-testData.h~696038ea2623a90b:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/include/testData.h
BitKeeper/deleted/.del-userInterface.h~1f76ad2f28b283fd:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/include/userInterface.h
BitKeeper/deleted/.del-Makefile~548d94b487507bbf:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/Makefile
BitKeeper/deleted/.del-dbPopulate.c~5dcff1c99783d83b:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.c
BitKeeper/deleted/.del-dbPopulate.h~229a894b59d4da73:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.h
BitKeeper/deleted/.del-mainPopulate.c~37def9a44980b8ec:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/mainPopulate.c
BitKeeper/deleted/.del-localDbPrepare.c~33a2c46afc8fac9a:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/localDbPrepare.c
BitKeeper/deleted/.del-macros.h~58097d584e29b5df:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/macros.h
BitKeeper/deleted/.del-ndb_error.hpp~24468bb7f20a0b41:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/ndb_error.hpp
BitKeeper/deleted/.del-userHandle.h~ec22dc7a7ed2f81b:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userHandle.h
BitKeeper/deleted/.del-Makefile~b6d0cd4d8c9d339b:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/Makefile
BitKeeper/deleted/.del-userHandle.h~3275bb415e1ca2c2:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userHandle.h
BitKeeper/deleted/.del-userInterface.cpp~82ee612ab14b3d48:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userInterface.cpp
BitKeeper/deleted/.del-userTransaction.c~438012ecc761b776:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userTransaction.c
BitKeeper/deleted/.del-Makefile~6a739ef75a821406:
Delete: storage/ndb/test/ndbapi/old_dirs/restarter2/Makefile
BitKeeper/deleted/.del-Makefile~c4a8d15a64d73ee8:
Delete: storage/ndb/test/ndbapi/old_dirs/restarter/Makefile
BitKeeper/deleted/.del-userInterface.c~92a20032f7d1e91:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userInterface.c
BitKeeper/deleted/.del-userTransaction.c~f50661b4f54b0bdd:
Delete: storage/ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userTransaction.c
BitKeeper/deleted/.del-Makefile~23f3806c8505ea8f:
Delete: storage/ndb/test/ndbapi/old_dirs/ronja/initronja/Makefile
BitKeeper/deleted/.del-Makefile~2fdd0e2bfef9eab7:
Delete: storage/ndb/test/ndbapi/old_dirs/ronja/benchronja/Makefile
BitKeeper/deleted/.del-Makefile~d19ef6b3a02430e7:
Delete: storage/ndb/test/ndbapi/old_dirs/restarts/Makefile
BitKeeper/deleted/.del-Makefile~edc1824919a8e593:
Delete: storage/ndb/test/ndbapi/old_dirs/ronja/Makefile
BitKeeper/deleted/.del-Makefile~7246dc45283fec4f:
Delete: storage/ndb/test/ndbapi/old_dirs/testBasic/Makefile
BitKeeper/deleted/.del-Makefile~8f8a72ead5c0dcbe:
Delete: storage/ndb/test/ndbapi/old_dirs/testBackup/Makefile
BitKeeper/deleted/.del-Makefile~a8998c89d7ad17d0:
Delete: storage/ndb/test/ndbapi/old_dirs/telco/Makefile
BitKeeper/deleted/.del-readme~2bb11c8fe8e713de:
Delete: storage/ndb/test/ndbapi/old_dirs/telco/readme
BitKeeper/deleted/.del-Makefile~11a681d847711b20:
Delete: storage/ndb/test/ndbapi/old_dirs/testDataBuffers/Makefile
BitKeeper/deleted/.del-Makefile~7b08d94bc77f36b5:
Delete: storage/ndb/test/ndbapi/old_dirs/testDict/Makefile
BitKeeper/deleted/.del-Makefile~c72222538e5e4e48:
Delete: storage/ndb/test/ndbapi/old_dirs/testBlobs/Makefile
BitKeeper/deleted/.del-Makefile~13237b5015038e7b:
Delete: storage/ndb/test/ndbapi/old_dirs/testGrep/Makefile
BitKeeper/deleted/.del-Makefile~1e91adbf308b09:
Delete: storage/ndb/test/ndbapi/old_dirs/testGrep/verify/Makefile
BitKeeper/deleted/.del-Makefile~348a4f3067115b99:
Delete: storage/ndb/test/ndbapi/old_dirs/testIndex/Makefile
BitKeeper/deleted/.del-Makefile~4da89995b201a972:
Delete: storage/ndb/test/ndbapi/old_dirs/testInterpreter/Makefile
BitKeeper/deleted/.del-Makefile~664fcd5e178e659a:
Delete: storage/ndb/test/ndbapi/old_dirs/testNodeRestart/Makefile
BitKeeper/deleted/.del-Makefile~79ba0e5994952ae9:
Delete: storage/ndb/test/ndbapi/old_dirs/testNdbApi/Makefile
BitKeeper/deleted/.del-Makefile~b76c5fcf57c53a58:
Delete: storage/ndb/test/ndbapi/old_dirs/testOIBasic/Makefile
BitKeeper/deleted/.del-Makefile~b90fa88b1071a3f3:
Delete: storage/ndb/test/ndbapi/old_dirs/testMgm/Makefile
BitKeeper/deleted/.del-Makefile~3a1d081f812432e3:
Delete: storage/ndb/test/ndbapi/old_dirs/testRestartGci/Makefile
BitKeeper/deleted/.del-Makefile~3e916b320b0dc88:
Delete: storage/ndb/test/ndbapi/old_dirs/testOrderedIndex/Makefile
BitKeeper/deleted/.del-Makefile~c9fac39964fe2f77:
Delete: storage/ndb/test/ndbapi/old_dirs/testOperations/Makefile
BitKeeper/deleted/.del-times.txt~76ffa76ca8708af1:
Delete: storage/ndb/test/ndbapi/old_dirs/testOIBasic/times.txt
BitKeeper/deleted/.del-Makefile~8ec0ddece8d8bd18:
Delete: storage/ndb/test/ndbapi/old_dirs/testScanInterpreter/Makefile
BitKeeper/deleted/.del-Makefile~b3c2cd57699a958c:
Delete: storage/ndb/test/ndbapi/old_dirs/testSystemRestart/Makefile
BitKeeper/deleted/.del-Makefile~c6f264b16640c32b:
Delete: storage/ndb/test/ndbapi/old_dirs/testScan/Makefile
BitKeeper/deleted/.del-Makefile~f5c05697b5c6a926:
Delete: storage/ndb/test/ndbapi/old_dirs/testTimeout/Makefile
BitKeeper/deleted/.del-Makefile~2e74033e6077aa3a:
Delete: storage/ndb/test/ndbapi/old_dirs/testTransactions/Makefile
BitKeeper/deleted/.del-Makefile~91dad370d76274be:
Delete: storage/ndb/test/ndbapi/old_dirs/vw_test/Makefile
BitKeeper/deleted/.del-Makefile~ddc74468722656bb:
Delete: storage/ndb/test/ndbapi/old_dirs/test_event/Makefile
BitKeeper/deleted/.del-bcd.h~81fbfcc1530534da:
Delete: storage/ndb/test/ndbapi/old_dirs/vw_test/bcd.h
BitKeeper/deleted/.del-client_start~1ecfaed180a75edd:
Delete: storage/ndb/test/ndbapi/old_dirs/vw_test/script/client_start
BitKeeper/deleted/.del-utv.h~f64af026b9705ebb:
Delete: storage/ndb/test/ndbapi/old_dirs/vw_test/utv.h
BitKeeper/deleted/.del-vcdrfunc.h~85803875180684cd:
Delete: storage/ndb/test/ndbapi/old_dirs/vw_test/vcdrfunc.h
BitKeeper/deleted/.del-Makefile~ae168985806f34e8:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/Makefile
BitKeeper/deleted/.del-Makefile~b50f189dfbc87d8a:
Delete: storage/ndb/src/common/portlib/old_dirs/memtest/munmaptest/Makefile
BitKeeper/deleted/.del-Makefile~dcc8c444bf25ce41:
Delete: storage/ndb/src/common/portlib/old_dirs/memtest/Makefile
BitKeeper/deleted/.del-NdbCondition.c~ee56562abdd718cf:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbCondition.c
BitKeeper/deleted/.del-NdbConditionOSE.h~455dd2c29c2e6344:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbConditionOSE.h
BitKeeper/deleted/.del-NdbEnv.c~bb6fe7572d45288a:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbEnv.c
BitKeeper/deleted/.del-NdbHost.c~cf18d6b3c825180c:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbHost.c
BitKeeper/deleted/.del-NdbMem.c~6c2b317c1ce230ab:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbMem.c
BitKeeper/deleted/.del-NdbMem_SoftOse.cpp~9c61e311ec168d44:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbMem_SoftOse.cpp
BitKeeper/deleted/.del-NdbMutex.c~f4bdd19be08b84ab:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbMutex.c
BitKeeper/deleted/.del-NdbOut.cpp~8caa99a0d729540c:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbOut.cpp
BitKeeper/deleted/.del-NdbSleep.c~b88fbc5b140de10d:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbSleep.c
BitKeeper/deleted/.del-NdbTCP.c~1e9f416992352f6d:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbTCP.c
BitKeeper/deleted/.del-NdbThread.c~fe71a67b5c3a4724:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbThread.c
BitKeeper/deleted/.del-NdbTick.c~b76feba2cf1493d1:
Delete: storage/ndb/src/common/portlib/old_dirs/ose/NdbTick.c
BitKeeper/deleted/.del-Makefile~aa96712c481bc8e:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/Makefile
BitKeeper/deleted/.del-Makefile~d04b4a185b6e1071:
Delete: storage/ndb/src/common/portlib/old_dirs/test/Makefile
BitKeeper/deleted/.del-NdbCondition.c~ad83464328ab37af:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbCondition.c
BitKeeper/deleted/.del-NdbDaemon.c~3b8101f376b28df:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbDaemon.c
BitKeeper/deleted/.del-NdbEnv.c~207f9ce9754c9e8a:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbEnv.c
BitKeeper/deleted/.del-NdbHost.c~2c29816c77396d7b:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbHost.c
BitKeeper/deleted/.del-NdbMem.c~6285b159985d46da:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbMem.c
BitKeeper/deleted/.del-NdbMutex.c~768131269bccca10:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbMutex.c
BitKeeper/deleted/.del-NdbSleep.c~b643ea3e7103eb62:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbSleep.c
BitKeeper/deleted/.del-NdbTCP.c~b09cdcbef3ea2c57:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbTCP.c
BitKeeper/deleted/.del-NdbThread.c~2fe1fa5f47801772:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbThread.c
BitKeeper/deleted/.del-NdbTick.c~aa6385567216509d:
Delete: storage/ndb/src/common/portlib/old_dirs/win32/NdbTick.c
BitKeeper/deleted/.del-Makefile~62207a82b90e653:
Delete: storage/ndb/test/tools/old_dirs/hugoCalculator/Makefile
BitKeeper/deleted/.del-Makefile~54e6a2262bbe162a:
Delete: storage/ndb/test/tools/old_dirs/hugoLockRecords/Makefile
BitKeeper/deleted/.del-Makefile~79e81dfed9112c7:
Delete: storage/ndb/test/tools/old_dirs/hugoLoad/Makefile
BitKeeper/deleted/.del-Makefile~c2b94348137b633a:
Delete: storage/ndb/test/tools/old_dirs/hugoPkDelete/Makefile
BitKeeper/deleted/.del-Makefile~f90065821a932b3f:
Delete: storage/ndb/test/tools/old_dirs/hugoFill/Makefile
BitKeeper/deleted/.del-Makefile~3ae1e42a4d7b1d6a:
Delete: storage/ndb/test/tools/old_dirs/hugoPkRead/Makefile
BitKeeper/deleted/.del-Makefile~89557cc224193d4:
Delete: storage/ndb/test/tools/old_dirs/hugoPkReadRecord/Makefile
BitKeeper/deleted/.del-Makefile~a6a5bd72a2311773:
Delete: storage/ndb/test/tools/old_dirs/hugoScanRead/Makefile
BitKeeper/deleted/.del-Makefile~e918384f46b2aef0:
Delete: storage/ndb/test/tools/old_dirs/hugoPkUpdate/Makefile
BitKeeper/deleted/.del-Makefile~2a7bcc03f802d4f:
Delete: storage/ndb/test/tools/old_dirs/hugoScanUpdate/Makefile
BitKeeper/deleted/.del-Makefile~2f05dedf982dcd9:
Delete: storage/ndb/test/tools/old_dirs/transproxy/Makefile
BitKeeper/deleted/.del-Makefile~b9e514baf06145d5:
Delete: storage/ndb/test/tools/old_dirs/restart/Makefile
BitKeeper/deleted/.del-Makefile~f1d6329f42d0922d:
Delete: storage/ndb/test/tools/old_dirs/verify_index/Makefile
BitKeeper/deleted/.del-waiter.cpp~b188e4bfddf2cf98:
Delete: storage/ndb/test/tools/old_dirs/waiter/waiter.cpp
BitKeeper/deleted/.del-Makefile~65110e0a5cb381:
Delete: storage/ndb/tools/old_dirs/copy_tab/Makefile
BitKeeper/deleted/.del-Makefile~6dbecfdfc2878bb3:
Delete: storage/ndb/tools/old_dirs/cpcc/Makefile
BitKeeper/deleted/.del-Makefile~77a4d0f4c11f13b5:
Delete: storage/ndb/tools/old_dirs/create_index/Makefile
BitKeeper/deleted/.del-Makefile~57f187037bf9e65d:
Delete: storage/ndb/tools/old_dirs/desc/Makefile
BitKeeper/deleted/.del-Makefile~b25e897a378dd139:
Delete: storage/ndb/tools/old_dirs/delete_all/Makefile
BitKeeper/deleted/.del-Makefile~1b4547a47a5607:
Delete: storage/ndb/tools/old_dirs/drop_index/Makefile
BitKeeper/deleted/.del-Makefile~62140e0b68eb516c:
Delete: storage/ndb/tools/old_dirs/drop_tab/Makefile
BitKeeper/deleted/.del-Makefile~b95bfed632918157:
Delete: storage/ndb/tools/old_dirs/list_tables/Makefile
BitKeeper/deleted/.del-Makefile.PL~81be90388548652f:
Delete: storage/ndb/tools/old_dirs/ndbnet/Makefile.PL
BitKeeper/deleted/.del-ndbnet.pl~8f8f1b18f0458269:
Delete: storage/ndb/tools/old_dirs/ndbnet/ndbnet.pl
BitKeeper/deleted/.del-ndbnetd.pl~e44f1cfe7e8bbe14:
Delete: storage/ndb/tools/old_dirs/ndbnet/ndbnetd.pl
BitKeeper/deleted/.del-Base.pm~50a6f0d38fa1a57c:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm
BitKeeper/deleted/.del-ndbrun~5db549d7436ac81b:
Delete: storage/ndb/tools/old_dirs/ndbnet/ndbrun
BitKeeper/deleted/.del-Client.pm~45adb527c5cfdaf6:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm
BitKeeper/deleted/.del-Command.pm~a20dff1bfd06ea7a:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm
BitKeeper/deleted/.del-Config.pm~24456d4beba19604:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm
BitKeeper/deleted/.del-Database.pm~cc02e455b02c557:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm
BitKeeper/deleted/.del-Env.pm~ffeca4ab253818c3:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm
BitKeeper/deleted/.del-Node.pm~276106bf4000fe2b:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm
BitKeeper/deleted/.del-NodeApi.pm~3abf1d7bc947d3d0:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm
BitKeeper/deleted/.del-NodeDb.pm~9e3055381da679ce:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm
BitKeeper/deleted/.del-NodeMgmt.pm~5123fbffcfce73cb:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm
BitKeeper/deleted/.del-Server.pm~70208c964371fd4d:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm
BitKeeper/deleted/.del-ServerINET.pm~fc72d28fedd17795:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm
BitKeeper/deleted/.del-ServerUNIX.pm~ad3e25435fceb8d0:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm
BitKeeper/deleted/.del-Base.pm~dd382c9eec2c38b1:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm
BitKeeper/deleted/.del-Database.pm~ec533cd5dd6a54a2:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm
BitKeeper/deleted/.del-Env.pm~a343841fae6d0514:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm
BitKeeper/deleted/.del-Net.pm~425c84165071d5f6:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm
BitKeeper/deleted/.del-Node.pm~339139ded5fcf795:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm
BitKeeper/deleted/.del-Run.pm~9b414f2b4b76a4da:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm
BitKeeper/deleted/.del-Base.pm~f39906f304e8a49:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm
BitKeeper/deleted/.del-Util.pm~9be64f1195ec502d:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm
BitKeeper/deleted/.del-Dir.pm~4cbe8dd8c57149a7:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm
BitKeeper/deleted/.del-Event.pm~f445c1c094f57cf:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm
BitKeeper/deleted/.del-File.pm~48da8e977f39bf7:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm
BitKeeper/deleted/.del-IO.pm~6c6a63ce63fe2ee5:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm
BitKeeper/deleted/.del-Lock.pm~366e56786358b3d8:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm
BitKeeper/deleted/.del-Log.pm~e0da9468a6f9213a:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm
BitKeeper/deleted/.del-Socket.pm~371ccd6c5a818fa0:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm
BitKeeper/deleted/.del-SocketINET.pm~db8a45b1360b69f2:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm
BitKeeper/deleted/.del-SocketUNIX.pm~9ffab2ada7f61530:
Delete: storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm
BitKeeper/deleted/.del-Makefile~b15469c2fbde2dec:
Delete: storage/ndb/tools/old_dirs/ndbsql/Makefile
BitKeeper/deleted/.del-Makefile~3d1cd223b42a8fa0:
Delete: storage/ndb/tools/old_dirs/select_count/Makefile
BitKeeper/deleted/.del-Makefile~62f516a16a0cf773:
Delete: storage/ndb/tools/old_dirs/select_all/Makefile
BitKeeper/deleted/.del-CounterViewer.java~e83264ff6a5be97:
Delete: storage/ndb/tools/old_dirs/src/counterviewer/CounterViewer.java
storage/ndb/Makefile.am:
Remove reference to old_files directory
Diffstat (limited to 'storage/ndb/tools/old_dirs/ndbnet/lib/NDB')
30 files changed, 0 insertions, 5142 deletions
diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm deleted file mode 100644 index 3b7b16bb3cf..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm +++ /dev/null @@ -1,42 +0,0 @@ -package NDB::Net; - -use strict; -use Carp; -require Exporter; - -use NDB::Util; - -use vars qw(@ISA @EXPORT @EXPORT_OK); -@ISA = qw(Exporter); - -use vars qw(@modules); -@modules = qw( - NDB::Net::Base - NDB::Net::Client - NDB::Net::Command - NDB::Net::Config - NDB::Net::Database - NDB::Net::Env - NDB::Net::Node - NDB::Net::NodeApi - NDB::Net::NodeDb - NDB::Net::NodeMgmt - NDB::Net::Server - NDB::Net::ServerINET - NDB::Net::ServerUNIX -); - -return 1 if $main::onlymodules; - -for my $module (@modules) { - eval "require $module"; - $@ and confess "$module $@"; -} - -for my $module (@modules) { - eval "$module->initmodule"; - $@ and confess "$module $@"; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm deleted file mode 100644 index 900446138e8..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm +++ /dev/null @@ -1,12 +0,0 @@ -package NDB::Net::Base; - -use strict; -use Carp; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm deleted file mode 100644 index d34a18d63af..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm +++ /dev/null @@ -1,252 +0,0 @@ -package NDB::Net::Client; - -use strict; -use Carp; -use POSIX(); -use Socket; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -my %clientcache = (); -my $clientid = 0; - -NDB::Net::Client->attributes( - id => sub { /^\d+$/ }, - addtime => sub { /^\d+$/ }, - state => sub { /^(new|input|cmd)$/ }, - socket => sub { ref && $_->isa('NDB::Util::Socket') }, - serversocket => sub { ref && $_->isa('NDB::Util::Socket') }, - serverlock => sub { ref && $_->isa('NDB::Util::Lock') }, - event => sub { ref && $_->isa('NDB::Util::Event') }, - context => sub { defined }, - cmd => sub { ref && $_->isa('NDB::Net::Command') }, -); - -sub desc { - my $client = shift; - my $id = $client->getid; - my $fileno = fileno($client->getsocket->getfh); - return "client $id fd=$fileno"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $client = $class->SUPER::new(%attr); - $client->setid(++$clientid) - or $log->push, return undef; - $client->setaddtime(time) - or $log->push, return undef; - $client->setstate(q(new)) - or $log->push, return undef; - $client->setsocket($attr{socket}) - or $log->push, return undef; - $client->setserversocket($attr{serversocket}) - or $log->push, return undef; - $client->setserverlock($attr{serverlock}) - or $log->push, return undef; - $client->setevent($attr{event}) - or $log->push, return undef; - $client->setcontext($attr{context}) - or $log->push, return undef; - $log->put("add")->push($client)->info; - $clientcache{$client->getid} = $client; - return $client; -} - -sub listall { - my $class = shift; - my $list = []; - for my $id (sort { $a <=> $b } keys %clientcache) { - my $client = $clientcache{$id}; - push(@$list, $client); - } - return $list; -} - -sub exists { - my $client = shift; - return exists($clientcache{$client->getid}); -} - -sub delete { - my $client = shift; - $log->put("delete")->push($client)->info; - $client->getevent->clear($client->getsocket, 'r'); - $client->getsocket->close; - delete $clientcache{$client->getid} or confess 'oops'; -} - -sub deleteother { - my $thisclient = shift; - for my $id (sort { $a <=> $b } keys %clientcache) { - my $client = $clientcache{$id}; - if ($client ne $thisclient) { - $client->delete; - } - } -} - -sub deleteall { - my $class = shift; - for my $id (sort { $a <=> $b } keys %clientcache) { - my $client = $clientcache{$id}; - $client->delete; - } -} - -# processing - -sub processnew { - my $client = shift; - @_ == 0 or confess 0+@_; - $log->put("process new")->push($client)->debug; - $client->getevent->set($client->getsocket, 'r'); - $log->attachuser(io => $client->getsocket); - $client->setstate(q(input)) - or $log->push, return undef; - return 1; -} - -sub processinput { - my $client = shift; - @_ == 0 or confess 0+@_; - $log->put("process input")->push($client)->debug; - my $line = $client->getsocket->readline; - if (! defined($line)) { - $log->push; - return undef; - } - if (length($line) == 0) { - if ($client->getsocket->getreadend) { - $log->put("no command")->push($client); - return undef; - } - $log->put("wait for input")->push($client)->debug; - return 1; - } - $log->put("got line: $line")->push($client)->info; - $client->getevent->clear($client->getsocket, 'r'); - my $cmd = NDB::Net::Command->new(line => $line) - or $log->push, return undef; - $log->put("command received")->push($cmd)->push($client)->debug; - $client->setcmd($cmd) - or $log->push, return undef; - $client->setstate(q(cmd)) - or $log->push, return undef; - return 1; -} - -sub processcmd { - my $client = shift; - @_ == 0 or confess 0+@_; - $log->put("process cmd")->push($client)->debug; - my $cmd = $client->getcmd; - my $context = $client->getcontext; - my $name_fg = "cmd_" . $cmd->getname . "_fg"; - my $name_bg = "cmd_" . $cmd->getname . "_bg"; - my $fg = $context->can($name_fg); - my $bg = $context->can($name_bg); - unless ($fg || $bg) { - $log->put("%s: unimplemented", $cmd->getname); - return undef; - } - my $ret; - if ($fg) { - $log->put($name_fg)->push($cmd)->push($client)->info; - if (! ref($context)) { - $ret = &$fg($cmd); - } - else { - $ret = &$fg($context, $cmd); - } - defined($ret) - or $log->push, return undef; - if (! $bg) { - $log->push($name_fg)->putvalue($ret)->user; - return 1; - } - } - if ($bg) { - $log->put($name_bg)->push($cmd)->push($client)->info; - my $pid = fork; - if (! defined($pid)) { - $log->put("fork failed: $!"); - return undef; - } - if ($pid == 0) { - $client->getserversocket->close; - $client->getserverlock->close; - $client->deleteother; - if (! ref($context)) { - $ret = &$bg($cmd); - } - else { - $ret = &$bg($context, $cmd); - } - if (! $ret) { - $log->push($client)->error; - $log->push($name_bg)->putvalue(undef)->user; - exit(1); - } - $log->push($name_bg)->putvalue($ret)->user; - exit(0); - } - } - return 1; -} - -sub process { - my $client = shift; - @_ == 0 or confess 0+@_; - try: { - if ($client->getstate eq q(new)) { - $client->processnew - or $log->push, last try; - } - if ($client->getstate eq q(input)) { - $client->processinput - or $log->push, last try; - } - if ($client->getstate eq q(cmd)) { - $client->processcmd - or $log->push, last try; - $log->detachuser; - $client->delete; - return 1; - } - return 1; - } - $log->push($client)->error; - $log->putvalue(undef)->user; - $log->detachuser; - $client->delete; - return undef; -} - -sub processall { - my $class = shift; - @_ == 0 or confess 0+@_; - my $list = $class->listall; - for my $client (@$list) { - $client->process; - } - while ((my $pid = waitpid(-1, &POSIX::WNOHANG)) > 0) { - $log->put("harvested pid=$pid")->info; - } -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm deleted file mode 100644 index 30145d09fa9..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm +++ /dev/null @@ -1,641 +0,0 @@ -package NDB::Net::Command; - -use strict; -use Carp; -use Getopt::Long; -use Text::ParseWords (); -use Text::Tabs (); - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -my($cmdtab, $aliastab); - -NDB::Net::Command->attributes( - name => sub { /^\s*\w+\b/ }, - argv => sub { ref eq 'ARRAY' }, - optspec => sub { ref eq 'ARRAY' }, - argspec => sub { /^\d+$/ || ref eq 'CODE' }, - short => sub { defined && ! ref }, - help => sub { defined && ! ref }, - opts => sub { ref eq 'HASH' }, - args => sub { ref eq 'ARRAY' }, -); - -sub desc { - my $cmd = shift; - return "command " . $cmd->getname("?"); -}; - -sub processname { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my $cmdargv = $cmd->getargv; - my $name = shift(@$cmdargv); - my %seen = (); - while ((my $entry) = grep($name eq $_->{name}, @$aliastab)) { - $seen{$name}++ && last; - unshift(@$cmdargv, split(' ', $entry->{value})); - $name = shift(@$cmdargv); - } - if ((my $entry) = grep($_->{name} eq $name, @$cmdtab)) { - $cmd->setname($entry->{name}) - or $log->push, return undef; - $cmd->setoptspec($entry->{optspec}) - or $log->push, return undef; - $cmd->setargspec($entry->{argspec}) - or $log->push, return undef; - } - else { - $log->put("$name: undefined")->push($cmd); - return undef; - } - return 1; -} - -sub getopttype { - my $cmd = shift; - my($key) = @_; - if (grep(/^$key$/, @{$cmd->getoptspec})) { - return 1; - } - if (grep(/^$key=/, @{$cmd->getoptspec})) { - return 2; - } - return undef; -} - -sub processargv { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my $cmdargv = $cmd->getargv; - my @newargv = (); - while (@$cmdargv) { - my $v = shift(@$cmdargv); - if (! defined($v)) { - next; - } - if (ref($v) eq 'ARRAY') { - unshift(@$cmdargv, @$v); # push back - next; - } - if (ref($v) eq 'HASH') { - for my $k (sort keys %$v) { - if ($cmd->getopttype($k) == 1) { - push(@newargv, "--$k"); - next; - } - if ($cmd->getopttype($k) == 2) { - push(@newargv, "--$k", $v->{$k}); - next; - } - $log->put("$k: undefined option")->push($cmd); - return undef; - } - next; - } - if (ref($v)) { - confess 'oops'; - } - push(@newargv, $v); - } - push(@$cmdargv, @newargv); - return 1; -} - -sub processopts { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my $cmdargv = $cmd->getargv; - local(@ARGV) = @$cmdargv; - try: { - local $SIG{__WARN__} = sub { - my $errstr = "@_"; - while (chomp($errstr)) {} - $log->put($errstr)->push($cmd); - }; - $cmd->setopts({}) - or $log->push, return undef; - Getopt::Long::Configure(qw( - default no_getopt_compat no_ignore_case - )); - GetOptions($cmd->getopts, @{$cmd->getoptspec}) - or return undef; - } - $cmd->setargs([ @ARGV ]) - or $log->push, return undef; - return 1; -} - -sub processargs { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my $cmdargs = $cmd->getargs; - if ($cmd->getargspec =~ /^\d+$/) { - if (@$cmdargs != $cmd->getargspec) { - $log->put("invalid arg count %d != %d", - scalar(@$cmdargs), $cmd->getargspec)->push($cmd); - return undef; - } - } - if (ref($cmd->getargspec) eq 'CODE') { - local $_ = scalar(@$cmdargs); - if (! &{$cmd->getargspec}()) { - $log->put("invalid arg count %d", - scalar(@$cmdargs))->push($cmd); - return undef; - } - } - return 1; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my %attr = @_; - my $cmd = $class->SUPER::new(%attr); - my $cmdargv = []; - $cmd->setargv($cmdargv) - or $log->push, return undef; - my $line = $attr{line}; - my $argv = $attr{argv}; - defined($line) != defined($argv) # exactly one - or confess 'oops'; - if (defined($line)) { - ! ref($line) or confess 'oops'; - push(@$cmdargv, Text::ParseWords::shellwords($line)); - } - if (defined($argv)) { - ref($argv) eq 'ARRAY' or confess 'oops'; - push(@$cmdargv, @$argv); - } - if (! @$cmdargv) { - $log->put("empty command"); - return undef; - } - $cmd->processname - or $log->push, return undef; - $cmd->processargv - or $log->push, return undef; - $cmd->processopts - or $log->push, return undef; - $cmd->processargs - or $log->push, return undef; - return $cmd; -} - -sub getline { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my @text = ($cmd->getname); - for my $k (sort keys %{$cmd->getopts}) { - if ($cmd->getopttype($k) == 1) { - push(@text, "--$k"); - next; - } - if ($cmd->getopttype($k) == 2) { - push(@text, "--$k", quotemeta($cmd->getopts->{$k})); - next; - } - confess 'oops'; - } - for my $s (@{$cmd->getargs}) { - push(@text, quotemeta($s)); - } - return "@text"; -} - -sub setopt { - my $cmd = shift; - my($key, $value) = @_; - if ($cmd->getopttype($key) == 1) { - @_ == 1 or confess 0+@_; - $cmd->getopts->{$key} = 1; - } - elsif ($cmd->getopttype($key) == 2) { - @_ == 2 or confess 0+@_; - $cmd->getopts->{$key} = $value; - } - else { - confess 'oops'; - } -} - -sub getopt { - my $cmd = shift; - @_ == 1 or confess 0+@_; - my($key) = @_; - $cmd->getopttype($key) or confess 'oops'; - return $cmd->getopts->{$key}; -} - -sub setarg { - my $cmd = shift; - @_ == 2 or confess 0+@_; - my($idx, $value) = @_; - $cmd->getargs->[$idx] = $value; -} - -sub getarg { - my $cmd = shift; - @_ == 1 or confess 0+@_; - my($idx) = @_; - return $cmd->getargs->[$idx]; -} - -sub getarglist { - my $cmd = shift; - @_ == 1 or confess 0+@_; - my($idx) = @_; - my @args = @{$cmd->getargs}; - @args = @args[$idx..$#args]; - return \@args; -} - -sub helptext { - my $cmd = shift; - @_ <= 1 or confess 0+@_; - my $name = $cmd->getargs->[0]; - my $text = ""; - my $indent = " "x4; - if (defined($name)) { - for my $entry (@$aliastab) { - if ($entry->{name} eq $name) { - $text .= "alias $name=\"$entry->{value}\"\n"; - ($name) = split(' ', $entry->{value}); - last; - } - } - } - else { - $text .= "COMMANDS\n"; - } - for my $entry (@$cmdtab) { - if (defined($name)) { - if ($entry->{name} eq $name) { - $text .= uc($name) . "\n"; - for my $t (split(/\n/, $entry->{help})) { - $text .= $indent; - $text .= Text::Tabs::expand($t) . "\n"; - } - last; - } - } - else { - $text .= $indent; - $text .= sprintf("%-16s%s\n", $entry->{name}, $entry->{short}); - } - } - if (! $text) { - $log->put("$name: undefined"); - return undef; - } - return $text; -} - -sub aliastext { - my $cmd = shift; - @_ == 0 or confess 0+@_; - my $text = ""; - my $indent = " "x4; - $text .= "ALIASES\n"; - for my $entry (@$aliastab) { - $text .= $indent; - $text .= sprintf("%-16s%s\n", $entry->{name}, $entry->{value}); - } - return $text; -} - -# commands -# name command name (unique) -# optspec option spec in Getopt::Long style -# argspec arg count (number or sub) -# short one line summary -# help long help text -# opts options HASH (after parse) -# args arguments ARRAY (after parse) - -$cmdtab = [ - { - name => "help", - optspec => [ qw() ], - argspec => sub { $_[0] <= 1 }, - short => "print help (try: h h)", - help => <<END, -help [name] -name command name or alias - -Print help summary or longer help text for one command. - -General: - -Options can be placed anywhere on command line and can be abbreviated. -Example: "start db11 -i" instead of "start --init_rm db11". - -Several commands have internal option --local which makes current server -do the work, instead of passing it to other servers. This option should -not be used explicitly, except for testing. -END - }, - { - name => "alias", - optspec => [ qw() ], - argspec => 0, - short => "list aliases", - help => <<END, -alias - -List built-in aliases. New ones cannot be defined (yet). -END - }, - { - name => "quit", - optspec => [ qw() ], - argspec => 0, - short => "exit ndbnet", - help => <<END, -quit - -Exit ndbnet client. -END - }, - { - name => "server", - optspec => [ qw(all direct pass parallel script=s local) ], - argspec => sub { $_ >= 1 }, - short => "net server commands", - help => <<END, -server action id... [options] -action start restart stop ping -id net server id from net config ---all do all servers listed in net config ---direct do not use a server ---pass pass current ndb environment to remote command ---parallel run in parallel when possible ---script path remote script instead of "ndbnetd" ---local for internal use by servers - -Each host needs one net server (ndbnetd). It should be started -from latest ndb installation, for example at system boot time. -A "server ping" is used to check that all servers are up (option ---all is added if no server ids are given). - -Other actions are mainly for testing. A "server start" tries to -start servers via "ssh". This does not work if "ssh" is not allowed -or if the remote command does not get right environment. - -Option --direct makes this ndbnet client do the work. It is assumed -for "server start" and it requires that a local net config exists. -Option --pass is useful in a homogeneous (NFS) environment. - -There are aliases "startserver" for "server start", etc. -END - }, - { - name => "start", - optspec => [ qw(init_rm nostart stop kill config old home=s clean proxy=s) ], - argspec => 1, - short => "start database", - help => <<END, -start dbname [options] -dbname database name ---init_rm destroy existing database files on each node ---nostart for DB nodes only do "ndb -n" ---stop do "stop dbname" first ---kill do "kill dbname" first ---config create run config but start no processes ---old use existing config files ---home dir override home (product dir) from config ---clean passed to startnode ---proxy list generate proxy ports (read the source) - -Start a database as follows: - -- start mgmt servers on all mgmt nodes -- start ndb processes on all db nodes -- send "all start" to first mgmt server (redundant) -- start processes on all api nodes (if runtype!="manual") - -Older database versions (v1.0) are started similarly except that there -are no management servers. - -The --proxy option is used for testing network problems. -END - }, - { - name => "startnode", - optspec => [ qw(init_rm nostart config old run=s home=s local clean proxy=s) ], - argspec => 2, - short => "start database node", - help => <<END, -startnode dbname nodeid [options] -dbname database name -nodeid node number ---init_rm destroy existing database files (if db node) ---nostart if DB node only do "ndb -n" ---config create run config but start no processes ---old use existing config files ---run cmd run this shell command, default from config file ---home dir override home (product dir) from config ---local node must be local to this ndbnet server ---clean remove old node dir first ---proxy list processed by mgmt nodes, see "start" command - -Start the process on one database node. The node can be of any type -(mgmt/db/api). If already running, does nothing. - -The --run option specifies a simple shell command (not pipeline etc). -Defaults: - -- mgmt node => mgmtsrvr -p port -l Ndb.cfg -i config.txt -c config.bin - where port comes from ndbnet.xml -- db node => ndb -- api node => based on ndbnet config, default empty - -The node server exits when the command exits (unless runtype is set to -auto). Command exit status is not available. - -Used internally by db "start" command. -END - }, - { - name => "stop", - optspec => [ qw() ], - argspec => 1, - short => "stop database", - help => <<END, -stop dbname [options] -dbname database name - -Stop a database as follows (see also "stopnode" command): - -- send SIGTERM to api processes, wait for them to exit -- send "all stop" command to first mgmt server -- wait for db processes to exit -- send "quit" to mgmt servers, wait for them to exit -END - }, - { - name => "stopnode", - optspec => [ qw(local) ], - argspec => 2, - short => "stop process on one node", - help => <<END, -stopnode dbname nodeid [options] -dbname database name -nodeid node number ---local node must be local to this server - -Stop process on one database node. Action depends on node type: - -- api node: send SIGTERM to the process, wait for it to exit -- db node: no action, wait for the ndb process to exit -- mgmt node: send "quit" command to mgmt server, wait for it to exit - -Used internally by db "stop" command. -END - }, - { - name => "kill", - optspec => [ qw() ], - argspec => 1, - short => "kill processes on all nodes", - help => <<END, -kill dbname [options] -dbname database name - -Send SIGKILL to processes on all nodes and wait for them to exit. -END - }, - { - name => "killnode", - optspec => [ qw(local) ], - argspec => 2, - short => "kill process on one node", - help => <<END, -killnode dbname nodeid [options] -dbname database name -nodeid node number ---local node must be local to this server - -Send SIGKILL to the process on the node and wait for it to exit. - -Used internally by db "kill" command. -END - }, - { - name => "statnode", - optspec => [ qw(local) ], - argspec => 2, - short => "get node run status (internal)", - help => <<END, -statnode dbname nodeid [options] -dbname database name -nodeid node number ---local node must be local to this server - -Get node run status (up/down) as a process. Used internally -and may not produce any output in ndbnet command. -END - }, - { - name => "list", - optspec => [ qw(quick short) ], - argspec => sub { 1 }, - short => "list databases", - help => <<END, -list [dbname] [options] -dbname database name, default is to list all ---quick only output config, do not query status ---short do list nodes - -List databases and nodes. Internally returns a data structure -of process and mgmt server status values for each node. Externally -(in ndbnet command) this is formatted as a listing. -END - }, - { - name => "writenode", - optspec => [ qw(wait=i local) ], - argspec => 3, - short => "write line of text to the process on a node", - help => <<END, -writenode dbname nodeid "some text" -dbname database name -nodeid node number -"some text" arbitrary text (quote if spaces) ---wait n wait n seconds for any response ---local node must be local to this server - -Write the text and a newline to the standard input of the process -running on the node. If wait > 0 is specified, prints whatever -the process wrote to stdout/stderr during that time. - -Used internally by "start" and other commands. -END - }, -]; - -# aliases -# name alias -# value expansion - -$aliastab = [ - { - name => "h", - value => "help", - }, - { - name => "q", - value => "quit", - }, - { - name => "EOF", - value => "quit", - }, - { - name => "startserver", - value => "server start", - }, - { - name => "ss", - value => "server start", - }, - { - name => "restartserver", - value => "server restart", - }, - { - name => "rss", - value => "server restart", - }, - { - name => "stopserver", - value => "server stop", - }, - { - name => "pingserver", - value => "server ping", - }, - { - name => "ps", - value => "server ping", - }, - { - name => "l", - value => "list", - }, -]; - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm deleted file mode 100644 index 4c5db3cd3f5..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm +++ /dev/null @@ -1,235 +0,0 @@ -package NDB::Net::Config; - -use strict; -use Carp; -use Symbol; -use Socket; -use Errno; -use XML::Parser; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::Config->attributes( - file => sub { /^\S+$/ }, - loadtime => sub { /^\d+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $netcfg = $class->SUPER::new(%attr); - $netcfg->setfile($attr{file}) - or $log->put, return undef; - return $netcfg; -} - -sub desc { - my $netcfg = shift; - return $netcfg->getfile; -} - -use vars qw(@context); - -sub handle_start { - my($parser, $tag, %attr) = @_; - my $p = $context[-1]; - my $q = {}; - $p->{$tag} ||= []; - push(@{$p->{$tag}}, $q); - for my $k (keys %attr) { - $q->{$k} = $attr{$k}; - } - push(@context, $q); - return 1; -} - -sub handle_end { - my($parser, $tag, %attr) = @_; - pop(@context); - return 1; -} - -sub load { - my $netcfg = shift; - my $file = $netcfg->getfile; - my @s; - while (1) { - if (@s = stat($file)) { - last; - } - $log->put("$file: stat failed: $!"); - if (! $!{ESTALE}) { - return undef; - } - $log->put("(retry)")->info; - sleep 1; - } - if ($s[9] <= $netcfg->getloadtime(0)) { - return 1; - } - my $fh = gensym(); - if (! open($fh, "<$file")) { - $log->put("$file: open for read failed: $!"); - return undef; - } - my $text = ""; - my $line; - while (defined($line = <$fh>)) { - $text .= $line; - } - close($fh); - my $parser = XML::Parser->new( - ParseParamEnt => 1, - Handlers => { - Start => \&handle_start, - End => \&handle_end, - }, - ); - delete $netcfg->{config}; - local @context = ($netcfg); - $parser->parse($text); - $netcfg->{text} = $text; - $netcfg->{config} = $netcfg->{config}[0]; - $netcfg->setloadtime(time) - or $log->push, return undef; - NDB::Net::Server->deleteall; - NDB::Net::Database->deleteall; - NDB::Net::Node->deleteall; - return 1; -} - -sub getservers { - my $netcfg = shift; - @_ == 0 or confess 0+@_; - my $servers = []; - my $slist = $netcfg->{config}{server} || []; - for my $s (@$slist) { - my $server; - $server = NDB::Net::ServerINET->get($s->{id}); - if (! $server) { - $server = NDB::Net::ServerINET->new(%$s); - if (! $server) { - $log->push($netcfg)->warn; - next; - } - } - push(@$servers, $server); - } - return $servers; -} - -sub getdatabases { - my $netcfg = shift; - @_ == 0 or confess 0+@_; - my $databases = []; - my $dlist = $netcfg->{config}{database} || []; - for my $d (@$dlist) { - if ($d->{isproto} eq "y") { - next; - } - if ($d->{name} !~ /^\w(\w|-)*$/) { - $log->put("$d->{name}: invalid db name")->push($netcfg)->warn; - next; - } - my $db = $netcfg->getdatabase($d->{name}); - if (! $db) { - $log->push->warn; - next; - } - push(@$databases, $db); - } - return $databases; -} - -sub getdatabase { - my $netcfg = shift; - @_ == 1 or confess 0+@_; - my($name) = @_; - $netcfg->getservers or return undef; # cache them - my $default = $netcfg->{config}{default}[0] || {}; - my $db; - my $dlist = $netcfg->{config}{database} || []; - my $nlist; - for my $d (@$dlist) { - ($d->{name} ne $name) && next; - if ($d->{isproto} eq "y") { - next; - } - my %attr = (%$default, %$d); - $db = NDB::Net::Database->new(%attr); - if (! $db) { - $log->push($netcfg); - return undef; - } - if ($d->{proto}) { - if ($d->{isproto} eq "y") { - $log->put("$name: prototypes cannot be recursive"); - return undef; - } - for my $d2 (@$dlist) { - ($d2->{name} ne $d->{proto}) && next; - if ($d2->{isproto} ne "y") { - $log->put("$name: $d2->{name} is not a prototype"); - return undef; - } - if (! $d->{node}) { - $d->{node} = $d2->{node}; - } - last; - } - } - $nlist = $d->{node} || []; - last; - } - if (! $db) { - $log->put("$name: no such db")->push($netcfg); - return undef; - } - if (! @$nlist) { - $log->put("$name: empty node list")->push($netcfg); - return undef; - } - for my $n (@$nlist) { - my $node; - try: { - my $server = NDB::Net::Server->get($n->{server}) - or last try; - my %attr = (%$n, db => $db, server => $server); - my $type = $attr{type}; - if ($type eq 'db') { - $node = NDB::Net::NodeDb->new(%attr) - or last try; - } - if ($type eq 'mgmt') { - $node = NDB::Net::NodeMgmt->new(%attr) - or last try; - } - if ($type eq 'api') { - $node = NDB::Net::NodeApi->new(%attr) - or last try; - } - $log->put("bad node type '$type'"); - } - if (! $node) { - $log->push($netcfg); - $db->delete; - return undef; - } - } - return $db; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm deleted file mode 100644 index 7ea15be0650..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm +++ /dev/null @@ -1,321 +0,0 @@ -package NDB::Net::Database; - -use strict; -use Carp; -use Symbol; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -my %dbcache = (); - -NDB::Net::Database->attributes( - name => sub { s/^\s+|\s+$//g; /^\S+$/ && ! m!/! }, - comment => sub { defined }, - version => sub { /^\d+(\.\d+)*$/ }, - base => sub { $^O eq 'MSWin32' || m!^/\S+$! }, - home => sub { $^O eq 'MSWin32' || m!^/\S+$! }, - nodeport => sub { $_ > 0 }, -); - -sub desc { - my $db = shift; - return $db->getname; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $db = $class->SUPER::new(%attr); - $db->setname($attr{name}) - or $log->push, return undef; - if ($dbcache{$db->getname}) { - $log->put("duplicate db")->push($db); - return undef; - } - $db->setcomment($attr{comment}); - $db->setversion($attr{version}) - or $log->push, return undef; - if (defined($attr{base})) { - $db->setbase($attr{base}) - or $log->push, return undef; - } - if (defined($attr{home})) { - if ($^O ne 'MSWin32' && $attr{home} !~ m!^/! && $db->hasbase) { - $attr{home} = $db->getbase . "/$attr{home}"; - } - $db->sethome($attr{home}) - or $log->push, return undef; - } - if (defined($attr{nodeport})) { - $db->setnodeport($attr{nodeport}) - or $log->push, return undef; - } - if ($^O eq 'MSWin32' && ! $db->hasnodeport) { - $log->put("nodeport required on windows")->push($db), return undef; - } - $db->{nodehash} = {}; - $dbcache{$db->getname} = $db; - return $db; -} - -sub delete { - my $db = shift; - my $nodelist = $db->getnodelist('all'); - for my $node (@$nodelist) { - $node->delete; - } - delete $dbcache{$db->getname}; -} - -sub deleteall { - my $class = shift; - for my $name (sort keys %dbcache) { - my $db = $dbcache{$name}; - $db->delete; - } -} - -# assume numerical dot separated version numbers like 1.1.2 -sub cmpversion { - my $db = shift; - my $version = shift; - my @x = split(/\./, $db->getversion); - my @y = split(/\./, $version); - while (@x || @y) { - return -1 if $x[0] < $y[0]; - return +1 if $x[0] > $y[0]; - shift(@x); - shift(@y); - } - return 0; -} - -# nodes - -sub addnode { - my $db = shift; - @_ == 1 or confess 0+@_; - my($node) = @_; - unless (ref($node) && $node->isa('NDB::Net::Node')) { - confess 'oops'; - } - my $id = $node->getid; - if ($db->{nodehash}{$id}) { - $log->put("$id: duplicate node id")->push($db); - return undef; - } - $db->{nodehash}{$id} = $node; - return 1; -} - -sub getnode { - my $db = shift; - @_ == 1 or confess 0+@_; - my($id) = @_; - $id += 0; - my $node = $db->{nodehash}{$id}; - if (! $node) { - $log->put("$id: no such node id")->push($db); - return undef; - } - return $node; -} - -sub getnodelist { - my $db = shift; - @_ == 1 or confess 0+@_; - my($type) = @_; - $type =~ /^(all|mgmt|db|api)$/ or confess 'oops'; - my @nodes = (); - for my $id (sort { $a <=> $b } keys %{$db->{nodehash}}) { - my $node = $db->{nodehash}{$id}; - if ($type eq 'all' or $type eq $node->gettype) { - push(@nodes, $node); - } - } - return \@nodes; -} - -# start /stop - -sub start { - my $db = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - if ($opts->{stop} || $opts->{kill}) { - my $method = $opts->{stop} ? "stop" : "kill"; - my %opts = (); - $db->$method(\%opts) - or $log->push, return undef; - } - $log->put("start")->push($db)->info; - my $nodesmgmt = $db->getnodelist('mgmt'); - my $nodesdb = $db->getnodelist('db'); - my $nodesapi = $db->getnodelist('api'); - my $ret; - try: { - my %startopts = (); - for my $k (qw(local init_rm nostart config old home clean proxy)) { - $startopts{$k} = $opts->{$k} if defined($opts->{$k}); - } - my %writeopts = (); - for my $k (qw(local)) { - $writeopts{$k} = $opts->{$k} if defined($opts->{$k}); - } - if ($db->cmpversion("1.0") > 0) { - for my $node (@$nodesmgmt) { - $node->start(\%startopts) or last try; - } - for my $node (@$nodesdb) { - $node->start(\%startopts) or last try; - } - if (! $opts->{config}) { - for my $node (@$nodesmgmt) { # probably redundant - $node->write(\%writeopts, "all start") or last try; - last; - } - } - } - else { - for my $node (@$nodesdb) { - $node->start(\%startopts) or last try; - } - if (! $opts->{config}) { - for my $node (@$nodesdb) { # probably redundant - $node->write(\%writeopts, "start") or last try; - } - } - } - for my $node (@$nodesapi) { - my %apiopts = %startopts; - if ($node->getruntype eq 'manual') { - $apiopts{config} = 1; - } - $node->start(\%apiopts) or last try; - } - $ret = 1; - } - if (! $ret) { - $log->push("start failed")->push($db); - return undef; - } - my $msg = ! $opts->{config} ? "start done" : "config created"; - $log->put($msg)->push($db)->user; - return 1; -} - -sub stop { - my $db = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("stop")->push($db)->info; - my $nodesmgmt = $db->getnodelist('mgmt'); - my $nodesdb = $db->getnodelist('db'); - my $nodesapi = $db->getnodelist('api'); - my $ret; - try: { - for my $node (@$nodesapi) { - $node->stop($opts) or last try; - } - if ($db->cmpversion("1.0") > 0) { - for my $node (@$nodesmgmt) { - $node->write($opts, "all stop") or last try; - last; - } - for my $node (@$nodesdb) { - $node->stop($opts) or last try; - } - for my $node (@$nodesmgmt) { - $node->stop($opts) or last try; - } - } - else { - for my $node (@$nodesdb) { - $node->write($opts, "stop") or last try; - } - for my $node (@$nodesdb) { - $node->stop($opts) or last try; - } - } - $ret = 1; - } - if (! $ret) { - $log->push("stop failed")->push($db); - return undef; - } - $log->put("stop done")->push($db)->user; - return 1; -} - -sub kill { - my $db = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("kill")->push($db)->info; - my $nodesmgmt = $db->getnodelist('mgmt'); - my $nodesdb = $db->getnodelist('db'); - my $nodesapi = $db->getnodelist('api'); - my $ret = 1; - try: { - for my $node (@$nodesapi) { - $node->kill($opts) || ($ret = undef); - } - for my $node (@$nodesdb) { - $node->kill($opts) || ($ret = undef); - } - for my $node (@$nodesmgmt) { - $node->kill($opts) || ($ret = undef); - } - } - if (! $ret) { - $log->push("kill failed")->push($db); - return undef; - } - $log->put("kill done")->push($db)->user; - return 1; -} - -sub list { - my $db = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - my $dbsts = {}; - $dbsts->{comment} = $db->getcomment(""); - $dbsts->{home} = $db->gethome; - $log->put("status")->push($db)->info; - my $mgmsts; - for my $node (@{$db->getnodelist('mgmt')}) { - $mgmsts = $node->get_status or - $log->push->error; - last; - } - $mgmsts ||= {}; - for my $node (@{$db->getnodelist('all')}) { - my $id = $node->getid; - my $nodests = $dbsts->{node}{$id} ||= {}; - my $stat = $node->stat($opts) or - $log->push->error; - $nodests->{id} = $id; - $nodests->{type} = $node->gettype; - $nodests->{comment} = $node->getcomment(""); - $nodests->{host} = $node->getserver->gethost; - $nodests->{run} = $stat || "error"; - $nodests->{status} = $mgmsts->{node}{$id}; - } - return $dbsts; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm deleted file mode 100644 index d79e72f2bb3..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm +++ /dev/null @@ -1,94 +0,0 @@ -package NDB::Net::Env; - -use strict; -use File::Spec; -use Carp; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# environment variables -# -# NDB_TOP source dir or installation dir -# NDB_BASE base dir not tied to any release or database -# NDB_NETCFG ndbnet config file, default $NDB_BASE/etc/ndbnet.xml -# -# ndbnet explicitly unsets NDB_TOP and NDB_HOME because they are -# specific to each database or database node - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::Env->attributes( - base => sub { /^\S+$/ }, - netcfg => sub { /^\S+$/ }, - hostname => sub { /^\S+$/ }, -); - -my $instance; - -sub desc { - my $netenv = shift; - return "net environment";; -} - -sub instance { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - if ($instance) { - return $instance; - } - for my $var (qw(NDB_TOP NDB_HOME)) { - my $top = delete $ENV{$var}; - if (defined($top)) { - if ($^O ne 'MSWin32') { - $ENV{PATH} =~ s!(^|:)$top/bin($|:)!$1$2!g; - $ENV{LD_LIBRARY_PATH} =~ s!(^|:)$top/lib($|:)!$1$2!g; - $ENV{PERL5LIB} =~ s!(^|:)$top/lib/perl5($|:)!$1$2!g; - } - } - } - my $netenv = $class->SUPER::new(%attr); - for my $base ($attr{base}, $ENV{NDB_BASE}) { - if (defined($base)) { - $netenv->setbase($base) - or $log->push, return undef; - } - } - for my $netcfg ($attr{netcfg}, $ENV{NDB_NETCFG}) { - if (defined($netcfg)) { - $netenv->setnetcfg($netcfg) - or $log->push, return undef; - } - } - if ($netenv->hasbase && ! $netenv->hasnetcfg) { - $netenv->setnetcfg(File::Spec->catfile($netenv->getbase, "etc", "ndbnet.xml")) - or $log->push, return undef; - } - my $uname; - if ($^O ne 'MSWin32') { - chomp($uname = `uname -n`); - } else { - chomp($uname = `hostname`); - } - my($hostname) = gethostbyname($uname); - if (! defined($hostname)) { - $uname =~ s!\..*$!!; - ($hostname) = gethostbyname($uname); - } - $netenv->sethostname($hostname) - or $log->push, return undef; - $instance = $netenv; - return $instance; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm deleted file mode 100644 index f41bf51168d..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm +++ /dev/null @@ -1,747 +0,0 @@ -package NDB::Net::Node; - -use strict; -use Carp; -use Symbol; -use Socket; -use IPC::Open3; -use POSIX(); -use Errno; -use File::Spec; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -my %nodecache = (); - -NDB::Net::Node->attributes( - db => sub { ref && $_->isa('NDB::Net::Database') }, - comment => sub { defined }, - id => sub { s/^\s+|\s+$//g; s/^0+(\d+)$/$1/; /^\d+$/ && $_ > 0 }, - type => sub { s/^\s+|\s+$//g; /^(mgmt|db|api)$/ }, - server => sub { ref && $_->isa('NDB::Net::Server') }, - base => sub { File::Spec->file_name_is_absolute($_) }, - home => sub { File::Spec->file_name_is_absolute($_) }, - state => sub { /^(new|run|stop)$/ }, - run => sub { defined }, - runenv => sub { defined }, - runtype => sub { m!(auto|once|manual)$! }, - lockpid => sub { $_ != 0 }, - iow => sub { ref && $_->isa('NDB::Util::IO') }, - ior => sub { ref && $_->isa('NDB::Util::IO') }, - pid => sub { $_ > 1 }, - event => sub { ref && $_->isa('NDB::Util::Event') }, -); - -sub desc { - my $node = shift; - my $dbname = $node->getdb->getname; - my $id = $node->getid; - my $type = $node->gettype; - return "$dbname.$id-$type"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $node = $class->SUPER::new(%attr); - $node->setdb($attr{db}) - or $log->push, return undef; - $node->setid($attr{id}) - or $log->push, return undef; - if ($nodecache{$node->getdb->getname,$node->getid}) { - $log->put("duplicate node")->push($node); - return undef; - } - $node->setcomment($attr{comment}); - $node->settype($attr{type}) - or $log->push, return undef; - if ($node->getdb->cmpversion("1.0") <= 0 && $node->gettype eq 'mgmt') { - $log->put("no mgmt nodes in db version <= 1.0")->push($node); - return undef; - } - $node->setserver($attr{server}) - or $log->push, return undef; - for my $base ($attr{base}, $node->getdb->getbase(undef)) { - if (defined($base)) { - $node->setbase($base) - or $log->push, return undef; - } - } - for my $home ($attr{home}, $node->getdb->gethome(undef)) { - if (defined($home)) { - if ($^O ne 'MSWin32' && $home !~ m!^/! && $node->hasbase) { - $home = $node->getbase . "/$home"; - } - $node->sethome($home) - or $log->push, return undef; - } - } - if (! $node->hashome) { - $log->put("home not defined")->push($node); - return undef; - } - $node->setstate('new') - or $log->push, return undef; - if (defined($attr{run})) { - $node->setrun($attr{run}) - or $log->push, return undef; - } - if (defined($attr{runenv})) { - $node->setrunenv($attr{runenv}) - or $log->push, return undef; - } - if (defined($attr{runtype})) { - $node->setruntype($attr{runtype}) - or $log->push, return undef; - } - if (! $node->hasruntype) { - my $runtype = "manual"; - $runtype = "once" - if $node->gettype =~ /^(mgmt|db)$/ || $node->hasrun; - $node->setruntype($runtype) - or $log->push, return undef; - } - if (! $node->getdb->addnode($node)) { - $log->push; - return undef; - } - $nodecache{$node->getdb->getname,$node->getid} = $node; - return $node; -} - -sub delete { - my $node = shift; - delete $nodecache{$node->getdb->getname,$node->getid} or - confess 'oops'; -} - -sub deleteall { - my $class = shift; - for my $k (sort keys %nodecache) { - my $node = $nodecache{$k}; - $node->delete; - } -} - -# node startup - -sub getconfdir { - my $node = shift; - @_ == 0 or confess 0+@_; - my $netenv = NDB::Net::Env->instance; - my $name = File::Spec->catfile($netenv->getbase, "etc"); - my $dir = NDB::Util::Dir->new(path => $name); - return $dir; -} - -sub getdbdir { - my $node = shift; - @_ == 0 or confess 0+@_; - my $netenv = NDB::Net::Env->instance; - my $name = File::Spec->catfile($netenv->getbase, "db", $node->getdb->getname); - my $dir = NDB::Util::Dir->new(path => $name); - return $dir; -} - -sub getnodedir { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("%s-%s", $node->getid, $node->gettype); - my $dir = $node->getdbdir->getdir($name); - return $dir; -} - -sub getrundir { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("run"); - my $dir = $node->getdbdir->getdir($name); - return $dir; -} - -sub getlogdir { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("log"); - my $dir = $node->getdbdir->getdir($name); - return $dir; -} - -sub getlock { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("%s-%s.pid", $node->getid, $node->gettype); - my $lock = $node->getrundir->getfile($name)->getlock; - return $lock; -} - -sub getsocketfile { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("%s-%s.socket", $node->getid, $node->gettype); - my $file = $node->getrundir->getfile($name); - return $file; -} - -sub getlogfile { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("%s-%s.log", $node->getid, $node->gettype); - my $file = $node->getlogdir->getfile($name); - return $file; -} - -sub getshellfile { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("run.sh"); - my $file = $node->getnodedir->getfile($name); - return $file; -} - -sub getlocalcfg { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = "Ndb.cfg"; - my $file = $node->getnodedir->getfile($name); - return $file; -} - -sub writelocalcfg { - my $node = shift; - @_ == 0 or confess 0+@_; - my $db = $node->getdb; - my $file = $node->getlocalcfg; - $file->mkdir or $log->push, return undef; - if ($db->cmpversion("1.0") <= 0) { - my $section = ""; - my $edit = sub { - chomp; - if (/^\s*\[\s*(\S+)\s*\]/) { - $section = uc($1); - } - if ($section eq 'OWN_HOST') { - if (/^\s*ThisHostId\b/i) { - $_ = "ThisHostId " . $node->getid; - } - } - if ($section eq 'CM') { - if (/^\s*ThisNodeId\b/i) { - $_ = "ThisNodeId " . $node->getid; - } - } - if (0 and $section eq 'PROCESS_ID') { - if (/^\s*Host(\d+)\s+(\S+)(.*)/) { - my $id2 = $1; - my $host2 = $2; - my $rest2 = $3; - my $node2 = $db->getnode($id2) - or $log->push, return undef; - $_ = "Host$id2 "; - $_ .= $node2->getserver->getcanon; - $_ .= " $rest2"; - } - } - $_ .= "\n"; - return 1; - }; - $node->getinifile->copyedit($file, $edit) - or $log->push, return undef; - } - else { - my @text = (); - push(@text, sprintf("OwnProcessId %s", $node->getid)); - my $nodesmgmt = $db->getnodelist('mgmt'); - for my $mnode (@$nodesmgmt) { - my $host = $mnode->getserver->getcanon; - my $port = $mnode->getport; - push(@text, "$host $port"); - } - $file->putlines(\@text) or $log->push, return undef; - } - return 1; -} - -sub getinifile { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("%s.ini", $node->getdb->getname); - my $file = $node->getconfdir->getfile($name); - return $file; -} - -sub getbincfg { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = sprintf("config.bin"); - my $file = $node->getnodedir->getfile($name); - return $file; -} - -sub getenvdefs { - my $node = shift; - @_ == 1 or confess 0+@_; - my $opts = shift; - my $home = $opts->{home} || $node->gethome; - my $netenv = NDB::Net::Env->instance; - if (! File::Spec->file_name_is_absolute($home)) { - $netenv->hasbase - or $log->put("no base and home=$home not absolute"), return undef; - $home = File::Spec->catfile($netenv->getbase, $home); - } - (-d $home) - or $log->put("$home: no such directory"), return undef; - my $defs; - if ($^O ne 'MSWin32') { - $defs = <<END; -# @{[ $node->desc ]} @{[ $node->getcomment("") ]} -# @{[ $node->getserver->desc ]} @{[ $node->getserver->getcanon ]} -# -debugger=\$1 -# -NDB_TOP=$home -export NDB_TOP -PATH=\$NDB_TOP/bin:\$PATH -export PATH -LD_LIBRARY_PATH=\$NDB_TOP/lib:\$LD_LIBRARY_PATH -export LD_LIBRARY_PATH -PERL5LIB=\$NDB_TOP/lib/perl5:\$PERL5LIB -export PERL5LIB -NDB_NODEID=@{[ $node->getid ]} -export NDB_NODEID -NDB_NODETYPE=@{[ $node->gettype ]} -export NDB_NODETYPE -ulimit -Sc unlimited -END - if ($node->hasrunenv) { - $defs .= <<END; -# -cd @{[ $node->getnodedir->getpath ]} || exit 1 -@{[ $node->getrunenv ]} -END - } - $defs .= <<END; -# -unset NDB_HOME # current NdbConfig.c would look here -# -END - } else { - $defs = <<END; -rem @{[ $node->desc ]} @{[ $node->getcomment("") ]} -rem @{[ $node->getserver->desc ]} @{[ $node->getserver->getcanon ]} -rem -set NDB_TOP=$home -set PATH=%NDB_TOP%\\bin;%PATH% -set PERL5LIB=%NDB_TOP%\\lib\\perl5;%PERL5LIB% -set NDB_NODEID=@{[ $node->getid ]} -set NDB_NODETYPE=@{[ $node->gettype ]} -END - if ($node->hasrunenv) { - $defs .= <<END; -rem -@{[ $node->getrunenv ]} -END - } - $defs .= <<END; -rem -rem current NdbConfig.c would look here -set NDB_HOME= -rem -END - } - chomp($defs); - return $defs; -} - -sub startlocal { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("start local")->push($node)->info; - my $lock = $node->getlock; - $lock->mkdir or $log->push, return undef; - anon: { - my $ret = $lock->test; - defined($ret) or $log->push, return undef; - if ($ret) { - $log->put("already running under serverpid=%s", - $lock->getpid)->push($node)->user; - return 1; - } - $lock->set or $log->push, return undef; - } - if ($opts->{clean}) { - $node->getnodedir->rmdir(1); - $node->getlogfile->unlink; - } - if (! $opts->{old}) { - $node->writelocalcfg or $log->push, return undef; - $node->handleprepare($opts) or $log->push, return undef; - } - anon: { - $lock->close; - if ($opts->{config}) { - return 1; - } - my $file = $node->getlogfile; - $file->mkdir or $log->push, return undef; - my $pid = fork(); - defined($pid) or $log->put("fork failed: $!"), return undef; - if ($pid) { - exit(0); - } - $lock->set or $log->push->fatal; - $node->setlockpid($$) or $log->push->fatal; - if ($^O ne 'MSWin32') { - POSIX::setsid() or $log->put("setsid failed: $!")->fatal; - } - $log->setfile($file->getpath) or $log->push->fatal; - } - my $socket; - anon: { - my $file = $node->getsocketfile; - $file->mkdir or $log->push($node)->fatal; - unlink($file->getpath); - if ($^O ne 'MSWin32') { - $socket = NDB::Util::SocketUNIX->new - or $log->push($node)->fatal; - } else { - $socket = NDB::Util::SocketINET->new - or $log->push($node)->fatal; - } - $socket->setopt(SOL_SOCKET, SO_REUSEADDR, 1) - or $log->push($node)->fatal; - if ($^O ne 'MSWin32') { - $socket->bind($file->getpath) - or $log->push($node)->fatal; - } else { - $socket->bind($node->getdb->getnodeport + $node->getid) - or $log->push($node)->fatal; - } - $socket->listen - or $log->push($node)->fatal; - } - START: { - my $w = gensym(); - my $r = gensym(); - my @arg = ('/bin/sh', $node->getshellfile->getpath); - my $pid = open3($w, $r, undef, @arg); - $node->setiow(NDB::Util::IO->new(fh => $w)) - or $log->push->fatal; - $node->setior(NDB::Util::IO->new(fh => $r)) - or $log->push->fatal; - $node->setpid($pid) - or $log->push->fatal; - } - $node->setstate('run') - or $log->push($node)->fatal; - $log->put("started host=%s pid=%s", - $node->getserver->gethost, $node->getpid)->push($node)->user; - $log->push("started")->push($node)->putvalue(1)->user; - $log->detachuser; - NDB::Net::Client->deleteall; - my $event = NDB::Util::Event->new; - $event->set($socket, 'r'); - $event->set($node->getior, 'r'); - loop: { - try: { - my $n = $event->poll(10); - if (! defined($n)) { - $log->push->error; - sleep 1; - last try; - } - if (! $n) { - $log->push->debug; - last try; - } - if ($node->hasior && $event->test($node->getior, 'r')) { - my $data = $node->getior->read; - if (! defined($data)) { - $log->push->fatal; - } - if (length($data) > 0) { - $node->handleoutput($opts, $data); - } - if ($node->getior->getreadend) { - $log->put("input closed")->warn; - $event->clear($node->getior, 'r'); - $node->getior->close; - $node->delior; - $node->handleeof($opts); - last loop; - } - } - if (! $event->test($socket, 'r')) { - last try; - } - my $csocket = $socket->accept(10); - if (! defined($csocket)) { - $log->push->error; - last try; - } - if (! $csocket) { - $log->push->warn; - last try; - } - my $client = NDB::Net::Client->new( - socket => $csocket, - serversocket => $socket, - serverlock => $lock, - event => $event, - context => $node, - ); - $client or $log->push->fatal; - } - NDB::Net::Client->processall; - redo loop; - } - if ($node->getruntype eq "auto") { - if ($node->getstate eq "run") { - $log->put("restart in 5 seconds...")->info; - sleep 5; - goto START; - } - $log->put("stopping, skip restart")->info; - } - $lock->close; - $node->getsocketfile->unlink; - while (wait() != -1) {} - $log->put("exit")->push->info; - exit(0); -} - -# handlers can be overridden in subclass - -sub handleprepare { confess 'oops'; } - -sub handleoutput { - my $node = shift; - @_ == 2 or confess 0+@_; - my($opts, $data) = @_; - $data =~ s/\015//g; - $data = $node->{savedata} . $data; - while ((my $i = index($data, "\n")) >= 0) { - my $line = substr($data, 0, $i); - $data = substr($data, $i+1); - $log->put($line)->info; - if ($opts->{user} && $line !~ /^\s*$/) { - $log->put($line)->user; - } - } - $node->{savedata} = $data; - if (1 && length $node->{savedata}) { # XXX partial line - my $line = $node->{savedata}; - $log->put($line)->info; - if ($opts->{user} && $line !~ /^\s*$/) { - $log->put($line)->user; - } - $node->{savedata} = ""; - } -} - -sub handleeof { -} - -# command subs can be overridden by subclass - -sub waitforexit { - my $node = shift; - my $lock = $node->getlock; - my $lockpid = $node->getlockpid; - my $n1 = 0; - my $n2 = 10; - while (1) { - my $ret = $lock->test; - defined($ret) or $log->push, return undef; - if (! $ret) { - $log->put("exit done")->push($node)->user; - last; - } - if ($lockpid != $lock->getpid) { - $log->put("restarted: lock pid changed %s->%s", - $lockpid, $lock->getpid)->push($node); - return undef; - } - if (++$n1 >= $n2) { - $n2 *= 2; - $log->put("wait for exit")->push($node)->user; - } - select(undef, undef, undef, 0.1); - } - return 1; -} - -sub cmd_stopnode_bg { - my($node, $cmd) = @_; - return $node->waitforexit; -} - -sub cmd_killnode_fg { - my($node, $cmd) = @_; - my $pid = $node->getpid; - $log->put("kill -9 $pid")->push($node)->user; - kill(9, $pid); - $node->setstate('stop') - or $log->push($node), return undef; - return 1; -} - -sub cmd_killnode_bg { - my($node, $cmd) = @_; - return $node->waitforexit; -} - -sub cmd_statnode_bg { - my($node, $cmd) = @_; - return "up"; -} - -sub cmd_writenode_fg { - my($node, $cmd) = @_; - my $text = $cmd->getarg(2); - while(chomp($text)) {}; - $log->put("write: $text")->push($node)->user; - $node->getiow->write("$text\n"); - my $output = ""; - if ((my $num = $cmd->getopt("wait")) > 0) { - my $lim = time + $num; - $node->getior->settimeout(1); - loop: { - my $data = $node->getior->read; - if (length($data) > 0) { - $node->handleoutput({user => 1}, $data); - $output .= $data; - } - redo loop if time < $lim; - } - $node->getior->settimeout(0); - } - return { output => $output }; -} - -# commands - -sub doremote { - my $node = shift; - my($cmdname, $opts, @args) = @_; - my $server = $node->getserver; - $log->put("$cmdname remote")->push($server)->push($node)->info; - my $argv = [ - $cmdname, q(--local), - $opts, $node->getdb->getname, $node->getid, @args ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $server->request($cmd) - or $log->push, return undef; - return $ret; -} - -sub dolocal { - my $node = shift; - my($cmdname, $opts, @args) = @_; - $log->put("$cmdname local")->push($node)->info; - if (! $node->getserver->islocal) { - $log->put("not local")->push($node->getserver)->push($node); - return undef; - } - if ($cmdname eq "startnode") { - return $node->startlocal($opts); - } - my $lock = $node->getlock; - anon: { - my $ret = $lock->test; - defined($ret) or $log->push, return undef; - if (! $ret) { - if ($cmdname eq "statnode") { - return "down"; - } - $log->put("not running")->push($node)->user; - return $cmdname eq "writenode" ? undef : 1; - } - } - my $server; - anon: { - my $path = $node->getsocketfile->getpath; - if (! -e $path) { - $log->put("$path: no socket")->push($node); - return undef; - } - if ($^O ne 'MSWin32') { - $server = NDB::Net::ServerUNIX->new(id => 0, path => $path) - or $log->push, return undef; - } else { - $server = NDB::Net::ServerINET->new(id => 0, host => $node->getserver->getcanon, port => $node->getdb->getnodeport + $node->getid) - or $log->push, return undef; - } - } - my $argv = [ - $cmdname, - $opts, $node->getdb->getname, $node->getid, @args ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $server->request($cmd) - or $log->push, return undef; - $log->put("$cmdname done")->push($node)->info; - return $ret; -} - -sub start { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("start")->push($node)->info; - my $do = $opts->{local} ? "dolocal" : "doremote"; - return $node->$do("startnode", $opts); -} - -sub stop { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("stop")->push($node)->info; - my $do = $opts->{local} ? "dolocal" : "doremote"; - return $node->$do("stopnode", $opts); -} - -sub kill { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("kill")->push($node)->info; - my $do = $opts->{local} ? "dolocal" : "doremote"; - return $node->$do("killnode", $opts); -} - -sub stat { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - $log->put("stat")->push($node)->info; - my $do = $opts->{local} ? "dolocal" : "doremote"; - return $node->$do("statnode", $opts); -} - -sub write { - my $node = shift; - @_ == 2 or confess 0+@_; - my($opts, $text) = @_; - $log->put("write: $text")->push($node)->info; - my $do = $opts->{local} ? "dolocal" : "doremote"; - return $node->$do("writenode", $opts, $text); -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm deleted file mode 100644 index 08f5f85577d..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm +++ /dev/null @@ -1,84 +0,0 @@ -package NDB::Net::NodeApi; - -use strict; -use Carp; -use Symbol; - -require NDB::Net::Node; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Node); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::NodeApi->attributes(); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $node = $class->SUPER::new(%attr, type => 'api') - or $log->push, return undef; - return 1; -} - -# run methods - -sub handleprepare { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - my $netenv = NDB::Net::Env->instance; - my $envdefs = $node->getenvdefs($opts); - defined($envdefs) or return undef; - my $nodedir = $node->getnodedir; - my $shellfile = $node->getshellfile; - my $run; - if ($node->hasrun) { - $run = $node->getrun; - } - if (defined($opts->{run})) { - $run = $opts->{run}; - } - if (defined($run)) { - $log->put("run: $run")->push($node)->user; - } - if ($^O ne 'MSWin32') { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -cd @{[ $nodedir->getpath ]} || exit 1 -set -x -exec \$DEBUGGER $run -END - } else { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -cd @{[ $nodedir->getpath ]} -call $run -END - } - return 1; -} - -sub cmd_stopnode_fg { - my($node, $cmd) = @_; - my $pid = $node->getpid; - unless ($pid > 1) { - $log->put("bad pid=$pid")->push($node); - return undef; - } - $log->put("kill -15 $pid")->push($node)->user; - kill(15, $pid); - $node->setstate('stop') - or log->push($node), return undef; - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm deleted file mode 100644 index 88a35ba4f8d..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm +++ /dev/null @@ -1,116 +0,0 @@ -package NDB::Net::NodeDb; - -use strict; -use Carp; -use Symbol; - -require NDB::Net::Node; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Node); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::NodeDb->attributes( - fsdir => sub { s/^\s+|\s+$//g; /^\S+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $node = $class->SUPER::new(%attr, type => 'db') - or $log->push, return undef; - $node->setfsdir($attr{fsdir}) - or $log->push, return undef; - return 1; -} - -# run methods - -sub handleprepare { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - my $netenv = NDB::Net::Env->instance; - my $envdefs = $node->getenvdefs($opts); - defined($envdefs) or return undef; - my $nodedir = $node->getnodedir; - my $shellfile = $node->getshellfile; - my $fsdir = NDB::Util::Dir->new( - path => sprintf("%s/%s/%s-%s.fs", - $node->getfsdir, $node->getdb->getname, $node->getid, $node->gettype)); - $fsdir->mkdir or $log->push, return undef; - my $init_rm; - my $run; - if ($^O ne 'MSWin32') { - $init_rm = "# no -i"; - if ($opts->{init_rm}) { - $init_rm = 'rm -f $NDB_FILESYSTEM/*/DBDIH/P0.sysfile'; - } - $run = "\$NDB_TOP/bin/ndb"; - } else { - $init_rm = "rem no -i"; - if ($opts->{init_rm}) { - $init_rm = - 'del/f %NDB_FILESYSTEM%\D1\DBDIH\P0.sysfile' . "\n" . - 'del/f %NDB_FILESYSTEM%\D2\DBDIH\P0.sysfile'; - } - $run = "ndb"; - } - if ($node->getdb->cmpversion("1.0") <= 0) { - $run .= " -s"; - } - if ($opts->{nostart}) { - $run .= " -n"; - } - if ($node->hasrun) { - $run = $node->getrun; - } - if (defined($opts->{run})) { - $run = $opts->{run}; - } - $log->put("run: $run")->push($node)->user; - if ($^O ne 'MSWin32') { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -NDB_FILESYSTEM=@{[ $fsdir->getpath ]} -export NDB_FILESYSTEM -# v1.0 compat -UAS_FILESYSTEM=\$NDB_FILESYSTEM -export UAS_FILESYSTEM -mkdir -p \$NDB_FILESYSTEM -$init_rm -cd @{[ $nodedir->getpath ]} || exit 1 -exec \$debugger $run -END - } else { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -set NDB_FILESYSTEM=@{[ $fsdir->getpath ]} -rem v1.0 compat -set UAS_FILESYSTEM=%NDB_FILESYSTEM% -mkdir %NDB_FILESYSTEM% -$init_rm -cd @{[ $nodedir->getpath ]} -call $run -END - } - return 1; -} - -sub cmd_stopnode_fg { - my($node, $cmd) = @_; - $node->setstate('stop') - or log->push($node), return undef; - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm deleted file mode 100644 index 1056e3df623..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm +++ /dev/null @@ -1,318 +0,0 @@ -package NDB::Net::NodeMgmt; - -use strict; -use Carp; -use Symbol; - -require NDB::Net::Node; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Node); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::NodeMgmt->attributes( - port => sub { s/^\s+|\s+$//g; /^\d+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $node = $class->SUPER::new(%attr, type => 'mgmt') - or $log->push, return undef; - $node->setport($attr{port}) - or $log->push, return undef; - return 1; -} - -# socket parser methods - -sub socketcommand { - my $node = shift; - my $socket; - $socket = NDB::Util::SocketINET->new or - $log->push($node), return undef; - $socket->settimeout(10); - $socket->connect($node->getserver->getcanon, $node->getport) or - $log->push($node), return undef; - $socket->write("GET STATUS\r\nBYE\r\n") or - $log->push($node), return undef; - my $out = ""; - my $data; - while ($data = $socket->read) { - $out .= $data; - } - $socket->close; - $out =~ s/\015//g; - return $out; -} - -sub get_status { - my $node = shift; - my $out = $node->socketcommand or - $log->push, return undef; - my @out = split(/\n/, $out); - $out[0] =~ /^get\s+status\s+(\d+)/i or - $log->put("bad line 0: $out[0]"), return undef; - my $cnt = $1; - my $ret = {}; - for (my $i = 1; $i <= $cnt; $i++) { - $out[$i] =~ /^$i\s+(.*)/ or - $log->put("bad line $i: $out[$i]"), return undef; - my $text = $1; - $text =~ s/^\s+|\s+$//g; - if ($text =~ /^ndb\s+(no_contact)\s+(\d+)$/i) { - $text = lc "$1"; - } elsif ($text =~ /^ndb\s+(starting)\s+(\d+)$/i) { - $text = lc "$1/$2"; - } elsif ($text =~ /^ndb\s+(started)\s+(\d+)$/i) { - $text = lc "$1"; - } elsif ($text =~ /^ndb\s+(shutting_down)\s+(\d+)$/i) { - $text = lc "$1"; - } elsif ($text =~ /^ndb\s+(restarting)\s+(\d+)$/i) { - $text = lc "$1"; - } elsif ($text =~ /^ndb\s+(unknown)\s+(\d+)$/i) { - $text = lc "$1"; - } - $ret->{node}{$i} = $text; - } - return $ret; -} - -# run methods - -sub getautoinifile { - my $node = shift; - @_ == 0 or confess 0+@_; - my $name = "config.txt"; - my $file = $node->getnodedir->getfile($name); - return $file; -} - -sub writeautoinifile { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - my $db = $node->getdb; - my $nodelist = $db->getnodelist('all'); - my $computers = {}; - for my $n (@$nodelist) { - $computers->{$n->getserver->getid} ||= { - id => $n->getserver->getid, - hostname => $n->getserver->getcanon, - }; - } - my $section = ""; # e.g. PROCESSES - my $auto; - my $edit = sub { - chomp; - s/^\s+|\s+$//g; - if (/^(\w+)$/) { - $section = uc($1); - } - elsif (/^\@loop$/i) { - $_ = "#$_"; - if ($auto) { - $log->put("nested \@loop"); - return undef; - } - $auto = {}; - } - elsif (/^\@base\s+(\S+)\s*$/) { - my $arg = $1; - $_ = "#$_"; - if (! $auto) { - $log->put("unexpected \@base"); - return undef; - } - if ($arg !~ /^\d+$/) { - $log->put("non-numerical \@base"); - return undef; - } - $auto->{base} = $arg; - } - elsif (/^\@end$/i) { - $_ = "#$_"; - if (! $auto) { - $log->put("unmatched \@end"); - return undef; - } - if ($section eq 'COMPUTERS') { - for my $id (sort { $a <=> $b } keys %$computers) { - my $computer = $computers->{$id}; - $_ .= "\n"; - $_ .= "\nId: " . $computer->{id}; - $_ .= "\nHostName: " . $computer->{hostname}; - if ($auto->{list}) { - $_ .= "\n#defaults"; - for my $s (@{$auto->{list}}) { - $_ .= "\n$s"; - } - } - } - } - elsif ($section eq 'PROCESSES') { - for my $n (@$nodelist) { - if ($auto->{type} && $n->gettype ne lc($auto->{type})) { - next; - } - $_ .= "\n"; - $_ .= "\nType: " . uc($n->gettype); - $_ .= "\nId: " . $n->getid; - $_ .= "\nExecuteOnComputer: " . $n->getserver->getid; - if ($auto->{list}) { - $_ .= "\n#defaults"; - for my $s (@{$auto->{list}}) { - $_ .= "\n$s"; - } - } - } - } - elsif ($section eq 'CONNECTIONS') { - if (! $auto->{type}) { - $log->put("cannot generate CONNECTIONS without type"); - return undef; - } - if (! defined($auto->{base})) { - $log->put("need \@base for CONNECTIONS"); - return undef; - } - my $key = $auto->{base}; - for (my $i1 = 0; $i1 <= $#$nodelist; $i1++) { - for (my $i2 = $i1+1; $i2 <= $#$nodelist; $i2++) { - my $n1 = $nodelist->[$i1]; - my $n2 = $nodelist->[$i2]; - if ($n1->gettype ne 'db' && $n2->gettype ne 'db') { - next; - } - $_ .= "\n"; - $_ .= "\nType: $auto->{type}"; - $_ .= "\nProcessId1: " . $n1->getid; - $_ .= "\nProcessId2: " . $n2->getid; - $key++; - if ($auto->{type} eq 'TCP') { - $_ .= "\nPortNumber: $key"; - if (my $list = $opts->{proxy}) { - my $id1 = $n1->getid; - my $id2 = $n2->getid; - if ($list =~ /\b$id1\b.*-.*\b$id2\b/) { - $key++; - $_ .= "\nProxy: $key"; - } elsif ($list =~ /\b$id2\b.*-.*\b$id1\b/) { - $key++; - $_ .= "\nProxy: $key"; - } - } - } - elsif ($auto->{type} eq 'SHM') { - $_ .= "\nShmKey: $key"; - } - else { - $log->put("cannot handle CONNECTIONS type $auto->{type}"); - return undef; - } - if ($auto->{list}) { - $_ .= "\n#defaults"; - for my $s (@{$auto->{list}}) { - $_ .= "\n$s"; - } - } - } - } - } - else { - $log->put("found \@end in unknown section '$section'"); - return undef; - } - undef $auto; - } - elsif (/^$/) { - } - elsif ($auto) { - if (/^Type:\s*(\w+)$/i) { - $auto->{type} = uc($1); - } - else { - $auto->{list} ||= []; - push(@{$auto->{list}}, $_); - } - $_ = ""; - return 1; # no output - } - $_ .= "\n"; - return 1; - }; - $node->getautoinifile->mkdir - or $log->push, return undef; - $node->getinifile->copyedit($node->getautoinifile, $edit) - or $log->push, return undef; - return 1; -} - -sub handleprepare { - my $node = shift; - @_ == 1 or confess 0+@_; - my($opts) = @_; - my $envdefs = $node->getenvdefs($opts); - defined($envdefs) or return undef; - my $nodedir = $node->getnodedir; - my $shellfile = $node->getshellfile; - my $port = $node->getport; - my $lpath = $node->getlocalcfg->getbasename; - $node->writeautoinifile($opts) - or $log->push, return undef; - my $ipath = $node->getautoinifile->getbasename; - $node->getbincfg->mkdir or $log->push, return undef; - my $cpath = $node->getbincfg->getbasename; - my $run; - if ($^O ne 'MSWin32') { - $run = "\$NDB_TOP/bin/mgmtsrvr"; - } else { - $run = "mgmtsrvr"; - } - my $statport = $port + 1; - $run .= " -l $lpath -c $ipath"; - if ($node->hasrun) { - $run = $node->getrun; - } - if (defined($opts->{run})) { - $run = $opts->{run}; - } - $log->put("run: $run")->push($node)->user; - if ($^O ne 'MSWin32') { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -cd @{[ $nodedir->getpath ]} || exit 1 -set -x -exec \$DEBUGGER $run -END - } else { - $shellfile->puttext(<<END) or $log->push, return undef; -$envdefs -cd @{[ $nodedir->getpath ]} -call $run -END - } - return 1; -} - -sub cmd_stopnode_fg { - my $node = shift; - @_ == 1 or confess 0+@_; - my($cmd) = @_; - $log->put("write: quit")->push($node)->user; - $node->getiow->write("quit\n"); - $node->setstate('stop') - or log->push($node), return undef; - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm deleted file mode 100644 index 5d2118f0ffe..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm +++ /dev/null @@ -1,149 +0,0 @@ -package NDB::Net::Server; - -use strict; -use Carp; -use Socket; - -require NDB::Net::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -my %servercache = (); - -NDB::Net::Server->attributes( - id => sub { s/^\s+|\s+$//g; m/^\S+$/ && ! m!/! }, - domain => sub { $_ == PF_UNIX || $_ == PF_INET }, -); - -sub desc { - my $server = shift; - my $id = $server->getid; - return "server $id"; -} - -sub add { - my $server = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - if ($servercache{$server->getid}) { - $log->put("duplicate server")->push($server); - return undef; - } - $servercache{$server->getid} = $server; - return 1; -} - -sub get { - my $class = shift; - @_ == 1 or confess 0+@_; - my($id) = @_; - $id =~ s/^\s+|\s+$//g; - my $server = $servercache{$id}; - if (! $server) { - $log->put("$id: undefined server"); - return undef; - } - $log->put("found")->push($server)->debug; - return $server; -} - -sub delete { - my $server = shift; - delete $servercache{$server->getid}; -} - -sub deleteall { - my $class = shift; - for my $id (sort keys %servercache) { - my $server = $servercache{$id}; - $server->delete; - } -} - -# local server is this server process - -my $localserver; - -sub setlocal { - my $server = shift; - @_ == 0 or confess 0+@_; - $localserver = $server; -} - -sub islocal { - my $server = shift; - @_ == 0 or confess 0+@_; - return $localserver eq $server; -} - -# client side - -sub testconnect { - my $server = shift; - @_ == 0 or confess 0+@_; - my $socket = $server->connect or - $log->push($server), return undef; - $socket->close; - return 1; -} - -sub request { - my $server = shift; - @_ == 1 or confess 0+@_; - my($cmd) = @_; - unless (ref($cmd) && $cmd->isa('NDB::Net::Command')) { - confess 'oops'; - } - my $socket = $server->connect - or $log->push($server), return undef; - anon: { - my $line = $cmd->getline; - my $n = $socket->write("$line\n"); - defined($n) && $n == length("$line\n") - or $log->push($server), return undef; - shutdown($socket->{fh}, 1); - } - my $value; - try: { - my $last; - loop: { - my $line = $socket->readline; - defined($line) - or $log->push($server), last try; - if ($socket->getreadend) { - last loop; - } - while (chomp($line)) {} - $log->put($line)->user - unless $log->hasvalue($line); - $last = $line; - redo loop; - } - if (! $log->hasvalue($last)) { - $log->put("missing return value in \"$last\"")->push($server); - last try; - } - $value = $log->getvalue($last); - defined($value) - or $log->push, last try; - $value = $value->[0]; - if (! defined($value)) { - $log->put("failed")->push($cmd); - last try; - } - } - $socket->close; - return $value; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm deleted file mode 100644 index a065c186855..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm +++ /dev/null @@ -1,116 +0,0 @@ -package NDB::Net::ServerINET; - -use strict; -use Carp; -use Socket; - -require NDB::Net::Server; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Server); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::ServerINET->attributes( - host => sub { s/^\s+|\s+$//g; /^\S+$/ }, - port => sub { s/^\s+|\s+$//g; /^\d+$/ }, - canon => sub { s/^\s+|\s+$//g; /^\S+$/ }, - aliases => sub { ref($_) eq 'ARRAY' }, -); - - -sub desc { - my $server = shift; - my $id = $server->getid; - my $host = $server->gethost; - return "server $id at $host"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $server = $class->SUPER::new(%attr); - $server->setid($attr{id}) - or $log->push, return undef; - $server->setdomain(PF_INET) - or $log->push, return undef; - $server->sethost($attr{host}) - or $log->push, return undef; - $server->setport($attr{port}) - or $log->push, return undef; - my($canon, $aliases) = gethostbyname($server->gethost); - if (! defined($canon)) { - $log->put("%s: unknown host", $server->gethost); - return undef; - } - $server->setcanon($canon) - or $log->push, return undef; - $server->setaliases([ split(' ', $aliases) ]) - or $log->push, return undef; - $server->add or - $log->push, return undef; - $log->put("added")->push($server)->debug; - return $server; -} - -# find matching servers - -sub match { - my $class = shift; - @_ == 3 or confess 0+@_; - my($host, $port, $servers) = @_; - if (! defined($port) && $host =~ /:/) { - ($host, $port) = split(/:/, $host, 2); - } - $host =~ s/^\s+|\s+$//g; - my($canon) = gethostbyname($host); - unless (defined($canon)) { - $log->put("$host: unknown host"); - return undef; - } - my $hostport = $host; - if (defined($port)) { - $port =~ s/^\s+|\s+$//g; - $port =~ /\d+$/ - or $log->put("$port: non-numeric port"), return undef; - $hostport .= ":$port"; - } - my @server = (); - for my $s (@$servers) { - ($s->getdomain == PF_INET) || next; - ($s->getcanon eq $canon) || next; - ($port && $s->getport != $port) && next; - push(@server, $s); - } - if (! @server) { - $log->put("$hostport: no server found"); - } - if (@server > 1) { - $log->put("$hostport: multiple servers at ports ", - join(' ', map($_->getport, @server))); - } - return \@server; -} - -# client side - -sub connect { - my $server = shift; - @_ == 0 or confess 0+@_; - my $socket; - $socket = NDB::Util::SocketINET->new or - $log->push, return undef; - $socket->connect($server->gethost, $server->getport) or - $log->push, return undef; - return $socket; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm deleted file mode 100644 index b3fa245d5ee..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm +++ /dev/null @@ -1,54 +0,0 @@ -package NDB::Net::ServerUNIX; - -use strict; -use Carp; -use Socket; - -require NDB::Net::Server; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Server); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::ServerUNIX->attributes( - path => sub { s/^\s+|\s+$//g; /^\S+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $server = $class->SUPER::new(%attr); - $server->setid($attr{id}) - or $log->push, return undef; - $server->setdomain(PF_UNIX) - or $log->push, return undef; - $server->setpath($attr{path}) - or $log->push, return undef; - $server->add or - $log->push, return undef; - return $server; -} - -# client side - -sub connect { - my $server = shift; - @_ == 0 or confess 0+@_; - my $socket; - $socket = NDB::Util::SocketUNIX->new or - $log->push, return undef; - $socket->connect($server->getpath) or - $log->push, return undef; - return $socket; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm deleted file mode 100644 index a8cabde544c..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm +++ /dev/null @@ -1,40 +0,0 @@ -package NDB::Run; - -use strict; -use Carp; -require Exporter; - -use NDB::Net; - -use vars qw(@ISA @EXPORT @EXPORT_OK); -@ISA = qw(Exporter); - -use vars qw(@modules); -@modules = qw( - NDB::Run::Base - NDB::Run::Database - NDB::Run::Env - NDB::Run::Node -); - -return 1 if $main::onlymodules; - -for my $module (@modules) { - eval "require $module"; - $@ and confess "$module $@"; -} - -for my $module (@modules) { - eval "$module->initmodule"; - $@ and confess "$module $@"; -} - -# methods - -sub getenv { - my $class = shift; - return NDB::Run::Env->new(@_); -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm deleted file mode 100644 index 4769f2c4441..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm +++ /dev/null @@ -1,12 +0,0 @@ -package NDB::Run::Base; - -use strict; -use Carp; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm deleted file mode 100644 index 9a12ddb20b3..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm +++ /dev/null @@ -1,89 +0,0 @@ -package NDB::Run::Database; - -use strict; -use Carp; - -require NDB::Run::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Run::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Run::Database->attributes( - name => sub { s/^\s+|\s+$//g; /^\S+$/ && ! m!/! }, - env => sub { ref && $_->isa('NDB::Run::Env') }, -); - -sub desc { - my $db = shift; - return $db->getname; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $db = $class->SUPER::new(%attr); - $db->setname($attr{name}) - or $log->push, return undef; - $db->setenv($attr{env}) - or $log->push, return undef; - return $db; -} - -sub getnode { - my $db = shift; - @_ == 1 or croak q(usage: $node = $db->getnode($id)); - my($id) = @_; - my $node = NDB::Run::Node->new(db => $db, id => $id) - or $log->push, return undef; - return $node; -} - -# commands - -sub start { - my $db = shift; - my $opts = shift; - my $argv = [ 'start', $db->getname, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $db->getenv->docmd($cmd); - defined($ret) - or $log->push, return undef; - return $ret; -} - -sub stop { - my $db = shift; - my $opts = shift; - my $argv = [ 'stop', $db->getname, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $db->getenv->docmd($cmd); - defined($ret) - or $log->push, return undef; - return $ret; -} - -sub kill { - my $db = shift; - my $opts = shift; - my $argv = [ 'kill', $db->getname, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $db->getenv->docmd($cmd); - defined($ret) - or $log->push, return undef; - return $ret; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm deleted file mode 100644 index e851a82636b..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm +++ /dev/null @@ -1,84 +0,0 @@ -package NDB::Run::Env; - -use strict; -use Carp; - -require NDB::Run::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Run::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Run::Env->attributes( - server => sub { ref && $_->isa('NDB::Net::Server') }, -); - -sub desc { - "env"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $env = $class->SUPER::new(%attr); - return $env; -} - -sub getdb { - my $env = shift; - @_ == 1 or croak q(usage: $db = $env->getdb($name)); - my($name) = @_; - my $db = NDB::Run::Database->new(env => $env, name => $name) - or $log->push, return undef; - return $db; -} - -# commands - -sub init { - my $env = shift; - my $netenv = NDB::Net::Env->instance; - my $netcfg = NDB::Net::Config->new(file => $netenv->getnetcfg) - or $log->push, return undef; - $netcfg->load - or $log->push, return undef; - my $servers = $netcfg->getservers - or $log->push, return undef; - my $server; - for my $s (@$servers) { - if (! $s->testconnect) { - $log->push->warn; - next; - } - $server = $s; - last; - } - if (! $server) { - $log->put("no available server")->push($netcfg); - return undef; - } - $env->setserver($server) - or $log->push, return undef; - $log->put("selected")->push($server)->info; - return 1; -} - -sub docmd { - my $env = shift; - my $cmd = shift; - my $ret = $env->getserver->request($cmd); - defined($ret) - or $log->push, return undef; - return $ret; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm deleted file mode 100644 index e657021b229..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm +++ /dev/null @@ -1,114 +0,0 @@ -package NDB::Run::Node; - -use strict; -use Carp; - -require NDB::Run::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Run::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Run::Node->attributes( - env => sub { ref && $_->isa('NDB::Run::Env') }, - db => sub { ref && $_->isa('NDB::Run::Database') }, - dbname => sub { s/^\s+|\s+$//g; /^\S+$/ && ! m!/! }, - id => sub { s/^\s+|\s+$//g; s/^0+(\d+)$/$1/; /^\d+$/ && $_ > 0 }, - type => sub { s/^\s+|\s+$//g; /^(mgmt|db|api)$/ }, -); - -sub desc { - my $node = shift; - my $dbname = $node->getdb->getname; - my $id = $node->getid; - my $type = "?"; # $node->gettype; - return "$dbname.$id-$type"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $node = $class->SUPER::new(%attr); - $node->setdb($attr{db}) - or $log->push, return undef; - $node->setenv($node->getdb->getenv) - or $log->push, return undef; - $node->setdbname($node->getdb->getname) - or $log->push, return undef; - $node->setid($attr{id}) - or $log->push, return undef; -# $node->settype($attr{type}) -# or $log->push, return undef; - return $node; -} - -# commands - -sub start { - my $node = shift; - my $opts = shift; - my $argv = [ 'startnode', $node->getdb->getname, $node->getid, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $node->getenv->docmd($cmd) - or $log->push, return undef; - return $ret; -} - -sub stop { - my $node = shift; - my $opts = shift; - my $argv = [ 'stopnode', $node->getdb->getname, $node->getid, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $node->getenv->docmd($cmd) - or $log->push, return undef; - return $ret; -} - -sub kill { - my $node = shift; - my $opts = shift; - my $argv = [ 'killnode', $node->getdb->getname, $node->getid, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $node->getenv->docmd($cmd) - or $log->push, return undef; - return $ret; -} - -sub stat { - my $node = shift; - my $opts = shift; - my $argv = [ 'statnode', $node->getdb->getname, $node->getid, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $node->getenv->docmd($cmd) - or $log->push, return undef; - return $ret; -} - -sub write { - my $node = shift; - my $text = shift; - my $opts = shift; - my $argv = [ 'writenode', $node->getdb->getname, $node->getid, $text, $opts ]; - my $cmd = NDB::Net::Command->new(argv => $argv) - or $log->push, return undef; - my $ret = $node->getenv->docmd($cmd) - or $log->push, return undef; - ref($ret) eq 'HASH' && defined($ret->{output}) - or confess 'oops'; - return $ret; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm deleted file mode 100644 index d5db35cbf13..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm +++ /dev/null @@ -1,37 +0,0 @@ -package NDB::Util; - -use strict; -use Carp; -require Exporter; - -use vars qw(@ISA @EXPORT @EXPORT_OK); -@ISA = qw(Exporter); - -use vars qw(@modules); -@modules = qw( - NDB::Util::Base - NDB::Util::Dir - NDB::Util::Event - NDB::Util::File - NDB::Util::IO - NDB::Util::Lock - NDB::Util::Log - NDB::Util::Socket - NDB::Util::SocketINET - NDB::Util::SocketUNIX -); - -return 1 if $main::onlymodules; - -for my $module (@modules) { - eval "require $module"; - $@ and confess "$module $@"; -} - -for my $module (@modules) { - eval "$module->initmodule"; - $@ and confess "$module $@"; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm deleted file mode 100644 index 20df78a3b9b..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm +++ /dev/null @@ -1,113 +0,0 @@ -package NDB::Util::Base; - -use strict; -use Carp; - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -sub new { - my $class = shift; - my $this = bless {}, $class; - return $this; -} - -sub getlog { - my $this = shift; - return NDB::Util::Log->instance; -} - -# clone an object -# extra attributes override or delete (if value is undef) -sub clone { - my $this = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $that = bless {}, ref($this); - for my $attr (sort keys %$this) { - if (! exists($attr{$attr})) { - my $get = "get$attr"; - $attr{$attr} = $this->$get(); - } - } - for my $attr (sort keys %attr) { - if (defined($attr{$attr})) { - my $set = "set$attr"; - $that->$set($attr{$attr}); - } - } - return $that; -} - -# methods for member variables: -# - set returns 1 on success and undef on undefined or invalid value -# - get aborts unless value exists or a default (maybe undef) is given -# - has tests existence of value -# - del deletes the value and returns it (maybe undef) - -sub attributes { - @_ % 2 == 1 or confess 0+@_; - my $class = shift; - my @attr = @_; - while (@attr) { - my $attr = shift @attr; - my $filter = shift @attr; - $attr =~ /^\w+$/ or confess $attr; - ref($filter) eq 'CODE' or confess $attr; - my $set = sub { - @_ == 2 or confess "set$attr: arg count: @_"; - my $this = shift; - my $value = shift; - if (! defined($value)) { - $log->put("set$attr: undefined value")->push($this); - return undef; - } - local $_ = $value; - if (! &$filter($this)) { - $log->put("set$attr: invalid value: $value")->push($this); - return undef; - } - $value = $_; - if (! defined($value)) { - confess "set$attr: changed to undef"; - } - $this->{$attr} = $value; - return 1; - }; - my $get = sub { - @_ == 1 || @_ == 2 or confess "get$attr: arg count: @_"; - my $this = shift; - my $value = $this->{$attr}; - if (! defined($value)) { - @_ == 0 and confess "get$attr: no value"; - $value = shift; - } - return $value; - }; - my $has = sub { - @_ == 1 or confess "has$attr: arg count: @_"; - my $this = shift; - my $value = $this->{$attr}; - return defined($value); - }; - my $del = sub { - @_ == 1 or confess "del$attr: arg count: @_"; - my $this = shift; - my $value = delete $this->{$attr}; - return $value; - }; - no strict 'refs'; - *{"${class}::set$attr"} = $set; - *{"${class}::get$attr"} = $get; - *{"${class}::has$attr"} = $has; - *{"${class}::del$attr"} = $del; - } -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm deleted file mode 100644 index 90609b971c7..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm +++ /dev/null @@ -1,170 +0,0 @@ -package NDB::Util::Dir; - -use strict; -use Carp; -use Symbol; -use Errno; -use File::Basename; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::Dir->attributes( - path => sub { length > 0 }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $dir = $class->SUPER::new(%attr); - $dir->setpath($attr{path}) - or $log->push, return undef; - return $dir; -} - -sub desc { - my $dir = shift; - return $dir->getpath; -} - -sub getparent { - my $dir = shift; - @_ == 0 or confess 0+@_; - my $ppath = dirname($dir->getpath); - my $pdir = NDB::Util::Dir->new(path => $ppath); - return $pdir; -} - -sub getdir { - my $dir = shift; - @_ == 1 or confess 0+@_; - my($name) = @_; - my $dirpath = $dir->getpath; - my $path = $dirpath eq '.' ? $name : File::Spec->catfile($dirpath, $name); - my $entry = NDB::Util::Dir->new(path => $path); - return $entry; -} - -sub getfile { - my $dir = shift; - @_ == 1 or confess 0+@_; - my($name) = @_; - my $dirpath = $dir->getpath; - my $path = $dirpath eq '.' ? $name : File::Spec->catfile($dirpath, $name); - my $entry = NDB::Util::File->new(path => $path); - return $entry; -} - -# list - -sub listdirs { - my $dir = shift; - @_ == 0 or confess 0+@_; - my @list = (); - my $dirpath = $dir->getpath; - my $dh = gensym(); - if (! opendir($dh, $dirpath)) { - $log->put("opendir failed: $!")->push($dir); - return undef; - } - while (defined(my $name = readdir($dh))) { - if ($name eq '.' || $name eq '..') { - next; - } - my $path = $dirpath eq '.' ? $name : "$dirpath/$name"; - if (! -l $path && -d $path) { - my $dir2 = NDB::Util::Dir->new(path => $path) - or $log->push, return undef; - push(@list, $dir2); - } - } - close($dh); - return \@list; -} - -sub listfiles { - my $dir = shift; - @_ == 0 or confess 0+@_; - my @list = (); - my $dirpath = $dir->getpath; - my $dh = gensym(); - if (! opendir($dh, $dirpath)) { - $log->put("opendir failed: $!")->push($dir); - return undef; - } - while (defined(my $name = readdir($dh))) { - if ($name eq '.' || $name eq '..') { - next; - } - my $path = $dirpath eq '.' ? $name : "$dirpath/$name"; - if (! -d $path && -e $path) { - my $file2 = NDB::Util::File->new(path => $path) - or $log->push, return undef; - push(@list, $file2); - } - } - close($dh); - return \@list; -} - -# create / remove - -sub mkdir { - my $dir = shift; - @_ == 0 or confess 0+@_; - if (! -d $dir->getpath) { - my $pdir = $dir->getparent; - if (length($pdir->getpath) >= length($dir->getpath)) { - $log->put("mkdir looping")->push($dir); - return undef; - } - $pdir->mkdir or return undef; - if (! mkdir($dir->getpath, 0777)) { - my $errstr = "$!"; - if (-d $dir->getpath) { - return 1; - } - $log->put("mkdir failed: $errstr")->push($dir); - return undef; - } - } - return 1; -} - -sub rmdir { - my $dir = shift; - my $keep = shift; # keep top level - $log->put("remove")->push($dir)->info; - my $list; - $list = $dir->listdirs or $log->push, return undef; - for my $d (@$list) { - $d->rmdir or $log->push, return undef; - } - $list = $dir->listfiles or $log->push, return undef; - for my $f (@$list) { - $f->unlink or $log->push, return undef; - } - if (! $keep && ! rmdir($dir->getpath)) { - my $errstr = "$!"; - if (! -e $dir->getpath) { - return 1; - } - $log->put("rmdir failed: $errstr")->push($dir); - return undef; - } - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm deleted file mode 100644 index a3ad32cd7fb..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm +++ /dev/null @@ -1,103 +0,0 @@ -package NDB::Util::Event; - -use strict; -use Carp; -use Errno; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::Event->attributes(); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $event = $class->SUPER::new(%attr); - return $event; -} - -# set and test bits - -sub check { - my $event = shift; - my($file, $type) = @_; - my $fileno; - if (ref($file) eq 'GLOB') { - $fileno = fileno($file); - } - elsif (ref($file)) { - $file->can("getfh") or confess 'oops'; - $fileno = fileno($file->getfh); - } - else { - $fileno = $file; - } - defined($fileno) or confess 'oops'; - $fileno =~ s/^\s+|\s+$//g; - $fileno =~ /^\d+$/ or confess 'oops'; - $type =~ /^[rwe]$/ or confess 'oops'; - return ($fileno, $type); -} - -sub set { - my $event = shift; - @_ == 2 or confess 0+@_; - my($fileno, $type) = $event->check(@_); - vec($event->{"i_$type"}, $fileno, 1) = 1; -} - -sub clear { - my $event = shift; - @_ == 2 or confess 0+@_; - my($fileno, $type) = $event->check(@_); - vec($event->{"i_$type"}, $fileno, 1) = 0; -} - -sub test { - my $event = shift; - @_ == 2 or confess 0+@_; - my($fileno, $type) = $event->check(@_); - return vec($event->{"o_$type"}, $fileno, 1); -} - -# poll - -sub poll { - my $event = shift; - @_ <= 1 or confess 'oops'; - my $timeout = shift; - if (defined($timeout)) { - $timeout =~ /^\d+$/ or confess 'oops'; - } - $event->{o_r} = $event->{i_r}; - $event->{o_w} = $event->{i_w}; - $event->{o_e} = $event->{i_e}; - my $n; - $n = select($event->{o_r}, $event->{o_w}, $event->{o_e}, $timeout); - if ($n < 0 || ! defined($n)) { - if ($! == Errno::EINTR) { - $log->put("select interrupted"); - return 0; - } - $log->put("select failed: $!"); - return undef; - } - if (! $n) { - $log->put("select timed out"); - } - return $n; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm deleted file mode 100644 index 4b3cb38191c..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm +++ /dev/null @@ -1,163 +0,0 @@ -package NDB::Util::File; - -use strict; -use Carp; -use Symbol; -use Errno; -use File::Basename; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::File->attributes( - path => sub { length > 0 }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $file = $class->SUPER::new(%attr); - $file->setpath($attr{path}) - or $log->push, return undef; - return $file; -} - -sub desc { - my $file = shift; - return $file->getpath; -} - -sub getdir { - my $file = shift; - @_ == 0 or confess 0+@_; - my $dirpath = dirname($file->getpath); - my $dir = NDB::Util::Dir->new(path => $dirpath); - return $dir; -} - -sub getlock { - my $file = shift; - @_ == 0 or confess 0+@_; - my $lock = NDB::Util::Lock->new(path => $file->getpath); - return $lock; -} - -sub getbasename { - my $file = shift; - @_ == 0 or confess 0+@_; - return basename($file->getpath); -} - -# make dir, unlink - -sub mkdir { - my $file = shift; - @_ == 0 or confess 0+@_; - return $file->getdir->mkdir; -} - -sub unlink { - my $file = shift; - @_ == 0 or confess 0+@_; - $log->put("remove")->push($file)->debug; - if (-e $file->getpath) { - if (! unlink($file->getpath)) { - my $errstr = "$!"; - if (! -e $file->getpath) { - return 1; - } - $log->put("unlink failed: $errstr")->push($file); - return undef; - } - } - return 1; -} - -# read /write - -sub open { - my $file = shift; - @_ == 1 or confess 0+@_; - my($mode) = @_; - my $fh = gensym(); - if (! open($fh, $mode.$file->getpath)) { - $log->put("open$mode failed")->push($file); - return undef; - } - my $io = NDB::Util::IO->new; - $io->setfh($fh) - or $log->push, return undef; - return $io; -} - -sub puttext { - my $file = shift; - @_ == 1 or confess 0+@_; - my($text) = @_; - ref($text) and confess 'oops'; - $file->mkdir - or $log->push, return undef; - $file->unlink - or $log->push, return undef; - my $io = $file->open(">") - or $log->push, return undef; - if (! $io->write($text)) { - $log->push($file); - $io->close; - return undef; - } - if (! $io->close) { - $log->push($file); - return undef; - } - return 1; -} - -sub putlines { - my $file = shift; - @_ == 1 or confess 0+@_; - my($lines) = @_; - ref($lines) eq 'ARRAY' or confess 'oops'; - my $text = join("\n", @$lines) . "\n"; - $file->puttext($text) or $log->push, return undef; - return 1; -} - -sub copyedit { - my $file1 = shift; - @_ == 2 or confess 0+@_; - my($file2, $edit) = @_; - my $io1 = $file1->open("<") - or $log->push, return undef; - my $io2 = $file2->open(">") - or $log->push, return undef; - local $_; - my $fh1 = $io1->getfh; - my $fh2 = $io2->getfh; - my $line = 0; - while (defined($_ = <$fh1>)) { - $line++; - if (! &$edit()) { - $log->push("line $line")->push($file1); - return undef; - } - print $fh2 $_; - } - $io1->close; - $io2->close; - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm deleted file mode 100644 index 34f4d0a150d..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm +++ /dev/null @@ -1,213 +0,0 @@ -package NDB::Util::IO; - -use strict; -use Carp; - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::IO->attributes( - readbuf => sub { defined }, - readend => sub { defined }, - writebuf => sub { defined }, - writeend => sub { defined }, - iosize => sub { $_ > 0 }, - timeout => sub { /^\d+$/ }, - fh => sub { ref($_) eq 'GLOB' && defined(fileno($_)) }, -); - -sub desc { - my $io = shift; - my $fileno = $io->hasfh ? fileno($io->getfh) : -1; - return "fd=$fileno"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $io = $class->SUPER::new(%attr); - $io->setreadbuf("") - or $log->push, return undef; - $io->setreadend(0) - or $log->push, return undef; - $io->setwritebuf("") - or $log->push, return undef; - $io->setwriteend(0) - or $log->push, return undef; - $io->setiosize(1024) - or $log->push, return undef; - $io->settimeout(0) - or $log->push, return undef; - if (defined($attr{fh})) { - $io->setfh($attr{fh}) - or $log->push, return undef; - } - return $io; -} - -# input / output - -sub read { - my $io = shift; - @_ == 0 or confess 0+@_; - if ($io->getreadend) { - return ""; - } - my $size = $io->getiosize; - my $timeout = $io->hastimeout ? $io->gettimeout : 0; - my $fh = $io->getfh; - my $n; - my $data; - eval { - if ($^O ne 'MSWin32' && $timeout > 0) { - local $SIG{ALRM} = sub { die("timed out\n") }; - alarm($timeout); - $n = sysread($fh, $data, $size); - alarm(0); - } - else { - $n = sysread($fh, $data, $size); - } - }; - if ($@) { - $log->put("read error: $@")->push($io); - return undef; - } - if (! defined($n)) { - $log->put("read failed: $!")->push($io); - return undef; - } - if ($n == 0) { - $io->setreadend(1) - or $log->push, return undef; - $log->put("read EOF")->push($io)->debug; - return ""; - } - (my $show = $data) =~ s!\n!\\n!g; - $log->put("read: $show")->push($io)->debug; - return $data; -} - -sub readbuf { - my $io = shift; - @_ == 0 or confess 0+@_; - my $data = $io->read; - defined($data) or - $log->push, return undef; - if (length($data) == 0) { - return 0; - } - $io->setreadbuf($io->getreadbuf . $data) - or $log->push, return undef; - return 1; -} - -sub readupto { - my $io = shift; - @_ == 1 or confess 0+@_; - my($code) = @_; - ref($code) eq 'CODE' or confess 'oops'; - my $k = &$code($io->getreadbuf); - if (! defined($k)) { - $log->push($io); - return undef; - } - if ($k == 0) { - my $n = $io->readbuf; - defined($n) or - $log->push, return undef; - if ($n == 0) { - if ($io->getreadbuf eq "") { - return ""; - } - $log->put("incomplete input: %s", $io->getreadbuf)->push($io); - return undef; - } - $k = &$code($io->getreadbuf); - if (! defined($k)) { - $log->push($io); - return undef; - } - if ($k == 0) { - return ""; - } - } - my $head = substr($io->getreadbuf, 0, $k); - my $tail = substr($io->getreadbuf, $k); - $io->setreadbuf($tail) - or $log->push, return undef; - return $head; -} - -sub readline { - my $io = shift; - @_ == 0 or confess 0+@_; - my $code = sub { - my $i = index($_[0], "\n"); - return $i < 0 ? 0 : $i + 1; - }; - return $io->readupto($code); -} - -sub write { - my $io = shift; - @_ == 1 or confess 0+@_; - my($data) = @_; - my $timeout = $io->hastimeout ? $io->gettimeout : 0; - my $fh = $io->getfh; - (my $show = $data) =~ s!\n!\\n!g; - $log->put("write: $show")->push($io)->debug; - my $n; - my $size = length($data); - eval { - local $SIG{PIPE} = sub { die("broken pipe\n") }; - if ($^O ne 'MSWin32' && $timeout > 0) { - local $SIG{ALRM} = sub { die("timed out\n") }; - alarm($timeout); - $n = syswrite($fh, $data, $size); - alarm(0); - } - else { - $n = syswrite($fh, $data, $size); - } - }; - if ($@) { - $log->put("write error: $@")->push($io); - return undef; - } - if (! defined($n)) { - $log->put("write failed: $!")->push($io); - return undef; - } - if ($n > $size) { - $log->put("impossible write: $n > $size")->push($io); - return undef; - } - if ($n != $size) { # need not be error - $log->put("short write: $n < $size")->push($io); - } - return $n; -} - -sub close { - my $io = shift; - @_ == 0 or confess 0+@_; - if (! close($io->delfh)) { - $log->put("close failed: $!")->push($io); - return undef; - } - return 1; -} - -1; diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm deleted file mode 100644 index b515e633059..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm +++ /dev/null @@ -1,136 +0,0 @@ -package NDB::Util::Lock; - -use strict; -use Carp; -use Symbol; -use Fcntl qw(:flock); -use Errno; -use File::Basename; - -require NDB::Util::File; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::File); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::Lock->attributes( - pid => sub { $_ != 0 }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $lock = $class->SUPER::new(%attr); - return $lock; -} - -sub desc { - my $lock = shift; - return $lock->getpath; -} - -# test / set - -sub test { - my $lock = shift; - @_ == 0 or confess 0+@_; - my $fh = gensym(); - if (! open($fh, "+<$lock->{path}")) { - if ($! != Errno::ENOENT) { - $log->put("$lock->{path}: open failed: $!"); - return undef; - } - return 0; # file does not exist - } - if (flock($fh, LOCK_EX|LOCK_NB)) { - close($fh); - return 0; # file was not locked - } - if ($^O eq 'MSWin32') { - close($fh); - if (! open($fh, "<$lock->{path}x")) { - $log->put("$lock->{path}x: open failed: $!"); - return undef; - } - } - my $pid = <$fh>; - close($fh); - ($pid) = split(' ', $pid); - if ($pid+0 == 0) { - $log->put("$lock->{path}: locked but pid='$pid' is zero"); - return undef; - } - $lock->{pid} = $pid; - return 1; # file was locked -} - -sub set { - my $lock = shift; - @_ == 0 or confess 0+@_; - my $fh = gensym(); - if (! open($fh, "+<$lock->{path}")) { - if ($! != Errno::ENOENT) { - $log->put("$lock->{path}: open failed: $!"); - return undef; - } - close($fh); - if (! open($fh, ">$lock->{path}")) { - $log->put("$lock->{path}: create failed: $!"); - return undef; - } - } - if (! flock($fh, LOCK_EX|LOCK_NB)) { - $log->put("$lock->{path}: flock failed: $!"); - close($fh); - return 0; # file was probably locked - } - my $line = "$$\n"; - if ($^O eq 'MSWin32') { - my $gh = gensym(); - if (! open($gh, ">$lock->{path}x")) { - $log->put("$lock->{path}x: open for write failed: $!"); - close($fh); - return undef; - } - if (! syswrite($gh, $line)) { - close($fh); - close($gh); - $log->put("$lock->{path}x: write failed: $!"); - return undef; - } - close($gh); - } else { - if (! truncate($fh, 0)) { - close($fh); - $log->put("$lock->{path}: truncate failed: $!"); - return undef; - } - if (! syswrite($fh, $line)) { - close($fh); - $log->put("$lock->{path}: write failed: $!"); - return undef; - } - } - $lock->{fh} = $fh; - return 1; # file is now locked by us -} - -sub close { - my $lock = shift; - @_ == 0 or confess 0+@_; - my $fh = delete $lock->{fh}; - if ($fh) { - close($fh); - } -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm deleted file mode 100644 index 44b39df84e6..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm +++ /dev/null @@ -1,367 +0,0 @@ -package NDB::Util::Log; - -use strict; -use Carp; -use Symbol; -use Data::Dumper (); - -require NDB::Util::Base; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Base); - -# constructors - -my $instance = undef; -my %attached = (); - -my %priolevel = qw(user 0 fatal 1 error 2 warn 3 notice 4 info 5 debug 6); -my %partlist = qw(time 1 pid 2 prio 3 text 4 line 5); - -NDB::Util::Log->attributes( - prio => sub { defined($priolevel{$_}) }, - parts => sub { ref eq 'HASH' }, - stack => sub { ref eq 'ARRAY' }, - io => sub { ref && $_->isa('NDB::Util::IO') }, - active => sub { defined }, - censor => sub { ref eq 'ARRAY' }, -); - -sub setpart { - my $log = shift; - @_ % 2 == 0 or confess 0+@_; - while (@_) { - my $part = shift; - my $onoff = shift; - $partlist{$part} or confess 'oops'; - $log->getparts->{$part} = $onoff; - } -} - -sub getpart { - my $log = shift; - @_ == 1 or confess 0+@_; - my($part) = @_; - $partlist{$part} or confess 'oops'; - return $log->getparts->{$part}; -} - -sub instance { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - if (! $instance) { - $instance = $class->SUPER::new(%attr); - $instance->setprio(q(info)); - $instance->setparts({ text => 1 }); - $instance->setstack([]); - $instance->setcensor([]); - my $io = NDB::Util::IO->new(fh => \*STDERR, %attr) - or confess 'oops'; - $instance->setio($io); - } - return $instance; -} - -# attached logs are written in parallel to main log -# user log is a special server-to-client log - -sub attach { - my $log = shift; - @_ % 2 == 1 or confess 0+@_; - my($key, %attr) = @_; - $attached{$key} and confess 'oops'; - my $alog = $attached{$key} = $log->clone(%attr); - return $alog; -} - -sub detach { - my $log = shift; - @_ == 1 or confess 0+@_; - my($key) = @_; - $attached{$key} or return undef; - my $alog = delete $attached{$key}; - return $alog; -} - -sub attachuser { - my $log = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - %attr = ( - prio => q(user), - parts => { text => 1 }, - censor => [ qw(NDB::Net::Client NDB::Util::IO) ], - %attr); - my $alog = $log->attach(q(user), %attr); - return $alog; -} - -sub detachuser { - my $log = shift; - @_ == 0 or confess 0+@_; - my $alog = $log->detach(q(user)); - return $alog; -} - -# input / output - -sub setfile { - my $log = shift; - @_ == 1 or confess 0+@_; - my $file = shift; - if (! open(STDOUT, ">>$file")) { - $log->put("$file: open for append failed: $!"); - return undef; - } - select(STDOUT); - $| = 1; - open(STDERR, ">&STDOUT"); - select(STDERR); - $| = 1; - return 1; -} - -sub close { - my $log = shift; - $log->getio->close; -} - -sub closeall { - my $class = shift; - for my $key (sort keys %attached) { - my $log = $attached{$key}; - $log->close; - } - $instance->close; -} - -# private - -sub entry { - my $log = shift; - my($clear, $file, $line, @args) = @_; - $file =~ s!^.*\bNDB/!!; - $file =~ s!^.*/bin/([^/]+)$!$1!; - my $text = undef; - if (@args) { - $text = shift(@args); - if (! ref($text)) { - if (@args) { - $text = sprintf($text, @args); - } - while (chomp($text)) {} - } - } - if ($clear) { - $#{$log->getstack} = -1; - } - push(@{$log->getstack}, { - line => "$file($line)", - text => $text, - }); -} - -sub matchlevel { - my $log = shift; - my $msgprio = shift; - my $logprio = $log->getprio; - my $msglevel = $priolevel{$msgprio}; - my $loglevel = $priolevel{$logprio}; - defined($msglevel) && defined($loglevel) - or confess 'oops'; - if ($msglevel == 0 && $loglevel == 0) { - return $msgprio eq $logprio; - } - if ($msglevel == 0 && $loglevel != 0) { - return $loglevel >= $priolevel{q(info)}; - } - if ($msglevel != 0 && $loglevel == 0) { - return $msglevel <= $priolevel{q(notice)}; - } - if ($msglevel != 0 && $loglevel != 0) { - return $msglevel <= $loglevel; - } - confess 'oops'; -} - -sub print { - my $log = shift; - @_ == 2 or confess 0+@_; - my($prio, $tmpstack) = @_; - if ($log->hasactive) { # avoid recursion - return; - } - if (! $log->matchlevel($prio)) { - return; - } - $log->setactive(1); - my @text = (); - if ($log->getpart(q(time))) { - my @t = localtime(time); - push(@text, sprintf("%02d-%02d/%02d:%02d:%02d", - 1+$t[4], $t[3], $t[2], $t[1], $t[0])); - } - if ($log->getpart(q(pid))) { - push(@text, "[$$]"); - } - if ($log->getpart(q(prio)) && - (0 == $priolevel{$prio} || $priolevel{$prio} <= $priolevel{notice})) - { - push(@text, "[$prio]"); - } - if ($log->getpart(q(text))) { - my @stack = @$tmpstack; - while (@stack) { - my $s = pop(@stack); - my $text = $s->{text}; - if (ref($text)) { - if (grep($text->isa($_), @{$log->getcensor})) { - next; - } - $text = $text->desc; - } - push(@text, $text) if length($text) > 0; - } - } - if ($log->getpart(q(line)) && - (0 < $priolevel{$prio} && $priolevel{$prio} <= $priolevel{warn})) - { - push(@text, "at"); - my @stack = @$tmpstack; - while (@stack) { - my $s = shift(@stack); - defined($s->{line}) or confess 'oops'; - if ($text[-1] ne $s->{line}) { - push(@text, $s->{line}); - } - } - } - $log->getio->write("@text\n"); - $log->delactive; -} - -sub printall { - my $log = shift; - @_ == 1 or confess 0+@_; - my($prio) = @_; - my $logstack = $log->getstack; - if (! @$logstack) { - $log->put("[missing log message]"); - } - my @tmpstack = (); - while (@$logstack) { - push(@tmpstack, shift(@$logstack)); - } - for my $key (sort keys %attached) { - my $alog = $attached{$key}; - $alog->print($prio, \@tmpstack); - } - $instance->print($prio, \@tmpstack); -} - -# public - -sub push { - my $log = shift; - my(@args) = @_; - my($pkg, $file, $line) = caller; - $log->entry(0, $file, $line, @args); - return $log; -} - -sub put { - my $log = shift; - my(@args) = @_; - my($pkg, $file, $line) = caller; - $log->entry(1, $file, $line, @args); - return $log; -} - -sub fatal { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(fatal)); - exit(1); -} - -sub error { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(error)); - return $log; -} - -sub warn { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(warn)); - return $log; -} - -sub notice { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(notice)); - return $log; -} - -sub info { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(info)); - return $log; -} - -sub debug { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(debug)); - return $log; -} - -sub user { - my $log = shift; - @_ == 0 or confess 0+@_; - $log->printall(q(user)); - return $log; -} - -# return values from server to client - -sub putvalue { - my $log = shift; - @_ == 1 or confess 0+@_; - my($value) = @_; - my $d = Data::Dumper->new([$value], [qw($value)]); - $d->Indent(0); - $d->Useqq(1); - my $dump = $d->Dump; - $dump =~ /^\s*\$value\s*=\s*(.*);\s*$/ or confess $dump; - $log->push("[value $1]"); -} - -sub hasvalue { - my $log = shift; - @_ == 1 or confess 0+@_; - my($line) = @_; - return $line =~ /\[value\s+(.*)\]/; -} - -sub getvalue { - my $log = shift; - @_ == 1 or confess 0+@_; - my($line) = @_; - $line =~ /\[value\s+(.*)\]/ or confess $line; - my $expr = $1; - my($value); - eval "\$value = $expr"; - if ($@) { - $log->put("$line: eval error: $@"); - return undef; - } - return [$value]; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm deleted file mode 100644 index 00e8b6eca51..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm +++ /dev/null @@ -1,158 +0,0 @@ -package NDB::Util::Socket; - -use strict; -use Carp; -use Symbol; -use Socket; -use Errno; - -require NDB::Util::IO; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::IO); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::Socket->attributes( - domain => sub { $_ == PF_INET || $_ == PF_UNIX }, - type => sub { $_ == SOCK_STREAM }, - proto => sub { /^(0|tcp)$/ }, -); - -sub desc { - my $socket = shift; - return $socket->SUPER::desc; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $socket = $class->SUPER::new(%attr); - $socket->setdomain($attr{domain}) - or $log->push, return undef; - $socket->settype($attr{type}) - or $log->push, return undef; - $socket->setproto($attr{proto}) - or $log->push, return undef; - my $nproto; - if ($socket->getproto =~ /^\d+/) { - $nproto = $socket->getproto; - } - else { - $nproto = getprotobyname($socket->getproto); - unless (defined($nproto)) { - $log->put("%s: getprotobyname failed", $socket->getproto); - return undef; - } - } - my $fh = gensym(); - if (! socket($fh, $socket->getdomain, $socket->gettype, $nproto)) { - $log->put("create socket failed: $!"); - return undef; - } - $socket->setfh($fh) - or $log->push, return undef; - return $socket; -} - -sub setopt { - my $socket = shift; - @_ >= 2 or confess 'oops'; - my $level = shift; - my $optname = shift; - my $optval = @_ ? pack("l*", @_) : undef; - my $fh = $socket->getfh; - if (! setsockopt($fh, $level, $optname, $optval)) { - $log->put("setsockopt failed: $!")->push($socket); - return undef; - } - return 1; -} - -sub connect { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($paddr) = @_; - my $fh = $socket->getfh; - if (! connect($fh, $paddr)) { - $log->put("connect failed: $!")->push($socket); - return undef; - } - $log->put("connect done")->push($socket)->debug; - return 1; -} - -sub bind { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($paddr) = @_; - my $fh = $socket->getfh; - if (! bind($fh, $paddr)) { - $log->put("bind failed: $!")->push($socket); - return undef; - } - return 1; -} - -sub listen { - my $socket = shift; - @_ == 0 or confess 0+@_; - my $fh = $socket->getfh; - if (! listen($fh, SOMAXCONN)) { - $log->put("listen failed: $!")->push($socket); - return undef; - } - return 1; -} - -sub accept { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($timeout) = @_; - $timeout =~ /^\d+$/ or confess 'oops'; - my $fh = $socket->getfh; - my $gh = gensym(); - my $paddr; - eval { - if ($^O ne 'MSWin32' && $timeout > 0) { - local $SIG{ALRM} = sub { die("timed out\n") }; - alarm($timeout); - $paddr = accept($gh, $fh); - alarm(0); - } - else { - $paddr = accept($gh, $fh); - } - }; - if ($@) { - $log->put("accept failed: $@")->push($socket); - return undef; - } - if (! $paddr) { - my $errno = 0+$!; - if ($errno == Errno::EINTR) { - $log->put("accept interrupted")->push($socket); - return 0; - } - $log->put("accept failed: $!")->push($socket); - return undef; - } - my $csocket = $socket->clone(fh => $gh); - $csocket->acceptaddr($paddr); - return $csocket; -} - -sub DESTROY { - my $socket = shift; - $socket->close; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm deleted file mode 100644 index faaa568a08e..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm +++ /dev/null @@ -1,86 +0,0 @@ -package NDB::Util::SocketINET; - -use strict; -use Carp; -use Symbol; -use Socket; -use Errno; - -require NDB::Util::Socket; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Socket); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::SocketINET->attributes( - host => sub { /^\S+$/ }, - port => sub { /^\d+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $socket = $class->SUPER::new(%attr, - domain => PF_INET, type => SOCK_STREAM, proto => 'tcp') - or $log->push, return undef; - return $socket; -} - -sub connect { - my $socket = shift; - @_ == 2 or confess 0+@_; - my($host, $port) = @_; - $port =~ /^\d+$/ or confess 'oops'; - my $iaddr = inet_aton($host); - if (! $iaddr) { - $log->put("host $host not found")->push($socket); - return undef; - } - my $paddr = pack_sockaddr_in($port, $iaddr); - $socket->SUPER::connect($paddr) - or $log->push, return undef; - $socket->sethost($host) - or $log->push, return undef; - $socket->setport($port) - or $log->push, return undef; - return 1; -} - -sub bind { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($port) = @_; - $port =~ /^\d+$/ or confess 'oops'; - my $paddr = pack_sockaddr_in($port, INADDR_ANY); - $socket->SUPER::bind($paddr) - or $log->push, return undef; - $socket->setport($port) - or $log->push, return undef; - return 1; -} - -sub acceptaddr { - my $csocket = shift; - @_ == 1 or confess 0+@_; - my($paddr) = @_; - my($port, $iaddr) = unpack_sockaddr_in($paddr); - my $host = gethostbyaddr($iaddr, AF_INET); - $csocket->sethost($host) - or $log->push, return undef; - $csocket->setport($port) - or $log->push, return undef; - $log->put("accept: host=%s port=%d", - $csocket->gethost, $csocket->getport)->push($csocket)->debug; - return 1; -} - -1; -# vim:set sw=4: diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm deleted file mode 100644 index 9c6b3115f6a..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm +++ /dev/null @@ -1,76 +0,0 @@ -package NDB::Util::SocketUNIX; - -use strict; -use Carp; -use Symbol; -use Socket; -use Errno; - -require NDB::Util::Socket; - -use vars qw(@ISA); -@ISA = qw(NDB::Util::Socket); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Util::SocketUNIX->attributes( - path => sub { /^\S+$/ }, -); - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $socket = $class->SUPER::new(%attr, - domain => PF_UNIX, type => SOCK_STREAM, proto => 0) - or $log->push, return undef; - return $socket; -} - -sub connect { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($path) = @_; - $path =~ /^\S+$/ or confess 'oops'; - my $paddr = pack_sockaddr_un($path); - $socket->SUPER::connect($paddr) - or $log->push, return undef; - $socket->setpath($path) - or $log->push, return undef; - return 1; -} - -sub bind { - my $socket = shift; - @_ == 1 or confess 0+@_; - my($path) = @_; - $path =~ /^\S+$/ or confess 'oops'; - my $paddr = pack_sockaddr_un($path); - $socket->SUPER::bind($paddr) - or $log->push, return undef; - $socket->setpath($path) - or $log->push, return undef; - return 1; -} - -sub acceptaddr { - my $csocket = shift; - @_ == 1 or confess 0+@_; - my($paddr) = @_; - return 1; # crash - my $path = unpack_sockaddr_un($paddr); - $csocket->setpath($path) - or $log->push, return undef; - $log->put("%s accept: path=%s", - $csocket->getpath)->push($csocket)->debug; - return 1; -} - -1; -# vim:set sw=4: |