anchor.diff:                  let name = sprintf "@param%i" i
                   let p =
                       match entity.GetColumnOption<obj> col with
  -                    | Some v -> (this :> ISqlProvider).CreateCommandParameter(QueryParameter.Create(name,i),v)
  -                    | None -> (this :> ISqlProvider).CreateCommandParameter(QueryParameter.Create(name,i),DBNull.Value)
  +                    | Some v -> PostgreSQL.createCommandParameter (QueryParameter.Create(name,i)) v
  +                    | None -> PostgreSQL.createCommandParameter (QueryParameter.Create(name,i)) DBNull.Value
                   (col,p)::out,i+1)
               |> fun (x,_)-> x
               |> List.rev
               |> List.toArray
   
  -        let pkParam = (this :> ISqlProvider).CreateCommandParameter(QueryParameter.Create("@pk",0),pkValue)
  +        let pkParam = PostgreSQL.createCommandParameter (QueryParameter.Create("@pk",0)) pkValue
   
           ~~(sprintf "UPDATE \"%s\".\"%s\" SET %s WHERE %s = @pk;"
               entity.Table.Schema entity.Table.Name
  
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: 
      let createUpdateCommand (con:IDbConnection) (sb:Text.StringBuilder) (entity:SqlEntity) changedColumns =
          let (~~) (t:string) = sb.Append t |> ignore
          let cmd = PostgreSQL.createCommand "" con
          cmd.Connection <- con
          let pk = pkLookup.[entity.Table.FullName]
          sb.Clear() |> ignore
  