aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Tim Zaman <tzaman@nvidia.com>2018-06-21 17:29:57 -0700
committerGravatar Tim Zaman <tzaman@nvidia.com>2018-06-21 17:29:57 -0700
commit9a397b38b9a8f65c05603ddbb99dba113d95e032 (patch)
tree46f8d67e726a649e1bbf70687bd4e3556f0b5369
parent5cfa4f6ef7f40825eedf30317dfdd619b50c4f7d (diff)
Build sqlite3 with json1 extension
-rw-r--r--tensorflow/core/lib/db/sqlite_test.cc13
-rw-r--r--third_party/sqlite.BUILD1
2 files changed, 14 insertions, 0 deletions
diff --git a/tensorflow/core/lib/db/sqlite_test.cc b/tensorflow/core/lib/db/sqlite_test.cc
index 1e88323d01..c099160b0c 100644
--- a/tensorflow/core/lib/db/sqlite_test.cc
+++ b/tensorflow/core/lib/db/sqlite_test.cc
@@ -73,6 +73,19 @@ TEST_F(SqliteTest, InsertAndSelectDouble) {
EXPECT_EQ(1, stmt.ColumnInt(1));
}
+TEST_F(SqliteTest, Json1Extension) {
+ string s1 = "{\"key\": 42}";
+ string s2 = "{\"key\": \"value\"}";
+ auto stmt = db_->PrepareOrDie("INSERT INTO T (a, b) VALUES (?, ?)");
+ stmt.BindText(1, s1);
+ stmt.BindText(2, s2);
+ TF_ASSERT_OK(stmt.StepAndReset());
+ stmt = db_->PrepareOrDie("SELECT json_extract(a, '$.key'), json_extract(b, '$.key') FROM T");
+ TF_ASSERT_OK(stmt.Step(&is_done_));
+ EXPECT_EQ(42, stmt.ColumnInt(0));
+ EXPECT_EQ("value", stmt.ColumnString(1));
+}
+
TEST_F(SqliteTest, NulCharsInString) {
string s; // XXX: Want to write {2, '\0'} but not sure why not.
s.append(static_cast<size_t>(2), '\0');
diff --git a/third_party/sqlite.BUILD b/third_party/sqlite.BUILD
index 6da7953589..2876f305f1 100644
--- a/third_party/sqlite.BUILD
+++ b/third_party/sqlite.BUILD
@@ -5,6 +5,7 @@ licenses(["unencumbered"]) # Public Domain
SQLITE_COPTS = [
"-Os",
+ "-DSQLITE_ENABLE_JSON1",
"-DHAVE_DECL_STRERROR_R=1",
"-DHAVE_STDINT_H=1",
"-DHAVE_INTTYPES_H=1",