Skip to content

Commit 1c08233

Browse files
committed
JSON schema roundtrip passing for many types
Change-Id: I70d02dcd2958217deb37296f280c0298d4f943a0
1 parent 86c9559 commit 1c08233

File tree

10 files changed

+180
-180
lines changed

10 files changed

+180
-180
lines changed

cpp/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,6 @@ set(ARROW_SRCS
694694
src/arrow/array.cc
695695
src/arrow/builder.cc
696696
src/arrow/column.cc
697-
src/arrow/factory.cc
698697
src/arrow/schema.cc
699698
src/arrow/table.cc
700699
src/arrow/type.cc

cpp/src/arrow/factory.cc

Lines changed: 0 additions & 45 deletions
This file was deleted.

cpp/src/arrow/factory.h

Lines changed: 0 additions & 46 deletions
This file was deleted.

cpp/src/arrow/ipc/ipc-json-test.cc

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,23 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
#include "arrow/ipc/json-internal.h"
19+
1820
#include <cstdint>
1921
#include <cstdio>
2022
#include <cstring>
23+
#include <iostream>
2124
#include <memory>
2225
#include <string>
2326
#include <vector>
2427

28+
#include "rapidjson/document.h"
29+
#include "rapidjson/filewritestream.h"
30+
#include "rapidjson/prettywriter.h"
2531
#include "gtest/gtest.h"
2632

27-
#include "arrow/io/memory.h"
28-
#include "arrow/io/test-common.h"
2933
#include "arrow/ipc/adapter.h"
30-
#include "arrow/ipc/file.h"
31-
#include "arrow/ipc/test-common.h"
32-
#include "arrow/ipc/util.h"
33-
3434
#include "arrow/test-util.h"
35-
#include "arrow/types/list.h"
36-
#include "arrow/types/primitive.h"
37-
#include "arrow/types/string.h"
38-
#include "arrow/types/struct.h"
39-
#include "arrow/util/bit-util.h"
40-
#include "arrow/util/buffer.h"
4135
#include "arrow/util/memory-pool.h"
4236
#include "arrow/util/status.h"
4337

@@ -50,10 +44,33 @@ class TestJsonSchemaWriter : public ::testing::Test {
5044
void TearDown() {}
5145

5246
void TestRoundTrip(const Schema& schema) {
47+
rj::StringBuffer sb;
48+
rj::Writer<rj::StringBuffer> writer(sb);
49+
50+
ASSERT_OK(WriteJsonSchema(schema, &writer));
5351

52+
rj::Document d;
53+
d.Parse(sb.GetString());
5454

55+
std::shared_ptr<Schema> out;
56+
ASSERT_OK(ReadJsonSchema(d, &out));
57+
58+
ASSERT_TRUE(schema.Equals(out));
5559
}
5660
};
5761

62+
TEST_F(TestJsonSchemaWriter, FlatTypes) {
63+
std::vector<std::shared_ptr<Field>> fields = {
64+
field("f0", int8()), field("f1", int16(), false), field("f2", int32()),
65+
field("f3", int64(), false), field("f4", uint8()), field("f5", uint16()),
66+
field("f6", uint32()), field("f7", uint64()), field("f8", float32()),
67+
field("f9", float64()), field("f10", utf8()), field("f11", binary()),
68+
field("f12", list(int32())), field("f13", struct_({field("s1", int32()),
69+
field("s2", utf8())}))};
70+
71+
Schema schema(fields);
72+
TestRoundTrip(schema);
73+
}
74+
5875
} // namespace ipc
5976
} // namespace arrow

0 commit comments

Comments
 (0)