40
39
#include <boost/filesystem.hpp>
41
40
#include <boost/detail/atomic_count.hpp>
43
#include <drizzled/cached_directory.h>
44
#include <drizzled/charset.h>
45
#include <drizzled/data_home.h>
46
#include <drizzled/debug.h>
47
#include <drizzled/definition/cache.h>
48
#include <drizzled/drizzled.h>
42
#include "drizzled/internal/my_sys.h"
43
#include "drizzled/internal/my_bit.h"
44
#include <drizzled/my_hash.h>
45
#include <drizzled/error.h>
49
46
#include <drizzled/errmsg_print.h>
50
#include <drizzled/error.h>
51
#include <drizzled/global_buffer.h>
52
#include <drizzled/internal/my_bit.h>
53
#include <drizzled/internal/my_sys.h>
47
#include <drizzled/tztime.h>
48
#include <drizzled/sql_base.h>
49
#include <drizzled/show.h>
50
#include <drizzled/sql_parse.h>
54
51
#include <drizzled/item/cmpfunc.h>
52
#include <drizzled/session.h>
55
53
#include <drizzled/item/create.h>
56
#include <drizzled/message/cache.h>
57
#include <drizzled/module/load_list.h>
58
#include <drizzled/module/registry.h>
59
#include <drizzled/my_hash.h>
60
#include <drizzled/plugin/client.h>
61
#include <drizzled/plugin/error_message.h>
62
#include <drizzled/plugin/event_observer.h>
63
#include <drizzled/plugin/listen.h>
64
#include <drizzled/plugin/monitored_in_transaction.h>
65
#include <drizzled/plugin/scheduler.h>
66
#include <drizzled/plugin/storage_engine.h>
67
#include <drizzled/plugin/xa_resource_manager.h>
68
#include <drizzled/probes.h>
69
#include <drizzled/replication_services.h> /* For ReplicationServices::evaluateRegisteredPlugins() */
70
#include <drizzled/session.h>
71
#include <drizzled/session/cache.h>
72
#include <drizzled/show.h>
73
#include <drizzled/sql_base.h>
74
#include <drizzled/sql_parse.h>
75
#include <drizzled/temporal_format.h> /* For init_temporal_formats() */
76
#include <drizzled/tztime.h>
77
54
#include <drizzled/unireg.h>
78
#include <plugin/myisam/myisam.h>
79
#include <drizzled/typelib.h>
80
#include <drizzled/visibility.h>
55
#include "drizzled/temporal_format.h" /* For init_temporal_formats() */
56
#include "drizzled/plugin/listen.h"
57
#include "drizzled/plugin/error_message.h"
58
#include "drizzled/plugin/client.h"
59
#include "drizzled/plugin/scheduler.h"
60
#include "drizzled/plugin/xa_resource_manager.h"
61
#include "drizzled/plugin/monitored_in_transaction.h"
62
#include "drizzled/replication_services.h" /* For ReplicationServices::evaluateRegisteredPlugins() */
63
#include "drizzled/probes.h"
64
#include "drizzled/session/cache.h"
65
#include "drizzled/charset.h"
66
#include "plugin/myisam/myisam.h"
67
#include "drizzled/drizzled.h"
68
#include "drizzled/module/registry.h"
69
#include "drizzled/module/load_list.h"
70
#include "drizzled/global_buffer.h"
72
#include "drizzled/debug.h"
74
#include "drizzled/definition/cache.h"
76
#include "drizzled/plugin/event_observer.h"
78
#include "drizzled/data_home.h"
80
#include "drizzled/message/cache.h"
82
#include "drizzled/visibility.h"
82
84
#include <google/protobuf/stubs/common.h>
84
#include <drizzled/refresh_version.h>
86
86
#if TIME_WITH_SYS_TIME
87
87
# include <sys/time.h>
367
379
fs::path base_plugin_dir(PKGPLUGINDIR);
369
po::options_description config_options(_("Config File Options"));
370
po::options_description long_options(_("Kernel Options"));
371
po::options_description plugin_load_options(_("Plugin Loading Options"));
372
po::options_description plugin_options(_("Plugin Options"));
373
po::options_description initial_options(_("Config and Plugin Loading"));
374
po::options_description full_options(_("Kernel and Plugin Loading and Plugin"));
381
po::options_description config_options("Config File Options");
382
po::options_description long_options("Kernel Options");
383
po::options_description plugin_load_options("Plugin Loading Options");
384
po::options_description plugin_options("Plugin Options");
385
po::options_description initial_options("Config and Plugin Loading");
386
po::options_description full_options("Kernel and Plugin Loading and Plugin");
375
387
vector<string> unknown_options;
376
388
vector<string> defaults_file_list;
377
389
po::variables_map vm;
666
659
static void find_plugin_dir(string progname)
668
fs::path full_progname(fs::system_complete(progname));
670
fs::path progdir(full_progname.parent_path());
671
if (progdir.filename() == ".libs")
673
progdir= progdir.parent_path();
676
if (fs::exists(progdir / "drizzled.lo") || fs::exists(progdir / "drizzled.o"))
661
if (progname[0] != FN_LIBCHAR)
663
/* We have a relative path and need to find the absolute */
664
char working_dir[FN_REFLEN];
665
char *working_dir_ptr= working_dir;
666
working_dir_ptr= getcwd(working_dir_ptr, FN_REFLEN);
667
string new_path(working_dir);
668
if (*(new_path.end()-1) != '/')
669
new_path.push_back('/');
670
if (progname[0] == '.' && progname[1] == '/')
671
new_path.append(progname.substr(2));
673
new_path.append(progname);
674
progname.swap(new_path);
677
/* Now, trim off the exe name */
678
string progdir(progname.substr(0, progname.rfind(FN_LIBCHAR)+1));
679
if (progdir.rfind(".libs/") != string::npos)
681
progdir.assign(progdir.substr(0, progdir.rfind(".libs/")));
683
string testlofile(progdir);
684
testlofile.append("drizzled.lo");
685
string testofile(progdir);
686
testofile.append("drizzled.o");
687
struct stat testfile_stat;
688
if (not (stat(testlofile.c_str(), &testfile_stat) && stat(testofile.c_str(), &testfile_stat)))
678
690
/* We are in a source dir! Plugin dir is ../plugin/.libs */
679
base_plugin_dir= progdir.parent_path();
691
size_t last_libchar_pos= progdir.rfind(FN_LIBCHAR,progdir.size()-2)+1;
692
base_plugin_dir= progdir.substr(0,last_libchar_pos);
680
693
base_plugin_dir /= "plugin";
681
694
base_plugin_dir /= ".libs";
1101
1120
global_system_variables.time_zone= my_tz_SYSTEM;
1103
char ret_hostname[FN_REFLEN];
1104
if (gethostname(ret_hostname,sizeof(ret_hostname)) < 0)
1122
if (gethostname(glob_hostname,sizeof(glob_hostname)) < 0)
1106
errmsg_printf(error::WARN,
1107
_("gethostname failed, using '%s' as hostname"),
1108
getServerHostname().c_str());
1124
strncpy(glob_hostname, STRING_WITH_LEN("localhost"));
1125
errmsg_printf(error::WARN, _("gethostname failed, using '%s' as hostname"),
1109
1127
pid_file= "drizzle";
1113
setServerHostname(ret_hostname);
1114
pid_file= getServerHostname();
1131
pid_file= glob_hostname;
1116
1133
pid_file.replace_extension(".pid");