Package net.snowflake.client.jdbc
Class SnowflakeUtil
- java.lang.Object
-
- net.snowflake.client.jdbc.SnowflakeUtil
-
public class SnowflakeUtil extends Object
- Author:
- jhuang
-
-
Field Summary
Fields Modifier and Type Field Description static StringBIG_DECIMAL_STRstatic StringBOOLEAN_STRstatic StringBYTE_STRstatic StringBYTES_STRstatic StringDATE_STRstatic StringDOUBLE_STRstatic intEXTRA_TYPES_TIMESTAMP_LTZAdditional data types not covered by standard JDBCstatic intEXTRA_TYPES_TIMESTAMP_NTZstatic intEXTRA_TYPES_TIMESTAMP_TZstatic StringFLOAT_STRstatic StringINT_STRstatic StringLONG_STRstatic StringSHORT_STRstatic StringTIME_STRstatic StringTIMESTAMP_STR
-
Constructor Summary
Constructors Constructor Description SnowflakeUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidcheckErrorAndThrowException(com.fasterxml.jackson.databind.JsonNode rootNode)static voidcheckErrorAndThrowExceptionIncludingReauth(com.fasterxml.jackson.databind.JsonNode rootNode)static HttpClientSettingsKeyconvertProxyPropertiesToHttpClientKey(OCSPMode mode, Properties info)Setup JDBC proxy properties if necessary.static ThreadPoolExecutorcreateDefaultExecutorService(String threadNamePrefix, int parallel)Returns a new thread pool configured with the default settings.static SnowflakeColumnMetadataextractColumnMetadata(com.fasterxml.jackson.databind.JsonNode colNode, boolean jdbcTreatDecimalAsInt, SFBaseSession session)static longgetEpochTimeInMicroSeconds()static ThrowablegetRootCause(Exception ex)static longgetSecondsFromMillis(long millis)Round the time value from milliseconds to seconds so the seconds can be used to create SimpleDateFormatter.static TimegetTimeInSessionTimezone(Long time, int nanos)Get the time value in session timezone instead of UTC calculation done by java.sql.Time.static booleanisBlank(String input)static voidlogResponseDetails(org.apache.http.HttpResponse response, SFLogger logger)A utility to log response details.static StringrandomAlphaNumeric(int count)static StringsystemGetEnv(String env)System.getenv wrapper.static StringsystemGetProperty(String property)System.getProperty wrapper.static voidsystemSetEnv(String key, String value)System.setEnv function.static voidsystemUnsetEnv(String key)System.unsetEnv function to remove a system environment parameter in the map
-
-
-
Field Detail
-
EXTRA_TYPES_TIMESTAMP_LTZ
public static final int EXTRA_TYPES_TIMESTAMP_LTZ
Additional data types not covered by standard JDBC- See Also:
- Constant Field Values
-
EXTRA_TYPES_TIMESTAMP_TZ
public static final int EXTRA_TYPES_TIMESTAMP_TZ
- See Also:
- Constant Field Values
-
EXTRA_TYPES_TIMESTAMP_NTZ
public static final int EXTRA_TYPES_TIMESTAMP_NTZ
- See Also:
- Constant Field Values
-
BIG_DECIMAL_STR
public static final String BIG_DECIMAL_STR
- See Also:
- Constant Field Values
-
FLOAT_STR
public static final String FLOAT_STR
- See Also:
- Constant Field Values
-
DOUBLE_STR
public static final String DOUBLE_STR
- See Also:
- Constant Field Values
-
BOOLEAN_STR
public static final String BOOLEAN_STR
- See Also:
- Constant Field Values
-
SHORT_STR
public static final String SHORT_STR
- See Also:
- Constant Field Values
-
INT_STR
public static final String INT_STR
- See Also:
- Constant Field Values
-
LONG_STR
public static final String LONG_STR
- See Also:
- Constant Field Values
-
TIME_STR
public static final String TIME_STR
- See Also:
- Constant Field Values
-
TIMESTAMP_STR
public static final String TIMESTAMP_STR
- See Also:
- Constant Field Values
-
DATE_STR
public static final String DATE_STR
- See Also:
- Constant Field Values
-
BYTE_STR
public static final String BYTE_STR
- See Also:
- Constant Field Values
-
BYTES_STR
public static final String BYTES_STR
- See Also:
- Constant Field Values
-
-
Method Detail
-
checkErrorAndThrowExceptionIncludingReauth
public static void checkErrorAndThrowExceptionIncludingReauth(com.fasterxml.jackson.databind.JsonNode rootNode) throws SnowflakeSQLException- Throws:
SnowflakeSQLException
-
checkErrorAndThrowException
public static void checkErrorAndThrowException(com.fasterxml.jackson.databind.JsonNode rootNode) throws SnowflakeSQLException- Throws:
SnowflakeSQLException
-
getEpochTimeInMicroSeconds
public static long getEpochTimeInMicroSeconds()
-
extractColumnMetadata
public static SnowflakeColumnMetadata extractColumnMetadata(com.fasterxml.jackson.databind.JsonNode colNode, boolean jdbcTreatDecimalAsInt, SFBaseSession session) throws SnowflakeSQLException
- Throws:
SnowflakeSQLException
-
logResponseDetails
public static void logResponseDetails(org.apache.http.HttpResponse response, SFLogger logger)A utility to log response details.Used when there is an error in http response
- Parameters:
response- http response get from serverlogger- logger object
-
createDefaultExecutorService
public static ThreadPoolExecutor createDefaultExecutorService(String threadNamePrefix, int parallel)
Returns a new thread pool configured with the default settings.- Parameters:
threadNamePrefix- prefix of the thread nameparallel- the number of concurrency- Returns:
- A new thread pool configured with the default settings.
-
isBlank
public static boolean isBlank(String input)
-
randomAlphaNumeric
public static String randomAlphaNumeric(int count)
-
systemGetProperty
public static String systemGetProperty(String property)
System.getProperty wrapper. If System.getProperty raises an SecurityException, it is ignored and returns null.- Parameters:
property- the property name- Returns:
- the property value if set, otherwise null.
-
systemGetEnv
public static String systemGetEnv(String env)
System.getenv wrapper. If System.getenv raises an SecurityException, it is ignored and returns null.- Parameters:
env- the environment variable name.- Returns:
- the environment variable value if set, otherwise null.
-
systemSetEnv
public static void systemSetEnv(String key, String value)
System.setEnv function. Can be used for unit tests.
-
systemUnsetEnv
public static void systemUnsetEnv(String key)
System.unsetEnv function to remove a system environment parameter in the map- Parameters:
key-
-
convertProxyPropertiesToHttpClientKey
public static HttpClientSettingsKey convertProxyPropertiesToHttpClientKey(OCSPMode mode, Properties info) throws SnowflakeSQLException
Setup JDBC proxy properties if necessary.- Parameters:
mode- OCSP modeinfo- proxy server properties.- Throws:
SnowflakeSQLException
-
getSecondsFromMillis
public static long getSecondsFromMillis(long millis)
Round the time value from milliseconds to seconds so the seconds can be used to create SimpleDateFormatter. Negative values have to be rounded to the next negative value, while positive values should be cut off with no rounding.- Parameters:
millis-- Returns:
-
-