Skip to content

Commit

Permalink
feat(db): remove workaround for pqsql 9.4 and older
Browse files Browse the repository at this point in the history
The workaround was required because "ON CONFLICT DO NOTHING" was added with pqsql 9.5.

PostgreSQL 9.4 is eol since 2020-02-13 and thus everyone should use a version with upsert support nowadays.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
  • Loading branch information
kesselb committed Jun 3, 2024
1 parent 2c3c74a commit cac6443
Showing 1 changed file with 0 additions and 18 deletions.
18 changes: 0 additions & 18 deletions lib/private/DB/AdapterPgSql.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
namespace OC\DB;

class AdapterPgSql extends Adapter {
protected $compatModePre9_5 = null;

public function lastInsertId($table) {
$result = $this->conn->executeQuery('SELECT lastval()');
Expand All @@ -25,10 +24,6 @@ public function fixupStatement($statement) {
}

public function insertIgnoreConflict(string $table, array $values) : int {
if ($this->isPre9_5CompatMode() === true) {
return parent::insertIgnoreConflict($table, $values);
}

// "upsert" is only available since PgSQL 9.5, but the generic way
// would leave error logs in the DB.
$builder = $this->conn->getQueryBuilder();
Expand All @@ -39,17 +34,4 @@ public function insertIgnoreConflict(string $table, array $values) : int {
$queryString = $builder->getSQL() . ' ON CONFLICT DO NOTHING';
return $this->conn->executeUpdate($queryString, $builder->getParameters(), $builder->getParameterTypes());
}

protected function isPre9_5CompatMode(): bool {
if ($this->compatModePre9_5 !== null) {
return $this->compatModePre9_5;
}

$result = $this->conn->executeQuery('SHOW SERVER_VERSION');
$version = $result->fetchOne();
$result->free();
$this->compatModePre9_5 = version_compare($version, '9.5', '<');

return $this->compatModePre9_5;
}
}

0 comments on commit cac6443

Please sign in to comment.