> @@ -1737,8 +1744,10 @@ xferOptimization(Parse * pParse, /* Parser context */ > if (onError == ON_CONFLICT_ACTION_DEFAULT) { > if (pDest->iPKey >= 0) > onError = pDest->keyConf; > - if (onError == ON_CONFLICT_ACTION_DEFAULT) > + if (onError == ON_CONFLICT_ACTION_DEFAULT) { > onError = ON_CONFLICT_ACTION_ABORT; > + confl_action_default = 1; Why do you need this variable at all? I mean, DEFAULT always is an alias to ABORT, isn’t it? Yes, it is, but there's a little difference between directly specified ABORT for an insert stmt (INSERT OR ABORT) and just INSERT without any specified error action (ABORT specified by the internals). When you directly specify it ABORT is a higher priority action than in case there's a column with REPLACE error action. Thus we can even insert not in the empty destination table.