- Resolving issue LOG_BASED tables with special characters. Escaping the object names with double quotes. Issue #74
- Providing more flexibility with database connections to support newer SQL Server instances like PDW via option conn_properties config. Issue #28
- Provides the ability to dump TDS logs via new enable_tds_logging config.
- removing tox-poetry-install - Not well supported.
- Updating integration tests vars to CAPS to support passing MSSQL Port
- tox-docker requires expose rather than ports syntax in tox.ini
- Bumping docker = "^6.1.3" -> "^7.1.0"
- Bumping pytest = "^7.0.0" -> "^8.3.2"
- Bumping pytest-cov = "^4.1.0" -> = "^5.0.0"
- Bumping mypy = "^1.10.1" -> = "^1.11.1"
- Bumping pytest-sugar = "^0.9.7" -> = "^1.0.0"
- Bumping pytest-datafiles = "^2.0" -> = "^3.0"
- Bumping tox-docker = "4.1.0" -> = "5.0.0"
- Bumping requests = "2.31.0" -> "2.32.3"
- Bumping tox = "^3.28.0" -> "^4.18.0"
- Moving to patched version of Singer Framework plus using msgspec rather than orjson for JSON serialization speed.
- Adjusting tox file for test pipeline to point to correct location of the sqlcmd in the latest MSSQL docker image.
- Adjusting tox file. Added -No switch calling sqlcmd to allow user/password connection to MSSQL.
- Patching dependencies.
- Pinned Requests to "2.31.0". This is required as the tox pipeline fails with a Docker API error with requests "2.32.x".
- Explicitly setting python version 3.8 -> 3.12
- Moving to using recommended poetry-core for build. https://python-poetry.org/docs/pyproject/#poetry-and-pep-517
- NOTE: Recommend refactoring to avoid using tox-poetry-installer as restrictive dependencies are stopping tox and docker updates. This may resolve the requests/docker api issue.
- Bug Fix. Issue #62 - change to column selection using lists instead of sets to preserve column ordering
- Bug Fix. Change pendulum DateTime type to datetime.datetime as pymssql 2.3.0 is no longer compatible with query parameters as pendulum DateTime (pymssql/pymssql#889)
- Bug Fix. Enhancing singer-decimal output for numeric data to correctly output the correct datatype - string and precision.
- Bug Fix. Removing test code which slipped into the release, and adjusting offending code with correct dynamic column name.
This feature increases support for SQL Datatypes.
- Adds support for datetimeoffset - wintersrd#50
- Resolves issue with datetime2 rounding with high precision timestamps wintersrd#51
- Resolves the max and min range for tinyints. The current min and max are correct for MariaDB and MySQL only. MSSQL Server only supports positive integers (unsigned tinyint). wintersrd#2
This is a number of new enhancements to extend capability and resolving a few bugs.
- Adds
use_singer_decimal
setting, capability i.e. the ability to output decimal, float, and integer data as strings to avoid loss of precision. A target like this custom target-snowflake can decode this back into numeric data. - Ordering columns by their ordinal position so the schema matches the database definition
- Support for new
cursor_array_size
parameter. This allows fetching records in batches speeding up network traffic. Recommend a setting of10000
records. - Fixing bug. We have encountered a scenario where a stream starts. It failed and there was no bookmark written. When the job is re-run the state file had currently_syncing for the given stream but with no bookmark written it didn't appear in the streams_with_state list. This small change will ensure that the currently_syncing_list will be populated whether there is a bookmark or not by filtering against the ordered_streams list which includes both streams_without_state and streams_with_state.
- Removed test for "INCREMENTAL" and not primary_keys. INCREMENTAL loads can be performed without primary keys as long as there is a replication key.
- Updating the CDC documentation
- Fixing bug. Where encountered a scenario where state lsn == max lsn.
If the lsn coming from state is equal to the maximum lsn, then we should not be incrementing
this lsn as it causes errors in the
fn_cdc_get_all_changes
function. - Fixing bug. The _sdc_lsn_operation should be 2 for Inserts not Deletes.
- Fixing bug. pymssql 2.2.8 does not work. Excluding this version from pyproject.toml.
- Feature. Adding a logo to the tap.
- Resolving PR: wintersrd#36
- Resolving PR: wintersrd#16
This is the first properly productionalized release of tap-mssql and brings a number of significant enhancements to both extend capability and improve future maintainability
- Adds capability to use log based CDC
- Adds a number of new data types:
- Additional datetime options
- Small money
- Numeric
- Allows configuration on how to use datetime
- Adds a tox test environment plus dockerized MSSQL server to allow proper testing
- Rebuilds all tests to match SQL server
- Replaces setup.py with pyproject.toml + poetry.lock and extends requirements to include full testing suite
- Adds a robust pre-commit for development purposes
- Configures bumpversion
- Reformats all code to black (100 character lines)
- Corrects all open flake8 errors
- Removes unused packages