Explorar o código

dbeaver/pro#1371 rollback transaction in the exception case (#18891)

Co-authored-by: Matvey16 <[email protected]>
Anastasiya %!s(int64=3) %!d(string=hai) anos
pai
achega
483a6c1d09

+ 8 - 3
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java

@@ -23,9 +23,7 @@ import org.jkiss.dbeaver.Log;
 import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
 import org.jkiss.dbeaver.ext.postgresql.PostgreUtils;
 import org.jkiss.dbeaver.model.*;
-import org.jkiss.dbeaver.model.exec.DBCException;
-import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
-import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
+import org.jkiss.dbeaver.model.exec.*;
 import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
 import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
 import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
@@ -720,6 +718,13 @@ public class PostgreDatabase extends JDBCRemoteInstance
                     supportTypColumn = true;
                 } catch (SQLException e) {
                     log.debug("Error reading system information from the pg_type table", e);
+                    try {
+                        if (!session.isClosed() && !session.getAutoCommit()) {
+                            session.rollback();
+                        }
+                    } catch (SQLException ex) {
+                        log.warn("Can't rollback transaction", e);
+                    }
                     supportTypColumn = false;
                 }
             } else {