{-# LINE 1 "DB/HSQL/PG/Type.hsc" #-}
module DB.HSQL.PG.Type where
{-# LINE 2 "DB/HSQL/PG/Type.hsc" #-}

import Foreign(Word32)

import Database.HSQL(SqlType(..))


{-# LINE 8 "DB/HSQL/PG/Type.hsc" #-}

{-# LINE 9 "DB/HSQL/PG/Type.hsc" #-}

-- |
type Oid = Word32
{-# LINE 12 "DB/HSQL/PG/Type.hsc" #-}

-- |
mkSqlType :: Oid -> Int -> SqlType
mkSqlType (1042)    size = SqlChar (size-4)
{-# LINE 16 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1043)   size = SqlVarChar (size-4)
{-# LINE 17 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (19)      size = SqlVarChar 31
{-# LINE 18 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (25)      size = SqlText
{-# LINE 19 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1700)   size = 
{-# LINE 20 "DB/HSQL/PG/Type.hsc" #-}
    SqlNumeric ((size-4) `div` 0x10000) ((size-4) `mod` 0x10000)
mkSqlType (21)      size = SqlSmallInt
{-# LINE 22 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (23)      size = SqlInteger
{-# LINE 23 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (700)    size = SqlReal
{-# LINE 24 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (701)    size = SqlDouble
{-# LINE 25 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (16)      size = SqlBit
{-# LINE 26 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1560)       size = SqlBinary size
{-# LINE 27 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1562)    size = SqlVarBinary size
{-# LINE 28 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (17)     size = SqlTinyInt
{-# LINE 29 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (20)      size = SqlBigInt
{-# LINE 30 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1082)      size = SqlDate
{-# LINE 31 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1083)      size = SqlTime
{-# LINE 32 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1266)    size = SqlTimeTZ
{-# LINE 33 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (702)   size = SqlAbsTime
{-# LINE 34 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (703)   size = SqlRelTime
{-# LINE 35 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1186)  size = SqlTimeInterval
{-# LINE 36 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (704) size = SqlAbsTimeInterval
{-# LINE 37 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1114)	size = SqlDateTime
{-# LINE 38 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (1184)	size = SqlDateTimeTZ
{-# LINE 39 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (790)      size = SqlMoney
{-# LINE 40 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (869)      size = SqlINetAddr
{-# LINE 41 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (829)          size = SqlMacAddr		-- hack
{-# LINE 42 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (650)      size = SqlCIDRAddr
{-# LINE 43 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (600)     size = SqlPoint
{-# LINE 44 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (601)      size = SqlLSeg
{-# LINE 45 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (602)      size = SqlPath
{-# LINE 46 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (603)       size = SqlBox
{-# LINE 47 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (604)   size = SqlPolygon
{-# LINE 48 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (628)      size = SqlLine
{-# LINE 49 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType (718)    size = SqlCircle
{-# LINE 50 "DB/HSQL/PG/Type.hsc" #-}
mkSqlType tp   size = SqlUnknown (fromIntegral tp)