in iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConst.java [176:277]
public void transform(Column[] columns, ColumnBuilder builder) throws Exception {
int count = columns[0].getPositionCount();
switch (dataType) {
case INT32:
case DATE:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeInt(intValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
case INT64:
case TIMESTAMP:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeLong(longValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
case FLOAT:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeFloat(floatValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
case DOUBLE:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeDouble(doubleValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
case BOOLEAN:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeBoolean(booleanValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
case TEXT:
case STRING:
case BLOB:
for (int i = 0; i < count; i++) {
boolean hasWritten = false;
for (int j = 0; j < columns.length - 1; j++) {
if (!columns[j].isNull(i)) {
builder.writeBinary(binaryValue);
hasWritten = true;
break;
}
}
if (!hasWritten) {
builder.appendNull();
}
}
return;
default:
throw new UnsupportedOperationException();
}
}