{j*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None;<=>?FTVAvoid orphan instances.Table name and a list of field names and according delete statements assume that this function is called only for ephemeral fieldsgudt_name, character_maximum_length, numeric_precision, numeric_scale, datetime_precision, interval_typeKPut explicit type for expression. It is useful for values which are defaulted to a wrong type. For example, a literal Int from a 64bit machine can be defaulted to a 32bit int by Postgresql. Also a value entered as an external string (geometry, arrays and other complex types have this representation) may need an explicit type. Casts expression to a type. castType value "INT" results in  value::INT. =Distinct only on certain fields or expressions. For example, select $ CondEmpty   (lower EmailField, IpField).xconnection string in keyword/value format like "host=localhost port=5432 dbname=mydb". For more details and options see Phttp://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-PARAMKEYWORDSnumber of connections to openconnection stringconnection stringnumber of connections to openn      !"#$%&'()*+,-./0123456789:;<=  >None ;<=FT%Represents PostgreSQL arrays!VConcatenates array elements using supplied delimiter. array_to_string(ARRAY[1, 2, 3], ~^~ ) = 1~^~2~^~3"LSplits string into array elements using supplied delimiter. string_to_array('xx~^~yy~^~zz', ~^~) = {xx,yy,zz}%(Contains. ARRAY[1,4,3] @> ARRAY[3,1] = t&3Is contained by. ARRAY[2,7] <@ ARRAY[1,7,4,2,6] = t'AOverlap (have elements in common). ARRAY[1,4,3] && ARRAY[2,1] = t !"#$%&' !"#$%&'?@None<>?FTF;\It is not fully implemented in PostgreSQL yet. It is kept just to match all geometric types.? Translation 9box '((0,0),(1,1))' + point '(2.0,0)' = box '(3,1),(2,0)'@ Translation ;box '((0,0),(1,1))' - point '(2.0,0)' = box '(-1,1),(-2,0)'AScaling/rotation 9box '((0,0),(1,1))' * point '(2.0,0)' = box '(2,2),(0,0)'BScaling/rotation 9box '((0,0),(2,2))' / point '(2.0,0)' = box '(1,1),(0,0)'CPoint or box of intersection :lseg '((1,-1),(-1,1))' # '((1,1),(-1,-1))' = point '(0,0)' ?box '((1,-1),(-1,1))' # '((1,1),(-1,-1))' = box '(1,1),(-1,-1)'D0Closest point to first operand on second operand 5point '(0,0)' ## lseg '((2,0),(0,2))' = point '(1,1)'EDistance between circle '((0,0),1)'  - circle '((5,0),1)' = 3F Overlaps? 1box '((0,0),(1,1))' && box '((0,0),(2,2))' = trueGIs strictly left of? /circle '((0,0),1)' << circle '((5,0),1)' = trueHIs strictly right of? /circle '((5,0),1)' >> circle '((0,0),1)' = trueIODoes not extend to the right of? box '((0,0),(1,1))' &< box '((0,0),(2,2))' = tJDoes not extend to the left of? 1box '((0,0),(3,3))' &> box '((0,0),(2,2))' = trueKIs strictly below? 2box '((0,0),(3,3))' <<| box '((3,4),(5,5))' = trueLIs strictly above? +box '((3,4),(5,5))' |>> box '((0,0),(3,3))'MDoes not extend above? 2box '((0,0),(1,1))' &<| box '((0,0),(2,2))' = trueNDoes not extend below? 2box '((0,0),(3,3))' |&> box '((0,0),(2,2))' = trueOIs below (allows touching)? /circle '((0,0),1)' <^ circle '((0,5),1)' = truePIs above (allows touching)? /circle '((0,5),1)' >^ circle '((0,0),1)' = trueQ Intersects? 5lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))' = trueRAre horizontally aligned? %point '(1,0)' ?- point '(0,0)' = trueSAre vertically aligned? %point '(0,1)' ?| point '(0,0)' = trueTIs perpendicular? 4lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' = trueU Are parallel? 6lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' = trueV Contains? *circle '((0,0),2)' @> point '(1,1)' = trueWContained in or on? *point '(1,1)' <@ circle '((0,0),2)' = trueXSame as? 9polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' = true)0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX)=>;<9:784562301?@ABCDEFGHIJKLMNOPQRSTUVWX0123456789:;<=>?6@6A7B7None&'<is'Get value for key (NULL if not present) 'a=>x, b=>y'::hstore -> a == x/Get values for keys array (NULL if not present) $'a=>x, b=>y, c=>z'::hstore == ARRAY[c,a ] {"z","x"}Concatenate hstores L'a=>b, c=>d'::hstore || 'c=>x, d=>q'::hstore == "a"=>"b", "c"=>"x", "d"=>"q"7Does hstore contain key? Same as postgresql operator ?. 'a=>1' ::hstore ? a == True+Does hstore contain non-NULL value for key? defined( 'a=>NULL',a) == f'Does hstore contain all specified keys? 'a=>1,b=>2'::hstore ?& ARRAY[a,b ] == True.Does hstore contain any of the specified keys? 'a=>1,b=>2'::hstore ?| ARRAY[b,c ] == True Does left operand contain right?'a=>b, b=>1, c=>NULL'::hstore > 'b=>1' == True@#Is left operand contained in right?'a=>c' ::hstore < 'a=>b, b=>1, c=>NULL' == False@Delete key from left operand 'a=>1, b=>2, c=>3'::hstore - b::text == "a"=>"1", "c"=>"3"Delete keys from left operand #'a=>1, b=>2, c=>3'::hstore - ARRAY[a,b ] == "c"=>"3"'Delete matching pairs from left operand G'a=>1, b=>2, c=>3'::hstore - 'a=>4, b=>2'::hstore == "a"=>"1", "c"=>"3"SConvert hstore to array of alternating keys and values. Same as prefix operator %%. )hstore_to_array('a=>1,b=>2') == {a,1,b,2}NConvert hstore to two-dimensional key/value array. Same as prefix operator %#. .hstore_to_matrix('a=>1,b=>2') == {{a,1},{b,2}}Get hstore's keys as an array akeys('a=>1,b=>2') == {a,b}Get hstore's values as an array avals('a=>1,b=>2') == {1,2}Get hstore as a json value hstore_to_json('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4') == {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", "g": "2.345e+4"}wGet hstore as a json value, but attempting to distinguish numerical and Boolean values so they are unquoted in the JSON hstore_to_json_loose('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4') == {"a key": 1, "b": true, "c": null, "d": 12345, "e": "012345", "f": 1.234, "g": 2.345e+4}Extract a subset of an hstore &slice('a=>1,b=>2,c=>3'::hstore, ARRAY[b,c,x]) =="b"=>"2", "c"=>"3"A      !"#$%&'()*+,-./012345566789::;;<<==>?@ABCDEFGHIJKLMNOPQRST*+UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~R*+       !"#$%&'()*+,-./0123456789:;<=>3groundhog-postgresql-0.8.0.3-FOscF0aTp5SFRncWABIzdJDatabase.Groundhog.Postgresql#Database.Groundhog.Postgresql.Array&Database.Groundhog.Postgresql.Geometry$Database.Groundhog.Postgresql.HStore(groundhog-0.8.0.1-6YejMe4cCiMEDqXjNewD9dDatabase.Groundhog.Core runDbConn PostgresqlwithPostgresqlPoolwithPostgresqlConncreatePostgresqlPool showSqlType explicitTypecastType distinctOn!$fExtractConnectionPoolPostgresql'$fExtractConnectionPostgresqlPostgresql $fTryConnectionManagerPostgresql$fConnectionManagerPostgresql$fSavepointPostgresql$fSchemaAnalyzerPostgresql$fPersistBackendConnPostgresql$fFloatingSqlDbPostgresql$fSqlDbPostgresql$fDbDescriptorPostgresql $fToFieldPArray!!:prependappendarrayCat arrayDims arrayNDims arrayLower arrayUpper arrayLength arrayToString stringToArrayanyall@><@overlaps$fFromJSONArray $fToJSONArray$fPrimitivePersistFieldArray $fArrayElema$fArrayElemArray$fPersistFieldArray $fEqArray $fShowArrayCirclePolygonPath ClosedPathOpenPathBoxLsegLinePoint+.-.*./.###<->&&<<>>&<&><<||>>&<||&><^>^?#?-?|?-|?||~=$fPersistFieldPoint$fPrimitivePersistFieldPoint$fPersistFieldLine$fPrimitivePersistFieldLine$fPersistFieldLseg$fPrimitivePersistFieldLseg$fPersistFieldBox$fPrimitivePersistFieldBox$fPersistFieldPath$fPrimitivePersistFieldPath$fPersistFieldPolygon$fPrimitivePersistFieldPolygon$fPersistFieldCircle$fPrimitivePersistFieldCircle$fBoxLineLsegLseg$fBoxLineLsegLine$fBoxLineLsegBox$fBoxCirclePolygonPolygon$fBoxCirclePolygonCircle$fBoxCirclePolygonBox$fBoxCirclePathPointPoint$fBoxCirclePathPointPath$fBoxCirclePathPointCircle$fBoxCirclePathPointBox$fBoxCirclePointPolygonPolygon$fBoxCirclePointPolygonPoint$fBoxCirclePointPolygonCircle$fBoxCirclePointPolygonBox$fBoxPointPoint $fBoxPointBox$fLineLsegLseg$fLineLsegLine$fPlusPointPoint$fPlusPathPath$fPlusPathPoint$fPlusCirclePoint$fPlusBoxPoint$fDistancePolygonPolygon$fDistancePointLseg$fDistancePointBox$fDistancePointLine$fDistancePointCircle$fDistancePointPoint$fDistancePointPath$fDistancePathPath$fDistanceLsegBox$fDistanceLsegLseg$fDistanceLsegLine$fDistanceLineBox$fDistanceLineLine$fDistanceCirclePolygon$fDistanceCircleCircle$fDistanceBoxBox$fContainsPolygonPoint$fContainsPolygonPolygon$fContainsPathPoint$fContainsCirclePoint$fContainsCircleCircle$fContainsBoxPoint$fContainsBoxBox$fContainedPolygonPolygon$fContainedPointCircle$fContainedPointPolygon$fContainedPointPath$fContainedPointLine$fContainedPointBox$fContainedPointLseg$fContainedLsegLine$fContainedLsegBox$fContainedCircleCircle$fContainedBoxBox$fClosestPointLseg$fClosestPointBox$fClosestPointLine$fClosestLsegLseg$fClosestLsegLine$fClosestLsegBox$fClosestLineLseg$fClosestLineBox$fIntersectsPathPath$fIntersectsLsegLseg$fIntersectsLsegLine$fIntersectsLsegBox$fIntersectsLineBox$fIntersectsLineLine$fIntersectsBoxBox $fEqPoint $fShowPoint$fEqLine $fShowLine$fEqLseg $fShowLseg$fEqBox $fShowBox$fEqPath $fShowPath $fEqPolygon $fShowPolygon $fEqCircle $fShowCircleHStore->. lookupArr hstoreConcatexistdefined?& deleteKey deleteKeys differencehstore_to_arrayhstore_to_matrixakeysavalshstore_to_jsonhstore_to_json_looseslice$fPrimitivePersistFieldHStore$fPersistFieldHStore $fEqHStore $fOrdHStore $fShowHStorePmigTriggerOnUpdate readSqlTypebase GHC.Floatatan2(Database.Groundhog.Generic.Sql.Functionscase_degreesradianscotupperlowernotLikelikenotIn_in_Database.Groundhog.Generic.SqlSqlDbsignum'quotRem'equalsOperatornotEqualsOperatorDatabase.Groundhog.ExpressiontoArithliftExprisFieldNothing>=.>.<=.<./=.==.||.&&.=.Database.Groundhog.Generic deleteByKeyrunMigrationUnsafe runMigrationprintMigrationexecuteMigrationUnsafeexecuteMigrationcreateMigrationorderByoffsetBylimitTo~>KeyAutoKey DefaultKeyUniqueBackendSpecific UniqueMarkerCondAndNotOrCompareCondRaw CondEmptyOrderAscDescDatabase.Groundhog.InstancesTuple2_0SelectorTuple2_1SelectorTuple3_0SelectorTuple3_1SelectorTuple3_2SelectorTuple4_0SelectorTuple4_1SelectorTuple4_2SelectorTuple4_3SelectorTuple5_0SelectorTuple5_1SelectorTuple5_2SelectorTuple5_3SelectorTuple5_4SelectorSelector AutoKeyFieldPersistBackendConncountgetdeletedeleteByinsertinsertBymigrateupdateinsert_ insertByAllreplace replaceByselect selectAllgetBy deleteAllcountAllproject executeRawqueryRaw insertListgetList extractUniquePersistBackendConn getConnection ArrayElem parseElem