1--- lib/dbd/pg/database.rb.orig 2020-01-03 12:38:44 UTC 2+++ lib/dbd/pg/database.rb 3@@ -48,7 +48,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 4 hash['tty'] ||= '' 5 hash['port'] = hash['port'].to_i unless hash['port'].nil? 6 7- @connection = PGconn.new(hash['host'], hash['port'], hash['options'], hash['tty'], 8+ @connection = PG::Connection.new(hash['host'], hash['port'], hash['options'], hash['tty'], 9 hash['dbname'] || hash['database'], user, auth) 10 11 @exec_method = :exec 12@@ -78,7 +78,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 13 14 self['AutoCommit'] = true # Postgres starts in unchained mode (AutoCommit=on) by default 15 16- rescue PGError => err 17+ rescue PG::Error => err 18 raise DBI::OperationalError.new(err.message) 19 end 20 21@@ -96,7 +96,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 22 else 23 return false 24 end 25- rescue PGError 26+ rescue PG::Error 27 return false 28 ensure 29 answer.clear if answer 30@@ -383,9 +383,6 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 31 end 32 } 33 end 34- # additional conversions 35- @type_map[705] ||= DBI::Type::Varchar # select 'hallo' 36- @type_map[1114] ||= DBI::Type::Timestamp # TIMESTAMP WITHOUT TIME ZONE 37 38 # remap array subtypes 39 @type_map.each_key do |key| 40@@ -399,6 +396,10 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 41 end 42 end 43 end 44+ 45+ # additional conversions 46+ @type_map[1114] ||= DBI::Type::Timestamp # TIMESTAMP WITHOUT TIME ZONE 47+ @type_map[705] ||= DBI::Type::Varchar # select 'hallo' 48 end 49 50 public 51@@ -426,7 +427,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 52 def __blob_import(file) 53 start_transaction unless @in_transaction 54 @connection.lo_import(file) 55- rescue PGError => err 56+ rescue PG::Error => err 57 raise DBI::DatabaseError.new(err.message) 58 end 59 60@@ -436,27 +437,27 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 61 def __blob_export(oid, file) 62 start_transaction unless @in_transaction 63 @connection.lo_export(oid.to_i, file) 64- rescue PGError => err 65+ rescue PG::Error => err 66 raise DBI::DatabaseError.new(err.message) 67 end 68 69 # 70 # Create a BLOB. 71 # 72- def __blob_create(mode=PGconn::INV_READ) 73+ def __blob_create(mode=PG::Connection::INV_READ) 74 start_transaction unless @in_transaction 75 @connection.lo_creat(mode) 76- rescue PGError => err 77+ rescue PG::Error => err 78 raise DBI::DatabaseError.new(err.message) 79 end 80 81 # 82 # Open a BLOB. 83 # 84- def __blob_open(oid, mode=PGconn::INV_READ) 85+ def __blob_open(oid, mode=PG::Connection::INV_READ) 86 start_transaction unless @in_transaction 87 @connection.lo_open(oid.to_i, mode) 88- rescue PGError => err 89+ rescue PG::Error => err 90 raise DBI::DatabaseError.new(err.message) 91 end 92 93@@ -466,7 +467,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 94 def __blob_unlink(oid) 95 start_transaction unless @in_transaction 96 @connection.lo_unlink(oid.to_i) 97- rescue PGError => err 98+ rescue PG::Error => err 99 raise DBI::DatabaseError.new(err.message) 100 end 101 102@@ -474,7 +475,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 103 # Read a BLOB and return the data. 104 # 105 def __blob_read(oid, length) 106- blob = @connection.lo_open(oid.to_i, PGconn::INV_READ) 107+ blob = @connection.lo_open(oid.to_i, PG::Connection::INV_READ) 108 109 if length.nil? 110 data = @connection.lo_read(blob) 111@@ -485,7 +486,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 112 # FIXME it doesn't like to close here either. 113 # @connection.lo_close(blob) 114 data 115- rescue PGError => err 116+ rescue PG::Error => err 117 raise DBI::DatabaseError.new(err.message) 118 end 119 120@@ -494,14 +495,14 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 121 # 122 def __blob_write(oid, value) 123 start_transaction unless @in_transaction 124- blob = @connection.lo_open(oid.to_i, PGconn::INV_WRITE) 125+ blob = @connection.lo_open(oid.to_i, PG::Connection::INV_WRITE) 126 res = @connection.lo_write(blob, value) 127 # FIXME not sure why PG doesn't like to close here -- seems to be 128 # working but we should make sure it's not eating file descriptors 129 # up before release. 130 # @connection.lo_close(blob) 131 return res 132- rescue PGError => err 133+ rescue PG::Error => err 134 raise DBI::DatabaseError.new(err.message) 135 end 136 137@@ -510,7 +511,7 @@ class DBI::DBD::Pg::Database < DBI::BaseDatabase 138 # 139 def __set_notice_processor(proc) 140 @connection.set_notice_processor proc 141- rescue PGError => err 142+ rescue PG::Error => err 143 raise DBI::DatabaseError.new(err.message) 144 end 145 end # Database 146