Page MenuHomePhabricator

errors using Oracle DB with oci8
Closed, ResolvedPublic

Description

Author: hsotoma

Description:
setup info and error related info

Several errors in DatabaseOracle.php related BLOB Oracle data type
errors during setup:
Warning - strpos() expects parameter 1 to be string on removeIdentifierQuotes and isQuotedIdentifier

I fixed these errors checking data type for parameter before call to strpos()

Also:
Error: 1400 ORA-01400: cannot insert NULL into ("WIKI"."WIKI_INTERWIKI"."IW_API")

I fixed this error redefining WIKI_INTERWIKI so columns IW_API, IW_LOCAL and IW_TRANS now accepting null values

After both changes I made, the configuration ran OK without warnings

Basic operation is OK (content added without problems)

Problems begins when attempt to delete an image stored. Update operation fails with this message

Warning: OCI-Lob::writetemporary() expects parameter 1 to be string, object given in /usr/local/apache2/htdocs/wiki/includes/db/DatabaseOracle.php on line 1327

Until now, cannot solve this problem.

Attached detailed info


Version: 1.22.5
Severity: blocker
OS: Linux
Platform: PC

Attached:

Details

Reference
bz64970

Event Timeline

bzimport raised the priority of this task from to Normal.Nov 22 2014, 3:22 AM
bzimport added a project: MediaWiki-Database.
bzimport set Reference to bz64970.
bzimport added a subscriber: Unknown Object (MLST).
bzimport created this task.May 6 2014, 8:10 PM

Change 133412 had a related patch set uploaded by Withoutaname:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/133412

Change 133412 merged by jenkins-bot:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/133412

  • Bug 68874 has been marked as a duplicate of this bug. ***

Should be backported to 1.22 and 1.23 to allow better Oracle support, see links on bug 68874

  • Bug 68877 has been marked as a duplicate of this bug. ***

This patch doesn't address bug 68874 comment 1. See stack trace on that comment and analysis

Reopening

You should reopen the other bug.

Change 154461 had a related patch set uploaded by Umherirrender:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/154461

Change 154461 merged by jenkins-bot:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/154461

Change 155298 had a related patch set uploaded by Umherirrender:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/155298

Change 155298 merged by jenkins-bot:
Fetch string to pass through writeTemporary() in DatabaseOracle.php

https://gerrit.wikimedia.org/r/155298