Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,15 @@ public static class TransformedInputRow implements InputRow
private final InputRow row;
private final Map<String, RowFunction> transforms;

// cached column, because it will be read frequently
private final DateTime timestamp;

public TransformedInputRow(final InputRow row, final Map<String, RowFunction> transforms)
{
this.row = row;
this.transforms = transforms;

this.timestamp = readTimestampFromRow(row, transforms);
}

@Override
Expand All @@ -158,27 +163,29 @@ public List<String> getDimensions()
return row.getDimensions();
}

@Override
public long getTimestampFromEpoch()
static DateTime readTimestampFromRow(final InputRow row, final Map<String, RowFunction> transforms)
{
final RowFunction transform = transforms.get(ColumnHolder.TIME_COLUMN_NAME);
final long ts;
if (transform != null) {
//noinspection ConstantConditions time column is never null
return Rows.objectToNumber(ColumnHolder.TIME_COLUMN_NAME, transform.eval(row), true).longValue();
ts = Rows.objectToNumber(ColumnHolder.TIME_COLUMN_NAME, transform.eval(row), true).longValue();
} else {
return row.getTimestampFromEpoch();
ts = row.getTimestampFromEpoch();
}
return DateTimes.utc(ts);
}

@Override
public long getTimestampFromEpoch()
{
return timestamp.getMillis();
}

@Override
public DateTime getTimestamp()
{
final RowFunction transform = transforms.get(ColumnHolder.TIME_COLUMN_NAME);
if (transform != null) {
return DateTimes.utc(getTimestampFromEpoch());
} else {
return row.getTimestamp();
}
return timestamp;
}

@Override
Expand Down