Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-postgresql-libpq for
openSUSE:Factory checked in at 2024-04-26 23:27:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-postgresql-libpq (Old)
and /work/SRC/openSUSE:Factory/.ghc-postgresql-libpq.new.1880 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-postgresql-libpq"
Fri Apr 26 23:27:11 2024 rev:12 rq:1170213 version:0.10.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-postgresql-libpq/ghc-postgresql-libpq.changes
2023-11-23 21:42:01.046517387 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-postgresql-libpq.new.1880/ghc-postgresql-libpq.changes
2024-04-26 23:27:25.649291439 +0200
@@ -1,0 +2,9 @@
+Thu Apr 18 15:44:23 UTC 2024 - Peter Simons <[email protected]>
+
+- Update postgresql-libpq to version 0.10.1.0.
+ 0.10.1.0
+ --------
+
+ - Fix issue with empty binary values
(https://github.com/haskellari/postgresql-libpq/issues/54)
+
+-------------------------------------------------------------------
Old:
----
postgresql-libpq-0.10.0.0.tar.gz
postgresql-libpq.cabal
New:
----
postgresql-libpq-0.10.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-postgresql-libpq.spec ++++++
--- /var/tmp/diff_new_pack.TjE8rI/_old 2024-04-26 23:27:26.161310155 +0200
+++ /var/tmp/diff_new_pack.TjE8rI/_new 2024-04-26 23:27:26.161310155 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-postgresql-libpq
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,13 +20,12 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.10.0.0
+Version: 0.10.1.0
Release: 0
Summary: Low-level binding to libpq
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-Cabal-prof
BuildRequires: ghc-base-devel
@@ -38,6 +37,12 @@
BuildRequires: ghc-unix-prof
BuildRequires: postgresql-server-devel
ExcludeArch: %{ix86}
+%if %{with tests}
+BuildRequires: ghc-tasty-devel
+BuildRequires: ghc-tasty-hunit-devel
+BuildRequires: ghc-tasty-hunit-prof
+BuildRequires: ghc-tasty-prof
+%endif
%description
This is a binding to libpq: the C application programmer's interface to
@@ -75,7 +80,6 @@
%prep
%autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ postgresql-libpq-0.10.0.0.tar.gz -> postgresql-libpq-0.10.1.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/postgresql-libpq-0.10.0.0/CHANGELOG.md
new/postgresql-libpq-0.10.1.0/CHANGELOG.md
--- old/postgresql-libpq-0.10.0.0/CHANGELOG.md 2001-09-09 03:46:40.000000000
+0200
+++ new/postgresql-libpq-0.10.1.0/CHANGELOG.md 2001-09-09 03:46:40.000000000
+0200
@@ -1,3 +1,8 @@
+0.10.1.0
+--------
+
+- Fix issue with empty binary values
(https://github.com/haskellari/postgresql-libpq/issues/54)
+
0.10.0.0
--------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/postgresql-libpq-0.10.0.0/postgresql-libpq.cabal
new/postgresql-libpq-0.10.1.0/postgresql-libpq.cabal
--- old/postgresql-libpq-0.10.0.0/postgresql-libpq.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/postgresql-libpq-0.10.1.0/postgresql-libpq.cabal 2001-09-09
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 2.4
name: postgresql-libpq
-version: 0.10.0.0
+version: 0.10.1.0
synopsis: low-level binding to libpq
description:
This is a binding to libpq: the C application
@@ -24,7 +24,14 @@
build-type: Custom
extra-source-files: cbits/hs-libpq.h
tested-with:
- GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 ||
==9.6.1
+ GHC ==8.6.5
+ || ==8.8.4
+ || ==8.10.7
+ || ==9.0.2
+ || ==9.2.8
+ || ==9.4.8
+ || ==9.6.5
+ || ==9.8.2
extra-source-files: CHANGELOG.md
@@ -65,10 +72,11 @@
Database.PostgreSQL.LibPQ.Marshal
Database.PostgreSQL.LibPQ.Notify
Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ.Ptr
build-depends:
- , base >=4.12.0.0 && <4.19
- , bytestring >=0.10.8.2 && <0.12
+ , base >=4.12.0.0 && <4.20
+ , bytestring >=0.10.8.2 && <0.13
if !os(windows)
build-depends: unix >=2.7.2.2 && <2.9
@@ -107,6 +115,8 @@
, base
, bytestring
, postgresql-libpq
+ , tasty ^>=1.5
+ , tasty-hunit ^>=0.10.1
source-repository head
type: git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/postgresql-libpq-0.10.0.0/src/Database/PostgreSQL/LibPQ/Ptr.hs
new/postgresql-libpq-0.10.1.0/src/Database/PostgreSQL/LibPQ/Ptr.hs
--- old/postgresql-libpq-0.10.0.0/src/Database/PostgreSQL/LibPQ/Ptr.hs
1970-01-01 01:00:00.000000000 +0100
+++ new/postgresql-libpq-0.10.1.0/src/Database/PostgreSQL/LibPQ/Ptr.hs
2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,7 @@
+{-# LANGUAGE MagicHash #-}
+module Database.PostgreSQL.LibPQ.Ptr (emptyPtr) where
+
+import GHC.Ptr (Ptr (..))
+
+emptyPtr :: Ptr a
+emptyPtr = Ptr ""#
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/postgresql-libpq-0.10.0.0/src/Database/PostgreSQL/LibPQ.hs
new/postgresql-libpq-0.10.1.0/src/Database/PostgreSQL/LibPQ.hs
--- old/postgresql-libpq-0.10.0.0/src/Database/PostgreSQL/LibPQ.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/postgresql-libpq-0.10.1.0/src/Database/PostgreSQL/LibPQ.hs
2001-09-09 03:46:40.000000000 +0200
@@ -238,6 +238,7 @@
import Database.PostgreSQL.LibPQ.Marshal
import Database.PostgreSQL.LibPQ.Notify
import Database.PostgreSQL.LibPQ.Oid
+import Database.PostgreSQL.LibPQ.Ptr
-- $dbconn
-- The following functions deal with making a connection to a
@@ -662,10 +663,13 @@
-- * 'ByteString' uses pinned memory
-- * the reference to the 'CString' doesn't escape
unsafeUseParamAsCString :: (B.ByteString, Format) -> (CString -> IO a) -> IO a
-unsafeUseParamAsCString (bs, format) =
+unsafeUseParamAsCString (bs, format) kont =
case format of
- Binary -> B.unsafeUseAsCString bs
- Text -> B.useAsCString bs
+ Binary -> B.unsafeUseAsCStringLen bs kont'
+ Text -> B.useAsCString bs kont
+ where
+ kont' (ptr, 0) = if ptr == nullPtr then kont emptyPtr else kont ptr
+ kont' (ptr, _) = kont ptr
-- | Convert a list of parameters to the format expected by libpq FFI calls.
withParams :: [Maybe (Oid, B.ByteString, Format)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/postgresql-libpq-0.10.0.0/test/Smoke.hs
new/postgresql-libpq-0.10.1.0/test/Smoke.hs
--- old/postgresql-libpq-0.10.0.0/test/Smoke.hs 2001-09-09 03:46:40.000000000
+0200
+++ new/postgresql-libpq-0.10.1.0/test/Smoke.hs 2001-09-09 03:46:40.000000000
+0200
@@ -1,17 +1,24 @@
+{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
-import Control.Monad (unless)
+import Control.Monad (unless)
+import Data.Foldable (toList)
import Database.PostgreSQL.LibPQ
-import Data.Foldable (toList)
-import System.Environment (getEnvironment)
-import System.Exit (exitFailure)
+import System.Environment (getEnvironment)
+import System.Exit (exitFailure)
+import Test.Tasty (defaultMain, testGroup)
+import Test.Tasty.HUnit (assertEqual, testCaseSteps)
+import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BS8
main :: IO ()
main = do
libpqVersion >>= print
- withConnstring smoke
+ withConnstring $ \connString -> defaultMain $ testGroup "postgresql-libpq"
+ [ testCaseSteps "smoke" $ smoke connString
+ , testCaseSteps "issue54" $ issue54 connString
+ ]
withConnstring :: (BS8.ByteString -> IO ()) -> IO ()
withConnstring kont = do
@@ -35,21 +42,48 @@
, "port=5432"
]
-smoke :: BS8.ByteString -> IO ()
-smoke connstring = do
+smoke :: BS8.ByteString -> (String -> IO ()) -> IO ()
+smoke connstring info = do
+ let infoShow x = info (show x)
+
conn <- connectdb connstring
-- status functions
- db conn >>= print
- user conn >>= print
- host conn >>= print
- port conn >>= print
- status conn >>= print
- transactionStatus conn >>= print
- protocolVersion conn >>= print
- serverVersion conn >>= print
+ db conn >>= infoShow
+ user conn >>= infoShow
+ host conn >>= infoShow
+ port conn >>= infoShow
+ status conn >>= infoShow
+ transactionStatus conn >>= infoShow
+ protocolVersion conn >>= infoShow
+ serverVersion conn >>= infoShow
s <- status conn
- unless (s == ConnectionOk) exitFailure
+ assertEqual "connection not ok" ConnectionOk s
finish conn
+
+issue54 :: BS8.ByteString -> (String -> IO ()) -> IO ()
+issue54 connString info = do
+ conn <- connectdb connString
+
+ Just result <- execParams conn
+ "SELECT ($1 :: bytea), ($2 :: bytea)"
+ [Just (Oid 17,"",Binary), Just (Oid 17,BS.empty,Binary)]
+ Binary
+ s <- resultStatus result
+ assertEqual "result status" TuplesOk s
+
+ -- ntuples result >>= info . show
+ -- nfields result >>= info . show
+
+ null1 <- getisnull result 0 0
+ null2 <- getisnull result 0 1
+ assertEqual "fst not null" False null1
+ assertEqual "snd not null" False null2
+
+ Just val1 <- getvalue result 0 0
+ Just val2 <- getvalue result 0 1
+
+ assertEqual "fst not null" BS.empty val1
+ assertEqual "snd not null" BS.empty val2