> For the complete documentation index, see [llms.txt](https://docs.gapvelocity.ai/blackdiamond-studio-or-mobilize.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gapvelocity.ai/blackdiamond-studio-or-mobilize.net/blackdiamond-studio-documentation/code-insights/language-structures-support.md).

# Language structures support

{% hint style="info" %}
The list of commands is not 100% complete, and we are constantly expanding the capabilities of our analysis.
{% endhint %}

## Glossary

**Script:** used as a synonym for the source file.&#x20;

### Relationships

A relationship is the simplest relationship between objects, it represents a connection between them, there are different kinds of relationships

* **Script relationship:** (Script)−action→(Object)

  The script relationship represents an "action" that is being executed inside the script towards an object.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>E.g.:</p><p><mark style="color:blue;"><code>UPDATE DB.SCH.T1 SET value1 = newValue;</code></mark></p><p>(file.sql)−UPDATE→(DB.SCH.T1)</p></div>

* **Contains relationship:** (Script)−contains→(Object)

  The contains relationship is defined by CREATE commands. This will generate elements known as Objects otherwise the Objects found are called **Missing Objects**.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>E.g.:</p><p><mark style="color:blue;"><code>CREATE TABLE DB.SCH.T1 (...</code></mark></p><p>(file.sql)−CONTAINS→(DB.SCH.T1)</p></div>

### Dependencies&#x20;

A dependency is a strong link between two objects. Most of the time the dependent object needs that dependency relationship so it can work.

* **Reference:** (Object1)−REFERENCES→(Object2)

  The reference relationship is defined by the use of an Object inside a command, each object that has a "parent" identified will have this relationship. The **Missing Object** type will be used when the usage of an object is found, but the creation statement for the object was not.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>E.g.:</p><p><mark style="color:blue;">CREATE VIEW DB.SCH.V1 AS SELECT * FROM DB.SCH.T1;</mark></p><p>(DB.SCH.V1)−REFERENCES→(DB.SCH.T1)</p></div>

## DDL Commands

Most DDL commands generate dependencies (or simple relationships). The CREATE command is pretty unique given its nature of generating objects, so we will be adding a specific block for it.

<table><thead><tr><th width="346.66752903157504">Command</th><th width="173.33211530350923">Type</th><th>Support Status</th></tr></thead><tbody><tr><td>ALTER &#x3C;object></td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>COMMENT</td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>DESCRIBE &#x3C;object></td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>DROP &#x3C;object></td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>SHOW &#x3C;object></td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>USE &#x3C;object></td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr></tbody></table>

### CREATE *\<object>*

This command can be used with Account and Database objects, which in turn gives it a lot of different variations, each with a specific syntax. Usually, the more complex syntax will be less likely that the scanner will identify it.

#### Create \[**Account** objects]

<table><thead><tr><th width="351.22615301147994">Command</th><th>Type</th><th>Support Status</th></tr></thead><tbody><tr><td>CREATE CONNECTION </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE NETWORK POLICY</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE RESOURCE MONITOR</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE SHARE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE ROLE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE USER</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE WAREHOUSE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE DATABASE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE DATABASE … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE NOTIFICATION INTEGRATION</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE SECURITY INTEGRATION</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE SESSION POLICY</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE STORAGE INTEGRATION</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr></tbody></table>

#### Create \[Database objects]

<table><thead><tr><th width="350.5662587755257">Command</th><th>Type</th><th>Support Status</th></tr></thead><tbody><tr><td>CREATE SCHEMA                  </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE SCHEMA … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE TABLE </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE TABLE … CLONE </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE EXTERNAL TABLE </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE VIEW</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE MATERIALIZED VIEW</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE MASKING POLICY</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE ROW ACCESS POLICY</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE SEQUENCE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE SEQUENCE … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE TAG</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE FILE FORMAT</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE FILE FORMAT … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE STAGE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE STAGE … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE PIPE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE STREAM</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr><tr><td>CREATE STREAM … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE TASK</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE TASK … CLONE</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td> CREATE FUNCTION</td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE EXTERNAL FUNCTION </td><td>Contains relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>CREATE PROCEDURE</td><td>Contains relationship</td><td> <span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span> Supported</td></tr></tbody></table>

## DML

Currently, the DML commands alone are not generating any kind of dependencies.&#x20;

<table><thead><tr><th width="323.187377459503"></th><th width="189.37757853968975">Type</th><th width="202.66666666666663">Support Status</th></tr></thead><tbody><tr><td>INSERT  </td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>INSERT (multi-table)</td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>MERGE </td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>UPDATE </td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>DELETE</td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr><tr><td>TRUNCATE TABLE</td><td>Script relationship</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span> Not supported</td></tr></tbody></table>
