http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76383
Revision: 76383 Author: freakolowsky Date: 2010-11-09 08:56:15 +0000 (Tue, 09 Nov 2010) Log Message: ----------- * BLOB temporary handling * en/decodeBlob Modified Paths: -------------- trunk/phase3/includes/db/DatabaseOracle.php Modified: trunk/phase3/includes/db/DatabaseOracle.php =================================================================== --- trunk/phase3/includes/db/DatabaseOracle.php 2010-11-09 08:07:43 UTC (rev 76382) +++ trunk/phase3/includes/db/DatabaseOracle.php 2010-11-09 08:56:15 UTC (rev 76383) @@ -534,7 +534,7 @@ // do nothing ... null was inserted in statement creation } elseif ( $col_type != 'BLOB' && $col_type != 'CLOB' ) { if ( is_object( $val ) ) { - $val = $val->getData(); + $val = $val->fetch(); } if ( preg_match( '/^timestamp.*/i', $col_type ) == 1 && strtolower( $val ) == 'infinity' ) { @@ -553,11 +553,15 @@ throw new DBUnexpectedError( $this, "Cannot create LOB descriptor: " . $e['message'] ); } + if ( is_object( $val ) ) { + $val = $val->fetch(); + } + if ( $col_type == 'BLOB' ) { - $lob[$col]->writeTemporary( $val ); - oci_bind_by_name( $stmt, ":$col", $lob[$col], - 1, SQLT_BLOB ); + $lob[$col]->writeTemporary( $val, OCI_TEMP_BLOB ); + oci_bind_by_name( $stmt, ":$col", $lob[$col], - 1, OCI_B_BLOB ); } else { - $lob[$col]->writeTemporary( $val ); + $lob[$col]->writeTemporary( $val, OCI_TEMP_CLOB ); oci_bind_by_name( $stmt, ":$col", $lob[$col], - 1, OCI_B_CLOB ); } } @@ -812,6 +816,17 @@ return "SELECT * FROM ($sql) WHERE rownum >= (1 + $offset) AND rownum < (1 + $limit + $offset)"; } + function encodeBlob( $b ) { + return new Blob( $b ); + } + + function decodeBlob( $b ) { + if ( $b instanceof Blob ) { + $b = $b->fetch(); + } + return $b; + } + function unionQueries( $sqls, $all ) { $glue = ' UNION ALL '; return 'SELECT * ' . ( $all ? '':'/* UNION_UNIQUE */ ' ) . 'FROM (' . implode( $glue, $sqls ) . ')' ; _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs