You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2023/08/04 19:29:39 UTC

Change in asterixdb[master]: [ASTERIXDB-3234][STO] Fix handling empty arrays in columnar datasets

From Wail Alkowaileet <wa...@gmail.com>:

Wail Alkowaileet has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17693 )


Change subject: [ASTERIXDB-3234][STO] Fix handling empty arrays in columnar datasets
......................................................................

[ASTERIXDB-3234][STO] Fix handling empty arrays in columnar datasets

- user model changes: no
- storage format changes: yes
- interface changes: no

Details:
Fix the issue of handling empty arrays in columnar datasets

Storage format changes:
- Repeated values will always end with a MISSING value.
  The last MISSING value will be used as an indicator that the
  array itself is present and it will be consumed by the assembler
  and won't be included in the assembled array. In case of an
  empty array, the last MISSING value will be consumed and
  an empty array will be returned.

Change-Id: I220e9e8ede45530ef61656530309c79321dc189c
---
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.003.get.http
M asterixdb/asterix-column/src/test/resources/result/transformer/324-null-array4.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/900-dummy-tweet.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.001.ddl.sqlpp
M asterixdb/asterix-column/src/test/resources/only.txt
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/ArrayValueAssembler.java
M asterixdb/asterix-column/src/test/resources/result/transformer/326-null-array6.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/322-null-array2.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/002-arrayObject2.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/204-unionArrayPrimitiveItems.schema
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.003.regexadm
M asterixdb/asterix-column/src/test/resources/result/transformer/202-unionPrimitiveArray.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.004.query.sqlpp
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
M asterixdb/asterix-column/src/test/resources/result/transformer/209-unionArrayNullItems2.schema
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.004.adm
A asterixdb/asterix-column/src/test/resources/data/003-arrayEmpty.json
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/RepeatedPrimitiveValueAssembler.java
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.004.adm
A asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
M asterixdb/asterix-column/src/test/resources/result/transformer/000-arrayOfInt.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/208-unionArrayNullItems1.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.002.update.sqlpp
M asterixdb/asterix-column/src/test/resources/result/transformer/321-null-array1.schema
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/AssemblerBuilderVisitor.java
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.001.ddl.sqlpp
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.003.regexadm
A asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.001.ddl.sqlpp
M asterixdb/asterix-column/src/test/resources/result/transformer/207-unionArrayNullItems0.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.002.update.sqlpp
M asterixdb/asterix-column/src/test/resources/result/transformer/210-unionArrayNullItems3.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/325-null-array5.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/323-null-array3.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.004.query.sqlpp
A asterixdb/asterix-column/src/test/resources/result/transformer/003-emptyArray.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.004.query.sqlpp
M asterixdb/asterix-column/src/test/resources/result/transformer/327-null-array7.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.003.get.http
M asterixdb/asterix-column/src/test/resources/result/transformer/206-unionArrayPrimitiveObjectArrayItems.schema
M asterixdb/asterix-column/src/test/java/org/apache/asterix/column/values/reader/AbstractDummyColumnValuesReader.java
M asterixdb/asterix-column/src/test/resources/result/transformer/205-unionArrayPrimitiveObjectItems.schema
M asterixdb/asterix-column/src/test/resources/result/transformer/001-arrayObject.schema
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.002.update.sqlpp
A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.003.get.http
M asterixdb/asterix-column/src/test/resources/result/transformer/203-unionNestedNested.schema
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.003.regexadm
A asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.004.adm
M asterixdb/asterix-column/src/test/resources/result/transformer/320-null-array0.schema
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/ColumnTransformer.java
50 files changed, 475 insertions(+), 75 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/93/17693/1

diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.001.ddl.sqlpp
new file mode 100644
index 0000000..006d75c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.002.update.sqlpp
new file mode 100644
index 0000000..72d41d8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.002.update.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id": 1, "a" : []}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.003.get.http
new file mode 100644
index 0000000..57d830a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.004.query.sqlpp
new file mode 100644
index 0000000..285ca9d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/001/001.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.001.ddl.sqlpp
new file mode 100644
index 0000000..006d75c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.002.update.sqlpp
new file mode 100644
index 0000000..9d33778
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.002.update.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id": 1, "a" : [{"b": [1]}]},
+    {"id": 2, "a" : [{"c": [1]}]},
+    {"id": 3, "a" : [{"c": []}]},
+    {"id": 4, "a" : [{"b": []}]},
+    {"id": 5, "a" : []},
+    {"id": 6}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.003.get.http
new file mode 100644
index 0000000..57d830a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.004.query.sqlpp
new file mode 100644
index 0000000..285ca9d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/002/002.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.001.ddl.sqlpp
new file mode 100644
index 0000000..006d75c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.002.update.sqlpp
new file mode 100644
index 0000000..a5b883a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.002.update.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id": 1, "a" : [[1,2,3]]},
+    {"id": 2, "a" : [[{"a":1}, {"b":1}]]},
+    {"id": 3, "a" : [[]]},
+    {"id": 4, "a" : []},
+    {"id": 5}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.003.get.http
new file mode 100644
index 0000000..57d830a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.004.query.sqlpp
new file mode 100644
index 0000000..285ca9d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/empty-array/003/003.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.003.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.003.regexadm
new file mode 100644
index 0000000..9f1dc3a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.003.regexadm
@@ -0,0 +1 @@
+\Q{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[\E.*\Q]}\E
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.004.adm
new file mode 100644
index 0000000..4e2d161
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/001/001.004.adm
@@ -0,0 +1 @@
+{ "id": 1, "a": [  ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.003.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.003.regexadm
new file mode 100644
index 0000000..9f1dc3a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.003.regexadm
@@ -0,0 +1 @@
+\Q{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[\E.*\Q]}\E
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.004.adm
new file mode 100644
index 0000000..70130b0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/002/002.004.adm
@@ -0,0 +1,6 @@
+{ "id": 1, "a": [ { "b": [ 1 ] } ] }
+{ "id": 2, "a": [ { "c": [ 1 ] } ] }
+{ "id": 3, "a": [ { "c": [  ] } ] }
+{ "id": 4, "a": [ { "b": [  ] } ] }
+{ "id": 5, "a": [  ] }
+{ "id": 6 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.003.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.003.regexadm
new file mode 100644
index 0000000..9f1dc3a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.003.regexadm
@@ -0,0 +1 @@
+\Q{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[\E.*\Q]}\E
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.004.adm
new file mode 100644
index 0000000..f5dd970
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/empty-array/003/003.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": [ 0, 1, null ] }
+{ "id": 1, "a": [ 0, null, 1 ] }
+{ "id": 2, "a": [ null, 0, 1 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index fc0ceca..c311681 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -16192,6 +16192,21 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="column">
+      <compilation-unit name="empty-array/001">
+        <output-dir compare="Text">empty-array/001</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="empty-array/002">
+        <output-dir compare="Text">empty-array/002</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="empty-array/003">
+        <output-dir compare="Text">empty-array/003</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
       <compilation-unit name="pushdown/array-access-pushdown">
         <output-dir compare="Text">pushdown/array-access-pushdown</output-dir>
       </compilation-unit>
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/ArrayValueAssembler.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/ArrayValueAssembler.java
index 2352e7f..fa00139 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/ArrayValueAssembler.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/ArrayValueAssembler.java
@@ -28,12 +28,14 @@
     private final IAsterixListBuilder listBuilder;
     private final AbstractCollectionType collectionType;
     private final int firstValueIndex;
+    private boolean missing;
 
     ArrayValueAssembler(int level, AssemblerInfo info, int firstValueIndex) {
         super(level, info);
         this.firstValueIndex = firstValueIndex;
         collectionType = (AbstractCollectionType) info.getDeclaredType();
         listBuilder = new ListBuilderFactory().create(collectionType.getTypeTag());
+        missing = false;
     }
 
     final int getFirstValueIndex() {
@@ -42,23 +44,27 @@
 
     @Override
     void reset() {
+        missing = false;
         listBuilder.reset(collectionType);
         storage.reset();
     }
 
     @Override
     void addValue(AbstractValueAssembler value) throws HyracksDataException {
+        writePreviousMissing();
         listBuilder.addItem(value.getValue());
     }
 
     @Override
     void addNull(AbstractValueAssembler value) throws HyracksDataException {
+        writePreviousMissing();
         listBuilder.addItem(NULL);
     }
 
     @Override
     void addMissing() throws HyracksDataException {
-        listBuilder.addItem(MISSING);
+        writePreviousMissing();
+        missing = true;
     }
 
     @Override
@@ -72,4 +78,11 @@
     public IValueReference getValue() {
         return storage;
     }
+
+    private void writePreviousMissing() throws HyracksDataException {
+        if (missing) {
+            listBuilder.addItem(MISSING);
+            missing = false;
+        }
+    }
 }
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/AssemblerBuilderVisitor.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/AssemblerBuilderVisitor.java
index 5acfa08..15e2bb9 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/AssemblerBuilderVisitor.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/AssemblerBuilderVisitor.java
@@ -165,7 +165,7 @@
         // if delegateAssembler is null, that means no column will be accessed
         if (delegateAssembler != null) {
             // Set repeated assembler as a delegate (responsible for writing null values)
-            delegateAssembler.setAsDelegate();
+            delegateAssembler.setAsDelegate(level - 1);
             IColumnValuesReader reader = delegateAssembler.getReader();
             int numberOfDelimiters = reader.getNumberOfDelimiters();
             // End of group assembler is responsible to finalize array/multiset builders
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/RepeatedPrimitiveValueAssembler.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/RepeatedPrimitiveValueAssembler.java
index 502f642..f4e48d2 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/RepeatedPrimitiveValueAssembler.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/assembler/RepeatedPrimitiveValueAssembler.java
@@ -28,11 +28,13 @@
 
 final class RepeatedPrimitiveValueAssembler extends AbstractPrimitiveValueAssembler {
     private boolean arrayDelegate;
+    private int arrayLevel;
 
     RepeatedPrimitiveValueAssembler(int level, AssemblerInfo info, IColumnValuesReader reader,
             IValueGetter primitiveValue) {
         super(level, info, reader, primitiveValue);
         this.arrayDelegate = false;
+        arrayLevel = Integer.MAX_VALUE;
     }
 
     @Override
@@ -65,9 +67,10 @@
         return reader;
     }
 
-    public void setAsDelegate() {
+    public void setAsDelegate(int arrayLevel) {
         // This assembler is responsible for adding null values
         this.arrayDelegate = true;
+        this.arrayLevel = arrayLevel;
     }
 
     private void next() throws HyracksDataException {
@@ -81,9 +84,11 @@
              * (i.e., arrayDelegate is true)
              */
             addNullToAncestor(reader.getLevel());
-        } else if (reader.isMissing() && reader.getLevel() + 1 == level) {
+        } else if (reader.isMissing() && (arrayLevel == reader.getLevel() || reader.getLevel() + 1 == level)) {
             /*
-             * Add a missing item
+             * Add a missing item in either
+             * - the array item is MISSING
+             * - the array itself is missing and this reader is a delegate for the array level specified
              */
             addMissingToAncestor(reader.getLevel());
         } else if (reader.isValue()) {
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/ColumnTransformer.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/ColumnTransformer.java
index 48cd442..d1e439d 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/ColumnTransformer.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/ColumnTransformer.java
@@ -124,6 +124,10 @@
             defLevels.add(missingLevel);
         }
 
+        // Add missing as a last element of the array to help indicate empty arrays
+        collectionNode.getOrCreateItem(ATypeTag.MISSING, columnMetadata);
+        defLevels.add(missingLevel);
+
         columnMetadata.exitCollectionNode(collectionNode, numberOfChildren);
         currentParent = previousParent;
         return null;
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/values/reader/AbstractDummyColumnValuesReader.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/values/reader/AbstractDummyColumnValuesReader.java
index a3c6984..aceddaf 100644
--- a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/values/reader/AbstractDummyColumnValuesReader.java
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/values/reader/AbstractDummyColumnValuesReader.java
@@ -102,7 +102,7 @@
 
     @Override
     public final boolean isMissing() {
-        return level < maxLevel;
+        return !isDelimiter() && level < maxLevel;
     }
 
     @Override
diff --git a/asterixdb/asterix-column/src/test/resources/data/003-arrayEmpty.json b/asterixdb/asterix-column/src/test/resources/data/003-arrayEmpty.json
new file mode 100644
index 0000000..2fcf80e
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/resources/data/003-arrayEmpty.json
@@ -0,0 +1,3 @@
+{"a" : [{"b" : 1}, {"b" : 2}, {"c" : 3}]}
+{"a" : []}
+{"a" : [{"b" : 1}, {"b" : 2}, {"c" : 3}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/only.txt b/asterixdb/asterix-column/src/test/resources/only.txt
index 36985fb..4d5d97f 100644
--- a/asterixdb/asterix-column/src/test/resources/only.txt
+++ b/asterixdb/asterix-column/src/test/resources/only.txt
@@ -19,6 +19,7 @@
 #000-arrayOfInt
 #001-arrayObject
 #002-arrayObject2
+#003-arrayEmpty
 #100-addFields
 #101-nestedAddFields
 #200-unionPrimitive
diff --git a/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json b/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
new file mode 100644
index 0000000..3b8b6cc
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/resources/result/assembler/003-arrayEmpty.json
@@ -0,0 +1,3 @@
+{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
+{ "a": [  ] }
+{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json b/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
new file mode 100644
index 0000000..3b8b6cc
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/resources/result/small/003-arrayEmpty.json
@@ -0,0 +1,3 @@
+{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
+{ "a": [  ] }
+{ "a": [ { "b": 1 }, { "b": 2 }, { "c": 3 } ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/000-arrayOfInt.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/000-arrayOfInt.schema
index 3fa50cad..d6483c9 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/000-arrayOfInt.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/000-arrayOfInt.schema
@@ -2,4 +2,4 @@
 |-- b: array <level: 1>
 |    |-- item: array <level: 2>
 |    |    |-- item: bigint <level: 3, index: 0>
-|    |    |    |-- Def size: 90 [(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1),(3,3),(1,1),(3,3),(1,1),(0,1)]
+|    |    |    |-- Def size: 120 [(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1),(3,3),(2,1),(1,1),(3,3),(2,1),(1,2),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/001-arrayObject.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/001-arrayObject.schema
index bc71d8f..96031b0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/001-arrayObject.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/001-arrayObject.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: object <level: 2>
 |    |    |-- b: bigint <level: 3, index: 0>
-|    |    |    |-- Def size: 4 [(3,2),(2,1),(0,1)]
+|    |    |    |-- Def size: 5 [(3,2),(2,1),(1,1),(0,1)]
 |    |    |-- c: bigint <level: 3, index: 1>
-|    |    |    |-- Def size: 4 [(2,2),(3,1),(0,1)]
+|    |    |    |-- Def size: 5 [(2,2),(3,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/002-arrayObject2.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/002-arrayObject2.schema
index 58f873b..3641c10 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/002-arrayObject2.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/002-arrayObject2.schema
@@ -4,26 +4,26 @@
 |    |    |-- a: array <level: 3>
 |    |    |    |-- item: object <level: 4>
 |    |    |    |    |-- x: bigint <level: 5, index: 0>
-|    |    |    |    |    |-- Def size: 21 [(5,1),(4,1),(5,1),(2,1),(0,1),(5,1),(4,1),(5,1),(2,1),(0,1),(5,1),(4,1),(5,1),(2,3),(4,1),(2,1),(0,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 29 [(5,1),(4,1),(5,1),(3,1),(2,1),(1,1),(0,1),(5,1),(4,1),(5,1),(3,1),(2,1),(1,1),(0,1),(5,1),(4,1),(5,1),(3,1),(2,3),(4,1),(3,1),(2,1),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |    |    |-- y: bigint <level: 5, index: 1>
-|    |    |    |    |    |-- Def size: 21 [(5,2),(4,1),(2,1),(0,1),(5,2),(4,1),(2,1),(0,1),(5,2),(4,1),(2,3),(4,1),(2,1),(0,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 29 [(5,2),(4,1),(3,1),(2,1),(1,1),(0,1),(5,2),(4,1),(3,1),(2,1),(1,1),(0,1),(5,2),(4,1),(3,1),(2,3),(4,1),(3,1),(2,1),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |    |    |-- j: bigint <level: 5, index: 7>
-|    |    |    |    |    |-- Def size: 21 [(4,3),(2,1),(0,1),(4,3),(2,1),(0,1),(4,3),(2,3),(5,1),(2,1),(0,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 29 [(4,3),(3,1),(2,1),(1,1),(0,1),(4,3),(3,1),(2,1),(1,1),(0,1),(4,3),(3,1),(2,3),(5,1),(3,1),(2,1),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- b: bigint <level: 3, index: 2>
-|    |    |    |-- Def size: 11 [(3,1),(0,1),(3,1),(0,1),(3,1),(2,3),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 15 [(3,1),(1,1),(0,1),(3,1),(1,1),(0,1),(3,1),(2,3),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- c: bigint <level: 3, index: 3>
-|    |    |    |-- Def size: 11 [(3,1),(0,1),(3,1),(0,1),(3,1),(2,3),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 15 [(3,1),(1,1),(0,1),(3,1),(1,1),(0,1),(3,1),(2,3),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- d: bigint <level: 3, index: 4>
-|    |    |    |-- Def size: 11 [(3,1),(0,1),(3,1),(0,1),(3,1),(2,3),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 15 [(3,1),(1,1),(0,1),(3,1),(1,1),(0,1),(3,1),(2,3),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- f: bigint <level: 3, index: 5>
-|    |    |    |-- Def size: 11 [(2,1),(0,1),(2,1),(0,1),(2,1),(3,1),(2,2),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 15 [(2,1),(1,1),(0,1),(2,1),(1,1),(0,1),(2,1),(3,1),(2,2),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- k: object <level: 3>
 |    |    |    |-- v: object <level: 4>
 |    |    |    |    |-- t: bigint <level: 5, index: 6>
-|    |    |    |    |    |-- Def size: 11 [(2,1),(0,1),(2,1),(0,1),(2,2),(5,1),(2,1),(0,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 15 [(2,1),(1,1),(0,1),(2,1),(1,1),(0,1),(2,2),(5,1),(2,1),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- xyz: array <level: 3>
 |    |    |    |-- item: object <level: 4>
 |    |    |    |    |-- x: bigint <level: 5, index: 8>
-|    |    |    |    |    |-- Def size: 14 [(2,1),(0,1),(2,1),(0,1),(2,4),(0,1),(5,1),(4,1),(5,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 19 [(2,1),(1,1),(0,1),(2,1),(1,1),(0,1),(2,4),(1,1),(0,1),(5,1),(4,1),(5,1),(3,1),(2,1),(1,1),(0,1)]
 |    |    |    |    |-- y: bigint <level: 5, index: 9>
-|    |    |    |    |    |-- Def size: 14 [(2,1),(0,1),(2,1),(0,1),(2,4),(0,1),(5,2),(4,1),(2,1),(0,1)]
+|    |    |    |    |    |-- Def size: 19 [(2,1),(1,1),(0,1),(2,1),(1,1),(0,1),(2,4),(1,1),(0,1),(5,2),(4,1),(3,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/003-emptyArray.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/003-emptyArray.schema
new file mode 100644
index 0000000..a1799ff
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/003-emptyArray.schema
@@ -0,0 +1,7 @@
+root
+|-- a: array <level: 1>
+|    |-- item: object <level: 2>
+|    |    |-- b: bigint <level: 3, index: 0>
+|    |    |    |-- Def size: 12 [(3,2),(2,1),(1,1),(0,1),(1,1),(0,1),(3,2),(2,1),(1,1),(0,1)]
+|    |    |-- c: bigint <level: 3, index: 1>
+|    |    |    |-- Def size: 12 [(2,2),(3,1),(1,1),(0,1),(1,1),(0,1),(2,2),(3,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/202-unionPrimitiveArray.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/202-unionPrimitiveArray.schema
index 3d20dbc..d3edf89 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/202-unionPrimitiveArray.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/202-unionPrimitiveArray.schema
@@ -5,6 +5,6 @@
 |    |-- array: array <level: 1>
 |    |    |-- item: object <level: 2>
 |    |    |    |-- b: bigint <level: 3, index: 1>
-|    |    |    |    |-- Def size: 10 [(0,1),(3,3),(0,2),(3,3),(0,1)]
+|    |    |    |    |-- Def size: 12 [(0,1),(3,3),(1,1),(0,2),(3,3),(1,1),(0,1)]
 |    |    |    |-- c: bigint <level: 3, index: 2>
-|    |    |    |    |-- Def size: 10 [(0,1),(2,3),(0,2),(3,3),(0,1)]
+|    |    |    |    |-- Def size: 12 [(0,1),(2,3),(1,1),(0,2),(3,3),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/203-unionNestedNested.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/203-unionNestedNested.schema
index c1f48cb..54a93ba 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/203-unionNestedNested.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/203-unionNestedNested.schema
@@ -3,9 +3,9 @@
 |    |-- array: array <level: 1>
 |    |    |-- item: object <level: 2>
 |    |    |    |-- b: bigint <level: 3, index: 1>
-|    |    |    |    |-- Def size: 10 [(0,1),(3,3),(0,2),(3,3),(0,1)]
+|    |    |    |    |-- Def size: 12 [(0,1),(3,3),(1,1),(0,2),(3,3),(1,1),(0,1)]
 |    |    |    |-- c: bigint <level: 3, index: 2>
-|    |    |    |    |-- Def size: 10 [(0,1),(2,3),(0,2),(3,3),(0,1)]
+|    |    |    |    |-- Def size: 12 [(0,1),(2,3),(1,1),(0,2),(3,3),(1,1),(0,1)]
 |    |-- object: object <level: 1>
 |    |    |-- b: bigint <level: 2, index: 0>
 |    |    |    |-- Def size: 4 [(2,1),(0,1),(2,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/204-unionArrayPrimitiveItems.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/204-unionArrayPrimitiveItems.schema
index c820a7e..5f27ea8 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/204-unionArrayPrimitiveItems.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/204-unionArrayPrimitiveItems.schema
@@ -2,10 +2,10 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 13 [(2,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(2,1),(1,3),(0,1)]
+|    |    |    |-- Def size: 18 [(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(2,1),(1,4),(0,1)]
 |    |    |-- double: double <level: 2, index: 3>
-|    |    |    |-- Def size: 13 [(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,3),(2,1),(0,1)]
+|    |    |    |-- Def size: 18 [(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,3),(2,1),(1,1),(0,1)]
 |    |    |-- string: string <level: 2, index: 1>
-|    |    |    |-- Def size: 13 [(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,1),(2,1),(1,2),(0,1)]
+|    |    |    |-- Def size: 18 [(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(0,1),(1,1),(2,1),(1,3),(0,1)]
 |    |    |-- boolean: boolean <level: 2, index: 2>
-|    |    |    |-- Def size: 13 [(1,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(1,2),(2,1),(1,1),(0,1)]
+|    |    |    |-- Def size: 18 [(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(2,1),(1,2),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/205-unionArrayPrimitiveObjectItems.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/205-unionArrayPrimitiveObjectItems.schema
index c4436cc..207ecc2 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/205-unionArrayPrimitiveObjectItems.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/205-unionArrayPrimitiveObjectItems.schema
@@ -2,13 +2,13 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 14 [(2,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(2,1),(1,4),(0,1)]
+|    |    |    |-- Def size: 19 [(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(2,1),(1,5),(0,1)]
 |    |    |-- boolean: boolean <level: 2, index: 2>
-|    |    |    |-- Def size: 14 [(1,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(1,2),(2,1),(1,2),(0,1)]
+|    |    |    |-- Def size: 19 [(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(2,1),(1,3),(0,1)]
 |    |    |-- object: object <level: 2>
 |    |    |    |-- a: bigint <level: 3, index: 1>
-|    |    |    |    |-- Def size: 14 [(1,1),(0,1),(3,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(3,1),(1,1),(2,2),(0,1)]
+|    |    |    |    |-- Def size: 19 [(1,2),(0,1),(3,1),(1,1),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,1),(3,1),(1,1),(2,2),(1,1),(0,1)]
 |    |    |    |-- b: bigint <level: 3, index: 3>
-|    |    |    |    |-- Def size: 14 [(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(3,1),(0,1),(1,1),(2,1),(1,1),(3,1),(2,1),(0,1)]
+|    |    |    |    |-- Def size: 19 [(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(3,1),(1,1),(0,1),(1,1),(2,1),(1,1),(3,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- c: bigint <level: 3, index: 4>
-|    |    |    |    |-- Def size: 14 [(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(2,1),(1,1),(2,1),(3,1),(0,1)]
+|    |    |    |    |-- Def size: 19 [(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,1),(2,1),(1,1),(2,1),(3,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/206-unionArrayPrimitiveObjectArrayItems.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/206-unionArrayPrimitiveObjectArrayItems.schema
index 381f0f0..baef035 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/206-unionArrayPrimitiveObjectArrayItems.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/206-unionArrayPrimitiveObjectArrayItems.schema
@@ -2,19 +2,19 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 14 [(2,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(2,1),(1,4),(0,1)]
+|    |    |    |-- Def size: 19 [(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(2,1),(1,5),(0,1)]
 |    |    |-- boolean: boolean <level: 2, index: 2>
-|    |    |    |-- Def size: 14 [(1,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(0,1),(1,2),(2,1),(1,2),(0,1)]
+|    |    |    |-- Def size: 19 [(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1),(1,2),(2,1),(1,3),(0,1)]
 |    |    |-- array: array <level: 2>
 |    |    |    |-- item: object <level: 3>
 |    |    |    |    |-- a: bigint <level: 4, index: 1>
-|    |    |    |    |    |-- Def size: 17 [(1,1),(0,1),(4,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,3),(3,1),(1,1),(3,1),(1,1),(0,1)]
+|    |    |    |    |    |-- Def size: 25 [(1,2),(0,1),(4,1),(2,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(1,3),(3,1),(2,1),(1,1),(3,1),(2,1),(1,2),(0,1)]
 |    |    |    |    |-- b: bigint <level: 4, index: 5>
-|    |    |    |    |    |-- Def size: 17 [(1,1),(0,1),(3,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,3),(4,1),(1,1),(3,1),(1,1),(0,1)]
+|    |    |    |    |    |-- Def size: 25 [(1,2),(0,1),(3,1),(2,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(1,3),(4,1),(2,1),(1,1),(3,1),(2,1),(1,2),(0,1)]
 |    |    |    |    |-- c: bigint <level: 4, index: 6>
-|    |    |    |    |    |-- Def size: 17 [(1,1),(0,1),(3,1),(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(1,3),(3,1),(1,1),(4,1),(1,1),(0,1)]
+|    |    |    |    |    |-- Def size: 25 [(1,2),(0,1),(3,1),(2,1),(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(1,3),(3,1),(2,1),(1,1),(4,1),(2,1),(1,2),(0,1)]
 |    |    |-- object: object <level: 2>
 |    |    |    |-- b: bigint <level: 3, index: 3>
-|    |    |    |    |-- Def size: 14 [(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(3,1),(0,1),(1,1),(2,1),(1,3),(0,1)]
+|    |    |    |    |-- Def size: 19 [(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(3,1),(1,1),(0,1),(1,1),(2,1),(1,4),(0,1)]
 |    |    |    |-- a: bigint <level: 3, index: 4>
-|    |    |    |    |-- Def size: 14 [(1,1),(0,1),(1,1),(0,1),(1,1),(0,1),(2,1),(0,1),(1,1),(3,1),(1,3),(0,1)]
+|    |    |    |    |-- Def size: 19 [(1,2),(0,1),(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1),(1,1),(3,1),(1,4),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/207-unionArrayNullItems0.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/207-unionArrayNullItems0.schema
index 714b674..e569777 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/207-unionArrayNullItems0.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/207-unionArrayNullItems0.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 6 [(5,1),(0,1),(2,1),(0,1),(1,1),(0,1)]
+|    |    |    |-- Def size: 9 [(5,1),(1,1),(0,1),(2,1),(1,1),(0,1),(1,2),(0,1)]
 |    |    |-- string: string <level: 2, index: 1>
-|    |    |    |-- Def size: 6 [(1,1),(0,1),(1,1),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 9 [(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/208-unionArrayNullItems1.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/208-unionArrayNullItems1.schema
index 1180641..2829896 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/208-unionArrayNullItems1.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/208-unionArrayNullItems1.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 6 [(2,1),(0,1),(5,1),(0,1),(1,1),(0,1)]
+|    |    |    |-- Def size: 9 [(2,1),(1,1),(0,1),(5,1),(1,1),(0,1),(1,2),(0,1)]
 |    |    |-- string: string <level: 2, index: 1>
-|    |    |    |-- Def size: 6 [(1,1),(0,1),(1,1),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 9 [(1,2),(0,1),(1,2),(0,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/209-unionArrayNullItems2.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/209-unionArrayNullItems2.schema
index 8764067..c0c1e97 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/209-unionArrayNullItems2.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/209-unionArrayNullItems2.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 12 [(2,1),(1,1),(5,1),(0,1),(2,1),(5,1),(1,1),(0,1),(5,1),(2,1),(1,1),(0,1)]
+|    |    |    |-- Def size: 15 [(2,1),(1,1),(5,1),(1,1),(0,1),(2,1),(5,1),(1,2),(0,1),(5,1),(2,1),(1,2),(0,1)]
 |    |    |-- string: string <level: 2, index: 1>
-|    |    |    |-- Def size: 12 [(1,1),(2,1),(1,1),(0,1),(1,2),(2,1),(0,1),(1,2),(2,1),(0,1)]
+|    |    |    |-- Def size: 15 [(1,1),(2,1),(1,2),(0,1),(1,2),(2,1),(1,1),(0,1),(1,2),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/210-unionArrayNullItems3.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/210-unionArrayNullItems3.schema
index 68be4a0..c7c5675 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/210-unionArrayNullItems3.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/210-unionArrayNullItems3.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: union <level: 2>
 |    |    |-- bigint: bigint <level: 2, index: 0>
-|    |    |    |-- Def size: 4 [(2,1),(5,1),(1,1),(0,1)]
+|    |    |    |-- Def size: 5 [(2,1),(5,1),(1,2),(0,1)]
 |    |    |-- string: string <level: 2, index: 1>
-|    |    |    |-- Def size: 4 [(1,2),(2,1),(0,1)]
+|    |    |    |-- Def size: 5 [(1,2),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/320-null-array0.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/320-null-array0.schema
index f3d7014..d4334a6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/320-null-array0.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/320-null-array0.schema
@@ -1,4 +1,4 @@
 root
 |-- a: array <level: 1>
 |    |-- item: bigint <level: 2, index: 0>
-|    |    |-- Def size: 9 [(5,1),(0,1),(4,1),(2,1),(0,1),(2,1),(5,1),(2,1),(0,1)]
+|    |    |-- Def size: 12 [(5,1),(1,1),(0,1),(4,1),(2,1),(1,1),(0,1),(2,1),(5,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/321-null-array1.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/321-null-array1.schema
index f3d7014..d4334a6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/321-null-array1.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/321-null-array1.schema
@@ -1,4 +1,4 @@
 root
 |-- a: array <level: 1>
 |    |-- item: bigint <level: 2, index: 0>
-|    |    |-- Def size: 9 [(5,1),(0,1),(4,1),(2,1),(0,1),(2,1),(5,1),(2,1),(0,1)]
+|    |    |-- Def size: 12 [(5,1),(1,1),(0,1),(4,1),(2,1),(1,1),(0,1),(2,1),(5,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/322-null-array2.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/322-null-array2.schema
index 0a9474b..ae3fd8c 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/322-null-array2.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/322-null-array2.schema
@@ -1,4 +1,4 @@
 root
 |-- a: array <level: 1>
 |    |-- item: bigint <level: 2, index: 0>
-|    |    |-- Def size: 9 [(4,1),(5,1),(0,1),(2,1),(0,1),(2,1),(5,1),(2,1),(0,1)]
+|    |    |-- Def size: 12 [(4,1),(5,1),(1,1),(0,1),(2,1),(1,1),(0,1),(2,1),(5,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/323-null-array3.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/323-null-array3.schema
index 55c8470..2444bc0 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/323-null-array3.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/323-null-array3.schema
@@ -1,4 +1,4 @@
 root
 |-- a: array <level: 1>
 |    |-- item: bigint <level: 2, index: 0>
-|    |    |-- Def size: 13 [(5,1),(2,1),(5,1),(0,1),(5,1),(0,1),(5,2),(0,1),(2,1),(5,1),(2,1),(0,1)]
+|    |    |-- Def size: 17 [(5,1),(2,1),(5,1),(1,1),(0,1),(5,1),(1,1),(0,1),(5,2),(1,1),(0,1),(2,1),(5,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/324-null-array4.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/324-null-array4.schema
index 73067faf..86e0133 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/324-null-array4.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/324-null-array4.schema
@@ -1,4 +1,4 @@
 root
 |-- a: array <level: 1>
 |    |-- item: bigint <level: 2, index: 0>
-|    |    |-- Def size: 11 [(2,1),(0,1),(5,1),(0,1),(5,2),(0,1),(2,1),(5,1),(2,1),(0,1)]
+|    |    |-- Def size: 15 [(2,1),(1,1),(0,1),(5,1),(1,1),(0,1),(5,2),(1,1),(0,1),(2,1),(5,1),(2,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/325-null-array5.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/325-null-array5.schema
index 86a4525..23a5365 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/325-null-array5.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/325-null-array5.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: object <level: 2>
 |    |    |-- a: bigint <level: 3, index: 0>
-|    |    |    |-- Def size: 9 [(3,1),(0,1),(4,1),(5,1),(0,1),(6,1),(5,1),(3,1),(0,1)]
+|    |    |    |-- Def size: 12 [(3,1),(1,1),(0,1),(4,1),(5,1),(1,1),(0,1),(6,1),(5,1),(3,1),(1,1),(0,1)]
 |    |    |-- b: bigint <level: 3, index: 1>
-|    |    |    |-- Def size: 9 [(2,1),(0,1),(4,1),(5,1),(0,1),(3,1),(5,1),(6,1),(0,1)]
+|    |    |    |-- Def size: 12 [(2,1),(1,1),(0,1),(4,1),(5,1),(1,1),(0,1),(3,1),(5,1),(6,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/326-null-array6.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/326-null-array6.schema
index 552a989..3b3cd4a 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/326-null-array6.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/326-null-array6.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: object <level: 2>
 |    |    |-- a: bigint <level: 3, index: 0>
-|    |    |    |-- Def size: 9 [(4,1),(5,1),(0,1),(3,1),(0,1),(6,1),(5,1),(3,1),(0,1)]
+|    |    |    |-- Def size: 12 [(4,1),(5,1),(1,1),(0,1),(3,1),(1,1),(0,1),(6,1),(5,1),(3,1),(1,1),(0,1)]
 |    |    |-- b: bigint <level: 3, index: 1>
-|    |    |    |-- Def size: 9 [(4,1),(5,1),(0,1),(2,1),(0,1),(3,1),(5,1),(6,1),(0,1)]
+|    |    |    |-- Def size: 12 [(4,1),(5,1),(1,1),(0,1),(2,1),(1,1),(0,1),(3,1),(5,1),(6,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/327-null-array7.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/327-null-array7.schema
index 611a537..447b24b 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/327-null-array7.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/327-null-array7.schema
@@ -2,6 +2,6 @@
 |-- a: array <level: 1>
 |    |-- item: object <level: 2>
 |    |    |-- b: bigint <level: 3, index: 0>
-|    |    |    |-- Def size: 9 [(3,1),(5,1),(6,1),(0,1),(4,1),(5,1),(0,1),(2,1),(0,1)]
+|    |    |    |-- Def size: 12 [(3,1),(5,1),(6,1),(1,1),(0,1),(4,1),(5,1),(1,1),(0,1),(2,1),(1,1),(0,1)]
 |    |    |-- c: bigint <level: 3, index: 1>
-|    |    |    |-- Def size: 9 [(6,1),(5,1),(3,1),(0,1),(4,1),(5,1),(0,1),(3,1),(0,1)]
+|    |    |    |-- Def size: 12 [(6,1),(5,1),(3,1),(1,1),(0,1),(4,1),(5,1),(1,1),(0,1),(3,1),(1,1),(0,1)]
diff --git a/asterixdb/asterix-column/src/test/resources/result/transformer/900-dummy-tweet.schema b/asterixdb/asterix-column/src/test/resources/result/transformer/900-dummy-tweet.schema
index c7c60db..d9324f6 100644
--- a/asterixdb/asterix-column/src/test/resources/result/transformer/900-dummy-tweet.schema
+++ b/asterixdb/asterix-column/src/test/resources/result/transformer/900-dummy-tweet.schema
@@ -2,7 +2,7 @@
 |-- coordinates: object <level: 1>
 |    |-- coordinates: array <level: 2>
 |    |    |-- item: double <level: 3, index: 0>
-|    |    |    |-- Def size: 4 [(3,1),(1,1),(3,1),(1,1)]
+|    |    |    |-- Def size: 6 [(3,1),(2,1),(1,1),(3,1),(2,1),(1,1)]
 |    |-- type: string <level: 2, index: 1>
 |    |    |-- Def size: 2 [(2,2)]
 |-- created_at: string <level: 1, index: 2>
@@ -11,27 +11,27 @@
 |    |-- urls: array <level: 2>
 |    |    |-- item: object <level: 3>
 |    |    |    |-- display_url: string <level: 4, index: 3>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- expanded_url: string <level: 4, index: 4>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- indices: array <level: 4>
 |    |    |    |    |-- item: bigint <level: 5, index: 5>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(3,1),(1,1),(0,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(4,1),(3,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- url: string <level: 4, index: 6>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |-- user_mentions: array <level: 2>
 |    |    |-- item: object <level: 3>
 |    |    |    |-- id: bigint <level: 4, index: 7>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- id_str: string <level: 4, index: 8>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- indices: array <level: 4>
 |    |    |    |    |-- item: bigint <level: 5, index: 9>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(3,1),(1,1),(0,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(4,1),(3,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- name: string <level: 4, index: 10>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |    |    |    |-- screen_name: string <level: 4, index: 11>
-|    |    |    |    |-- Def size: 3 [(4,1),(1,1),(0,1)]
+|    |    |    |    |-- Def size: 4 [(4,1),(2,1),(1,1),(0,1)]
 |-- favorite_count: bigint <level: 1, index: 12>
 |    |-- Def size: 2 [(1,2)]
 |-- favorited: boolean <level: 1, index: 13>
@@ -41,7 +41,7 @@
 |-- geo: object <level: 1>
 |    |-- coordinates: array <level: 2>
 |    |    |-- item: double <level: 3, index: 15>
-|    |    |    |-- Def size: 4 [(3,1),(1,1),(3,1),(1,1)]
+|    |    |    |-- Def size: 6 [(3,1),(2,1),(1,1),(3,1),(2,1),(1,1)]
 |    |-- type: string <level: 2, index: 16>
 |    |    |-- Def size: 2 [(2,2)]
 |-- id: string <level: 1, index: 17>
@@ -68,7 +68,7 @@
 |    |    |    |-- item: array <level: 4>
 |    |    |    |    |-- item: array <level: 5>
 |    |    |    |    |    |-- item: double <level: 6, index: 26>
-|    |    |    |    |    |    |-- Def size: 8 [(6,1),(4,1),(3,1),(2,1),(6,1),(4,1),(3,1),(2,1)]
+|    |    |    |    |    |    |-- Def size: 14 [(6,1),(5,1),(4,2),(3,2),(2,1),(6,1),(5,1),(4,2),(3,2),(2,1)]
 |    |    |-- type: string <level: 3, index: 27>
 |    |    |    |-- Def size: 2 [(3,2)]
 |    |-- country: string <level: 2, index: 28>
@@ -94,16 +94,16 @@
 |    |    |-- user_mentions: array <level: 3>
 |    |    |    |-- item: object <level: 4>
 |    |    |    |    |-- id: bigint <level: 5, index: 37>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(2,1),(5,1),(2,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(3,1),(2,1),(5,1),(3,1),(2,1)]
 |    |    |    |    |-- id_str: string <level: 5, index: 38>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(2,1),(5,1),(2,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(3,1),(2,1),(5,1),(3,1),(2,1)]
 |    |    |    |    |-- indices: array <level: 5>
 |    |    |    |    |    |-- item: bigint <level: 6, index: 39>
-|    |    |    |    |    |    |-- Def size: 6 [(6,1),(4,1),(2,1),(6,1),(4,1),(2,1)]
+|    |    |    |    |    |    |-- Def size: 10 [(6,1),(5,1),(4,1),(3,1),(2,1),(6,1),(5,1),(4,1),(3,1),(2,1)]
 |    |    |    |    |-- name: string <level: 5, index: 40>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(2,1),(5,1),(2,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(3,1),(2,1),(5,1),(3,1),(2,1)]
 |    |    |    |    |-- screen_name: string <level: 5, index: 41>
-|    |    |    |    |    |-- Def size: 4 [(5,1),(2,1),(5,1),(2,1)]
+|    |    |    |    |    |-- Def size: 6 [(5,1),(3,1),(2,1),(5,1),(3,1),(2,1)]
 |    |-- favorite_count: bigint <level: 2, index: 42>
 |    |    |-- Def size: 2 [(2,2)]
 |    |-- favorited: boolean <level: 2, index: 43>

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17693
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I220e9e8ede45530ef61656530309c79321dc189c
Gerrit-Change-Number: 17693
Gerrit-PatchSet: 1
Gerrit-Owner: Wail Alkowaileet <wa...@gmail.com>
Gerrit-MessageType: newchange