package net.snowflake.client.core.arrow; import net.snowflake.client.core.DataConversionContext; import net.snowflake.client.core.SFSession; import net.snowflake.client.jdbc.ErrorCode; import net.snowflake.common.core.SFBinaryFormat; import net.snowflake.common.core.SnowflakeDateTimeFormat; import org.junit.After; import java.util.TimeZone; public class BaseConverterTest implements DataConversionContext { private SnowflakeDateTimeFormat dateTimeFormat = SnowflakeDateTimeFormat.fromSqlFormat("YYYY-MM-DD"); private SnowflakeDateTimeFormat timeFormat = SnowflakeDateTimeFormat.fromSqlFormat("HH24:MI:SS"); private SnowflakeDateTimeFormat timestampLTZFormat = SnowflakeDateTimeFormat.fromSqlFormat("DY, DD MON YYYY HH24:MI:SS TZHTZM"); private SnowflakeDateTimeFormat timestampNTZFormat = SnowflakeDateTimeFormat.fromSqlFormat("DY, DD MON YYYY HH24:MI:SS TZHTZM"); private SnowflakeDateTimeFormat timestampTZFormat = SnowflakeDateTimeFormat.fromSqlFormat("DY, DD MON YYYY HH24:MI:SS TZHTZM"); private SFSession session = new SFSession(); private int testScale = 9; private boolean honorClientTZForTimestampNTZ; protected final int invalidConversionErrorCode = ErrorCode.INVALID_VALUE_CONVERT.getMessageCode(); @After public void clearTimeZone() { System.clearProperty("user.timezone"); } @Override public SnowflakeDateTimeFormat getTimestampLTZFormatter() { return timestampLTZFormat; } @Override public SnowflakeDateTimeFormat getTimestampNTZFormatter() { return timestampNTZFormat; } @Override public SnowflakeDateTimeFormat getTimestampTZFormatter() { return timestampTZFormat; } @Override public SnowflakeDateTimeFormat getDateFormatter() { return dateTimeFormat; } @Override public SnowflakeDateTimeFormat getTimeFormatter() { return timeFormat; } @Override public SFBinaryFormat getBinaryFormatter() { return SFBinaryFormat.BASE64; } public void setScale(int scale) { testScale = scale; } @Override public int getScale(int columnIndex) { return testScale; } @Override public SFSession getSession() { return session; } @Override public TimeZone getTimeZone() { return TimeZone.getDefault(); } @Override public boolean getHonorClientTZForTimestampNTZ() { return honorClientTZForTimestampNTZ; } public void setHonorClientTZForTimestampNTZ(boolean val) { honorClientTZForTimestampNTZ = val; } @Override public long getResultVersion() { // Note: only cover current result version return 1; } }