> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# System Views Reference

> VillageSQL system views for querying extension metadata

Query extension metadata using the standard SQL interfaces below.

***

## System Views

### INFORMATION\_SCHEMA.EXTENSIONS

Lists all installed extensions.

**Schema:**

```sql theme={null}
SELECT
    EXTENSION_NAME,
    EXTENSION_VERSION
FROM INFORMATION_SCHEMA.EXTENSIONS;
```

**Example:**

```sql theme={null}
-- List all installed extensions
SELECT * FROM INFORMATION_SCHEMA.EXTENSIONS;

-- Check specific extension version
SELECT EXTENSION_VERSION
FROM INFORMATION_SCHEMA.EXTENSIONS
WHERE EXTENSION_NAME = 'vsql_complex';
```

**Sample Output:**

```
+------------------+-------------------+
| EXTENSION_NAME   | EXTENSION_VERSION |
+------------------+-------------------+
| vsql_complex     | 0.0.1             |
| vsql_uuid        | 0.2.1             |
+------------------+-------------------+
```

***

### INFORMATION\_SCHEMA.COLUMNS (Custom Types)

Columns using custom extension types are visible through the standard
`INFORMATION_SCHEMA.COLUMNS` view. Custom types appear as
`extension_name.type_name` in the `DATA_TYPE` and `COLUMN_TYPE` columns
(e.g., `vsql_complex.COMPLEX`).

**Example:**

```sql theme={null}
-- Find all columns using custom extension types
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE '%.%'
ORDER BY TABLE_SCHEMA, TABLE_NAME;

-- Find columns using a specific extension's types
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE 'vsql_complex.%';
```

**Sample Output:**

```
+--------------+------------+-------------+---------------------+
| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | DATA_TYPE           |
+--------------+------------+-------------+---------------------+
| mydb         | signals    | impedance   | vsql_complex.COMPLEX|
| mydb         | signals    | frequency   | vsql_complex.COMPLEX|
+--------------+------------+-------------+---------------------+
```

***

## Common Queries

### Find Extension Dependencies

Find which columns use a specific extension's types before uninstalling:

```sql theme={null}
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE 'vsql_complex.%';
```

### List All Extensions and Their Custom Type Columns

```sql theme={null}
-- All installed extensions
SELECT EXTENSION_NAME, EXTENSION_VERSION
FROM INFORMATION_SCHEMA.EXTENSIONS
ORDER BY EXTENSION_NAME;

-- All columns using custom types across all extensions
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE '%.%'
ORDER BY DATA_TYPE, TABLE_SCHEMA, TABLE_NAME;
```

### Find Tables Using Extension Types

```sql theme={null}
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE 'vsql_complex.%'
ORDER BY TABLE_SCHEMA, TABLE_NAME;
```

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Managing Extensions" icon="sliders" href="/docs/mysql-8.4/0.0.2/managing">
    Monitor and troubleshoot extensions
  </Card>

  <Card title="Install Extensions" icon="download" href="/docs/mysql-8.4/0.0.2/install">
    Add new extensions
  </Card>

  <Card title="Extension Architecture" icon="sitemap" href="/docs/mysql-8.4/0.0.2/architecture">
    Understand the internals
  </Card>

  <Card title="Available Extensions" icon="list" href="/docs/mysql-8.4/0.0.2/list">
    Browse extension catalog
  </Card>
</CardGroup>
