Sha256: d2293d4e23164a08f8218f891d1dc23af22fdc943db7f40baafa1d58736f3da4

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

package org.embulk.filter.calcite.getter;

import org.embulk.input.jdbc.getter.TimestampColumnGetter;
import org.embulk.spi.PageBuilder;
import org.embulk.spi.time.Timestamp;
import org.embulk.spi.time.TimestampFormatter;
import org.embulk.spi.type.Type;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;

import static java.util.Calendar.getInstance;
import static java.util.TimeZone.getTimeZone;

public class UTCTimestampColumnGetter
        extends TimestampColumnGetter
{
    private static ThreadLocal<Calendar> calendar = new ThreadLocal<Calendar>() {
        @Override
        protected Calendar initialValue()
        {
            return getInstance(getTimeZone("UTC"));
        }
    };

    public UTCTimestampColumnGetter(PageBuilder to, Type toType, TimestampFormatter timestampFormatter)
    {
        super(to, toType, timestampFormatter);
    }

    @Override
    protected void fetch(ResultSet from, int fromIndex)
            throws SQLException
    {
        java.sql.Timestamp timestamp = from.getTimestamp(fromIndex, calendar.get());
        if (timestamp != null) {
            value = Timestamp.ofEpochSecond(timestamp.getTime() / 1000, timestamp.getNanos());
        }
    }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embulk-filter-calcite-0.1.0 src/main/java/org/embulk/filter/calcite/getter/UTCTimestampColumnGetter.java