Use 'set' attribute to decide column creation in ModelSQL

Since changeset 64681f657d55, Function fields have a sql_type so it is wrong to
rely on this property to create or not a column. The 'set' method of field is
already used in many places for this purpose.

issue4302
review7731002
Improve readability of logged email messages

issue3542
review8751002

--HG--
extra : rebase_source : 230be1a0c8f9d725f3345e72847e1fe99c047496