Releases: MarketSquare/Robotframework-Database-Library
v1.4.2
What's Changed
- Fix #202 - no empty list is passed to the database module if no sql params were specified. Fixes an error if the database module doesn't accept an empty list as parameters.
- Fix #184 - Improvements in parsing the PL/SQL script files.
- The keyword
Execute SQL Script
has a new parametersplit
now - setting it to False disables splitting the SQL script into statements. In this case the entire script content will be passed to the database module for execution. - The keyword
Execute SQL String
has a new parameteromitTrailingSemicolon
- for explicit instruction, if the trailing semicolon (;) at the SQL string end should be removed or not.- Setting it to False will fix an error, if the Oracle database exceptionally requires a semicolon at the end of the PL/SQL block. More details available here.
- If not specified, it's decided based on the current database module in use. For Oracle, the semicolon is removed by default.
- #201 - improved docs of the
Query
keyword - added a note, that result values might be not always tuples (depends on the database module)
Full Changelog: v1.4.1...v1.4.2
Thanks a lot to all contributors!
v1.4.1
What's Changed
- Handle multiple DB connections with aliases - see usage example in readme
- Support parametrised SQL requests - see the keyword Query for example
- Option driverMode to support oracledb "thick" mode
- This might introduce a breaking change in your tests, if you enabled the thick mode manually before - e.g. with such a call:
Evaluate oracledb.init_oracle_client() modules=oracledb
- This could produce an error message, because the library verifies internally, if the oracle mode is as expected - any by default it's the thin mode
- You don't need this explicit initialisation anymore. If you set the driverMode to thick, this init will be called in the library itself.
- This might introduce a breaking change in your tests, if you enabled the thick mode manually before - e.g. with such a call:
- Fix and improve error handling for missing or invalid configuration file
- A good bunch of code refactoring, including type hints
- Acceptance tests were improved and extended
- Added unit tests
Full Changelog: v1.3.1...v1.4.1
Thanks a lot to all contributors!
v1.3.1
v1.3.0
This is a first release since 2019 and it contains some long-awaited bug fixes and improvements.
The library finally supports the new Oracle driver - oracledb.
Running the SQL script files has been improved - the UTF8 encoding is used by default now, values with semicolons and begin/end blocks are processed properly.
You can now provide custom error messages to assertion keywords. The default error messages were improved as well.
And a lot of other changes - see more details below.
The probably breaking changes are related to the Execute Sql Script and Call Stored Procedure keywords - see details below.
Most important changes
- Added support for Teradata 15 & 16
- Solve encoding problem - explicitely use UTF8 when running SQL script files
- Support kingbase database
- pyodbc - allow overriding dbDriver istead of always using "SQL Server"
- The keyword "Disconnect From Database" doesn't fail by default now, if there was no open connection. The previous behavior with an error can be enforced using a special parameter.
- Proper execution of SQL scripts containing semicolons in values - fixes #111
- Fix #173 - keyword "Connect using custom params" doesn't require require quotes (") around the connection string any more
- Fix #178 - keyword "table must exist" doesn't fail now, if the DB doesn't support information_schema
- Fix #174 - Semicolons (';') after the SQL statement don't lead to error messages with Oracle DB - as they're omitted. Omitting semicolon at the end of an SQL statement is defined based on the DB module (by default True for Oracle only) and can be changed from outside - necessary for running some SQL scripts even in Oracle.
- It's now possible to set charset when connecting via pyodbc
- It's now possible to provide custom error message to assertion keywords - #162
- Hide DB connection password in output logs
- The error messages in assertion keywords were also generally improved - #179
- Support for new Oracle driver - #166
- Executing the SQL scripts was significantly improved. The statements are now separated more precisely. Also begin/end blocks are processed properly.
- The Call Stored Procedure keyword has got a completely new implementation.
- It supports pymysql, oracledb/cx_Oracle, psycopg2, pymssql now
- For not supported DB's there is a warning message and more cautious attempt to get results
- The keyword returns now both param values and result sets (even multiple sets for supported DB)
- Special handling for OUT params of cursor type
- See more in the keyword docs
A lot of work was also done in the backstage
- CI setup for tests and keyword docs publishing
- Tests were unified, restructured and extended
- Repository cleanup
- Package and setup infos, setup and metadata were updated as well
- Readme and docs
Thanks a lot to all contributors!
@kivipe, @denghj, @adrianyorke, @zhouziyang2012, @snoozebear, @IlfirinPL, @kad-derksn, @emanlove, @robinmatz, @carnegiemedal, @gsusin, @amochin
Full Changelog: v1.1.1...v1.3.0