anchor.diff:                              (trans :> IDisposable).Dispose()
                           ret
   
  -          member x.InsertOne<'T,'R> (item : 'T,?table:string,?transProvided:DynamicSqlTransaction) = 
  -            match table,transProvided with
  -                | None,None -> x.InsertMany<'T,'R>([item]).[0]
  -                | Some(t),None -> x.InsertMany<'T,'R>([item],table=t).[0]
  -                | None,Some(t) -> x.InsertMany<'T,'R>([item],transProvided=t).[0]
  -                | Some(ta),Some(tr) -> x.InsertMany<'T,'R>([item],table=ta,transProvided=tr).[0]
  +          member x.InsertOne<'T,'R> (item : 'T,?table:string,?transProvided:DynamicSqlTransaction,?ignoredColumns:string seq) = 
  +            match table,transProvided,ignoredColumns with
  +                | None,None,None -> x.InsertMany<'T,'R>([item]).[0]
  +                | Some(t),None,None -> x.InsertMany<'T,'R>([item],table=t).[0]
  +                | None,Some(t),None -> x.InsertMany<'T,'R>([item],transProvided=t).[0]
  +                | Some(ta),Some(tr),None -> x.InsertMany<'T,'R>([item],table=ta,transProvided=tr).[0]
  +                | None,None,Some(cols) -> x.InsertMany<'T,'R>([item],ignoredColumns=cols).[0]
  +                | Some(t),None,Some(cols) -> x.InsertMany<'T,'R>([item],table=t,ignoredColumns=cols).[0]
  +                | None,Some(t),Some(cols) -> x.InsertMany<'T,'R>([item],transProvided=t,ignoredColumns=cols).[0]
  +                | Some(ta),Some(tr),Some(cols) -> x.InsertMany<'T,'R>([item],table=ta,transProvided=tr,ignoredColumns=cols).[0]
   
             member x.Query<'T>(sql:string) : seq<'T> =
               //let connection = pool.Take()
  
positive.code:           member x.LogQueries with get() = opts.logQueries and set(v) = opts.logQueries <- v  
            member x.LogLongerThan with get() = opts.logLongerThan  and set(v) = opts.logLongerThan <- v  
                                                      
            member x.InsertMany<'T,'R> (items : 'T seq,?table:string,?transProvided:DynamicSqlTransaction) =
              // Determine table name from item to be inserted
              let table = match table with
                              | Some(x) -> x.ToLower()
                              | None -> typeof<'T>.Name.ToLower()
          
              // Inspect table definition.
              use command : DynamicSqlCommand = x.Command "select a.attname as attname,t.typname as tname,attnum,attnotnull from 
  	                                                        pg_class c JOIN pg_attribute a ON c.oid = a.attrelid 
  
negative.code:                         let sql = sprintf "insert into %s(%s) values(%s) %s"  
                                      table 
                                      (String.Join(",",colNames|> Array.map(fun x -> x.ToLower()))) 
                                      (String.Join(",",[| for i in 1..fields.Length  -> sprintf ":p%d"i |]))
                                      returningClause
                              
                          /// Transaction to wrap the insertion into    
  