anchor.diff:                      false ->
                           V
                   end,
  -                {[DBColumn|Attrs], [pack_value(Value)|Vals]}
  +                case lists:keyfind(A, 1, AttributeTypes) of
  +                    {A, AttrType} ->
  +                        {[DBColumn|Attrs], [pack_typed_value(Value, AttrType)|Vals]};
  +                    _ ->
  +                        {[DBColumn|Attrs], [pack_value(Value)|Vals]}
  +                end
           end, {[], []}, Record:attributes()),
       ["INSERT INTO ", TableName, " (", 
           string:join(Attributes, ", "),
  
positive.code:     Type = element(1, Record),
      TableName = boss_record_lib:database_table(Type),
      AttributeColumns = Record:database_columns(),
      {Attributes, Values} = lists:foldl(fun
              ({_, undefined}, Acc) -> Acc;
              ({'id', 'id'}, Acc) -> Acc;
  
negative.code: escape_sql1([C|Rest], Acc) ->
      escape_sql1(Rest, [C|Acc]).
  
  pack_typed_value(Val, date) ->
      pack_date(Val);
  pack_typed_value(Val, timestamp) ->
      pack_now(Val);
  pack_typed_value(Val, _) ->
      pack_value(Val).
  
  pack_date({Y, M, D}) ->
      io_lib:format("'~p-~p-~p'", [Y, M, D]).
  
  pack_datetime({Date, {Y, M, S}}) when is_float(S) ->
      pack_datetime({Date, {Y, M, erlang:round(S)}});
  pack_datetime(DateTime) ->
  