Dear Drizzle Developers, I am looking forward to participate in GSOC 2011 with drizzle open source community. I started familiarising myself with drizzle source code few weeks ago under the guidance of LinuxJedi (Andrew). I set up the test bed on my local machine and now working on Bug# 621859 which is about consolidating the charset headers. The charset declarations are currently being done in multiple files. According to the bug that is reported, we need to move the declarations in to a single file in order to have one standard file that should be included as a header file where ever required. I further explored the codebase in order to find the potential solution to this bug. The changes are not that trivial as I was expecting in the beginning because there are large number of files that actually use these header files at the moment. The charset declaration files are:
charset.h charset_info.h global_charset_info.h I have the following queries regarding this: 1) Was this declarations ware deliberately done in multiple files based on the context of the declarations? The only reason that I can think of having distributed declarations is to reduce the size of header file. 2) All the charset declarations in these 3 files are under the same namespace, So wouldn't it be better to create on declaration file that define one single namespace and declare all the charset declarations in it. The following is the list of files that includes these charset declaration files. The following long list of files suggests that if we will consolidate the charset declarations into a single consolidated place then we have to remove the stale include statement from all these files. Your help and suggest would be really helpful in resolving this bug. Thanks. 1) Files that include *charset.h" client/drizzletest.cc:include <drizzled/charset.h drizzled/.deps/drizzled.Po:include/bits/dirent.h drizzled/charset.h drizzled/.deps/my_hash.Po:include/stddef.h drizzled/charset.h drizzled/.deps/sql_string.Po:include/strings.h drizzled/charset.h drizzled/.deps/sql_table.Po:include/strings.h drizzled/charset.h drizzled/.deps/sys_var.Po:include/strings.h drizzled/charset.h drizzled/.deps/xid.Po:include/c++/4.4/cstddef drizzled/charset.h drizzled/charset-def.cc:include <drizzled/charset.h drizzled/charset.cc:include <drizzled/charset.h drizzled/internal/.deps/my_init.Plo:include/strings.h drizzled/charset.h drizzled/internal/my_init.cc:include <drizzled/charset.h drizzled/item.cc:include <drizzled/function/str/conv_charset.h drizzled/drizzled.cc:include <drizzled/charset.h drizzled/dtcollation.cc:include <drizzled/function/str/conv_charset.h drizzled/dtcollation.cc:include <drizzled/charset.h drizzled/message/statement_transform.cc:include <drizzled/charset.h drizzled/function/str/conv_charset.cc:include <drizzled/function/str/conv_charset.h drizzled/function/str/set_collation.cc:include <drizzled/charset.h drizzled/function/time/typecast.cc:include <drizzled/charset.h drizzled/my_hash.cc:include <drizzled/charset.h drizzled/parser.h:include <drizzled/charset.h drizzled/plugin/storage_engine.cc:include <drizzled/charset.h drizzled/plugin/schema_engine.cc:include <drizzled/charset.h drizzled/plugin/table_function.h:include <drizzled/charset.h drizzled/schema.cc:include <drizzled/charset.h drizzled/sql_string.cc:include <drizzled/charset.h drizzled/sql_table.cc:include <drizzled/charset.h drizzled/sys_var.cc:include <drizzled/charset.h drizzled/table/instance/base.cc:include <drizzled/charset.h drizzled/table.cc:include <drizzled/charset.h drizzled/table_proto_write.cc:include <drizzled/charset.h drizzled/xid.cc:include <drizzled/charset.h plugin/haildb/haildb_datadict_dump_func.cc:include <drizzled/charset.h plugin/haildb/haildb_engine.cc:include <drizzled/charset.h plugin/innobase/handler/ha_innodb.cc:include <drizzled/charset.h plugin/md5/.deps/plugin_libmd5_plugin_la-md5.Plo:include/gcrypt-module.h drizzled/charset.h plugin/md5/md5.cc:include <drizzled/charset.h plugin/memcached_functions/memc_servers_set.h:include <drizzled/charset.h plugin/memcached_query_cache/query_cache_udf_tools.cc:include <drizzled/charset.h plugin/myisam/mi_open.cc:include <drizzled/charset.h plugin/schema_engine/schema.cc:include <drizzled/charset.h plugin/show_schema_proto/show_schema_proto.cc:include <drizzled/charset.h plugin/transaction_log/.deps/plugin_libtransaction_log_plugin_la-hexdump_transaction_message.Plo:include/bits/mman.h drizzled/qsort_cmp.h drizzled/charset.h plugin/transaction_log/.deps/plugin_libtransaction_log_plugin_la-print_transaction_message.Plo:include/bits/mman.h drizzled/qsort_cmp.h drizzled/charset.h plugin/transaction_log/hexdump_transaction_message.cc:include <drizzled/charset.h plugin/transaction_log/print_transaction_message.cc:include <drizzled/charset.h =================================== 2) Files that include *charset_info.h" drizzled/.deps/dtcollation.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/.deps/main.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/.deps/records.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/.deps/show.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/.deps/sql_table.Po:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h drizzled/.deps/tree.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/.deps/typelib.Plo:include/ctype.h drizzled/visibility.h drizzled/charset_info.h drizzled/charset-def.cc:include <drizzled/charset_info.h drizzled/charset.cc:include <drizzled/charset_info.h drizzled/internal/default.cc:include <drizzled/charset_info.h drizzled/internal/my_init.cc:include <drizzled/charset_info.h drizzled/internal/my_sys.h:include <drizzled/charset_info.h drizzled/item/copy_string.h:include <drizzled/charset_info.h drizzled/item/.deps/cmpfunc.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/item/bin_string.h:include <drizzled/charset_info.h drizzled/item/decimal.cc:include <drizzled/charset_info.h drizzled/item/int.cc:include <drizzled/charset_info.h drizzled/item/null.h:include <drizzled/charset_info.h drizzled/item/string.h:include <drizzled/charset_info.h drizzled/item/sum.h:include <drizzled/charset_info.h drizzled/item/uint.cc:include <drizzled/charset_info.h drizzled/item.h:include <drizzled/global_charset_info.h drizzled/ctype-bin.cc:include <drizzled/charset_info.h drizzled/dtcollation.cc:include <drizzled/charset_info.h drizzled/field/blob.h:include <drizzled/global_charset_info.h drizzled/field.h:include <drizzled/charset_info.h drizzled/field.h:include <drizzled/charset_info.h drizzled/identifier/.deps/table.Po:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/message/statement_transform.cc:include <drizzled/charset_info.h drizzled/message/statement_transform.cc:include <drizzled/global_charset_info.h drizzled/message/table.cc:include <drizzled/charset_info.h drizzled/message/table.cc:include <drizzled/global_charset_info.h drizzled/function/locate.cc:include <drizzled/charset_info.h drizzled/function/cast/boolean.h:include <drizzled/charset_info.h drizzled/function/cast/signed.cc:include <drizzled/charset_info.h drizzled/function/cast/unsigned.cc:include <drizzled/charset_info.h drizzled/function/find_in_set.cc:include <drizzled/charset_info.h drizzled/function/func.h:include <drizzled/charset_info.h drizzled/function/math/int.cc:include <drizzled/charset_info.h drizzled/function/time/typecast.h:include <drizzled/charset_info.h drizzled/my_hash.cc:include <drizzled/charset_info.h drizzled/parser.h:include <drizzled/global_charset_info.h drizzled/plugin/storage_engine.cc:include <drizzled/global_charset_info.h drizzled/plugin/.deps/table_function.Po:include/bits/string3.h drizzled/global_charset_info.h drizzled/plugin/schema_engine.cc:include <drizzled/global_charset_info.h drizzled/plugin/table_function.cc:include <drizzled/global_charset_info.h drizzled/schema.cc:include <drizzled/global_charset_info.h drizzled/sql_base.cc:include <drizzled/global_charset_info.h drizzled/sql_locale.cc:include <drizzled/charset_info.h drizzled/sql_parse.cc:include <drizzled/global_charset_info.h drizzled/sql_string.cc:include <drizzled/global_charset_info.h drizzled/sql_table.cc:include <drizzled/global_charset_info.h drizzled/statement/alter_table.cc:include <drizzled/global_charset_info.h drizzled/strfunc.cc:include <drizzled/charset_info.h drizzled/strfunc.cc:include <drizzled/global_charset_info.h drizzled/sys_var.h:include <drizzled/global_charset_info.h drizzled/table/instance/.deps/shared.Po:include/boost/bind/placeholders.hpp drizzled/charset_info.h drizzled/table/instance/.deps/singular.Po:include/boost/bind/placeholders.hpp drizzled/charset_info.h drizzled/table_proto_write.cc:include <drizzled/global_charset_info.h drizzled/temporal.cc:include <drizzled/charset_info.h drizzled/type/.deps/time.Po:include/bits/stdio_lim.h drizzled/charset_info.h drizzled/type/boolean.cc:include <drizzled/global_charset_info.h drizzled/type/boolean.cc:include <drizzled/charset_info.h drizzled/type/decimal.cc:include <drizzled/charset_info.h drizzled/type/time.cc:include <drizzled/charset_info.h drizzled/typelib.cc:include <drizzled/charset_info.h drizzled/typelib.h:include <drizzled/global_charset_info.h drizzled/xid.cc:include <drizzled/global_charset_info.h drizzled/xid.cc:include <drizzled/charset_info.h drizzled/memory/.deps/sql_alloc.Plo:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h drizzled/ctype-mb.cc:include <drizzled/charset_info.h drizzled/ctype-simple.cc:include <drizzled/charset_info.h drizzled/ctype-uca.cc:include <drizzled/charset_info.h drizzled/ctype-uni.cc:include <drizzled/charset_info.h drizzled/ctype-utf8.cc:include <drizzled/charset_info.h drizzled/ctype.cc:include <drizzled/charset_info.h plugin/archive/archive_reader.cc:include <drizzled/charset_info.h plugin/blackhole/ha_blackhole.cc:include <drizzled/global_charset_info.h Binary file plugin/blitzdb/.libs/plugin_libblitzdb_plugin_la-blitzcmp.o matches plugin/haildb/datadict_table_message.cc:include <drizzled/charset_info.h plugin/haildb/haildb_engine.cc:include <drizzled/global_charset_info.h plugin/hex_functions/hex_functions.cc:include <drizzled/charset_info.h plugin/innobase/handler/handler0alter.cc:include <drizzled/charset_info.h plugin/innobase/handler/ha_innodb.cc:include <drizzled/charset_info.h plugin/innobase/include/create_replication.h:include <drizzled/charset_info.h plugin/math_functions/ord.cc:include <drizzled/charset_info.h plugin/md5/md5.cc:include <drizzled/charset_info.h plugin/memory/heap_priv.h:include <drizzled/charset_info.h plugin/memory/hp_hash.cc:include <drizzled/charset_info.h plugin/myisam/mi_search.cc:include <drizzled/charset_info.h plugin/myisam/.deps/mi_preload.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mf_keycache.Plo:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h plugin/myisam/.deps/mi_cache.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_check.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_checksum.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_close.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_create.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_delete.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_delete_all.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_delete_table.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_dynrec.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_extra.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_info.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_key.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_locking.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_open.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_page.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_panic.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/sort.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_range.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rename.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rfirst.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rkey.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rlast.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rnext.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rnext_same.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rprev.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rrnd.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_rsame.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_scan.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_search.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_static.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_statrec.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_unique.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_update.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/mi_write.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/.deps/my_pread.Plo:include/c++/4.4/bitset drizzled/base.h drizzled/charset_info.h plugin/myisam/mi_create.cc:include <drizzled/global_charset_info.h plugin/myisam/mi_key.cc:include <drizzled/charset_info.h plugin/myisam/mi_locking.cc:include <drizzled/charset_info.h plugin/myisam/mi_open.cc:include <drizzled/charset_info.h plugin/myisam/mi_open.cc:include <drizzled/global_charset_info.h plugin/myisam/mi_unique.cc:include <drizzled/charset_info.h plugin/myisam/myisam.h:include <drizzled/charset_info.h plugin/myisam/my_handler.cc:include <drizzled/charset_info.h plugin/myisam/my_handler.h:include <drizzled/charset_info.h plugin/pbms/src/backup_ms.cc:include <drizzled/charset_info.h plugin/pbms/src/cloud_ms.cc:include <drizzled/charset_info.h plugin/pbms/src/database_ms.cc:include <drizzled/charset_info.h plugin/pbms/src/metadata_ms.h:include <drizzled/charset_info.h plugin/pbms/src/system_table_ms.cc:include <drizzled/charset_info.h plugin/pbxt/src/myxt_xt.cc:include <drizzled/charset_info.h plugin/reverse_function/reverse_function.cc:include <drizzled/charset_info.h plugin/schema_engine/schema.cc:include <drizzled/global_charset_info.h plugin/schema_engine/schema.cc:include <drizzled/charset_info.h plugin/storage_engine_api_tester/storage_engine_api_tester.cc:include <drizzled/global_charset_info.h plugin/string_functions/format.cc:include <drizzled/charset_info.h plugin/substr_functions/.deps/plugin_libsubstr_functions_plugin_la-substr_functions.Plo:include/c++/4.4/bits/stl_uninitialized.h drizzled/charset_info.h plugin/substr_functions/substr_functions.cc:include <drizzled/charset_info.h plugin/tableprototester/tableprototester.cc:include <drizzled/global_charset_info.h plugin/transaction_log/.deps/plugin_libtransaction_log_plugin_la-transaction_log.Plo:include/c++/4.4/bits/fstream.tcc drizzled/charset_info.h plugin/utility_functions/catalog.h:include <drizzled/charset_info.h plugin/utility_functions/catalog.h:include <drizzled/global_charset_info.h plugin/uuid_function/uuid_function.cc:include <drizzled/charset_info.h hassan@hassan-laptop:~/Desktop/d/drizzle/drizzle-fix-bugtest$ ================================= 3) Files that include *global_charset_info.h" drizzled/item.h:include <drizzled/global_charset_info.h drizzled/field/blob.h:include <drizzled/global_charset_info.h drizzled/message/statement_transform.cc:include <drizzled/global_charset_info.h drizzled/message/table.cc:include <drizzled/global_charset_info.h drizzled/parser.h:include <drizzled/global_charset_info.h drizzled/plugin/storage_engine.cc:include <drizzled/global_charset_info.h drizzled/plugin/.deps/table_function.Po:include/bits/string3.h drizzled/global_charset_info.h drizzled/plugin/schema_engine.cc:include <drizzled/global_charset_info.h drizzled/plugin/table_function.cc:include <drizzled/global_charset_info.h drizzled/schema.cc:include <drizzled/global_charset_info.h drizzled/sql_base.cc:include <drizzled/global_charset_info.h drizzled/sql_parse.cc:include <drizzled/global_charset_info.h drizzled/sql_string.cc:include <drizzled/global_charset_info.h drizzled/sql_table.cc:include <drizzled/global_charset_info.h drizzled/statement/alter_table.cc:include <drizzled/global_charset_info.h drizzled/strfunc.cc:include <drizzled/global_charset_info.h drizzled/sys_var.h:include <drizzled/global_charset_info.h drizzled/table_proto_write.cc:include <drizzled/global_charset_info.h drizzled/type/boolean.cc:include <drizzled/global_charset_info.h drizzled/typelib.h:include <drizzled/global_charset_info.h drizzled/xid.cc:include <drizzled/global_charset_info.h plugin/myisam/mi_create.cc:include <drizzled/global_charset_info.h plugin/myisam/mi_open.cc:include <drizzled/global_charset_info.h plugin/schema_engine/schema.cc:include <drizzled/global_charset_info.h plugin/storage_engine_api_tester/storage_engine_api_tester.cc:include <drizzled/global_charset_info.h plugin/tableprototester/tableprototester.cc:include <drizzled/global_charset_info.h plugin/utility_functions/catalog.h:include <drizzled/global_charset_info.h Thanks for the help. Umair Muhammad Electrical Engineering Master Student, Specialization in Wireless Systems, School of Electrical Engineering, Royal Institute of Technology (KTH), SE 100-44 Stockholm, SWEDEN. Email: [email protected] Cell: +46 764 097 574 _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

