Publish date: 2008-07-30

IBProvider Disabled metadata cache mode performance was increased in 2.5 times

Brief release annotation

IBProvider v3 Release Candidate 3 [build]

  • NUMERIC-types support was improved.
  • Disabled metadata cache mode performance was increased in 2.5 times.
  • Metadata schemes were updated. Among them in schemes TABLE_INFO and TABLES classification of external (EXTERNAL TABLE) and temporary tables (GLOBAL TEMPORARY PRESERVE/DELETE) was added starting from Firebird 2.1 and InterBase 7.5.
  • Correct processing of active transactions in the connection pool.

New builds of IBProvider v1.9.9.2547 and IBProvider v2.6.3.2547

  • BLOB-columns metadata description bug was fixed.
  • Correct processing of active transactions in the connection pool.

IBProvider v3 Release Candidate 3 build

NUMERIC-types support was improved

  • Correct view of NUMERIC-columns types with zero scale. This feature will not work for InterBase 4.x and InterBase 5.x.
  • Precisions for NUMERIC-columns were changed to 4,9,18. In previous releases precisions were equal to 5/10/19. Precision depends on base type in which NUMERIC is stored (SHORT, LONG or INT64).
  • Changes are true for simple columns and columns with arrays.

Backward compatibility

3 initialization properties: nnumeric_i2_rules, numeric_i4_rules, numeric_i8_rules for backward compatibility were added. Set these properties in getline on value 3 and you will rollback provider.

Common troubles with NUMERIC and solution

Common troubles with NUMERIC and solutions. Servers InterBase/Firebird/Yaffil implement simplified precision control. For example, they allow storing 32000 value in NUMERIC(4,0). MS SQL Server 2005 checks uploaded data precision. If data precision is not in the allowed range MS SQL will generate the error:

OLE DB provider ‘LCPI.IBProvider.3’ for linked server ‘IBP_TEST_FB21_V3’ returned invalid data for column ‘[IBP_TEST_FB21_V3]…[NUM].N_1_0’

To define behavior of a provider in this case, use properties numeric_i2_rules, numeric_i4_rules, numeric_i8_rules.

Correct processing of active transactions in the connection pool

  • When using SQL for transactions start ADODB may put connection with active transaction to the connection pool. As a result, when you open connection again pool may return connection with unfinished transaction. In IBP v1, v2, v3 initialization property reset_ds_tr_rule.
  • Reset to initial state of session settings of the multiple connections was implemented.

Metadata query optimization for disabled metadata cache mode

If you disable metadata cache schema_cache=0 new build of IBProvider use query with parameters with limits considered.

This feature cuts traffic between client and server and increase running speed in 2.5 times with cache disabled if compared to previous versions. schema_cache=1 by default (metadata cache is enabled).

Classification of external and temporary tables

In TABLES, TABLES_INFO metadata schemes in TABLE_TYPE column new tables classifications were added:

  • EXTERNAL TABLE — all server types and versions supported
  • GLOBAL TEMPORARY PRESERVE — InterBase 7.5, Firebird 2.1 or above.
  • GLOBAL TEMPORARY DELETE — InterBase 7.5, Firebird 2.1 or above.

Other metadata changes

  • In TABLES_INFO, TABLES schemes «EXTERNAL_FILE» column was added.
  • In TABLES_OWNER scheme «TABLE_OWNER» column was added.
  • Ignoring text case for column restriction in «TABLE_CONSTRAINT::CONSTRAINT_TYPE».

New builds of IBProvider v2, v1

  • IBProvider v1 []
  • IBProvider v2 []

Some features from IBProvider v3 RC3 are implemented

  • Ignoring text case for field restriction in «TABLE_CONSTRAINT::CONSTRAINT_TYPE» was added.
  • Correct interaction with connection pool.

Besides, a bug in BLOB-columns description was fixed

Due to the bug in release 2.6.1 (2.6.2), BLOB-columns were published with wrong flag DBCOLUMNFLAGS_ISFIXEDLENGTH.

Download IBProvider Professional Edition (64/32 bit) [build:]

Publish date: 2008-07-30. Copyright: IBProvider. This material may be reproduced on other web sites, without written permission but link required.