aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
diff options
context:
space:
mode:
Diffstat (limited to 'exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java')
-rw-r--r--exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java65
1 files changed, 28 insertions, 37 deletions
diff --git a/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java b/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
index 3fc45dffb..b192be36e 100644
--- a/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
+++ b/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
@@ -48,45 +48,36 @@ import java.text.DecimalFormat;
* This class is generated using freemarker and the ${.template_name} template.
*/
@SuppressWarnings("unused")
-@FunctionTemplate(name = "to_char", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = NullHandling.NULL_IF_NULL)
+@FunctionTemplate(name = "to_char",
+ scope = FunctionTemplate.FunctionScope.SIMPLE,
+ nulls = NullHandling.NULL_IF_NULL)
public class G${type}ToChar implements DrillSimpleFunc {
- @Param ${type}Holder left;
- @Param VarCharHolder right;
- @Inject DrillBuf buffer;
- @Workspace java.text.NumberFormat outputFormat;
- @Output VarCharHolder out;
+ @Param ${type}Holder left;
+ @Param VarCharHolder right;
+ @Inject DrillBuf buffer;
+ @Workspace java.text.NumberFormat outputFormat;
+ @Output VarCharHolder out;
- public void setup() {
- buffer = buffer.reallocIfNeeded(100);
- byte[] buf = new byte[right.end - right.start];
- right.buffer.getBytes(right.start, buf, 0, right.end - right.start);
- String inputFormat = new String(buf);
- outputFormat = new java.text.DecimalFormat(inputFormat);
- }
+ public void setup() {
+ buffer = buffer.reallocIfNeeded(100);
+ byte[] buf = new byte[right.end - right.start];
+ right.buffer.getBytes(right.start, buf, 0, right.end - right.start);
+ String inputFormat = new String(buf);
+ outputFormat = new java.text.DecimalFormat(inputFormat);
+ }
- public void eval() {
-
- <#if type == "VarDecimal">
- java.math.BigDecimal bigDecimal = org.apache.drill.exec.util.DecimalUtility.getBigDecimalFromDrillBuf(left.buffer, left.start, left.end - left.start, left.scale);
- String str = outputFormat.format(bigDecimal);
- <#elseif type == "Decimal9" || type == "Decimal18">
- java.math.BigDecimal bigDecimal = new java.math.BigDecimal(java.math.BigInteger.valueOf(left.value), left.scale);
- String str = outputFormat.format(bigDecimal);
- <#elseif type == "Decimal28Sparse" || type == "Decimal38Sparse">
- java.math.BigDecimal bigDecimal = org.apache.drill.exec.util.DecimalUtility.getBigDecimalFromDrillBuf(left.buffer, left.start, left.nDecimalDigits, left.scale, true);
- String str = outputFormat.format(bigDecimal);
- <#elseif type == "Decimal28Dense" || type == "Decimal38Dense">
- java.math.BigDecimal bigDecimal = org.apache.drill.exec.util.DecimalUtility.getBigDecimalFromDense(left.buffer, left.start, left.nDecimalDigits, left.scale, left.maxPrecision, left.WIDTH);
- String str = outputFormat.format(bigDecimal);
- <#else>
- String str = outputFormat.format(left.value);
- </#if>
- out.buffer = buffer;
- out.start = 0;
- out.end = Math.min(100, str.length()); // truncate if target type has length smaller than that of input's string
- out.buffer.setBytes(0, str.substring(0,out.end).getBytes());
-
- }
+ public void eval() {
+ <#if type == "VarDecimal">
+ java.math.BigDecimal bigDecimal = org.apache.drill.exec.util.DecimalUtility.getBigDecimalFromDrillBuf(left.buffer, left.start, left.end - left.start, left.scale);
+ String str = outputFormat.format(bigDecimal);
+ <#else>
+ String str = outputFormat.format(left.value);
+ </#if>
+ out.buffer = buffer;
+ out.start = 0;
+ out.end = Math.min(100, str.length()); // truncate if target type has length smaller than that of input's string
+ out.buffer.setBytes(0, str.substring(0, out.end).getBytes());
+ }
}
-</#list> \ No newline at end of file
+</#list>