summaryrefslogtreecommitdiffstats
path: root/sql
diff options
context:
space:
mode:
authorphajdan.jr <phajdan.jr@chromium.org>2015-09-01 03:20:25 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-01 10:21:13 +0000
commit9d8aca4a2a7b59dbc8554186739987fb4bc2b400 (patch)
tree22974d9e84978ddc276addad5671bbbea2a51abd /sql
parent48d200a503e735488eaf40cc7d58a63e53ea878e (diff)
downloadchromium_src-9d8aca4a2a7b59dbc8554186739987fb4bc2b400.zip
chromium_src-9d8aca4a2a7b59dbc8554186739987fb4bc2b400.tar.gz
chromium_src-9d8aca4a2a7b59dbc8554186739987fb4bc2b400.tar.bz2
Revert of [sqlite] Respect the gyp and gn component switch. (patchset #6 id:100001 of https://codereview.chromium.org/1306863006/ )
Reason for revert: Suspected of breaking chromium.webkit Mac builders, see https://code.google.com/p/chromium/issues/detail?id=526208 Summary: Incompatible library version: httpd requires version 9.0.0 or later, but libsqlite3.dylib provides version 0.0.0 /b/build/slave/WebKit_Mac10_6__dbg_/build/src/out/Debug/libsqlite3.dylib seems to be used instead of expected/intended /usr/lib/libsqlite3.dylib Original issue's description: > [sqlite] Respect the gyp and gn component switch. > > SQLITE_API is the existing mechanism SQLite provides, and is used in > preference to inventing a new SQLITE_EXPORT symbol (like > sql/sql_export.h and other examples). > > CoreServices.framework is necessary on OSX because of the Time Machine > patch. > > Remove sql/proxy.{h,cc}, which was necessary to work around SQLite > linking statically into both component shlibs and unit test executables. > > [Relanding https://codereview.chromium.org/1322463002/ ] > > BUG=489444 > TBR=michaeln@chromium.org, thakis@chromium.org, brettw@chromium.org > > Committed: https://crrev.com/f71db5c36625ff00feb8283028631303ae5caa7c > Cr-Commit-Position: refs/heads/master@{#346536} TBR=michaeln@chromium.org,thakis@chromium.org,brettw@chromium.org,shess@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=489444 Review URL: https://codereview.chromium.org/1325833003 Cr-Commit-Position: refs/heads/master@{#346615}
Diffstat (limited to 'sql')
-rw-r--r--sql/BUILD.gn2
-rw-r--r--sql/connection_unittest.cc13
-rw-r--r--sql/proxy.cc28
-rw-r--r--sql/proxy.h39
-rw-r--r--sql/sql.gyp2
5 files changed, 78 insertions, 6 deletions
diff --git a/sql/BUILD.gn b/sql/BUILD.gn
index 57f1b38..38f85b4 100644
--- a/sql/BUILD.gn
+++ b/sql/BUILD.gn
@@ -13,6 +13,8 @@ component("sql") {
"init_status.h",
"meta_table.cc",
"meta_table.h",
+ "proxy.cc",
+ "proxy.h",
"recovery.cc",
"recovery.h",
"statement.cc",
diff --git a/sql/connection_unittest.cc b/sql/connection_unittest.cc
index aa9dbeb..df35dd1 100644
--- a/sql/connection_unittest.cc
+++ b/sql/connection_unittest.cc
@@ -12,6 +12,7 @@
#include "sql/connection.h"
#include "sql/correct_sql_test_base.h"
#include "sql/meta_table.h"
+#include "sql/proxy.h"
#include "sql/statement.h"
#include "sql/test/error_callback_support.h"
#include "sql/test/scoped_error_ignorer.h"
@@ -85,12 +86,12 @@ class ScopedScalarFunction {
int args,
base::Callback<void(sqlite3_context*,int,sqlite3_value**)> cb)
: db_(db.db_), function_name_(function_name), cb_(cb) {
- ::sqlite3_create_function_v2(db_, function_name, args, SQLITE_UTF8,
- this, &Run, NULL, NULL, NULL);
+ sql::sqlite3_create_function_v2(db_, function_name, args, SQLITE_UTF8,
+ this, &Run, NULL, NULL, NULL);
}
~ScopedScalarFunction() {
- ::sqlite3_create_function_v2(db_, function_name_, 0, SQLITE_UTF8,
- NULL, NULL, NULL, NULL, NULL);
+ sql::sqlite3_create_function_v2(db_, function_name_, 0, SQLITE_UTF8,
+ NULL, NULL, NULL, NULL, NULL);
}
private:
@@ -114,10 +115,10 @@ class ScopedCommitHook {
base::Callback<int(void)> cb)
: db_(db.db_),
cb_(cb) {
- ::sqlite3_commit_hook(db_, &Run, this);
+ sql::sqlite3_commit_hook(db_, &Run, this);
}
~ScopedCommitHook() {
- ::sqlite3_commit_hook(db_, NULL, NULL);
+ sql::sqlite3_commit_hook(db_, NULL, NULL);
}
private:
diff --git a/sql/proxy.cc b/sql/proxy.cc
new file mode 100644
index 0000000..5104812
--- /dev/null
+++ b/sql/proxy.cc
@@ -0,0 +1,28 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "sql/proxy.h"
+
+namespace sql {
+
+int sqlite3_create_function_v2(
+ sqlite3 *db,
+ const char *zFunctionName,
+ int nArg,
+ int eTextRep,
+ void *pApp,
+ void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
+ void (*xStep)(sqlite3_context*,int,sqlite3_value**),
+ void (*xFinal)(sqlite3_context*),
+ void (*xDestroy)(void*)) {
+ return ::sqlite3_create_function_v2(
+ db, zFunctionName, nArg, eTextRep, pApp,
+ xFunc, xStep, xFinal, xDestroy);
+}
+
+void *sqlite3_commit_hook(sqlite3* db, int(*func)(void*), void* arg) {
+ return ::sqlite3_commit_hook(db, func, arg);
+}
+
+} // namespace sql
diff --git a/sql/proxy.h b/sql/proxy.h
new file mode 100644
index 0000000..7a2863b
--- /dev/null
+++ b/sql/proxy.h
@@ -0,0 +1,39 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SQL_PROXY_H_
+#define SQL_PROXY_H_
+
+#include "sql/sql_export.h"
+#include "third_party/sqlite/sqlite3.h"
+
+// TODO(shess): third_party/sqlite does not track component build correctly, so
+// each shared library gets a private copy of everything, so sqlite3_* calls
+// outside of the main sql/ component don't work right. Hack around this by
+// adding pass-through functions while I land a separate fix for the component
+// issue.
+
+// This is only required for tests - if these abilities are desired for
+// production code, they should probably do obvious things like live in
+// sql::Connection and use C++ wrappers.
+
+// http://crbug.com/489444
+
+namespace sql {
+
+SQL_EXPORT int sqlite3_create_function_v2(
+ sqlite3 *db,
+ const char *zFunctionName,
+ int nArg,
+ int eTextRep,
+ void *pApp,
+ void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
+ void (*xStep)(sqlite3_context*,int,sqlite3_value**),
+ void (*xFinal)(sqlite3_context*),
+ void (*xDestroy)(void*));
+SQL_EXPORT void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
+
+} // namespace sql
+
+#endif // SQL_PROXY_H_
diff --git a/sql/sql.gyp b/sql/sql.gyp
index 018b287..d983a45 100644
--- a/sql/sql.gyp
+++ b/sql/sql.gyp
@@ -27,6 +27,8 @@
'init_status.h',
'meta_table.cc',
'meta_table.h',
+ 'proxy.cc',
+ 'proxy.h',
'recovery.cc',
'recovery.h',
'statement.cc',