7/4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone/Configuration parameter against PostgreSQL v8.x%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone9;*  !"#$%&'()*)  !"#$%&'(), ***)('&%$#"!   !"#$%&'()*$2013 Kei Hibino, 2014 Sohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone9;./0123456789:; ./0123456789:./012;;;:9876543 ./0123456789:;%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone9; ?@ABCDEFGHIJ ?@ABCDEFGHI?@ABJJJIHGFEDC ?@ABCDEFGHIJ%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone9; NOPQRSTUVWXY NOPQRSTUVWXNOPQYYYXWVUTSR NOPQRSTUVWXY%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone9;,]^_`abcdefghijklmnopqrstuvwxyz{|}~+]^_`abcdefghijklmnopqrstuvwxyz{|}~.]^_`abcdefghijklmnop~}|{zyxwvutsrq]^_`abcdefghijklmnopqrstuvwxyz{|}~%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone%Type to represent Column information.4Mapping between type in PostgreSQL and Haskell type.@Normalize column name string to query PostgreSQL system catalog.)Not-null attribute information of column.3Get column normalized name and column Haskell type.B to query PostgreSQL relation oid from schema name and table name.; to query column attribute from schema name and table name. to query ! from schema name and table name.Phantom typed  to get ! from schema name and table name.= to query primary key length from schema name and table name.Phantom typed ; to get primary key length from schema name and table name.8One column which is nth column of composite primary key.<Make composite primary key relation from primary key length.; to query primary key name from schema name and table name.Phantom typed 9 to get primary key name from schema name and table name.Type mapping specified by userColumn info in system catalog.Result normalized name and mapped Haskell type%2013 Kei Hibino, 2014 Shohei MurayamaBSD3shohei.murayama@gmail.com experimentalunknownNone<=Driver implementation         !"#$%&'()*+,-./01234566789:;<=>?@AB3CDEEFGHIJKLMNO3PQRR7STUVWX?YZ3[\]]7^_`abcdefghijklmnopqrs?tuvwxyz{|}~35relational-postgresql8-0.2.0.0-8OELnX32wYg4XcdXtXxZ9C,Database.Relational.Schema.PgCatalog8.Config1Database.Relational.Schema.PgCatalog8.PgAttribute-Database.Relational.Schema.PgCatalog8.PgClass2Database.Relational.Schema.PgCatalog8.PgConstraint1Database.Relational.Schema.PgCatalog8.PgNamespace,Database.Relational.Schema.PgCatalog8.PgType&Database.Relational.Schema.PostgreSQL8 Database.HDBC.Schema.PostgreSQL8config PgAttributeattrelidattnameatttypid attstattargetattlenattnumattndims attcacheoff atttypmodattbyval attstorageattalign attnotnull atthasdef attisdropped attislocal attinhcountcolumnOffsetsPgAttributetableOfPgAttribute pgAttributeinsertPgAttributeinsertQueryPgAttribute attrelid'attname' atttypid'attstattarget'attlen'attnum' attndims' attcacheoff' atttypmod' attbyval' attstorage' attalign' attnotnull' atthasdef' attisdropped' attislocal' attinhcount'$fTableDerivablePgAttribute$fProductConstructor(->)$fPersistableWidthPgAttribute$fShowPgAttributePgClassoidrelname relnamespacecolumnOffsetsPgClasstableOfPgClasspgClass insertPgClassinsertQueryPgClassoid'relname' relnamespace'$fTableDerivablePgClass$fPersistableWidthPgClass $fShowPgClass PgConstraintcontypeconrelidcolumnOffsetsPgConstrainttableOfPgConstraint pgConstraintinsertPgConstraintinsertQueryPgConstraintcontype' conrelid'$fTableDerivablePgConstraint$fPersistableWidthPgConstraint$fShowPgConstraint PgNamespacenspnamecolumnOffsetsPgNamespacetableOfPgNamespace pgNamespaceinsertPgNamespaceinsertQueryPgNamespacenspname'$fTableDerivablePgNamespace$fPersistableWidthPgNamespace$fShowPgNamespacePgTypetypname typnamespacetypownertyplentypbyvaltyptype typisdefinedtypdelimtyprelidtypelemtypalign typstorage typnotnull typbasetype typtypmodtypndims typdefaultcolumnOffsetsPgType tableOfPgTypepgType insertPgTypeinsertQueryPgTypetypname' typnamespace' typowner'typlen' typbyval'typtype' typisdefined' typdelim' typrelid'typelem' typalign' typstorage' typnotnull' typbasetype' typtypmod' typndims' typdefault'$fTableDerivablePgType$fPersistableWidthPgType $fShowPgTypeColumnnormalizeColumnnotNullgetTypecolumnQuerySQLprimaryKeyLengthQuerySQLprimaryKeyQuerySQL$fToSqlSqlValuePgAttribute$fFromSqlSqlValuePgAttributedriverPostgreSQL$fToSqlSqlValuePgType$fFromSqlSqlValuePgTypemapFromSqlDefaultrelOidRelation/relational-query-0.8.3.2-HOiNicKStuW6kJuzxuWelX(Database.Relational.Query.Monad.BaseTypeRelationattributeRelationcolumnRelationDatabase.Relational.Query.TypeQueryprimaryKeyLengthRelationconstraintColRelationconstraintColExpandRelationprimaryKeyRelationfromSqlOfPgAttributetoSqlOfPgAttributefromSqlOfPgType toSqlOfPgType logPrefixputLog compileErrorgetPrimaryKey' getColumns'