Dev4Snow

Go back to ContentsGo back to previous page

Object Definition Comparison

Use this feature found in the Tree to compare object definitions (DDL) -for tables, views, procedures or functions- with other object definitions located in the same or different Snowflake tenant, database or schema. You can also use it to compare the definition for objects of the same type that have different names.

Individual Object Comparison

If you want to compare two individual objects located in different Snowflake tenants, first open a connection to each of the Snowflake systems using the plug icon below or via the Connect menu, and keep the two connections open:

You can alternate from one connection to the other via the Window menu, as described in Menu, or using the CTRL+TAB keys:

Now from the tree of any of the two connections, click on a table, view, procedure or schema that you want to compare and then right-click > Action > Compare Definition (DDL)… :

A screen like this will show up (*):

(*) The checkbox “Ignore multiple spaces, blank lines or tabs; ignore DBs and schemas” will only show up if the object is not a table.

In this screen you can select the connection where the counterpart object –called the destination object- that you want to compare with is. If you want to perform a local comparison just select the same connection name that you are using. If you have two connections open, Dev4Snow will automatically select the other connection that you are not currently using, and if that connection contains the same DB name, schema and object that you are trying to compare, the three will be selected automatically.

Ignore multiple spaces, blank lines or tabs; ignore DBs and schemas: This option will show up only when you are comparing an object that is not a table. After retrieving the DDLs from each connection, the contents in memory are converted according to the list below before comparison:

  • Tabs are converted into spaces.
  • Multiple spaces are converted into a single space.
  • Multiple contiguous new line characters are converted into one new line character.
  • Fully qualified names such as database1.schema1.table1 and partially qualified names such as schema1.table1 are converted into table1 –even if they are enclosed with double quotes.

This checkbox ensures that two objects can be safely compared even if you renamed the database or schema names when moving them to Quality or Production.

Another conversion that is always applied independently of this checkbox is that if you are comparing two objects that are named differently, the name of the object is ignored when looking for differences.

 

Mass Object Comparison

Use this feature to compare all object definitions (DDL) in a schema, or a folder object definitions (tables, views, procedures or functions) from a schema to another schema located in the same or different Snowflake system.

To compare the objects of a schema to the objects of another schema located in a different Snowflake tenant, first open a connection to each of the Snowflake systems using the plug icon below or via the Connect menu, and keep the two connections open:

You can alternate from one connection to the other via the Window menu, as described in Menu, or using the CTRL+TAB keys:

Now from the tree of any of the two connections, click on a schema or schema folder that you want to compare and then right-click > Action > Compare Definition (DDL)… :

A screen like this will show up:

At this point you can also change your Folder selection –if you right-clicked on a schema “All folders” was selected, but you can change it to “Tables”, “Views”, “Procedures”, or “Functions” folder.

In this screen you can select the connection where the counterpart schema is. If you want to perform a local comparison just select the same connection name that you are using. If you have two connections open, Dev4Snow will automatically select the other connection that you are not currently using, and if that connection contains the same DB name and schema that you are trying to compare, the two will be selected automatically.

Ignore multiple spaces, blank lines or tabs; ignore DBs and schemas: This option applies to all objects except tables. After retrieving the DDLs from each connection, the contents in memory are converted according to the list below before comparison:

  • Tabs are converted into spaces.
  • Multiple spaces are converted into a single space.
  • Multiple contiguous new line characters are converted into one new line character.
  • Fully qualified names such as database1.schema1.table1 and partially qualified names such as schema1.table1 are converted into table1 –even if they are enclosed with double quotes.

This checkbox ensures that two objects can be safely compared even if you renamed the database or schema names when moving them to Quality or Production.