Permalink
Commits on Feb 9, 2012
  1. Convert some mysql-simple documentation to postgresql-simple

    This note is a holdover from mysql-simple, and it has been
    obsolete from the very first release of postgresql-simple.
    
      * Ensure that any ResultError that might arise is thrown immediately, rather than some place later in application code that cannot handle it.
    
    This issue has been taken care of by the switch to the Either type,
    
    Thanks to Doug Beardsley for bringing this to my attention.
    committed Feb 9, 2012
Commits on Feb 8, 2012
  1. Don't store floating point NaNs and Infinites as NULL

    Unlike MySQL, PostgreSQL can store these values without trouble.  However,
    what PostgreSQL does with these values in database-side computations isn't
    the most sensible.   I still think it's better to represent these values
    accurately.
    committed Feb 8, 2012
Commits on Feb 6, 2012
  1. Export returnError

    committed Feb 6, 2012
Commits on Jan 30, 2012
  1. Export defaults

    committed Jan 30, 2012
Commits on Jan 27, 2012
  1. Add support for isolation levels

    Thanks to Philip Weaver for the suggestion
    committed Jan 27, 2012
Commits on Jan 25, 2012
  1. Second attempt at implementing `fold`

    This solves all the issues mentioned in bce0d38
    
    This should be the first implementation in the right ballpark with regard
    to correctness.  However, there is still room for improvement:
    
    1. Error messages
         A. appears to come from "query", "execute", etc.
         B. queries appear with parameters substituted
    
    2. Network performance
         A. eliminate a round trip on start up when the fold is auto-wrapped in
              a transaction
         B. eliminate a round trip on start up by fetching the first rows at the
              same time the cursor is opened
         C. often eliminate a round trip at the end by detecting when there
              are fewer rows than requested.
         D. interleave processing and network IO to a better degree
    
    3. Haskell performance
         A.  No need to marshal a block of rows into a list before feeding them
              to the folding function.
    committed Jan 25, 2012
Commits on Jan 10, 2012
  1. Bump version to 0.0.4

    committed Jan 10, 2012
Commits on Jan 9, 2012
  1. Merge pull request #6 from meteficha/master

    Support both Timestamp and TimestampWithTimeZone in Result UTCTime.
    committed Jan 9, 2012
Commits on Jan 7, 2012
  1. Add haddock comments

    committed Jan 7, 2012
Commits on Jan 6, 2012
  1. Bump version to 0.0.3

    committed Jan 6, 2012
  2. Remove a layer of indirection

    committed Jan 6, 2012
Commits on Jan 4, 2012
  1. Add "instance (Result a, Result b) => Result (Either a b)"

    First, we try to convert the field to a value of type "b",  if
    that fails then we try to convert the field to a value of type "a"
    committed Jan 4, 2012
Commits on Jan 3, 2012
  1. Bump version to 0.0.2

    committed Jan 3, 2012
  2. Improve Large Object Support

    committed Jan 3, 2012
  3. First attempt at a fold combinator

    Untested at this point,  and I know it has a few bugs and possible bugs:
    
    1.  If the correct OID/typenames aren't in the cache,  getTypename will
        attempt to fetch the OID from the database when libpq is busy.
    
        There are a couple possible fixes:
            A.  Fetch all oids at connection startup.
    
            B.  Buffer results until the connection becomes available, then
                fetch oids.  This breaks the resource usage of fold, though.
    
                Resource usage might be moot at this stage anyway.  I believe
                that the database backend sends results eagerly,  i.e.
                potentially faster than the fold can consume them.  Maybe I
                should study Takusen.  Does it create a cursor for fetching
                results incrementally?
    
            C.  establish another connection to fetch the typename/oid pairs
    
    2.  There likely problems with exceptions,  that might cause a connection
        to be rendered unusable.
    committed Jan 3, 2012
Commits on Jan 2, 2012
Commits on Dec 30, 2011
  1. Bump version to 0.0.1

    committed Dec 30, 2011