framework/db/pgsql/QueryBuilder.php
public function upsert($table, $insertColumns, $updateColumns, &$params)
    {
        $insertColumns = $this->normalizeTableRowData($table, $insertColumns);
        if (!is_bool($updateColumns)) {
            $updateColumns = $this->normalizeTableRowData($table, $updateColumns);
        }
        if (version_compare($this->db->getServerVersion(), '9.5', '<')) {
            return $this->oldUpsert($table, $insertColumns, $updateColumns, $params);
        }

        return $this->newUpsert($table, $insertColumns, $updateColumns, $params);
    }
public function upsert($table, $insertColumns, $updateColumns, &$params)
    {
        $insertColumns = $this->normalizeTableRowData($table, $insertColumns);
        if (!is_bool($updateColumns)) {
            $updateColumns = $this->normalizeTableRowData($table, $updateColumns);
        }
        if (version_compare($this->db->getServerVersion(), '9.5', '<')) {
            return $this->oldUpsert($table, $insertColumns, $updateColumns, $params);
        }

        return $this->newUpsert($table, $insertColumns, $updateColumns, $params);
    }
public function upsert ( $ table , $ insertColumns , $ updateColumns , & $ params ) { $ insertColumns = $ this -> normalizeTableRowData ( $ table , $ insertColumns ) ; if ( ! is_bool ( $ updateColumns ) ) { $ updateColumns = $ this -> normalizeTableRowData ( $ table , $ updateColumns ) ; } if ( version_compare ( $ this -> db -> getServerVersion ( ) , '9.5' , '<' ) ) { return $ this -> oldUpsert ( $ table , $ insertColumns , $ updateColumns , $ params ) ; } return $ this -> newUpsert ( $ table , $ insertColumns , $ updateColumns , $ params ) ; }
{@inheritdoc}
@see https://www.postgresql.org/docs/9.5/static/sql-insert.html#SQL-ON-CONFLICT
@see https://stackoverflow.com/questions/1109061/insert-on-duplicate-update-in-postgresql/8702291#8702291
{