anchor.diff:  
       let createInsertCommand (con:IDbConnection) (sb:Text.StringBuilder) (entity:SqlEntity) =
           let (~~) (t:string) = sb.Append t |> ignore
  -        let cmd = (this :> ISqlProvider).CreateCommand(con,"")
  +        let cmd = PostgreSQL.createCommand "" con
           cmd.Connection <- con
           let pk = pkLookup.[entity.Table.FullName]
           let columnNames, values =
               (([],0),entity.ColumnValues)
               ||> Seq.fold(fun (out,i) (k,v) ->
                   let name = sprintf "@param%i" i
  -                let p = (this :> ISqlProvider).CreateCommandParameter(QueryParameter.Create(name,i),v)
  +                let p = PostgreSQL.createCommandParameter (QueryParameter.Create(name,i)) v
                   (k,p)::out,i+1)
               |> fun (x,_)-> x
               |> List.rev
  
positive.code:                     |> Option.fold (fun acc col -> fst acc, col :: (snd acc)) (sparams, rcolumns)
              Root("Functions", Sproc({ Name = name; Params = (fun _ -> sparams); ReturnColumns = (fun _ _ -> rcolumns) })))
  
  type internal PostgresqlProvider(resolutionPath, owner, referencedAssemblies) as this =
      let pkLookup = Dictionary<string,string>()
      let tableLookup = Dictionary<string,Table>()
      let columnLookup = Dictionary<string,Column list>()
  
negative.code:         member __.GetIndividualsQueryText(table,amount) = sprintf "SELECT * FROM \"%s\".\"%s\" LIMIT %i;" table.Schema table.Name amount
          member __.GetIndividualQueryText(table,column) = sprintf "SELECT * FROM \"%s\".\"%s\" WHERE \"%s\".\"%s\".\"%s\" = @id" table.Schema table.Name table.Schema table.Name  column
  
          member __.GenerateQueryText(sqlQuery,baseAlias,baseTable,projectionColumns) =
              // NOTE: presently this is identical to the SQLite code (except the whitespace qualifiers),
              // however it is duplicated intentionally so that any Postgre specific
              // optimisations can be applied here.
  