Native SDK for Connectors Java - release notes¶
Release notes for Native SDK for Connectors Java library.
Version 2.2.0 (July 10th, 2024)¶
General changes¶
Replaced the SnowSQL tool with new Snowflake CLI tool
Updated Java dependencies
Behavior changes¶
com.snowflake.connectors.common.object
:Changed value returned by
toString
to be the same as ingetValue
in classes:Identifier
ObjectName
Reference
SchemaName
com.snowflake.connectors.application.scheduler.SchedulerCreator
:Renamed class to
SchedulerManager
.
com.snowflake.connectors.taskreactor.commands.queue.CommandsQueueRepository
:Renamed class to
CommandsQueue
.
com.snowflake.connectors.application.integration.SchedulerTaskReactorOnIngestionScheduled
:Renamed class to
TaskReactorOnIngestionScheduledCallback
.The class now uses
ResourceIngestionDefinition
and its generic parameters.
com.snowflake.connectors.taskreactor.config.ConfigRepository
:Config values are now always treated as Strings, not Variants.
New features¶
New
PUBLIC.RESET_CONFIGURATION()
procedure that allows to reset the configuration wizard state. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Reset configuration.New
PUBLIC.RECOVER_CONNECTOR_STATE(STRING)
procedure that allows to reset the connector state. See also Recover connector state.New
TASK_REACTOR.REMOVE_INSTANCE(STRING)
procedure that allows to remove a Task Reactor instance. See also Remove instance.com.snowflake.connectors.application.configuration.connector.ConnectorConfigurationKey
:Added new
CORTEX_WAREHOUSE
key.Added new
CORTEX_USER_ROLE
key.
com.snowflake.connectors.util.time
:Added new classes for JSON serialization of
LocalDate
andZoneId
.
com.snowflake.connectors.common.task.TaskRepository
:Added support for the
AFTER
parameter during task creation, if task predecessors have been specified.Added support for the
USER_TASK_TIMEOUT_MS
parameter.
com.snowflake.connectors.common.task.TaskProperties
:Added support for task predecessors.
Added support for the
USER_TASK_TIMEOUT_MS
property.
com.snowflake.connectors.util.sql.SqlTools
:
Added
callProcedureRaw(Session, String, String...)
method.Added
callProcedureRaw(Session, String, String, String...)
method.
Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorker
class - a simple worker implementation for use with ingestion workloads.Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestion
class - a simple ingestion representation, for use by anIngestionWorker
.Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkItem
class - a simple work item implementation for ingestion work.
Bug fixes¶
com.snowflake.connectors.common.task.TaskRepository
:Fixed the successful task creation condition check in
create(TaskDefinition, boolean, boolean)
.
com.snowflake.connectors.util.variant.VarianMapper
:Fixed handling of timestamps in Variants.
Corrected default input validators in handlers for the connector configuration processes.
Removed
DataFrame#first
from mostSELECT
queries, which fixed issues with using some procedures in tasks.Removed granting
USAGE
onSTATE
schema to app roleADMIN
.Added missing
UPDATED_AT
column to the Task Reactor config table.
Version 2.1.0 (July 8th, 2024)¶
Behavior changes¶
New identifier approach.
Important
This new approach may change how identifiers are used in your connector, please test the new changes thoroughly!
The SDK now expects all identifiers to be sent as provided by the user; the SDK will asses by itself whether it’s a quoted identifier or not in order to process it correctly further.
Auto quoting of identifiers will be done only when using values returned by Snowflake queries.
To use the new approach with the UI - the connector must return a new property in the
PUBLIC.APP_PROPERTIES
view, with the key ofUI_ADD_QUOTES_TO_EXISTING_QUOTED_IDENTIFIERS
and a value ofTRUE
.Changed
com.snowflake.connectors.common.object.Identifier
class:Removed
fromWithAutoQuoting()
andgetName()
methods.Removed the concept of an empty identifier; removed
empty()
,isNullOrEmpty()
,validateNullOrEmpty()
, andisEmpty()
methods.Added new
from()
method, which allows for enabling of auto quoting during identifier instance creation; the provided String will not be auto quoted if it is an unquoted, fully uppercase identifier.Changed
validate()
method toisValid()
.Changed
toSqlString()
method togetValue()
.Added
getUnquotedValue()
,getQuotedValue()
,getVariantValue()
, andisUnquoted()
methods.
Changed
com.snowflake.connectors.common.object.ObjectName
class:
Made database and schema properties
Optional
.Changed return type of
getDatabase()
andgetSchema()
toOptional
.Changed
validate()
method toisValid()
.Changed
validateDoubleDot()
method toisDoubleDot()
.Changed
getEscapedName()
method togetValue()
.Added
getVariantValue()
andgetSchemaName()
methods.Changed
com.snowflake.connectors.common.object.Reference
class:
Removed the concept of an empty reference; removed
empty()
andisEmpty()
methods.Changed
validate()
method toisValid()
.Changed
referenceName()
method togetName()
.Changed
value()
method togetValue()
.Added new
com.snowflake.connectors.common.object.SchemaName
class for representing the schema; similar behavior tocom.snowflake.connectors.common.object.ObjectName
class.Added new
com.snowflake.connectors.common.object.InvalidSchemaNameException
class.
Other additions and changes¶
Changed
applyToAllInitializedTaskReactorInstances()
method in thecom.snowflake.connectors.taskreactor.TaskReactorInstanceActionExecutor
to execute an action only on initialized task reactor instances. Previous behavior: actions were executed on all registered task reactor instances.
New features¶
Resource management procedures:
Introduced new callbacks to
PUBLIC.CREATE_RESOURCE()
procedure that allows to perform custom operations during the procedure flow. See also Create resource.New
PUBLIC.ENABLE_RESOURCE()
procedure that allows to enable disabled resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Enable resource.New
PUBLIC.DISABLE_RESOURCE()
procedure that allows to disable enabled resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Disable resource.New
PUBLIC.UPDATE_RESOURCE()
procedure that allows to update ingestion configurations of a particular resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Update resource.
com.snowflake.connectors.util.sql.SqlTools
:Added
asVarchar()
method that is expected to replacevarcharArgument()
method.Added
asVariant()
method that is expected to replacevariantArgument()
method.Marked
varcharArgument()
andvariantArgument()
methods as deprecated and set them to be removed in the future.
Other additions:
Defined Ingestion Process status as constants in the
com.snowflake.connectors.application.ingestion.process.IngestionProcessStatuses
class.Added
isNotOk()
method tocom.snowflake.connectors.common.response.ConnectorResponse
class.Added
com.snowflake.connectors.util.snowflake.DefaultTransactionManager
class that allows to execute sql statements within a transaction by using thewithTransaction()
method.Improved logging in the task reactor.
Bug fixes¶
Fixed bug that resulted in removing task reactor instance schema, once unexpected error was raised during
CREATE_INSTANCE_OBJECTS()
procedure.
Version 2.0.0 (May 24th, 2024)¶
Initial release.