/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007-2009 Dennis Friis <peavey@inspircd.org>
- * Copyright (C) 2007, 2009 Craig Edwards <craigedwards@brainbox.cc>
- * Copyright (C) 2008 Pippijn van Steenhoven <pip88nl@gmail.com>
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2015 Daniel Vassdal <shutter@canternet.org>
+ * Copyright (C) 2013-2014, 2016-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2012, 2016 Adam <Adam@anope.org>
+ * Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
+ * Copyright (C) 2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2007, 2009 Craig Edwards <brain@inspircd.org>
+ * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
/// $CompilerFlags: find_compiler_flags("sqlite3")
/// $LinkerFlags: find_linker_flags("sqlite3" "-lsqlite3")
+/// $PackageInfo: require_system("arch") pkgconf sqlite
/// $PackageInfo: require_system("centos") pkgconfig sqlite-devel
/// $PackageInfo: require_system("darwin") pkg-config sqlite3
/// $PackageInfo: require_system("debian") libsqlite3-dev pkg-config
#include "inspircd.h"
#include "modules/sql.h"
+#ifdef __GNUC__
+# pragma GCC diagnostic push
+#endif
+
// Fix warnings about the use of `long long` on C++03.
#if defined __clang__
# pragma clang diagnostic ignored "-Wc++11-long-long"
#include <sqlite3.h>
+#ifdef __GNUC__
+# pragma GCC diagnostic pop
+#endif
+
#ifdef _WIN32
# pragma comment(lib, "sqlite3.lib")
#endif
result.assign(columns.begin(), columns.end());
}
- bool HasColumn(const std::string& column, size_t& index)
+ bool HasColumn(const std::string& column, size_t& index) CXX11_OVERRIDE
{
for (size_t i = 0; i < columns.size(); ++i)
{
reference<ConfigTag> config;
public:
- SQLConn(Module* Parent, ConfigTag* tag) : SQL::Provider(Parent, "SQL/" + tag->getString("id")), config(tag)
+ SQLConn(Module* Parent, ConfigTag* tag)
+ : SQL::Provider(Parent, tag->getString("id"))
+ , config(tag)
{
std::string host = tag->getString("hostname");
if (sqlite3_open_v2(host.c_str(), &conn, SQLITE_OPEN_READWRITE, 0) != SQLITE_OK)
void Submit(SQL::Query* query, const std::string& q) CXX11_OVERRIDE
{
+ ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Executing SQLite3 query: " + q);
Query(query, q);
delete query;
}
ConfigTagList tags = ServerInstance->Config->ConfTags("database");
for(ConfigIter i = tags.first; i != tags.second; i++)
{
- if (!stdalgo::string::equalsci(i->second->getString("provider"), "sqlite"))
+ if (!stdalgo::string::equalsci(i->second->getString("module"), "sqlite"))
continue;
SQLConn* conn = new SQLConn(this, i->second);
conns.insert(std::make_pair(i->second->getString("id"), conn));
Version GetVersion() CXX11_OVERRIDE
{
- return Version("sqlite3 provider", VF_VENDOR);
+ return Version("Provides the ability for SQL modules to query a SQLite 3 database.", VF_VENDOR);
}
};