Rewrites this and creates a new SqlStatement where
all the variables which are to a DEFAULT value (as returned by value_is_default
) are either removed from the statement (if remove
is true) or replaced by the
"DEFAULT" keyword (if remove
is false).
This function is only useful for database providers' implementations which have to deal with default values when executing statements,
and is only relevant in the case of INSERT or UPDATE statements (in the latter case an error is returned if remove
is
true).
For example the <programlisting><![CDATA[INSERT INTO mytable (id, name) VALUES (23, #name::string
)]]><
/programlisting> is re-written into <programlisting><![CDATA[INSERT INTO mytable (id, name) VALUES (23, DEFAULT)]]><
/programlisting> if remove
is false and into <programlisting><![CDATA[INSERT
INTO mytable (id) VALUES (23)]]></programlisting> if remove
is true.
this |
a Statement object |
remove |
set to true if DEFAULT fields are removed, of false if the "DEFAULT" keyword is used |
params |
a Set containing the variable's values to be bound when executing this |
a new SqlStatement, or null if an error occurred |