aboutsummaryrefslogtreecommitdiff
path: root/exec/vector/src/main/codegen/templates/UnionWriter.java
diff options
context:
space:
mode:
Diffstat (limited to 'exec/vector/src/main/codegen/templates/UnionWriter.java')
-rw-r--r--exec/vector/src/main/codegen/templates/UnionWriter.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/exec/vector/src/main/codegen/templates/UnionWriter.java b/exec/vector/src/main/codegen/templates/UnionWriter.java
index 961810e3a..13c093acf 100644
--- a/exec/vector/src/main/codegen/templates/UnionWriter.java
+++ b/exec/vector/src/main/codegen/templates/UnionWriter.java
@@ -181,7 +181,21 @@ public class UnionWriter extends AbstractFieldWriter implements FieldWriter {
<#if lowerName == "int" ><#assign lowerName = "integer" /></#if>
<#assign upperName = minor.class?upper_case />
<#assign capName = minor.class?cap_first />
- <#if !minor.class?starts_with("Decimal")>
+ <#if minor.class == "VarDecimal">
+ @Override
+ public ${capName}Writer ${lowerName}(String name, int scale, int precision) {
+ data.getMutator().setType(idx(), MinorType.MAP);
+ getMapWriter().setPosition(idx());
+ return getMapWriter().${lowerName}(name, scale, precision);
+ }
+
+ @Override
+ public ${capName}Writer ${lowerName}(int scale, int precision) {
+ data.getMutator().setType(idx(), MinorType.LIST);
+ getListWriter().setPosition(idx());
+ return getListWriter().${lowerName}(scale, precision);
+ }
+ <#else>
@Override
public ${capName}Writer ${lowerName}(String name) {
data.getMutator().setType(idx(), MinorType.MAP);