Umherirrender has uploaded a new change for review.

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

Change subject: Add sequence support for upsert in DatabaseOracle
......................................................................

Add sequence support for upsert in DatabaseOracle

In the same way as in selectInsert

Bug: 53710
Change-Id: I26f891da808ecdc932e29eebda71df4c17a29617
---
M includes/db/DatabaseOracle.php
1 file changed, 19 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/91/110991/1

diff --git a/includes/db/DatabaseOracle.php b/includes/db/DatabaseOracle.php
index d304444..68a9c61 100644
--- a/includes/db/DatabaseOracle.php
+++ b/includes/db/DatabaseOracle.php
@@ -773,6 +773,25 @@
                return $retval;
        }
 
+       public function upsert( $table, array $rows, array $uniqueIndexes, 
array $set,
+               $fname = __METHOD__
+       ) {
+               if ( !count( $rows ) ) {
+                       return true; // nothing to do
+               }
+
+               if ( !is_array( reset( $rows ) ) ) {
+                       $rows = array( $rows );
+               }
+
+               $sequenceData = $this->getSequenceData( $table )
+               if ( $sequenceData !== false && !isset( 
$rows[$sequenceData['column']] ) ) {
+                       $rows[$sequenceData['column']] = 
'GET_SEQUENCE_VALUE(\'' . $sequenceData['sequence'] . '\')';
+               }
+
+               return parent::upsert( $table, $rows, $uniqueIndexes, $set, 
$fname );
+       }
+
        function tableName( $name, $format = 'quoted' ) {
                /*
                Replace reserved words with better ones

-- 
To view, visit https://gerrit.wikimedia.org/r/110991
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I26f891da808ecdc932e29eebda71df4c17a29617
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Umherirrender <umherirrender_de...@web.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to