diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Delete.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Delete.php
index e9914ca..110adb3 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Delete.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Delete.php
@@ -9,4 +9,24 @@
 
 use Drupal\Core\Database\Query\Delete as QueryDelete;
 
-class Delete extends QueryDelete { }
+class Delete extends QueryDelete { 
+  
+
+  /** 
+   * {@inheritdoc}
+   */
+  public function execute() {
+    if ($this->connection->inTransaction()) {
+      $this->connection->pushTransaction('mimic_innodb_not_released');
+    }   
+
+    $result = parent::execute();
+
+    if ($this->connection->inTransaction()) {
+      $this->connection->popTransaction('mimic_innodb_not_released');
+    }   
+
+    return $result;
+  }  
+  
+}
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
index 8b4f913..d73740d 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
@@ -60,11 +60,20 @@ public function queryTableInformation($table) {
         'sequences' => array(),
       );
       // Don't use {} around information_schema.columns table.
+      if ($this->connection->inTransaction()) {
+        $this->connection->pushTransaction('mimic_innodb_not_released');
+      }
+
       $result = $this->connection->query("SELECT column_name, data_type, column_default FROM information_schema.columns WHERE table_schema = :schema AND table_name = :table AND (data_type = 'bytea' OR (numeric_precision IS NOT NULL AND column_default LIKE :default))", array(
         ':schema' => $schema,
         ':table' => $table_name,
         ':default' => '%nextval%',
       ));
+
+      if ($this->connection->inTransaction()) {
+        $this->connection->popTransaction('mimic_innodb_not_released');
+      }
+
       foreach ($result as $column) {
         if ($column->data_type == 'bytea') {
           $table_information->blob_fields[$column->column_name] = TRUE;
@@ -102,11 +111,19 @@ public function queryFieldInformation($table, $field) {
     $schema = $prefixInfo['schema'];
     $table_name = $prefixInfo['table'];
 
+     if ($this->connection->inTransaction()) {
+       $this->connection->pushTransaction('mimic_innodb_not_released');
+     }
+
     $checks = $this->connection->query("SELECT conname FROM pg_class cl INNER JOIN pg_constraint co ON co.conrelid = cl.oid INNER JOIN pg_attribute attr ON attr.attrelid = cl.oid AND attr.attnum = ANY (co.conkey) INNER JOIN pg_namespace ns ON cl.relnamespace = ns.oid WHERE co.contype = 'c' AND ns.nspname = :schema AND cl.relname = :table AND attr.attname = :column", array(
       ':schema' => $schema,
       ':table' => $table_name,
       ':column' => $field,
     ));
+
+    if ($this->connection->inTransaction()) {
+      $this->connection->popTransaction('mimic_innodb_not_released');
+    }
     $field_information = $checks->fetchCol();
 
     return $field_information;
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
index bf9f23a..b78d756 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
@@ -104,6 +104,23 @@ public function orderBy($field, $direction = 'ASC') {
     $this->addField(NULL, $field);
     return $return;
   }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function execute() {
+    if ($this->connection->inTransaction()) {
+      $this->connection->pushTransaction('mimic_innodb_not_released');
+    }
+
+    $result = parent::execute();
+
+    if ($this->connection->inTransaction()) {
+      $this->connection->popTransaction('mimic_innodb_not_released');
+    }
+
+    return $result;
+  }
 }
 
 /**
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Truncate.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Truncate.php
index e2fa83d..b3c769b 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Truncate.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Truncate.php
@@ -9,4 +9,22 @@
 
 use Drupal\Core\Database\Query\Truncate as QueryTruncate;
 
-class Truncate extends QueryTruncate { }
+class Truncate extends QueryTruncate {
+
+  /** 
+   * {@inheritdoc}
+   */
+  public function execute() {
+    if ($this->connection->inTransaction()) {
+      $this->connection->pushTransaction('mimic_innodb_not_released');
+    }   
+
+    $result = parent::execute();
+
+    if ($this->connection->inTransaction()) {
+      $this->connection->popTransaction('mimic_innodb_not_released');
+    }   
+
+    return $result;
+  }  
+}
