HybridRow/test-data/CustomerSchema.json
David Noble c36b0adfe8
Feature/java/port from dotnet (#1)
* Add pom.xml placeholder and Hybrid Row whitepaper

* Checkpoint for safe keeping

* Progressed on port from dotnet to java

* Progressed on port from C# to Java

* Brought in Utf8AnyString.java

* Progressed on port from C# to Java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Updated documents releated to release of Microsoft Code under MIT License

* Updated JRE copyright notices

* Progressed on port from dotnet to java

* Renamed jre as java because Java is used to can refer to two things: the platform and the language. In this case we are referring to the Java Platform, not the Java Runtime Environment.

* Progressed on port

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on dotnet port to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Progressed on port from dotnet to java

* Code cleanup, especially in Utf8String class which is much improved.

* Progressed on port from dotnet to java.

* Simplified Utf8String some more

* Code cleanup

* Excluding most tests with the expectation that we'll bring them in as we continue to expand our test matrix.

* Added and debugged some tests

* Added and debugged some tests

* Added and debugged some tests

* Added, revised, and debugged some tests and test issues

* Added, revised, and debugged some tests and test issues

* Added, revised, and debugged some tests and test issues

* Optimized imports

* Removed dead code

* Updated java docs

* Added, revised, and debugged some tests and test issues

* Added, revised, and debugged some tests and test issues

* Added, revised, and debugged some tests and test issues

* Added, revised, and debugged some tests and test issues. Updated javadocs and pom.xml. We now add SystemSchema.json to azure-cosmos-serialization.jar. Javadocs don't currently build.

* Javadoc update

* Test update

* Progressed on deserializing schemas.

* Progressed on deserializing schemas.

* Progressed on deserializing schemas.

* testLoadSchmea passes

* code cleanup in prep for next step: loading a namespace that includes a schema with a udt: the one that the Spark connector team needs.

* code cleanup in prep for next step: loading a namespace that includes a schema with a udt: the one that the Spark connector team needs.

* RootSegment.json now loads

* Progressed on RowReader

* Progressed on RowReader

* RowReaderTest against RootSegment.json/RootSegment.hybridrow succeeds

* RowReaderTest against RootSegment.json/RootSegment.hybridrow succeeds

* Move RowScanner and DataItem out of test into main

* Move RowScanner and DataItem out of test into main

* Move RowScanner and DataItem out of test into main

* RowIterable now works. RowIterable and RowScanner now include indexes of array elements.

* RowIterable and RowScanner now support additional data types

* RowScanner now implements Iterable<DataItem> and RowIterable has been removed.

* POM now packages SystemSchema.json and SystemSchema class now loads the packaged SystemSchema.json

* Updated pom.xml with required licensing info and attempted to produce javadocs.

* Progressed on adding support for unsupported Utf8String features

* Refinements to Utf8String and Utf8StringTest

* Utf8StringTest improvements

* Refinements to Utf8String and Utf8StringTest

* Added caching of UTF-16 string caching to Utf8String to reduce the time and space cost of Utf8String.toUtf16(). Also: addressed a number of javadoc issues.

* Addressed a number of javadoc issues and the javadocs now build.

* Utf8String refinements with inefficient support instead of no support for Utf8String.charAt(int)

* Bumped netty.version and updated javadocs for Utf8String

* Code cleanup (javadoc improvements + tidying)

* Utf8String optimizations

* Tweaks

* Tweaks
2019-10-09 14:07:57 -07:00

77 lines
3.1 KiB
JSON

// Partial implementation of Cassandra Hotel Schema described here::
// https://www.oreilly.com/ideas/cassandra-data-modeling
{
"name": "Microsoft.Azure.Cosmos.Serialization.HybridRow.Tests.Unit.CustomerSchema",
"schemas": [
{
"name": "PostalCode",
"id": 1,
"type": "schema",
"properties": [
{ "path": "zip", "type": { "type": "int32", "storage": "fixed" } },
{ "path": "plus4", "type": { "type": "int16", "storage": "sparse" } }
]
},
{
"name": "Address",
"id": 2,
"type": "schema",
"properties": [
{ "path": "street", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "city", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "state", "type": { "type": "utf8", "storage": "fixed", "length": 2 } },
{ "path": "postal_code", "type": { "type": "schema", "name": "PostalCode" } }
]
},
{
"name": "Hotels",
"id": 3,
"type": "schema",
"partitionkeys": [{ "path": "hotel_id" }],
"properties": [
{ "path": "hotel_id", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "name", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "phone", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "address", "type": { "type": "schema", "name": "Address", "immutable": true } }
]
},
{
"name": "Available_Rooms_By_Hotel_Date",
"id": 4,
"type": "schema",
"partitionkeys": [{ "path": "hotel_id" }],
"primarykeys": [{ "path": "date" }, { "path": "room_number", "direction": "desc" }],
"properties": [
{ "path": "hotel_id", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "date", "type": { "type": "datetime", "storage": "fixed" } },
{ "path": "room_number", "type": { "type": "uint8", "storage": "fixed" } },
{ "path": "is_available", "type": { "type": "bool" } }
]
},
{
"name": "Guests",
"id": 5,
"type": "schema",
"partitionkeys": [{ "path": "guest_id" }],
"primarykeys": [{ "path": "first_name" }, { "path": "phone_numbers", "direction": "desc" }],
"properties": [
{ "path": "guest_id", "type": { "type": "guid", "storage": "fixed" } },
{ "path": "first_name", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "last_name", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "title", "type": { "type": "utf8", "storage": "variable" } },
{ "path": "emails", "type": { "type": "array", "items": { "type": "utf8", "nullable": false } } },
{ "path": "phone_numbers", "type": { "type": "array", "items": { "type": "utf8", "nullable": false } } },
{
"path": "addresses",
"type": {
"type": "map",
"keys": { "type": "utf8", "nullable": false },
"values": { "type": "schema", "name": "Address", "immutable": true, "nullable": false }
}
},
{ "path": "confirm_number", "type": { "type": "utf8", "storage": "variable" } }
]
}
]
}