l?G?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None&'+;<=>?ACEFKPTVoThis class helps to shorten the type signatures of user monadic code. If your monad has several connections, e.g., for main and audit databases, create run*Db function runAuditDb :: Action conn a -> m a.Wraps the passed action into a named savepoint Tries the transaction, using a provided function which evaluates to an Either. Any Left result will cause transaction rollback. Connection manager provides connection to the passed function handles transations. Manager can be a connection itself, a pool, Snaplet in Snap, foundation datatype in Yesod, etc. Opens the transaction. VExtracts the connection. The connection manager can be a pool or the connection itself-Datatypes which can be converted directly to &aRepresents all datatypes that map into several columns. Getting values for those columns is pure.Represents all datatypes that map into a single column. Getting value for that column might require monadic actions to access other tables.Represents everything which can be put into a database. This data can be stored in multiple columns and tables. To get value of those columns we might need to access another table. That is why the result type is monadic._Return name of the type. If it is polymorphic, the names of parameter types are separated with   symbolConvert a value into something which can be stored in a database column. Note that for complex datatypes it may insert them to return identifierConstructs a value from a &1. For complex datatypes it may query the databaseDescription of value type. It depends on database so that we can have, for example, xml column type in Postgres and varchar type in other databasesGExpr with phantom type helps to keep type safety in complex expressionsUsed to uniformly represent fields, constants and more complex things, e.g., arithmetic expressions. A value should be converted to  for usage in expressions#-Types which are never NULL when converted to &. Consider the type Maybe (Maybe a). Now Nothing is stored as NULL, so we cannot distinguish between Just Nothing and Nothing which is a problem. The purpose of this class is to ban the inner Maybe's. Maybe this class can be removed when support for inner Maybe's appears.$Avoid orphan instances.&TA raw value which can be stored in any backend and can be marshalled to and from a .2Creating some datatypes may require calling a function, using a special constructor, or other syntax. The string (which can have placeholders) is included into query without escaping. The recursive constructions are not allowed, i.e., [PersistValue] cannot contain PersistCustom values.3-Datatype for incremental building SQL queries6dThe first argument is a flag which defines if the field names should be concatenated with the outer field name (False) or used as is which provides full control over table column names (True). Value False should be the default value so that a datatype can be embedded without name conflict concern. The second argument list of field names and field types.9Stores a database type. The list contains two kinds of tokens for the type string. Backend will choose a string representation for DbTypePrimitive's, and the string literals will go to the type as-is. As the final step, these tokens are concatenated. For example, [Left "varchar(50)"]* will become a string with max length and [Right DbInt64, Left "[]"]% will become integer[] in PostgreSQL.;The reference contains either EntityDef of the parent table and name of the unique constraint. Or for tables not mapped by Groundhog schema name, table name, and list of columns Reference to the autogenerated key of a mapped entity = (Left (entityDef, Nothing), onDelete, onUpdate) Reference to a unique key of a mapped entity = (Left (entityDef, Just uniqueKeyName), onDelete, onUpdate) Reference to a table that is not mapped = (Right ((schema, tableName), columns), onDelete, onUpdate)=(type, nullable, default value, reference?(List table name and type of its argumentAA DB data type. Naming attempts to reflect the underlying Haskell datatypes, eg DbString instead of DbVarchar. Different databases may have different representations for these types.K ByteStringS<Defines how to treat the unique set of fields for a datatypeVis autoincrementedWlField is either a pair of entity field name and its type or an expression which will be used in query as-is.XUnique name and list of the fields that form a unique combination. The fields are parametrized to reuse this datatype both with field and DbType and with column name^JCreates value of unique key using the data extracted from the passed value_@Ordinal number of the unique constraint in the list returned by j`This class helps type inference in cases when query does not contain any fields which define the constructor, but the entity has only one. For example, in select $ AutoKeyField ==. k] the condition would need type annotation with constructor name only if we select a sum type.bqPhantom constructors are made instances of this class. This class should be used only by Template Haskell codegencPReturns constructor index which can be used to get ConstructorDef from EntityDefeDescribes an entity constructorgConstructor namehAutokey name if anyi%Parameter names with their named typej/Uniqueness constraints on the constructor fielslDescribes an ADT.n Entity name. )entityName (entityDef v) == persistName voCDatabase schema for the entity table and tables of its constructorsp;Named types of the instantiated polymorphic type parametersq'List of entity constructors definitionsrOEither error messages or migration queries with safety flag and execution orders+Datatype names and corresponding migrationsyHInsert a new record to a database and return its autogenerated key or ()zKInsert a new record to a database. For some backends it may be faster than y.{Try to insert a record and return Right newkey. If there is a constraint violation for the given constraint, Left oldkey is returned , where oldkey is an identifier of the record with the matching values.|)Try to insert a record and return Right newkey. If there is a constraint violation for any constraint, Left oldkey is returned , where oldkey is an identifier of the record with the matching values. Note that if several constraints are violated, a key of an arbitrary matching record is returned.}dReplace a record with the given autogenerated key. Result is undefined if the record does not exist.~VReplace a record. The unique key marker defines what unique key of the entity is used.@Return a list of the records satisfying the condition. Example: aselect $ (FirstField ==. "abc" &&. SecondField >. "def") `orderBy` [Asc ThirdField] `limitTo` 100@Return a list of the records satisfying the condition. Example: aselect $ (FirstField ==. "abc" &&. SecondField >. "def") `orderBy` [Asc ThirdField] `limitTo` 100lReturn a list of all records. Order is undefined. It can be useful for datatypes with multiple constructors.lReturn a list of all records. Order is undefined. It can be useful for datatypes with multiple constructors.Fetch an entity from a database1Fetch an entity from a database by its unique key6Update the records satisfying the condition. Example: 3update [FirstField =. "abc"] $ FirstField ==. "def"+Remove the records satisfying the conditionDRemove the record with given key. No-op if the record does not existIRemove all records. The entity parameter is used only for type inference.6Count total number of records satisfying the conditioniCount total number of records with all constructors. The entity parameter is used only for type inference*Fetch projection of some fields. Example: }project (SecondField, ThirdField) $ (FirstField ==. "abc" &&. SecondField >. "def") `orderBy` [Asc ThirdField] `offsetBy` 100WCheck database schema and create migrations for the entity and the entities it containsExecute raw queryExecute raw query with resultsOType of the database default autoincremented key. For example, Sqlite has Int64Value of this type can be used as a part of a query. For example, it can be RenderS for relational databases, or BSON for MongoDB.Name of backend`This class helps to check that limit, offset, or order clauses are added to condition only once.$False - no DISTINCT, True - DISTINCTBThe name of the option and part of the SQL which will be put laterBIt can be used in expressions like a regular field. For example, delete (AutoKeyField ==. k) or 9delete (AutoKeyField ==. k ||. SomeField ==. "DUPLICATE")7This subset of Assignable is for plain database fields.This subset of Projection instances is for things that behave like fields. Namely, they can occur in condition expressions (for example, Field and SubField) and on the left side of update statements. For example "lower(field)" is a valid Projection, but not Field like because it cannot be on the left side. Datatypes that index PostgreSQL arrays "arr[5]" or access composites "(comp).subfield" are valid instances of Assignable.,Any data that can be fetched from a databaseIt returns multiple expressions that can be transformed into values which can be selected. Difflist is used for concatenation efficiency. It is like B. However, we cannot use it for projections in all cases. For the  instances 0 expects entity id instead of the entity values.7It is used to map field to column names. It can be either a column name for a regular field of non-embedded type or a list of this field and the outer fields in reverse order. Eg, fieldChain $ SomeField ~> Tuple2_0Selector may result in [("val0", DbString), ("some", DbEmbedded False [dbType "", dbType True])]."Defines sort order of a result-set!Represents condition for a query.aIt allows to store autogenerated keys of one database in another if they have different datatype.3A phantom datatype to make instance head different u (UniqueMarker v)3A phantom datatype to make instance head different c (ConstructorMarker v)8Key marked with this type can have value for any backendA holder for Unique constraints;Only instances of this class can be persisted in a databasecThis type is used for typesafe manipulation of separate fields of datatype v. Each constructor in p corresponds to its field in a datatype v. It is parametrised by constructor phantom type and field value type.A unique identifier of a value stored in a database. This may be a primary key, a constraint or unique indices. The second parameter is the key description.nThis type is the default autoincremented key for the entity. If entity does not have such key, AutoKey v = ().,This type is the default key for the entity.EIt is HFalse for entity with one constructor and HTrue for sum types.*Returns a complete description of the typeMarshalls value to a list of & ready for insert to a database&Constructs the value from the list of &UReturns constructor number and a list of uniques names and corresponding field valuesIs internally used by FieldLike Field instance We could avoid this function if class FieldLike allowed FieldLike Fields Data or FieldLike (Fields Data). However that would require additional extensions in user-space code8Accesses fields of the embedded datatypes. For example, HSomeField ==. ("abc", "def") ||. SomeField ~> Tuple2_0Selector ==. "def"Select DISTINCT rows. select $ distinct CondEmpty@It helps to run database operations within an application monad.VRuns action within connection. It can handle a simple connection, a pool of them, etc.!Runs TryAction within connection.Tries Action within connection.HIt helps to run database operations within an application monad. Unlike ' it does not wrap action in transactionIt is similar to % but runs action without transaction. flip withConn conn $ \conn -> liftIO $ do -- transaction is already opened by withConn at this point someIOAction runDbConn' (insert_ value) conn It helps to run 3 within a monad. Make sure that transaction is open keep in cachequerypositional parameters keep in cachequerypositional parameters  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy{}~|z&'()*+,-./012$%34# !"ABCDEFGHIJKL@<=>?lmnopqk6759:8efghijdbc`a]^_XYZ[\WSTUVMNOPQR;rstxyz{|}~wvu  )    !"$%& '()*+,-./01234679:<=>?A BCDEFGHIJKLMNOPQRSTUVXYZ[\]^_`abcefghijlmnopqxyz{|}~ 5None;<=>?CVFname in the record, barcolumn name, SQLbar3column type, inet, NUMERIC(5, 2), VARCHAR(50), etc./name of constructor in the Field GADT, BarFielddefault value in the databasename of a pair of functionsSProduce the migrations but not execute them. Fails when an unsafe migration occurs.AReturns either a list of errors in migration or a list of queriesVExecute the migrations with printing to stderr. Fails when an unsafe migration occurs.>Execute the migrations. Fails when an unsafe migration occurs.]Execute migrations. Executes the unsafe migrations without warnings and prints them to stderrPretty print the migrations Creates migrations and executes them with printing to stderr. Fails when an unsafe migration occurs. > runMigration m = createMigration m >>= executeMigration!Creates migrations and silently executes them. Fails when an unsafe migration occurs. > runMigration m = createMigration m >>= executeMigrationSilent"Creates migrations and executes them with printing to stderr. Executes the unsafe migrations without warnings > runMigrationUnsafe m = createMigration m >>= executeMigrationUnsafe#LJoins the migrations. The result is either all error messages or all queries<Returns only old elements, only new elements, and matched pairs (old, new). The new ones exist only in datatype, the old are present only in DB, match is typically by name (the properties of the matched elements may differ).True - support unsafe queries&computation to run first>computation to run afterward (even if an exception was raised)'-computation to run first ("acquire resource"),computation to run last ("release resource")computation to run in-between7 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF7 !"#*+,-./0123456789$%'&();:<=>?DE@ABCF None&'+;=>?FTNone+;<=>?AEFT07This helper class can make type signatures more concise+Instances of this type can be converted to J. It is useful for uniform manipulation over fields, constant values, etc. Update fieldBoolean "and" operator.Boolean "or" operator.yThis function more limited than (==.), but has better type inference. If you want to compare your value to Nothing with (==.)2 operator, you have to write the types explicitly !myExpr ==. (Nothing :: Maybe Int). TODO: restrict db rConverts value to q. It can help to pass values of different types into functions which expect arguments of the same type, like (+)._It is kept for compatibility with older Groundhog versions and can be replaced with "liftExpr". 332444444None "#;<=FT' This class distinguishes databases which support trigonometry and other math functions. For example, PostgreSQL has them but Sqlite does not. It contains ad hoc members for features whose syntax differs across the databases.Natural logarithmThis class distinguishes databases which support SQL-specific expressions. It contains ad hoc members for features whose syntax differs across the databases.Escape function, priority of the outer operator. The result is a list for the embedded data which may expand to several RenderS.JIf we reuse complex expression several times, prerendering it saves time.  can be obtained with `Helps creating an expression which depends on render configuration. It can be used in pair with . b myExpr x = mkExprWithConf $ conf _ -> let x' = prerenderExpr conf x in x' + x' * x' @YRenders conditions for SQL backend. Returns Nothing if the fields don't have any columns.YRenders conditions for SQL backend. Returns Nothing if the fields don't have any columns. ;Returns escaped table name optionally qualified with schema @Returns escaped main table name optionally qualified with schema.34     .   34  None<FT+" Conditions.It is returned when none of conditions is trueNone "#+<FQTV/ *.It may call the passed function multiple times+function to run query0function to execute query3function to run query0allow multiple duplication of uniques with nulls&'()*+,-./01234567&')(*+,-./01245367None"#FTA NuSql pieces for the create table statement that add constraints and alterations for running after the table is createdVlQualified table name, create statement, structure of table from DB, structure of table from datatype, altersW,Qualified trigger name, qualified table nameX2Qualified trigger name, qualified table name, bodyY>Qualified trigger name, qualified table name, field name, bodyZ$Statement which creates the function[Qualified function name\Schema name, if not existsqconstraint name and referencer Either column name or expressions;Schema-qualified name of a table of another database objectwchild column, parent columnCreate migration for a given entity and all entities it depends on. The stateful Map is used to avoid duplicate migrations when an entity type occurs several times in a datatype9 Schema name; Schema name<Qualified table name=Qualified table name>Qualified trigger name?Qualified function name%Argument types, return type, and bodymigrate schemamigrate entity migrate listinitial entity From database From datatypeP89=:;<>?@ABJCDEFGHIKLMNOPQRSTVUWXYZ[\]e^_`abcdfgjhiklmnopqrstuvwxyz{|}~Pz{|}~tuvwxysmnopqrfghijkl]^_`abcdeTUVWXYZ[\ABCDEFGHIJKLMNOPQRS89:;<=>?@89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqtuvwxyz{|}~ NoneDS^xy{}~|z "FAxyz{|}~^F "   !"#$%&'()*++,-./01223456789:;<=>?@@ABACDCEFGHIGJKLMNOPQRSTUVWXYZ[\]^_`a`bcdefghijklmlnopqrsrtuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*++,-./0123456789:;<=>?@ABCDE?FGHIJKLMMNOPQRSTTUVWXYZZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~(groundhog-0.8.0.1-ERkvLm1RRXtJm0ZsJMr7PgDatabase.Groundhog.Generic.Sql(Database.Groundhog.Generic.Sql.FunctionsDatabase.Groundhog.CoreDatabase.Groundhog.GenericDatabase.Groundhog.InstancesDatabase.Groundhog.Expression0Database.Groundhog.Generic.PersistBackendHelpers$Database.Groundhog.Generic.MigrationdelimDatabase.Groundhogbase Data.String fromString Data.Monoid<> GHC.Floatatan2PersistBackendConn getConnection SavepointwithConnSavepointTryConnectionManager tryWithConnConnectionManagerwithConnExtractConnection extractConnPrimitivePersistFieldtoPrimitivePersistValuefromPrimitivePersistValuePurePersistFieldtoPurePersistValuesfromPurePersistValuesSinglePersistFieldtoSinglePersistValuefromSinglePersistValue PersistField persistNametoPersistValuesfromPersistValuesdbTypeExpr UntypedExprExprRaw ExprFieldExprPureExprCond NeverNullZT PersistValue PersistString PersistTextPersistByteString PersistInt64 PersistDouble PersistBool PersistDayPersistTimeOfDayPersistUTCTimePersistZonedTime PersistNull PersistCustomUtf8 EmbeddedDef EmbeddedDef' OtherTypeDef OtherTypeDef'ParentTableReferenceDbTypeDbTypePrimitive DbEmbeddedDbListDbTypePrimitive'DbStringDbInt32DbInt64DbRealDbBoolDbDayDbTime DbDayTimeDbDayTimeZonedDbBlobDbOtherReferenceActionTypeNoActionRestrictCascadeSetNull SetDefault UniqueTypeUniqueConstraint UniqueIndex UniquePrimary UniqueDef UniqueDef' uniqueDefName uniqueDefTypeuniqueDefFields IsUniqueKey extractUnique uniqueNum EntityConstrentityConstrNum ConstructorphantomConstrNumConstructorDefConstructorDef' constrNameconstrAutoKeyName constrParams constrUniques EntityDef EntityDef' entityName entitySchema typeParams constructorsSingleMigrationNamedMigrations Migration RowStream TryActionActionPersistBackendConninsertinsert_insertBy insertByAllreplace replaceByselect selectStream selectAllselectAllStreamgetgetByupdatedeletedeleteBy deleteAllcountcountAllproject projectStreammigrate executeRawqueryRaw insertListgetList DbDescriptor AutoKeyTypeQueryRaw backendName DbPersistHasSelectOptionsHasLimit HasOffsetHasOrder HasDistinctgetSelectOptions SelectOptions condOptions limitOptions offsetOptions orderOptionsdistinctOptionsdbSpecificOptionsRestrictionHolder AutoKeyFieldSubFieldEmbeddedSelector selectorNum FieldLike fieldChain Assignable Projection' Projection ProjectionDbProjectionRestrictionprojectionExprsprojectionResult FieldChainOrderAscDescUpdate ExprRelationEqNeGtLtGeLeCondAndOrNotCompareCondRaw CondEmptyHTrueHFalse KeyForBackend UniqueMarkerConstructorMarkerBackendSpecificUnique PersistEntityFieldKeyAutoKey DefaultKey IsSumType entityDeftoEntityPersistValuesfromEntityPersistValues getUniquesentityFieldChain~>limitTooffsetByorderBydistinct runDbPersistfromUtf8runDb runDbConn runTryDbConn runTryDbConn'runDb' runDbConn' withSavepoint $fReadUtf8 $fShowUtf8$fEqUtf8$fOrdZT$fEqZT$fPersistBackendReaderT#$fHasSelectOptionsSelectOptionsdb'r$fHasSelectOptionsConddb'r$fProjection'pdbra$fEqExpr $fShowExpr$fShowExprRelation$fShowUniqueType$fEqUniqueType$fOrdUniqueType$fShowUniqueDef'$fEqUniqueDef'$fShowConstructorDef'$fEqConstructorDef'$fShowEntityDef'$fEqEntityDef'$fEqReferenceActionType$fShowReferenceActionType$fEqOtherTypeDef'$fShowOtherTypeDef'$fEqDbTypePrimitive'$fShowDbTypePrimitive'$fEqEmbeddedDef'$fShowEmbeddedDef' $fEqDbType $fShowDbType$fShowZT$fReadZT$fEqPersistValue$fShowPersistValue$fReadPersistValue PSFieldDef psFieldName psDbFieldName psDbTypeName psExprName psEmbeddedDefpsDefaultValuepsReferenceParentpsFieldConvertercreateMigration getQueriesexecuteMigrationexecuteMigrationSilentexecuteMigrationUnsafeprintMigration runMigrationrunMigrationSilentrunMigrationUnsafemergeMigrations failMessagefailMessageNamedfinallybracket onExceptionapplyDbTypeSettingsprimToPersistValueprimFromPersistValueprimToPurePersistValuesprimFromPurePersistValuesprimToSinglePersistValueprimFromSinglePersistValuepureToPersistValuepureFromPersistValuesingleToPersistValuesingleFromPersistValuetoSinglePersistValueUniquefromSinglePersistValueUniquetoPersistValuesUniquefromPersistValuesUniquetoSinglePersistValueAutoKeyfromSinglePersistValueAutoKey replaceOnefindOne matchElements haveSameElems phantomDbgetDefaultAutoKeyTypefirstRow streamToList mapStream joinStreamsgetUniqueFieldsisSimple deleteByKey$fEqPSFieldDef$fShowPSFieldDef $fToJSONKey $fFromJSONKey$fToJSONPersistValue$fFromJSONPersistValue $fFieldLikeuk$fFieldLikeFielda$fFieldLikeSubFielda$fFieldLikeAutoKeyFielda$fAssignableuk$fAssignableFielda$fAssignableSubFielda$fAssignableAutoKeyFielda$fProjection(,,,,)(,,,,)$fProjection(,,,)(,,,)$fProjection(,,)(,,)$fProjection(,)(,)$fProjectionuk$fProjectioncv$fProjectionAutoKeyFielda$fProjectionConda$fProjectionExpra$fProjectionSubFielda$fProjectionFielda$fPersistFieldKeyForBackend$fPersistField(,,,,)$fPersistField(,,,)$fPersistField(,,)$fPersistField(,)$fPersistField()$fPersistField[]$fPersistFieldMaybe$fPersistFieldZonedTime$fPersistFieldUTCTime$fPersistFieldTimeOfDay$fPersistFieldDay$fPersistFieldBool$fPersistFieldDouble$fPersistFieldWord64$fPersistFieldWord32$fPersistFieldWord16$fPersistFieldWord8$fPersistFieldInt64$fPersistFieldInt32$fPersistFieldInt16$fPersistFieldInt8$fPersistFieldInt$fPersistFieldText$fPersistFieldText0$fPersistField[]0$fPersistFieldByteString$fPersistFieldByteString0$fNeverNullKeyForBackend$fNeverNullKey$fNeverNullZonedTime$fNeverNullUTCTime$fNeverNullTimeOfDay$fNeverNullDay$fNeverNullBool$fNeverNullDouble$fNeverNullWord64$fNeverNullWord32$fNeverNullWord16$fNeverNullWord8$fNeverNullInt64$fNeverNullInt32$fNeverNullInt16$fNeverNullInt8$fNeverNullInt$fNeverNullByteString$fNeverNullByteString0$fNeverNullText$fNeverNullText0 $fNeverNull[]$fSinglePersistFielda$fPurePersistFielda$$fPrimitivePersistFieldKeyForBackend$fPrimitivePersistFieldMaybe $fPrimitivePersistFieldZonedTime$fPrimitivePersistFieldUTCTime $fPrimitivePersistFieldTimeOfDay$fPrimitivePersistFieldDay$fPrimitivePersistFieldBool$fPrimitivePersistFieldDouble$fPrimitivePersistFieldWord64$fPrimitivePersistFieldWord32$fPrimitivePersistFieldWord16$fPrimitivePersistFieldWord8$fPrimitivePersistFieldInt64$fPrimitivePersistFieldInt32$fPrimitivePersistFieldInt16$fPrimitivePersistFieldInt8$fPrimitivePersistFieldInt!$fPrimitivePersistFieldByteString"$fPrimitivePersistFieldByteString0$fPrimitivePersistFieldText$fPrimitivePersistFieldText0$fPrimitivePersistField[]$fPurePersistField(,,,,)$fPurePersistField(,,,)$fPurePersistField(,,)$fPurePersistField(,)$fPurePersistField()$fEmbedded(,,,,)$fEmbedded(,,,)$fEmbedded(,,) $fEmbedded(,)$fEntityConstr'HTruec$fEntityConstr'HFalsec$fEntityConstrvc ExpressionOf Unifiable ExpressiontoExpr=.&&.||.==./=.<.<=.>.>=.isFieldNothingliftExprtoArith$fExpressiondb'r'Expr$fExpressiondbra$fExpressiondb'r'Cond$fExpressiondbr'u$fExpressiondbr'AutoKeyField$fExpressiondb'r'SubField$fExpressiondbr'Field $fUnifiableaa$fNormalizeHTruetr$fNormalizeHTrueCondr$fNormalizeHFalseCondr$fNormalizeHTrueAutoKeyFieldr$fNormalizeHTrueur$fNormalizeHTrueExprr$fNormalizeHTrueSubFieldr$fNormalizeHTrueFieldr$fExpressionOfdbraa' $fUnifiableab$fNormalizeValuear$fNormalizeHFalsetr $fNormalizeHFalseAutoKeyField(,)$fNormalizeHFalseu(,)$fNormalizeHFalseExpr(,)$fNormalizeHFalseSubField(,)$fNormalizeHFalseField(,)$fTypeEqxxHTrue $fTypeEqxyb$fNormalizeKeyHFalsevuk$fNormalizeKeyHTruevuk$fNormalizeValueKeyr$fNormalizeValueMayber FloatingSqlDblog'logBase'SqlDbappendsignum'quotRem'equalsOperatornotEqualsOperator RenderConfigescSnippetRenderSgetQuery getValues StringLikefromChar prerenderExprmkExprWithConf renderExprrenderExprPriorityrenderExprExtendedrenderPersistValueparensoperatorfunctionmkExpr renderCond renderChaindefaultShowPrim renderOrders renderFieldsflatten commasJoin intercalateS renderUpdates tableName mainTableName$fIsStringUtf8 $fMonoidUtf8$fStringLike[]$fStringLikeUtf8$fStringLikeRenderS$fIsStringRenderS$fMonoidRenderSin_notIn_likenotLikeloweruppercotradiansdegreescase_$fIntegralExpr $fEnumExpr $fRealExpr $fOrdExpr$fFloatingExpr$fFractionalExpr $fNumExprSchemaAnalyzer schemaExistsgetCurrentSchema listTableslistTableTriggers analyzeTableanalyzeTriggeranalyzeFunctiongetMigrationPack MigrationPack compareTypes compareRefs compareUniqscompareDefaultsmigTriggerOnDeletemigTriggerOnUpdate migConstrescapeautoincrementedKeyTypeName mainTableIddefaultPriorityaddUniquesReferences showSqlType showColumn showAlterDbdefaultReferenceOnDeletedefaultReferenceOnUpdateAlterDBAddTable AlterTable DropTriggerAddTriggerOnDeleteAddTriggerOnUpdateCreateOrReplaceFunction DropFunction CreateSchema AddUniqueDropConstraint DropIndex AddReference DropReference DropColumn AddColumn AlterColumnTypeIsNullNotNullDefault NoDefault UpdateValue TableInfo tableColumns tableUniquestableReferences UniqueDefInfo QualifiedName ReferencereferencedTableNamereferencedColumnsreferenceOnDeletereferenceOnUpdateColumncolNamecolNullcolType colDefaultmigrateRecursively migrateSchema migrateEntity migrateList getAltersdefaultMigConstrshowReferenceActionreadReferenceAction $fEqColumn $fShowColumn$fShowReference$fShowTableInfo$fShowAlterColumn$fShowAlterTable $fShowAlterDBTuple2_0SelectorTuple2_1SelectorTuple3_0SelectorTuple3_1SelectorTuple3_2SelectorTuple4_0SelectorTuple4_1SelectorTuple4_2SelectorTuple4_3SelectorTuple5_0SelectorTuple5_1SelectorTuple5_2SelectorTuple5_3SelectorTuple5_4Selector EntityConstr'entityConstrNum'D:R:Selector(,,,,)constr0D:R:Selector(,,,)constr0D:R:Selector(,,)constr0D:R:Selector(,)constr0renderCondPriority