# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gapvelocity.ai/blackdiamond-studio-or-mobilize.net/blackdiamond-studio-documentation/code-insights/language-structures-support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
