F'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & (c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None'Show as  ByteString(Read as  ByteString)UTF-8 correct alternative to  fromString.*Lift  ByteString.'()*'()*'()*(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>NoneQueryValue and type + of a cell in the result set!Value of a cell in the result set     (c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>NoneI Row parser,Static row information-Static result information)An error that occured when parsing a row.$Errors that occur during row parsing Underlying / wants more columns than are currently present.#A column value could not be parsed.-The contents of a column could not be parsed.Location of an error.Parse a single row. Retrieve the current row number.#Retrieve the current column number.$Retrieve the number of columns left./(Advance to next column without checking.0FDo something with the underlying result, row number and column number. Fetch the ? associated with the current cell without advancing the cursor. Fetch the type OidR and value of the current cell. Also advances the cell cursor to the next column.!'Fetch a column and parse it. Returning 11 from the provided parser function will cause a ; to be raised. Advances the cell cursor to the next column."9Fetch the cell's contents without moving the cell cursor.#Like ". but moves the cell cursor to the next column.$<Parse the contents of a column (only if present). Returning 11 from the provided parser function will raise a . When the cell is NULL, a  is raised aswell.% Point cursor to the next column.&Parse the result.2,3-4./0 !"#$%& !"#$%& !"#$%&2,3-4./0 !"#$%&(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None!"9; 4a- can be instantiated using the query builder.6 Query builder5Internal builder state7Insert a piece of SQL.8UInsert a parameter placeholder into the code and attach the typed value to the query.9Same as 8 but untyped.: Extension of 99 which will add a type hint to the parameter placeholder.;Insert a quote into the code.<2Join several builders into a comma-seperated list.=QInsert a name into the code. It will be surrounded by double quotes if necessary.45656789789:;<=>?@A 456789:;<= 6789:;=<4545656789789:;<=>?@A(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>Safe%&*,/9:;DQR&B Make sure aA has a safe generic representation. Types that qualify implement :, and fulfill one of the following criteria:(single constructor with 1 or more fields$multiple constructors with no fieldsmThis constraint is mostly utilized to give the user more information about why their type has been rejected.C Analyze the :. representation of a type to figure out which H it needs.D Analyze the :4 representation of a type, in order to generate its K instance.E Analyze the :c representation of a data type. If only one constructor exists, further analyzing is delegated to W5. When two or more exist, analyzing is performed by N. The results are gather in a K instance.FMappings between a : representation and our K-based representationG: representationHK-based representationIFrom : representationJTo : representationKInformation about a data typeLRecordM EnumerationN Analyze the :h representation of constructors. Make sure every constructor has zero fields. Then transform it into a T.OMappings between a : representation and our T-based representationP: representationQT-based representationRFrom : representationSTo : representationT4Information about the constructors of an enumerationUCombination of valuesVSingle value of the enumerationW Analyze the :_ representation of the selectors. Make sure it has 1 or more fields. Then transform it into a ].XMappings between a : representation and our ]-based representationY: representationZ]-based representation[From : representation\To : representation]Information about a record^Combination of two records_-Single element with meta information and type`!Convert to entity representation.a!Build from entity representation.bWith multiple constructorscWith single constructord$Combination of multiple constructorseSingle constructorfCombination of recordsg Single record3BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_;<=>?@A`aBbCcDdEeFfGg*BCDEFHGIJH<;KLMNOQPRSQ?=>TUVWXZY[\ZA@]^_`a CBa`]^_TUVKLMXYZ[\OPQRSFGHIJWNEDBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abB;cC<dD=>eE?fF@gGA(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None*,69:;DQRT+n;An entity that is used as a parameter or result of a query.oInsert an instance of a into the query.pRetrieve an instance of a from the result set.qGeneric entitytGeneric enumeration entitywGeneric record entityz%Insert generic entity into the query.{Generic  for an entity.HParse a column using the given I.JSimplified version of 8KInsert a numeric value.|json or jsonb}bytea# - byte array encoded in hex format~bytea# - byte array encoded in hex formatchar, varchar or text - UTF-8 encodedchar, varchar or text - UTF-8 encodedchar, varchar or text - UTF-8 encodedAny numeric typeAny floating-point numberAny floating-point numberAny unsigned integerAny unsigned integerAny unsigned integerAny unsigned integerAny unsigned integerAny unsigned integer Any integer Any integer Any integer Any integer Any integer Any integer boolean"A value which may normally not be NULL.Typed column valueUntyped column value67 result entities in sequence6 result entities in sequence5 result entities in sequence4 result entities in sequence3 result entities in sequence2 result entities in sequence7nopqrstuvwxyz{HJK|}~nopqrstuvwxyz{nooppz{wxytuvqrs/nooppqrstuvwxyz{HJK|}~(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None9;IT9Classify a type which can be used as a column in a table.Describe the column typeDescription of a column type Type nameNOT NULL constraint present?7Produce a check statement body when given a column nameL7Select a type which can contain the given numeric type.+MNOPQRL#MNOPQRL(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None*,69:;DQRT-Classify a type which can be used as a table.Describe the table type.Constraint for generic tables)Analyzes a type in order to retrieve its  representation. Check the :C representation of a data type in order to generate an instance of .Provide the means to demote  to a value.Instantiate singletonDescription of a table Table name Table columns!Type-level description of a table Check the :@ representation of a record in order to generate an instance of .Provide the means to demote  to a value.Instantiate singletonDesciption of a column Column name Column type"Type-level description of a record5Fetch the table description for a generic table type.S*Build SQL code which describes the column.9Build the SQL code which describes and creates the table.MInsert a comma-seperated list of the fully qualified column names of a table. Similar to 6, but instead it expands the column names on an alias.S"#S (c) Ole Krger 2015-2016BSD3Ole Krger <ole@vprsm.de>NoneI An interaction with the database Error codes Error during errand No T has been returned. A user has thrown an error. Query execution failed. Result processing failed.Run an errand.3Execute a query and return the internal raw result.Same as  but instead of a U( it returns the number of affected rows.+Execute a query and process its result set.>Execute a query and process its result set using the provided .V3Counts the rows that have been affected by a query.Insert a row into a .Insert many rows into a .Delete all rows of a .Find every row of a .Create the given  type.W     V          W     V (c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>NoneX Query segmentYNameZ Type name[Qualified type name\Table]Selector^Selector alias_Entity` Entity codea QuotationbUninterpreted segmentc!Segment that is part of the querydPack e code into a  ByteString.f Translate a  QuerySegment to an expression.!+Parse a query string in order to produce a 6 expression."#Generate queries conveniently. See  BuildQuery) to find out which types can be produced.XghijklmYZ[\]^_`abcdf!"!"!"XghijklmYZ[\]^_`abcdf!" (c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None&Cast the query's result type.& 456789:;<=!"&&&(c) Ole Krger 2016BSD3Ole Krger <ole@vprsm.de>None<nop     "&?"&noopp     n   !"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ah                              ! " # $ % & ' ( ) * + , - . / 0123456781299:;<6=>[d?@ABCDEFGHIJKLMNOPQQRRSSTKLU U V  W X Y Z [ \ ] ^ _ ` a b c67d e f g h i j k lm#pg-store-0.2-IJuhv014IosFG7e68L0W40Database.PostgreSQL.StoreDatabase.PostgreSQL.Store.Types#Database.PostgreSQL.Store.RowParser'Database.PostgreSQL.Store.Query.Builder"Database.PostgreSQL.Store.Generics Database.PostgreSQL.Store.Entity&Database.PostgreSQL.Store.ColumnEntityDatabase.PostgreSQL.Store.Table Database.PostgreSQL.Store.Errand"Database.PostgreSQL.Store.Query.THDatabase.PostgreSQL.Store.Query#Database.PostgreSQL.Store.Utilities.postgresql-libpq-0.9.2.0-pfIR3xRbgN3lAiV2rvAZpDatabase.PostgreSQL.LibPQ ExecStatusQueryqueryStatement queryParams TypedValueValue valueData $fShowValue $fEqValue $fOrdValue$fShowTypedValue$fEqTypedValue$fOrdTypedValue $fShowQuery $fEqQuery $fOrdQuery RowParserRowErrorRowErrorDetail TooFewColumnsColumnRejectedContentsRejectedRowErrorLocation rowNumber columnNumber columnsLeft peekColumn fetchColumn parseColumn peekContents fetchContents parseContents skipColumn parseResult$fShowRowErrorLocation$fEqRowErrorLocation$fOrdRowErrorLocation$fShowRowErrorDetail$fEqRowErrorDetail$fOrdRowErrorDetail$fShowRowError $fEqRowError $fOrdRowError$fFunctorRowParser$fApplicativeRowParser$fMonadRowParser$fMonadErrorRowParserFromQueryBuilder buildQuery QueryBuilder insertCodeinsertTypedValue insertValue insertValue' insertQuoteinsertCommaSeperated insertName$fFromQueryBuilderQuery$fFromQueryBuilder(,)$fFromQueryBuilderByteString$fFromQueryBuilderStateT GenericEntityEntityDataType AnalyzeEntityAnalyzeDataType GDataType DataTypeRepDataType toDataType fromDataType KDataTypeTRecordTFlatSumAnalyzeFlatSumRepGFlatSum FlatSumRepFlatSum toFlatSum fromFlatSumKFlatSumTChooseTValueAnalyzeRecordRepGRecord RecordRepRecordtoRecord fromRecordKRecordTCombineTSinglefromGenericEntitytoGenericEntity$fGDataTypeTFlatSum$fGDataTypeTRecord$fGFlatSumTChoose$fGFlatSumTValue$fGRecordTCombine$fGRecordTSingle$fShowDataType$fShowDataType0 $fShowFlatSum$fShowFlatSum0 $fShowRecord $fShowRecord0Entity insertEntity parseEntityGEntity gInsertEntity gParseEntity GEntityEnum gInsertEnum gEnumValues GEntityRecord gInsertRecord gParseRecord insertGeneric parseGeneric $fEntityValue$fEntityByteString$fEntityByteString0 $fEntityText $fEntityText0 $fEntity[]$fEntityScientific $fEntityFloat$fEntityDouble$fEntityWord64$fEntityWord32$fEntityWord16 $fEntityWord8 $fEntityWord$fEntityNatural $fEntityInt64 $fEntityInt32 $fEntityInt16 $fEntityInt8 $fEntityInt$fEntityInteger $fEntityBool $fEntityMaybe$fEntityTypedValue$fEntityValue0$fEntityStateT$fEntity(,,,,,,)$fEntity(,,,,,)$fEntity(,,,,) $fEntity(,,,) $fEntity(,,) $fEntity(,)$fGEntityTFlatSum$fGEntityTRecord$fGEntityEnumTChoose$fGEntityEnumTValue$fGEntityRecordTCombine$fGEntityRecordTSingle ColumnEntitydescribeColumnType ColumnType colTypeNamecolTypeNotNull colTypeCheck$fColumnEntityValue$fColumnEntityByteString$fColumnEntityByteString0$fColumnEntityText$fColumnEntityText0$fColumnEntity[]$fColumnEntityScientific$fColumnEntityDouble$fColumnEntityFloat$fColumnEntityWord64$fColumnEntityWord32$fColumnEntityWord16$fColumnEntityWord8$fColumnEntityWord$fColumnEntityNatural$fColumnEntityInt64$fColumnEntityInt32$fColumnEntityInt16$fColumnEntityInt8$fColumnEntityInt$fColumnEntityInteger$fColumnEntityBool$fColumnEntityPGInt8$fEntityPGInt8$fColumnEntityPGInt4$fEntityPGInt4$fColumnEntityPGInt2$fEntityPGInt2$fColumnEntityMaybe $fShowPGInt2 $fReadPGInt2 $fEqPGInt2 $fOrdPGInt2 $fEnumPGInt2$fBoundedPGInt2$fIntegralPGInt2 $fNumPGInt2 $fRealPGInt2 $fShowPGInt4 $fReadPGInt4 $fEqPGInt4 $fOrdPGInt4 $fEnumPGInt4$fBoundedPGInt4$fIntegralPGInt4 $fNumPGInt4 $fRealPGInt4 $fShowPGInt8 $fReadPGInt8 $fEqPGInt8 $fOrdPGInt8 $fEnumPGInt8$fBoundedPGInt8$fIntegralPGInt8 $fNumPGInt8 $fRealPGInt8 TableEntitydescribeTableType GenericTable AnalyzeTableAnalyzeTableRepGTablegDescribeTableTable tableName tableColsKTableTTableGColumnsgDescribeColumnsColumncolNamecolTypeKColumns TSelectordescribeGenericTablebuildTableSchema insertColumnsinsertColumnsOn$fGTableTTable$fGColumnsTCombine$fGColumnsTSelectorErrand ErrorCodeUnknownErrorCauseIntegrityViolationRestrictViolationNotNullViolationForeignKeyViolationUniqueViolationCheckViolationExclusionViolation ErrandErrorNoResult UserError ExecError ParseError runErrandexecuteexecute'query queryWithinsert insertMany deleteAllfindAllcreate$fShowErrorCode $fEqErrorCode$fShowErrandError$fEqErrandError$fFunctorErrand$fApplicativeErrand $fMonadErrand$fMonadIOErrand$fMonadErrorErrand parseQuerypgsq$fShowQuerySegment$fEqQuerySegment$fOrdQuerySegment castQueryshowByteStringreadByteStringbuildByteStringliftByteStringOidRowInput ResultInfoparseRow nextColumn withColumnbaseGHC.BaseNothing BuilderState queryCode queryIndex queryValues GHC.GenericsGeneric ChooseLeft ChooseRightUnitCombineSingleD:R:DataTypeTFlatSum0D:R:DataTypeTRecord0D:R:FlatSumTChoose0D:R:FlatSumTValue0D:R:RecordTCombine0D:R:RecordTSingle0parseContentsWith*attoparsec-0.13.1.0-76ImKDPj8J4FeLqM5hZxMM#Data.Attoparsec.ByteString.InternalParserinsertTypedValue_insertNumericValueselectBestColumnTypePGInt8PGInt4PGInt2 buildColumnResultcountAffectedRows QuerySegment valueNametypeNamequalifiedTypeName tableSegmentselectorSegmentselectorAliasSegmententityNameSegmententityCodeSegment quoteSegment otherSegment querySegmentpackCodeStringtranslateSegment QueryEntityQueryEntityCode QueryQuote QueryOther QueryTable QuerySelectorQuerySelectorAlias