Skip to content

Releases: MarketSquare/Robotframework-Database-Library

v1.4.2

19 Dec 19:31
Compare
Choose a tag to compare

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 parameter split 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 parameter omitTrailingSemicolon - 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!

@amochin

v1.4.1

20 Nov 18:26
421dffe
Compare
Choose a tag to compare

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.
  • 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!

@bhirsz, @nczita, @Rudolf-AT, @carnegiemedal, @amochin

v1.3.1

20 Jul 19:47
Compare
Choose a tag to compare

Fix #181 - different syntax for pyodbc connection string based on SQL driver - SQL Server drivers use a comma between server and port, others - a colon

Full Changelog: v1.3.0...v1.3.1

v1.3.0

17 Jul 19:11
Compare
Choose a tag to compare

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