>>> import pyarrow as pa
>>> table = session.create_table(
... "Object", data_types={"Point": "Object", "Quantity": "int"}
... )
>>> table.load(
... pa.Table.from_pydict(
... {
... "Point": pa.array(
... [{"x": 10, "y": 0}, {"x": 2, "y": 0}, {"x": 1, "y": 0}],
... type=pa.struct([("x", pa.int64()), ("y", pa.int64())]),
... ),
... "Quantity": pa.array([10, 2, 1]),
... }
... )
... )
>>> cube = session.create_cube(table)
>>> l, m = cube.levels, cube.measures
>>> l["Point"].order
LexicographicalOrder(ascending=True)
>>> cube.query(m["Quantity.SUM"], levels=[l["Point"]])
Quantity.SUM
Point
{"x":1,"y":0} 1
{"x":10,"y":0} 10
{"x":2,"y":0} 2
>>> l["Point"].order = tt.NaturalOrder()
>>> l["Point"].order
NaturalOrder(ascending=True)
>>> cube.query(m["Quantity.SUM"], levels=[l["Point"]])
Quantity.SUM
Point
{"x":1,"y":0} 1
{"x":2,"y":0} 2
{"x":10,"y":0} 10