0.64.0 - March 2026

This release introduced a major change related to order of commands generated & executed by resolvers.

Changes

  • All resolvers now generate DROP commands before CREATE and ALTER.

Reason

This change helps to alleviate collision issues with FUNCTION, PROCEDURE and some policies.

For example, when trying to create a new procedure with an argument using DEFAULT, Snowflake may fail with error:

SQL compilation error: Cannot overload PROCEDURE 'XXX' as it would cause ambiguous PROCEDURE overloading

The best way to fix this error is to identify and drop another procedure with the same name and similar arguments.

Looking for potential conflicts is relatively costly when you have large number of objects to create. But the problem can by fully mitigated at zero cost if we swap execution order of commands and execute all DROP commands prior to CREATE and ALTER commands.

Other object types are sometimes affected by this problem too, especially when referencing other objects (e.g. policies).

Expected impact

We do not expect this change to break anything inside SnowDDL itself or affect any existing configs. But it may break some review automation a few customers built on top of SnowDDL.

Last updated