diff options
Diffstat (limited to 'libpqpp')
-rw-r--r-- | libpqpp/pq-column.cpp | 3 | ||||
-rw-r--r-- | libpqpp/pq-connection.cpp | 5 |
2 files changed, 4 insertions, 4 deletions
diff --git a/libpqpp/pq-column.cpp b/libpqpp/pq-column.cpp index 5e02015..eb5d291 100644 --- a/libpqpp/pq-column.cpp +++ b/libpqpp/pq-column.cpp @@ -72,7 +72,8 @@ PQ::Column::apply(DB::HandleField & h) const int days = 0, hours = 0, minutes = 0, seconds = 0, fractions = 0, flen1 = 0, flen2 = 0; const char * val = value(); if (sscanf(val, "%d %*[days] %d:%d:%d.%n%d%n", &days, &hours, &minutes, &seconds, &flen1, &fractions, &flen2) >= 4) { - h.interval(boost::posix_time::time_duration((24 * days) + hours, minutes, seconds, fractions * pow(10, boost::posix_time::time_res_traits::num_fractional_digits() + flen1 - flen2))); + h.interval(boost::posix_time::time_duration((24 * days) + hours, minutes, seconds, + fractions * (long)pow(10, boost::posix_time::time_res_traits::num_fractional_digits() + flen1 - flen2))); } else { h.interval(boost::posix_time::duration_from_string(value())); diff --git a/libpqpp/pq-connection.cpp b/libpqpp/pq-connection.cpp index 3ec8991..4ebda84 100644 --- a/libpqpp/pq-connection.cpp +++ b/libpqpp/pq-connection.cpp @@ -31,9 +31,8 @@ PQ::Connection::Connection(const std::string & info) : conn(PQconnectdb(info.c_str())) { if (PQstatus(conn) != CONNECTION_OK) { - ConnectionError ce(conn); - PQfinish(conn); - throw ce; + auto dc = std::unique_ptr<PGconn, decltype(&PQfinish)>(conn, &PQfinish); + throw ConnectionError(dc.get()); } PQsetNoticeProcessor(conn, noNoticeProcessor, NULL); } |