|
1 | 1 | # Version changelog |
2 | 2 |
|
| 3 | +## # Lakebridge v0.10.11 Release Notes |
| 4 | + |
| 5 | +## Analyzer |
| 6 | +No updates in this release |
| 7 | + |
| 8 | +## Converters |
| 9 | + |
| 10 | +### General |
| 11 | +- Fixed special character handling in filenames by introducing from_uri() helper function for safer URI handling |
| 12 | +- Ensured SQL converter returns UTF-8 encoded files for proper character encoding |
| 13 | +- Fixed filename to correctly output databricks_conversion_supplements.py supplemental file |
| 14 | +- Fixed broken splitter URL by updating directory naming conventions from "Downloads" to "downloads" |
| 15 | +- Improved handling of encoding-related errors by catching UnicodeDecodeError and LookupError exceptions during file processing, creating TranspileError with specific encoding-error codes instead of stopping |
| 16 | + |
| 17 | +### Morpheus |
| 18 | + |
| 19 | +#### Snowflake |
| 20 | +- Added support for TRUNCATE TABLE statements with proper IR and translation support |
| 21 | +- Correctly support and system variables |
| 22 | +- Refactored and extended grammar and AST support for SQL procedure creation with improved handling of raw string literals |
| 23 | +- Enhanced schema reconciliation functionality to support Snowflake arrays, addressing the corner case where Databricks arrays are typed and Snowflake arrays are untyped |
| 24 | + |
| 25 | +#### TSQL |
| 26 | +- Added support for TRUNCATE TABLE statements with proper IR and translation support |
| 27 | +- Support full CREATE and ALTER INDEX statements in TSQL parsing, rejecting INDEX CREATE/ALTER statements sensibly instead of raising syntax errors |
| 28 | +- Fixed implementation of IF scripting blocks with improvements to SQL parser, grammar enhancements, and enhanced scripting grammar for more robust handling of block statements and conditional branches |
| 29 | +- Allow CLUSTERED to be an identifier to improve CREATE TABLE syntax as a CONSTRAINT qualifier |
| 30 | +- Support percentage expressions in TSQL options (e.g., OPT = 42%) instead of raising parsing errors |
| 31 | +- Added support for REVOKE statements, similar to existing GRANT statement implementation |
| 32 | +- Ensure that ROWS and OBJECTS can be used as identifiers even with Jinja templates |
| 33 | +- Correctly support and system variables |
| 34 | + |
| 35 | +#### General (Multiple Dialects) |
| 36 | +- Support comments on column declarations when generating SQL and renamed legacy builders for consistency |
| 37 | +- Refactored IR around CREATE FUNCTION and CREATE PROCEDURE, unifying all ways to create stored procedures under a single CreateStoredProcedure IR node and all ways to create user defined functions under a single CreateUDF IR node |
| 38 | +- Implemented grammar and IR placeholders for named windows, introducing initial support for the SQL standard WINDOW clause in parser grammar |
| 39 | + |
| 40 | +### BladeBridge |
| 41 | + |
| 42 | +#### Oracle |
| 43 | +- Removed unsupported Oracle DDL constraints (add/create constraint unique) and extraneous TBLPROPERTIES from converted output |
| 44 | + |
| 45 | +#### MSSQL |
| 46 | +- Added handle_xml_nodes function for MS SQL processing |
| 47 | +- Fixed multiple MSSQL issues including CTEs in views/stored procedures, ADD CONSTRAINT problems, DEFAULT value handling, and parameter data types |
| 48 | + |
| 49 | +#### Synapse |
| 50 | +- Fixed multiple Synapse issues including CTEs in views/stored procedures, ADD CONSTRAINT problems, DEFAULT value handling, parameter data types, error handling in stored procedures, and Synapse-specific features (e.g., table distribution) |
| 51 | + |
| 52 | +#### Teradata |
| 53 | +- Added Teradata function mappings including ZEROIFNULL, TEMPORAL_TIMESTAMP, TRYCAST, ANY, FIRST, NULLIFZERO, DECODE with different parameter counts, and HASHAMP |
| 54 | +- Removed collect statistics and lock table statements |
| 55 | + |
| 56 | +#### DataStage |
| 57 | +- Implemented DataStage Checksum component translation to SparkSQL equivalent and fixed Pyspark checksum translation to use MD5() instead of SHA2() |
| 58 | + |
| 59 | +## Reconcile |
| 60 | +- Added handling for special characters in reconcile aggregate, enhancing the library to handle special characters in column names by properly delimiting identifiers in SQL queries |
| 61 | +- Fixed deploy reconcile jobs by updating wheel file handling, simplifying deployment process to use single wheel path, and fixing broken documentation links |
| 62 | + |
| 63 | +## Documentation |
| 64 | +- Fixed download link in docs (reconcile automation) by replacing broken markdown link with JSX link utilizing useBaseUrl hook |
| 65 | + |
| 66 | +## General |
| 67 | +- Implemented new describe-transpile CLI subcommand that describes installed transpilers, including their versions, configuration paths, and supported source dialects |
| 68 | +- Switched from urllib to requests library for making HTTP calls to PyPI and Maven Central, with default 60-second timeout and improved error handling |
| 69 | +- Work around DATABRICKS_HOST normalization issue during install and uninstall by introducing new Lakebridge subclass with appropriate workspace client |
| 70 | + |
| 71 | +# Dependency updates |
| 72 | +* Bump Databricks SDK Version to 0.67.0 by @goodwillpunning in https://github.com/databrickslabs/lakebridge/pull/2062 |
| 73 | +* Bump sigstore/gh-action-sigstore-python from 3.0.0 to 3.0.1 by @dependabot[bot] in https://github.com/databrickslabs/lakebridge/pull/1753 |
| 74 | + |
| 75 | +Special thanks to @BrianDeacon for his contribution to fix https://github.com/databrickslabs/lakebridge/issues/1858 |
3 | 76 | ## 0.10.10 |
4 | 77 |
|
5 | 78 | ## Analyzer |
|
0 commit comments