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 - toStringto be the same as in- getValuein 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 - ResourceIngestionDefinitionand 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_WAREHOUSEkey.
- Added new - CORTEX_USER_ROLEkey.
 
- com.snowflake.connectors.util.time:- Added new classes for JSON serialization of - LocalDateand- ZoneId.
 
- com.snowflake.connectors.common.task.TaskRepository:- Added support for the - AFTERparameter during task creation, if task predecessors have been specified.
- Added support for the - USER_TASK_TIMEOUT_MSparameter.
 
- com.snowflake.connectors.common.task.TaskProperties:- Added support for task predecessors. 
- Added support for the - USER_TASK_TIMEOUT_MSproperty.
 
- 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.SimpleIngestionWorkerclass - a simple worker implementation for use with ingestion workloads.
- Added new - com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionclass - a simple ingestion representation, for use by an- IngestionWorker.
- Added new - com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkItemclass - 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#firstfrom most- SELECTqueries, which fixed issues with using some procedures in tasks.
- Removed granting - USAGEon- STATEschema to app role- ADMIN.
- Added missing - UPDATED_ATcolumn 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_PROPERTIESview, with the key of- UI_ADD_QUOTES_TO_EXISTING_QUOTED_IDENTIFIERSand a value of- TRUE.
- Changed - com.snowflake.connectors.common.object.Identifierclass:- Removed - fromWithAutoQuoting()and- getName()methods.
- Removed the concept of an empty identifier; removed - empty(),- isNullOrEmpty(),- validateNullOrEmpty(), and- isEmpty()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 to- isValid().
- Changed - toSqlString()method to- getValue().
- Added - getUnquotedValue(),- getQuotedValue(),- getVariantValue(), and- isUnquoted()methods.
 
 
Changed
com.snowflake.connectors.common.object.ObjectNameclass:
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.Referenceclass:
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.SchemaNameclass for representing the schema; similar behavior tocom.snowflake.connectors.common.object.ObjectNameclass.
Added new
com.snowflake.connectors.common.object.InvalidSchemaNameExceptionclass.
Other additions and changes¶
Changed
applyToAllInitializedTaskReactorInstances()method in thecom.snowflake.connectors.taskreactor.TaskReactorInstanceActionExecutorto 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 replace- varcharArgument()method.
- Added - asVariant()method that is expected to replace- variantArgument()method.
- Marked - varcharArgument()and- variantArgument()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.IngestionProcessStatusesclass.
- Added - isNotOk()method to- com.snowflake.connectors.common.response.ConnectorResponseclass.
- Added - com.snowflake.connectors.util.snowflake.DefaultTransactionManagerclass that allows to execute sql statements within a transaction by using the- withTransaction()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.