ODBC Updates with94

From PostgreSQL wiki
Jump to navigationJump to search

Some development effort is being put in Postgres ODBC driver to remove outdated code, protocols and clean up the code as well. This effort is made to facilitate maintenance and head up for future releases. The target release for this work is 9.4 release.

Work flow

The development effort is done mainly by Michael Paquier under the guidance of Heikki Linnakangas. In order to not impact the released 09.03.XXX versions of ODBC, merge will be done before releasing 09.04.XXXX, which could be released a couple of weeks before 9.4 to facilitate the work of packagers.

Work items

The following work items are envisaged on the fork before merge for 9.4 release.

Here are the items already done:

  • Done on fork branch: Removal of code paths referencing Postgres servers older than 7.4 (ksqo, schema_support, version-related code)
  • Done on fork branch: Cleanup of the documentation, removal of references to servers ~7.4
  • Done on fork branch: Renaming of column PRECISION in pgtypes.c to COLUMN_SIZE, per discussion here
  • Done on fork branch: Removal of ODBCVER ifdef blocks, it is assumed that it is safe to build code with at least 0x0351.
  • Done on fork branch: Reorganization of info*.c, odbcapi*.c, pgapi*.c: removal of 2.5 stuff, grouping of 3.0 APIs with other files for simplicity

And the items not done yet:

  • Patch on tracks: Addition of a new parameter for ErrorOnRollback, that is now part of the protocol string as (0|1|2). This setting is the primary one. The old setting is still accepted, just deprecated.
  • See if something is doable with PG_INTERVAL_AS_SQL_INTERNAL currently disabled in the code
  • See how to deal with odbc.sql, odbc-drop.sql and inouealc.c (removal because dead code?)

Followed by the following complementary work items, mergeable immediately to pgodbc HEAD as they do not impact the older code:

  • Regression tests
    • Done: Check of ODBC 2.X deprecated API calls, list of functions is referenced here
    • Done: pgtypes.c APIs: SQLTables, SQLColumns, etc.
    • Done: Additional tests for rollback behavior on error
    • Done: Fix regression tests to use ODBC 3.X APIs
    • Support for Windows

Resources