Jump to content

User:Leonsp/Changelog for IBM DB2 support

From mediawiki.org

Changes for 2009-09-23

[edit]

includes/db/DatabaseIbm_db2.php

[edit]
  • Removed database column name lowercasing kludge -- now using the official way of getting lowercase column names
  • Added reliable way of getting the last insert id -- required by database API
  • Fixed bug where inserted data was always rolled back when the IGNORE flag was passed

maintenance/ibm_db2/tables.sql

[edit]
  • Stripped out all unused sequence definitions from the database schema -- the current DB2 database schema uses GENERATED BY DEFAULT columns, not sequences

Changes for 2009-08-15

[edit]

config/index.php

[edit]
  • Made installation on IBM DB2 more robust
  • Replaced E_ALL with E_ALL | E_STRICT

includes/db/DatabaseIbm_db2.php

[edit]
  • Enabled DB2_CASE_LOWER option for all connections and statements
  • Enabled DB2_DEFERRED_PREPARE_ON for all statements -- delays statement preparation until execution to reduce database load
  • Enabled DB2_ROWCOUNT_PREFETCH_ON for all statements -- makes db2_num_rows() work correctly
  • Cleaned up error handling
  • Cleaned up method signatures
  • Rewrote insertion to use prepared statements -- required for inserting more than 32k of text
  • Insertion will never try to insert a NULL value into a primary key
  • Now relying on implicit casting in DB2 9.7 -- no longer sniffing to see if column is integer or string before adding quotes
  • Implemented actual prepared statement handling -- required for correct INSERT, UPDATE behaviour
  • In install mode, the class will print additional messages to the install bullet scroll
  • Added bitwise operations (BITNOT, BITAND, BITOR)

includes/specials/SpecialAncientpages.php

[edit]
  • Added skeleton DB2 syntax to the database-specific switch statement

maintenance/convertLinks.inc

[edit]
  • Made limit clause database-agnostic

maintenance/ibm_db2/README

[edit]

maintenance/ibm_db2/tables.sql

[edit]
  • Revised types to better match the MySQL schema
  • All tables names now the same as MySQL -- was using Postgres names before
  • Added some additional indices
  • Added the change_tag, tag_summary, valid_tag, user_properties, log_search, and l10n_cache tables
  • Added several new columns

maintenance/storage/compressOld.inc

[edit]
  • Made limit clause database-agnostic