This is an automated email from the ASF dual-hosted git repository.

mchades pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 8289f20805 [#11521] docs(glue): Add AWS Glue catalog and connector 
documentation (#11523)
8289f20805 is described below

commit 8289f20805b626dd30b5bc733c53ed0e0ee27f3a
Author: Yuhui <[email protected]>
AuthorDate: Tue Jun 16 10:05:24 2026 +0800

    [#11521] docs(glue): Add AWS Glue catalog and connector documentation 
(#11523)
    
    ### What changes were proposed in this pull request?
    
    This PR adds documentation for AWS Glue catalog:
    
    - AWS Glue catalog core documentation
    - Trino connector Glue catalog guide
    - Spark connector Glue catalog guide
    
    ### Why are the changes needed?
    
    Users need complete documentation to use AWS Glue catalog with Gravitino
    and its connectors.
    
    Fix: #11521
    
    ### Does this PR introduce _any_ user-facing change?
    
    - New docs: `docs/aws-glue-catalog.md`
    - New docs: `docs/trino-connector/catalog-glue.md`
    - New docs: `docs/spark-connector/spark-catalog-glue.md`
    - Updated: `docs/trino-connector/index.md`
    - Updated: `docs/trino-connector/supported-catalog.md`
    - Updated: `docs/spark-connector/spark-connector.md`
    
    ### How was this patch tested?
    
    Documentation changes validated by manual review.
---
 docs/aws-glue-catalog.md                   | 311 +++++++++++++++++++++++++++
 docs/security/how-to-use-built-in-idp.md   |   4 +-
 docs/spark-connector/spark-catalog-glue.md | 325 +++++++++++++++++++++++++++++
 docs/spark-connector/spark-connector.md    |   2 +-
 docs/trino-connector/catalog-glue.md       | 303 +++++++++++++++++++++++++++
 docs/trino-connector/index.md              |   1 +
 docs/trino-connector/supported-catalog.md  |   4 +-
 7 files changed, 946 insertions(+), 4 deletions(-)

diff --git a/docs/aws-glue-catalog.md b/docs/aws-glue-catalog.md
new file mode 100644
index 0000000000..ccdff0fb99
--- /dev/null
+++ b/docs/aws-glue-catalog.md
@@ -0,0 +1,311 @@
+---
+title: "AWS Glue catalog"
+slug: /aws-glue-catalog
+keywords:
+  - glue
+  - aws
+  - metadata
+license: "This software is licensed under the Apache License version 2."
+---
+
+## Introduction
+
+Apache Gravitino uses [AWS Glue Data Catalog](https://aws.amazon.com/glue/) as 
a metadata catalog.
+
+### Requirements
+
+* The Glue catalog requires network access to the AWS Glue API.
+* Gravitino uses the AWS SDK v2 to communicate with Glue.
+
+:::note
+The Glue catalog is case-insensitive for schema and table names. AWS Glue 
folds database and table names to lowercase on storage.
+:::
+
+## Catalog
+
+### Catalog Capabilities
+
+The Glue catalog supports creating, updating, and deleting databases and 
tables in the AWS Glue Data Catalog.
+
+- Supports all table types stored in Glue (Hive, Iceberg, Delta, Parquet, and 
others) by default.
+- Supports Hive-format table partitioning, bucketing, and sort orders.
+- Does not support views. Glue views (tables with `TableType=VIRTUAL_VIEW`) 
are filtered out.
+
+### Catalog Properties
+
+Besides the [common catalog 
properties](./gravitino-server-config.md#catalog-properties-configuration), the 
Glue catalog has the following properties:
+
+| Property Name            | Description                                       
                                                                                
                                                                          | 
Default Value            | Required | Immutable | Since Version |
+|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|----------|-----------|---------------|
+| `aws-region`             | AWS region for the Glue Data Catalog (e.g. 
`us-east-1`).                                                                   
                                                                                
 | (none)                   | Yes      | Yes       | 1.3.0         |
+| `aws-glue-catalog-id`    | The 12-digit AWS account ID that owns the Glue 
catalog. When omitted, defaults to the caller's AWS account ID.                 
                                                                             | 
(none)                   | No       | Yes       | 1.3.0         |
+| `aws-access-key-id`      | AWS access key ID for static credential 
authentication. When omitted, the default credential chain is used.             
                                                                                
    | (none)                   | No       | No        | 1.3.0         |
+| `aws-secret-access-key`  | AWS secret access key paired with 
`aws-access-key-id`. When omitted, the default credential chain is used.        
                                                                                
          | (none)                   | No       | No        | 1.3.0         |
+| `aws-glue-endpoint`      | Custom Glue endpoint URL for VPC endpoints or 
LocalStack testing (e.g. `http://localhost:4566`).                              
                                                                              | 
(none)                   | No       | No        | 1.3.0         |
+| `warehouse`              | Base storage path used as the warehouse when no 
explicit `location` is specified at table creation time (e.g. 
`s3://my-bucket/warehouse`). Table location is derived as 
`warehouse/database/table`. | (none) | Yes | No | 1.3.0 |
+| `default-table-format`   | Default format for tables created via Gravitino's 
`createTable()` API. Accepted values: `iceberg`, `hive`.                        
                                                                          | 
`hive`                   | No       | No        | 1.3.0         |
+| `table-format-filter`    | Comma-separated list of table formats exposed by 
`listTables()` and `loadTable()`. Accepted values: `all`, `hive`, `iceberg`, 
`delta`, `parquet`. Use to restrict visible table types.                     | 
`all`                    | No       | No        | 1.3.0         |
+
+:::note
+**Authentication priority**: Static credentials (`aws-access-key-id` + 
`aws-secret-access-key`) take precedence over the default credential chain 
(environment variables, instance profile, container credentials).
+:::
+
+### Catalog Operations
+
+Refer to [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#catalog-operations) 
for more details.
+
+## Schema
+
+### Schema Capabilities
+
+The Glue catalog supports creating, updating, and deleting databases in the 
AWS Glue Data Catalog.
+
+### Schema Properties
+
+The Glue catalog defines no predefined schema properties beyond `comment`. 
Additional key-value properties pass through to the underlying Glue database.
+
+### Schema Operations
+
+See [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#schema-operations).
+
+## Table
+
+### Table Capabilities
+
+- The Glue catalog supports creating, updating, and deleting tables in the AWS 
Glue Data Catalog.
+- All entries in the Glue `Table.parameters()` pass through Gravitino intact, 
so downstream tools can correctly identify the table format.
+- Does not support column default value.
+- Does not support NOT NULL constraints on columns.
+- Does not support table indexes.
+
+### Table Partitioning
+
+The Glue catalog supports [partitioned 
tables](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-PartitionedTables).
 Create partitioned tables in the Glue catalog by specifying the partitioning 
attribute.
+
+The supported partitioning strategies depend on the table format:
+
+- **Hive-format tables**: Only `Identity` partitioning is supported, because 
the native Glue partition model is Hive-style key=value.
+- **Iceberg-format tables**: All Iceberg partition transforms are supported: 
`identity`, `year`, `month`, `day`, `hour`, `bucket`, and `truncate`.
+
+:::caution
+The `fieldName` specified in the partitioning attribute must be the name of a 
column defined in the table.
+:::
+
+### Table Sort Orders and Distributions
+
+The Glue catalog supports [bucketed sorted 
tables](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-BucketedSortedTables).
 Create bucketed sorted tables by setting the `distribution` and `sortOrders` 
attributes.
+Although Gravitino supports several distribution strategies, AWS Glue 
inherently only supports a single distribution strategy (clustered by column). 
Therefore, the Glue catalog only supports `Hash` distribution.
+
+:::caution
+The `fieldName` specified in the `distribution` and `sortOrders` attribute 
must be the name of a column defined in the table.
+:::
+
+### Table Column Types
+
+The Glue catalog supports all data types defined in the [Hive Language 
Manual](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types).
+The following table lists the data types mapped from the Glue catalog to 
Gravitino.
+
+| Glue Data Type            | Gravitino Data Type | Since Version |
+|---------------------------|---------------------|---------------|
+| `boolean`                 | `boolean`           | 1.3.0         |
+| `tinyint`                 | `byte`              | 1.3.0         |
+| `smallint`                | `short`             | 1.3.0         |
+| `int` / `integer`         | `integer`           | 1.3.0         |
+| `bigint`                  | `long`              | 1.3.0         |
+| `float`                   | `float`             | 1.3.0         |
+| `double`                  | `double`            | 1.3.0         |
+| `decimal`                 | `decimal`           | 1.3.0         |
+| `string`                  | `string`            | 1.3.0         |
+| `char`                    | `char`              | 1.3.0         |
+| `varchar`                 | `varchar`           | 1.3.0         |
+| `timestamp`               | `timestamp`         | 1.3.0         |
+| `date`                    | `date`              | 1.3.0         |
+| `interval_year_month`     | `interval_year`     | 1.3.0         |
+| `interval_day_time`       | `interval_day`      | 1.3.0         |
+| `binary`                  | `binary`            | 1.3.0         |
+| `array`                   | `list`              | 1.3.0         |
+| `map`                     | `map`               | 1.3.0         |
+| `struct`                  | `struct`            | 1.3.0         |
+| `uniontype`               | `union`             | 1.3.0         |
+
+:::info
+Data types not listed above map to Gravitino **[External 
Type](./manage-relational-metadata-using-gravitino.md#external-type)**, which 
represents an unresolvable data type from the Glue catalog.
+:::
+
+### Table Properties
+
+The following table lists predefined properties for Glue tables. Additional 
key-value properties pass through to the underlying Glue database.
+
+:::note
+**Reserved**: Fields that cannot be passed to the Gravitino server.
+
+**Immutable**: Fields that cannot be modified once set.
+:::
+
+| Property Name           | Description                                        
                                                                                
        | Default Value                                                         
                | Required | Reserved | Immutable | Since Version |
+|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|----------|----------|-----------|---------------|
+| `location`              | The location for table storage, such as 
`s3://bucket/prefix/test_table`. Derived from `warehouse/database/table` when 
not specified.       | (derived from warehouse)                                 
                             | No       | No       | No        | 1.3.0         |
+| `format`                | The table file format (`parquet`, `orc`, 
`textfile`, etc.). When set, `input-format`, `output-format`, and `serde-lib` 
are derived automatically. Used primarily when creating Hive-format tables via 
Trino. | (none) | No | No | Yes | 1.3.0 |
+| `input-format`          | The input format class for the table, such as 
`org.apache.hadoop.hive.ql.io.orc.OrcInputFormat`.                              
             | `org.apache.hadoop.mapred.TextInputFormat`                       
                     | No       | No       | Yes       | 1.3.0         |
+| `output-format`         | The output format class for the table, such as 
`org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat`.                             
            | `org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat`      
                    | No       | No       | Yes       | 1.3.0         |
+| `serde-lib`             | The serde library class for the table, such as 
`org.apache.hadoop.hive.ql.io.orc.OrcSerde`.                                    
            | `org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe`              
                    | No       | No       | Yes       | 1.3.0         |
+| `serde-name`            | The name of the serde.                             
                                                                                
        | (none)                                                                
                | No       | No       | No        | 1.3.0         |
+| `serde.parameter.`      | The prefix of the serde parameter, such as 
`"serde.parameter.orc.create.index" = "true"`, indicating ORC serde lib to 
create row indexes. | (none)                                                    
                            | No       | No       | No        | 1.3.0         |
+| `table-format`          | Table format stored in Glue `Table.parameters()`. 
Use `ICEBERG` to create an Iceberg table. Common values: `ICEBERG`, `HIVE`.     
         | (none)                                                               
                 | No       | No       | No        | 1.3.0         |
+| `metadata_location`     | Iceberg table metadata file location stored in 
Glue `Table.parameters()`. When set during `createTable()`, registers an 
existing Iceberg table rather than creating a new one. | (none)                 
                                              | No       | No       | No        
| 1.3.0         |
+| `comment`               | Used to store a table comment.                     
                                                                                
        | (none)                                                                
                | No       | Yes      | No        | 1.3.0         |
+
+:::note
+All entries in the Glue `Table.parameters()` pass through Gravitino's API 
layer intact. This passthrough ensures `table_type=ICEBERG`, 
`metadata_location=s3://...`, `spark.sql.sources.provider=delta`, and any other 
format indicators survive Gravitino's metadata proxy layer.
+:::
+
+### Table Operations
+
+Refer to [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#table-operations) 
for more details.
+
+#### Alter Operations
+
+Gravitino defines a unified set of [metadata operation 
interfaces](./manage-relational-metadata-using-gravitino.md#alter-a-table). The 
following table maps Glue alter operations to Gravitino table update requests.
+
+##### Alter table
+
+| Glue Alter Operation     | Gravitino Table Update Request | Since Version |
+|--------------------------|--------------------------------|---------------|
+| `Alter Table Properties` | `Set a table property`         | 1.3.0         |
+| `Alter Table Comment`    | `Update comment`               | 1.3.0         |
+| `Remove Properties`      | `Remove a table property`      | 1.3.0         |
+
+:::caution
+Hive-format table rename is not supported. AWS Glue does not provide a native 
rename API for tables; renaming would require recreating the table.
+Iceberg-format table rename is supported.
+:::
+
+##### Alter column
+
+| Glue Alter Operation     | Gravitino Table Update Request    | Since Version 
|
+|--------------------------|-----------------------------------|---------------|
+| `Change Column Name`     | `Rename a column`                 | 1.3.0         
|
+| `Change Column Type`     | `Update the type of a column`     | 1.3.0         
|
+| `Change Column Position` | `Update the position of a column` | 1.3.0         
|
+| `Change Column Comment`  | `Update the column comment`       | 1.3.0         
|
+
+##### Alter partition
+
+The Glue catalog supports partition operations via `SupportsPartitions` for 
Hive-format identity-partitioned tables:
+
+- `listPartitions()` / `listPartitionNames()`
+- `getPartition(partitionName)`
+- `addPartition(partition)`
+- `dropPartition(partitionName)`
+
+:::caution
+Only `IdentityPartition` is supported because the Glue partition model is 
Hive-style key=value.
+:::
+
+## Iceberg Tables
+
+The Glue catalog supports creating and managing Iceberg-format tables through 
the Apache Iceberg SDK's `GlueCatalog`. When an Iceberg table is created, 
Gravitino writes the `metadata.json` file to S3 and registers the table in Glue 
with the correct `metadata_location` parameter, making it usable by Trino 
(Lakehouse connector), Spark, and other Iceberg-native query engines.
+
+### Create an Iceberg Table
+
+Set `table-format=ICEBERG` in the table properties, or configure 
`default-table-format=iceberg` on the catalog to make all tables Iceberg by 
default.
+
+The `warehouse` catalog property must be configured. The table location is 
derived as `warehouse/database/table` when no explicit `location` is specified.
+
+### Register an Existing Iceberg Table
+
+To register an Iceberg table that already exists in S3, set 
`metadata_location` to the path of the existing `metadata.json` file during 
`createTable()`. In this mode, Gravitino registers the table in Glue without 
creating new metadata.
+
+### Iceberg Column Types
+
+Iceberg tables use the Iceberg type system, which differs from Hive types. The 
following table lists the Gravitino types supported for Iceberg tables and how 
they map to Iceberg types:
+
+| Gravitino Data Type      | Iceberg Data Type     | Notes                     
                          |
+|--------------------------|-----------------------|-----------------------------------------------------|
+| `boolean`                | `boolean`             |                           
                          |
+| `byte`                   | `int`                 | Widened to 32-bit integer 
                          |
+| `short`                  | `int`                 | Widened to 32-bit integer 
                          |
+| `integer`                | `int`                 |                           
                          |
+| `long`                   | `long`                |                           
                          |
+| `float`                  | `float`               |                           
                          |
+| `double`                 | `double`              |                           
                          |
+| `decimal(p, s)`          | `decimal(p, s)`       |                           
                          |
+| `string`                 | `string`              |                           
                          |
+| `varchar`                | `string`              | Iceberg has no 
variable-length char types           |
+| `char`                   | `string`              | Iceberg has no 
variable-length char types           |
+| `date`                   | `date`                |                           
                          |
+| `time(6)`                | `time`                | Only microsecond 
precision (6) is supported         |
+| `timestamp(6)`           | `timestamp`           | Only microsecond 
precision (6) is supported         |
+| `timestamptz(6)`         | `timestamptz`         | Only microsecond 
precision (6) is supported         |
+| `binary`                 | `binary`              |                           
                          |
+| `fixed(n)`               | `binary`              | Mapped to variable-length 
binary                    |
+| `uuid`                   | `uuid`                |                           
                          |
+| `list`                   | `list`                |                           
                          |
+| `map`                    | `map`                 |                           
                          |
+| `struct`                 | `struct`              |                           
                          |
+
+### Iceberg Table Alter Operations
+
+For Iceberg tables, the following alter operations are supported:
+
+| Operation                       | Gravitino Table Update Request    |
+|---------------------------------|-----------------------------------|
+| Add column                      | `Add a column`                    |
+| Delete column                   | `Delete a column`                 |
+| Rename column                   | `Rename a column`                 |
+| Update column type              | `Update the type of a column`     |
+| Update column comment           | `Update the column comment`       |
+| Update column nullability       | `Update column nullability`       |
+| Set table property              | `Set a table property`            |
+| Remove table property           | `Remove a table property`         |
+
+:::caution
+Schema changes and property changes are committed in two separate Iceberg 
transactions. If the schema commit succeeds but the property commit fails, the 
table is left in a partially altered state.
+:::
+
+:::caution
+Nested column operations (add, delete, rename, type update) are not supported 
for Iceberg tables via this catalog.
+:::
+
+## Security
+
+### AWS IAM Permissions
+
+The IAM policy attached to the credential used by the Glue catalog must cover 
both Glue metadata access and S3 data access:
+
+```json
+{
+  "Version": "2012-10-17",
+  "Statement": [
+    {
+      "Sid": "GlueMetadataAccess",
+      "Effect": "Allow",
+      "Action": [
+        "glue:GetCatalog",
+        "glue:GetDatabase", "glue:GetDatabases",
+        "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase",
+        "glue:GetTable", "glue:GetTables",
+        "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable",
+        "glue:GetPartition", "glue:GetPartitions",
+        "glue:CreatePartition", "glue:DeletePartition"
+      ],
+      "Resource": [
+        "arn:aws:glue:<region>:<account-id>:catalog",
+        "arn:aws:glue:<region>:<account-id>:database/*",
+        "arn:aws:glue:<region>:<account-id>:table/*/*"
+      ]
+    },
+    {
+      "Sid": "S3DataAccess",
+      "Effect": "Allow",
+      "Action": [
+        "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListBucket"
+      ],
+      "Resource": [
+        "arn:aws:s3:::<warehouse-bucket>",
+        "arn:aws:s3:::<warehouse-bucket>/*"
+      ]
+    }
+  ]
+}
+```
diff --git a/docs/security/how-to-use-built-in-idp.md 
b/docs/security/how-to-use-built-in-idp.md
index 0c0a621bc3..09dd0e0ad5 100644
--- a/docs/security/how-to-use-built-in-idp.md
+++ b/docs/security/how-to-use-built-in-idp.md
@@ -21,10 +21,10 @@ request and response schemas, see the [Built-in IDP 
OpenAPI](../open-api/idp/ope
 
 ## Web UI
 
-Built-in IdP is **incompatible** with the `simple` authenticator (the 
default). The Web UI does not
+Built-in IDP is **incompatible** with the `simple` authenticator (the 
default). The Web UI does not
 support signing in with built-in IDP Basic credentials. Login pages only 
handle `simple`
 (username-only when authorization is enabled) and `oauth` (OIDC/OAuth) flows. 
If you need the Web UI
-while built-in IdP is enabled, prefer [OAuth 
mode](how-to-authenticate.md#oauth-mode). For Basic
+while built-in IDP is enabled, prefer [OAuth 
mode](how-to-authenticate.md#oauth-mode). For Basic
 authentication, use the REST API, [Java/Python 
clients](how-to-authenticate.md#basic-mode), or
 engine connectors instead.
 
diff --git a/docs/spark-connector/spark-catalog-glue.md 
b/docs/spark-connector/spark-catalog-glue.md
new file mode 100644
index 0000000000..97b3c0693b
--- /dev/null
+++ b/docs/spark-connector/spark-catalog-glue.md
@@ -0,0 +1,325 @@
+---
+title: "Spark connector Glue catalog"
+slug: /spark-connector/spark-catalog-glue
+keyword: spark connector glue catalog aws
+license: "This software is licensed under the Apache License version 2."
+---
+
+## Overview
+
+With the Apache Gravitino Spark connector, accessing data or managing metadata 
in AWS Glue Data Catalog becomes straightforward, enabling seamless federated 
queries across Glue catalogs.
+
+## Capabilities
+
+Supports most DDL and DML operations in SparkSQL, except these operations:
+
+- Function operations (Gravitino UDFs are supported, see [Spark connector - 
User-defined functions](spark-connector-udf.md))
+- Partition operations
+- View operations
+- `LOAD` clause
+- `CREATE TABLE LIKE` clause
+- `TRUNCATE TABLE` clause
+
+## Table Format Support
+
+The Glue catalog supports mixed table formats within a single database:
+
+- **Hive-format tables** (PARQUET, ORC, TEXTFILE, etc.): routed to 
HiveTableCatalog using the AWS Glue Data Catalog Hive client
+- **Iceberg-format tables**: routed to Iceberg's SparkCatalog (GlueCatalog) 
for I/O
+
+Table routing is based on the `table-format` property in Glue table 
parameters. Tables with `table-format=ICEBERG` are delegated to the Iceberg 
backend.
+
+## Requirements
+
+- Network access to the AWS Glue API and Amazon S3
+- AWS IAM credentials with necessary Glue and S3 permissions.
+  See [AWS IAM permissions](../aws-glue-catalog.md#aws-iam-permissions) for 
the required policy
+- Apache Spark 3.3, 3.4, or 3.5
+- Patched Hive and AWS Glue client JARs (see [Setup](#setup); pre-installed on 
Amazon EMR)
+- `iceberg-spark-runtime` JAR on the Spark classpath for Iceberg table support
+
+## Setup
+
+Spark's bundled Hive 2.3.9 does not include the `HiveMetaStoreClientFactory` 
interface
+(added by [HIVE-12679](https://issues.apache.org/jira/browse/HIVE-12679)) that 
the AWS Glue client
+requires. Replace the bundled Hive JARs with patched versions bundled together 
with the
+Glue client.
+
+:::note
+On AWS managed Spark environments such as Amazon EMR, the Hive libraries are 
already patched and
+the AWS Glue Data Catalog client is pre-installed. Skip Steps 1 and 2 below.
+For a complete walkthrough on Amazon EMR, see [Deploy on Amazon 
EMR](#deploy-on-amazon-emr).
+:::
+
+[spark-hive-glue-libs](https://github.com/datastrato/spark-hive-glue-libs) 
provides pre-built JARs
+that include the patched Hive 2.3.10 and the AWS Glue Data Catalog client for 
Spark.
+
+### Step 1: Download the JARs
+
+```bash
+BASE=https://raw.githubusercontent.com/datastrato/spark-hive-glue-libs/main/spark3/glue-3.4.0
+mkdir -p /opt/glue-hive-jars
+for jar in \
+  aws-glue-datacatalog-spark-client-3.4.0.jar \
+  hive-exec-2.3.10.jar \
+  hive-metastore-2.3.10.jar \
+  hive-common-2.3.10.jar \
+  hive-serde-2.3.10.jar \
+  hive-shims-2.3.10.jar \
+  aws-java-sdk-glue-1.12.31.jar \
+  aws-java-sdk-core-1.12.31.jar \
+  jmespath-java-1.12.31.jar; do
+  wget "$BASE/$jar" -P /opt/glue-hive-jars/
+done
+```
+
+### Step 2: Configure Spark
+
+Add the following configurations when starting Spark:
+
+```bash
+spark-submit \
+  --conf spark.sql.hive.metastore.version=2.3.10 \
+  --conf spark.sql.hive.metastore.jars=path \
+  --conf spark.sql.hive.metastore.jars.path=/opt/glue-hive-jars/* \
+  --conf 
spark.sql.hive.metastore.sharedPrefixes=com.amazonaws,org.apache.thrift,org.slf4j,com.google.common
 \
+  ...
+```
+
+:::note
+The `spark.sql.hive.metastore.jars=path` configuration instructs Spark to load 
the Hive metastore
+client from the specified directory instead of its bundled Hive JARs.
+The AWS SDK JARs in the directory are loaded in Spark's `IsolatedClientLoader` 
to prevent version
+conflicts with `hadoop-aws`.
+:::
+
+## Deploy on Amazon EMR
+
+Amazon EMR 7.x pre-installs the patched Hive libraries and the AWS Glue Data 
Catalog client,
+so the manual JAR setup described in [Setup](#setup) is not required.
+
+### Prerequisites
+
+- AWS CLI configured with an IAM user or role that has 
`AmazonEMRFullAccessPolicy_v2` and EC2 permissions
+- EC2 instance profile (`EMR_EC2_DefaultRole`) with Glue read and S3 
read/write permissions
+- An S3 bucket for table storage (e.g. `s3://my-bucket/warehouse`)
+- A Gravitino server reachable from the EMR cluster
+
+### Step 1: Create an EMR cluster
+
+```bash
+aws emr create-cluster \
+  --name "gravitino-glue" \
+  --release-label emr-7.2.0 \
+  --applications Name=Spark \
+  --instance-type m5.xlarge \
+  --instance-count 1 \
+  --use-default-roles \
+  --region <your-region> \
+  --tags 'for-use-with-amazon-emr-managed-policies=true' \
+  --configurations 
'[{"Classification":"spark-hive-site","Properties":{"hive.metastore.client.factory.class":"com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"}}]'
 \
+  --ec2-attributes KeyName=<your-key-pair>
+```
+
+The `spark-hive-site` configuration routes Spark's Hive metastore client to 
the AWS Glue Data
+Catalog. The `for-use-with-amazon-emr-managed-policies=true` tag is required by
+`AmazonEMRFullAccessPolicy_v2`.
+
+### Step 2: Add JARs to the Spark classpath
+
+Follow the [Spark connector setup](spark-connector.md#usage) to obtain the
+`gravitino-spark-connector-runtime-3.5` JAR. On EMR, place it in 
`/usr/lib/spark/jars/` instead
+of a custom path — that directory is automatically on Spark's system 
classpath. Using `--jars` or
+`--driver-class-path` is not sufficient because the Gravitino plugin 
classloader must find the JAR
+at Spark startup.
+
+For Iceberg table support, also add the Iceberg Spark runtime JAR to 
`/usr/lib/spark/jars/`:
+
+- 
[iceberg-spark-runtime-3.5_2.12](https://mvnrepository.com/artifact/org.apache.iceberg/iceberg-spark-runtime-3.5_2.12)
 version **1.10.1**
+
+:::warning
+Use `iceberg-spark-runtime` version **1.10.1**, not 1.11.0. EMR 7.2.0 ships 
with AWS SDK v2
+2.23.18, which does not include `RetryMode.ADAPTIVE_V2`. Iceberg 1.11.0 
references this field
+at runtime and throws `NoSuchFieldError: ADAPTIVE_V2`.
+:::
+
+### Step 3: Create a Glue catalog
+
+```bash
+curl -X POST -H "Content-Type: application/json" \
+  -d '{
+    "name": "glue_catalog",
+    "type": "RELATIONAL",
+    "provider": "glue",
+    "properties": {
+      "aws-region": "<your-region>",
+      "warehouse": "s3://<your-bucket>/warehouse"
+    }
+  }' http://<gravitino-host>:8090/api/metalakes/<metalake>/catalogs
+```
+
+When running on EMR with an EC2 instance role, AWS credentials are picked up 
automatically —
+no static `aws-access-key-id` or `aws-secret-access-key` is needed.
+
+### Step 4: Submit a Spark job
+
+:::warning
+Use `spark-submit`, not `spark-sql`. The `spark-sql` CLI does not initialize 
the Gravitino
+plugin classloader in the correct order, so registered catalogs will not 
appear in `SHOW CATALOGS`.
+:::
+
+Pass the Gravitino plugin configuration via `spark-submit`:
+
+```bash
+spark-submit --master yarn \
+  --conf 
spark.plugins=org.apache.gravitino.spark.connector.plugin.GravitinoSparkPlugin \
+  --conf spark.sql.gravitino.uri=http://<gravitino-host>:8090 \
+  --conf spark.sql.gravitino.metalake=<metalake> \
+  --conf spark.sql.gravitino.enableIcebergSupport=true \
+  --conf spark.sql.catalogImplementation=hive \
+  --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
+  --conf spark.hadoop.fs.s3.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
+  your_job.py
+```
+
+The following PySpark snippet shows how to query Hive-format and Iceberg 
tables in the Glue catalog:
+
+```python
+from pyspark.sql import SparkSession
+
+spark = SparkSession.builder.getOrCreate()
+
+spark.sql("USE glue_catalog.mydb")
+
+# Query a Hive-format table
+spark.sql("SELECT * FROM employees WHERE department = 'Engineering'").show()
+
+# Query an Iceberg table
+spark.sql("SELECT * FROM orders WHERE order_ts >= DATE '2024-01-01'").show()
+
+spark.stop()
+```
+
+## Create a Catalog
+
+Use the Gravitino REST API or the Gravitino CLI to create a Glue catalog:
+
+```bash
+curl -X POST -H "Content-Type: application/json" \
+-d '{
+  "name": "glue_catalog",
+  "type": "RELATIONAL",
+  "provider": "glue",
+  "properties": {
+    "aws-region": "us-east-1",
+    "aws-access-key-id": "<your-access-key-id>",
+    "aws-secret-access-key": "<your-secret-access-key>",
+    "warehouse": "s3://my-bucket/warehouse"
+  }
+}' http://gravitino-host:8090/api/metalakes/{metalake}/catalogs
+```
+
+For more information about the Glue catalog properties, refer to [AWS Glue 
catalog](../aws-glue-catalog.md).
+
+## SQL Example
+
+```sql
+-- Suppose glue_catalog is the Glue catalog name managed by Gravitino
+USE glue_catalog;
+
+CREATE DATABASE IF NOT EXISTS mydatabase;
+USE mydatabase;
+
+-- Create a Hive-format Parquet table
+CREATE TABLE IF NOT EXISTS employees (
+    id INT,
+    name STRING,
+    age INT
+)
+PARTITIONED BY (department STRING)
+STORED AS PARQUET;
+
+DESC TABLE EXTENDED employees;
+
+INSERT OVERWRITE TABLE employees PARTITION(department='Engineering')
+VALUES (1, 'John Doe', 30), (2, 'Jane Smith', 28);
+
+SELECT * FROM employees WHERE department = 'Engineering';
+
+-- Create an Iceberg table partitioned by day
+CREATE TABLE IF NOT EXISTS orders (
+    order_id BIGINT,
+    customer STRING,
+    amount DECIMAL(10, 2),
+    order_ts TIMESTAMP
+)
+USING iceberg
+PARTITIONED BY (days(order_ts));
+
+INSERT INTO orders VALUES (1, 'alice', 99.99, TIMESTAMP '2024-01-01 00:00:00');
+
+SELECT * FROM orders WHERE order_ts >= DATE '2024-01-01';
+```
+
+
+## Catalog Properties
+
+The Gravitino Spark connector maps the following catalog property names to 
Spark Hive/Iceberg connector configuration.
+
+| Property name in Gravitino catalog properties | Spark Hive connector 
configuration | Description                                 | Since Version |
+|-----------------------------------------------|------------------------------------|---------------------------------------------|---------------|
+| `aws-region`                                  | `aws.region`                 
      | AWS region for Glue Data Catalog            | 1.3.0         |
+| `aws-glue-catalog-id`                         | `aws.glue.catalog.id`        
      | 12-digit AWS account ID owning Glue catalog | 1.3.0         |
+| `aws-glue-endpoint`                           | `aws.glue.endpoint`          
      | Custom Glue endpoint URL                    | 1.3.0         |
+| `warehouse`                                   | (Iceberg) `warehouse`        
      | Base storage path for Iceberg tables        | 1.3.0         |
+
+For Iceberg tables, Gravitino properties are mapped to Iceberg GlueCatalog 
configuration:
+
+| Gravitino property      | Iceberg GlueCatalog property          | 
Description                               |
+|-------------------------|---------------------------------------|-------------------------------------------|
+| `aws-region`            | `client.region`                       | AWS region 
                               |
+| `aws-glue-catalog-id`   | `glue.id`                             | Glue 
catalog ID                           |
+| `aws-glue-endpoint`     | `glue.endpoint`                       | Glue 
endpoint URL                         |
+| `aws-access-key-id`     | `client.credentials-provider.*`      | AWS access 
key (via custom provider)      |
+| `aws-secret-access-key` | `client.credentials-provider.*`      | AWS secret 
key (via custom provider)      |
+
+Gravitino catalog property names with the prefix `spark.bypass.` are passed 
directly to the Spark Hive connector. For example, using 
`spark.bypass.hive.exec.dynamic.partition.mode` to pass 
`hive.exec.dynamic.partition.mode` to the Spark Hive connector.
+
+## S3 Storage
+
+When using AWS S3, configure S3 credentials as global Hadoop properties via 
Spark configuration:
+
+```bash
+spark-submit \
+  --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
+  --conf spark.hadoop.fs.s3a.access.key=<your-access-key> \
+  --conf spark.hadoop.fs.s3a.secret.key=<your-secret-key> \
+  --conf spark.hadoop.fs.s3a.endpoint.region=<your-region> \
+  --conf spark.hadoop.fs.s3.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
+  --conf spark.hadoop.fs.s3.access.key=<your-access-key> \
+  --conf spark.hadoop.fs.s3.secret.key=<your-secret-key> \
+  ...
+```
+
+:::note
+Both `fs.s3a.*` and `fs.s3.*` must be configured. The AWS Glue Data Catalog 
Hive client stores table
+locations using the `s3://` scheme, while Spark uses `s3a://` for S3 access. 
Mapping both schemes to
+`S3AFileSystem` ensures Hive-format tables are readable.
+:::
+
+Alternatively, use `spark.bypass.` prefix in catalog properties to pass S3 
configuration:
+
+```json
+{
+  "properties": {
+    "aws-region": "us-east-1",
+    "warehouse": "s3a://my-bucket/warehouse",
+    "spark.bypass.fs.s3a.access.key": "<your-access-key>",
+    "spark.bypass.fs.s3a.secret.key": "<your-secret-key>"
+  }
+}
+```
+
+:::note
+Ensure you have the AWS Java SDK and Hadoop AWS JARs in your Spark classpath 
when using S3 storage.
+:::
diff --git a/docs/spark-connector/spark-connector.md 
b/docs/spark-connector/spark-connector.md
index b0bbffe247..dc36ab117c 100644
--- a/docs/spark-connector/spark-connector.md
+++ b/docs/spark-connector/spark-connector.md
@@ -11,7 +11,7 @@ The Apache Gravitino Spark connector leverages the Spark 
DataSourceV2 interface
 
 ## Capabilities
 
-1. Supports [Hive catalog](spark-catalog-hive.md), [Iceberg 
catalog](spark-catalog-iceberg.md), [Paimon catalog](spark-catalog-paimon.md) 
and [Jdbc catalog](spark-catalog-jdbc.md).
+1. Supports [Hive catalog](spark-catalog-hive.md), [Iceberg 
catalog](spark-catalog-iceberg.md), [Paimon catalog](spark-catalog-paimon.md), 
[Jdbc catalog](spark-catalog-jdbc.md), and [AWS Glue 
catalog](spark-catalog-glue.md).
 2. Supports federation query.
 3. Supports most DDL and DML SQLs.
 
diff --git a/docs/trino-connector/catalog-glue.md 
b/docs/trino-connector/catalog-glue.md
new file mode 100644
index 0000000000..94d3dda342
--- /dev/null
+++ b/docs/trino-connector/catalog-glue.md
@@ -0,0 +1,303 @@
+---
+title: "Apache Gravitino Trino connector - Glue catalog"
+slug: /trino-connector/catalog-glue
+keyword: gravitino connector trino glue aws
+license: "This software is licensed under the Apache License version 2."
+---
+
+## Overview
+
+The Glue catalog allows Trino to query data stored in tables registered in the 
AWS Glue Data Catalog.
+It supports both Hive-format and Iceberg-format tables on Amazon S3.
+
+## Requirements
+
+- Network access from the Trino coordinator and workers to the AWS Glue API 
and Amazon S3.
+- An AWS IAM credential (access key pair or instance profile) with the 
necessary Glue and S3 permissions.
+  See [AWS IAM permissions](../aws-glue-catalog.md#aws-iam-permissions) for 
the required policy.
+- Data files stored on Amazon S3.
+
+## Schema Operations
+
+### Create a Schema
+
+```sql
+CREATE SCHEMA glue_test.schema_name;
+```
+
+## Table Operations
+
+### Create a Hive-Format Table
+
+The default table format is Hive. The following example creates an ORC-format 
partitioned table:
+
+```sql
+CREATE TABLE glue_test.db01.orders
+(
+  order_id  bigint,
+  customer  varchar,
+  amount    decimal(10, 2),
+  order_dt  date
+)
+WITH (
+  format       = 'ORC',
+  location     = 's3://my-bucket/warehouse/db01/orders',
+  partitioned_by = ARRAY['order_dt']
+);
+```
+
+To create a bucketed, sorted table:
+
+```sql
+CREATE TABLE glue_test.db01.events
+(
+  event_id bigint,
+  user_id  bigint,
+  ts       timestamp
+)
+WITH (
+  format       = 'PARQUET',
+  location     = 's3://my-bucket/warehouse/db01/events',
+  bucketed_by  = ARRAY['user_id'],
+  bucket_count = 8,
+  sorted_by    = ARRAY['ts DESC']
+);
+```
+
+### Create an Iceberg-Format Table
+
+Set `type = 'ICEBERG'` to create an Iceberg table. Iceberg tables support 
richer partition transforms.
+
+```sql
+CREATE TABLE glue_test.db01.logs
+(
+  log_id   bigint,
+  message  varchar,
+  event_ts timestamp(6) with time zone
+)
+WITH (
+  type         = 'ICEBERG',
+  location     = 's3://my-bucket/warehouse/db01/logs',
+  partitioned_by = ARRAY['hour(event_ts)']
+);
+```
+
+Supported Iceberg partition transform expressions in `partitioned_by`:
+
+| Expression          | Description              |
+|---------------------|--------------------------|
+| `column`            | Identity partition       |
+| `year(column)`      | Partition by year        |
+| `month(column)`     | Partition by month       |
+| `day(column)`       | Partition by day         |
+| `hour(column)`      | Partition by hour        |
+| `bucket(column, N)` | Hash into N buckets      |
+| `truncate(column, W)` | Truncate to width W    |
+
+:::note
+`CREATE OR REPLACE TABLE AS SELECT` is not supported. Use `DROP TABLE` 
followed by `CREATE TABLE AS SELECT` as an alternative.
+:::
+
+### Alter Table
+
+The following alter table operations are supported:
+
+- Add a column
+- Drop a column
+- Rename a column
+- Change a column type
+- Set a table property
+
+:::caution
+Hive-format table rename is not supported. AWS Glue does not provide a native 
rename API for tables.
+Iceberg-format table rename is supported.
+:::
+
+### Select
+
+```sql
+SELECT * FROM glue_test.db01.orders WHERE order_dt = DATE '2024-01-01';
+```
+
+### Insert
+
+```sql
+INSERT INTO glue_test.db01.orders (order_id, customer, amount, order_dt)
+VALUES (1, 'alice', 99.99, DATE '2024-01-01');
+```
+
+### Update
+
+`UPDATE` is supported only for Iceberg tables (v2 spec or higher).
+
+```sql
+UPDATE glue_test.db01.logs SET message = 'updated' WHERE log_id = 1;
+```
+
+### Delete
+
+For Hive-format tables, `DELETE` is only supported when the `WHERE` clause 
matches entire partitions.
+For Iceberg tables, row-level deletion is supported.
+
+```sql
+-- Hive table: delete an entire partition
+DELETE FROM glue_test.db01.orders WHERE order_dt = DATE '2024-01-01';
+
+-- Iceberg table: row-level delete
+DELETE FROM glue_test.db01.logs WHERE log_id = 42;
+```
+
+### Drop
+
+```sql
+DROP TABLE glue_test.db01.orders;
+
+DROP SCHEMA glue_test.db01;
+```
+
+## Schema and Table Properties
+
+### Create a Schema with Properties
+
+```sql
+CREATE SCHEMA glue_test.db01
+WITH (
+  location = 's3://my-bucket/warehouse/db01'
+);
+```
+
+| Property   | Description              | Default Value | Required | Since 
Version |
+|------------|--------------------------|---------------|----------|---------------|
+| `location` | S3 location for the schema | (none)      | No       | 1.3.0     
    |
+
+### Create a Table with Properties
+
+```sql
+CREATE TABLE glue_test.db01.table_name
+(
+  name   varchar,
+  salary integer
+) WITH (
+  type           = 'HIVE',
+  format         = 'PARQUET',
+  location       = 's3://my-bucket/warehouse/db01/table_name',
+  partitioned_by = ARRAY['salary'],
+  bucketed_by    = ARRAY['name'],
+  bucket_count   = 4,
+  sorted_by      = ARRAY['name']
+);
+```
+
+| Property        | Description                                                
                 | Default Value | Required | Since Version |
+|-----------------|-----------------------------------------------------------------------------|---------------|----------|---------------|
+| `type`          | Table format: `HIVE` or `ICEBERG`                          
                 | `HIVE`        | No       | 1.3.0         |
+| `format`        | File format for Hive-format tables: `PARQUET`, `ORC`, 
`TEXTFILE`, etc.      | `TEXTFILE`    | No       | 1.3.0         |
+| `location`      | S3 storage location for the table                          
                 | (derived from catalog `warehouse`) | No | 1.3.0 |
+| `partitioned_by`| Partition columns or expressions. For Iceberg, use 
transform syntax such as `year(col)`. | (none) | No | 1.3.0 |
+| `bucketed_by`   | Bucket columns (Hive-format tables only)                   
                 | (none)        | No       | 1.3.0         |
+| `bucket_count`  | Number of buckets (required when `bucketed_by` is set)     
                 | (none)        | No       | 1.3.0         |
+| `sorted_by`     | Sort order columns, e.g. `ARRAY['col ASC NULLS LAST', 
'col2 DESC']`        | (none)        | No       | 1.3.0         |
+
+## Examples
+
+Follow these steps to use the Glue catalog in Trino through Gravitino.
+
+### Create a Catalog in Gravitino
+
+Use the Trino CLI to create the catalog. Assuming the metalake is `test` and 
the catalog name is `glue_test`:
+
+```sql
+CALL gravitino.system.create_catalog(
+  'glue_test',
+  'glue',
+  MAP(
+    ARRAY['aws-region', 'aws-access-key-id', 'aws-secret-access-key', 
'warehouse'],
+    ARRAY['us-east-1', '<aws-access-key-id>', '<aws-secret-access-key>', 
's3://my-bucket/warehouse']
+  )
+);
+```
+
+For more information about the Glue catalog, refer to [AWS Glue 
catalog](../aws-glue-catalog.md).
+
+### Connect and List Catalogs
+
+Set `gravitino.metalake` to `test` and start the Trino container. Then list 
catalogs:
+
+```sql
+SHOW CATALOGS;
+```
+
+The results are similar to:
+
+```text
+    Catalog
+----------------
+ gravitino
+ glue_test
+ jmx
+ system
+(4 rows)
+```
+
+The `glue_test` catalog corresponds to the catalog created in Gravitino.
+
+## Data Type Mapping
+
+The Glue connector extends the Hive data type mapping with additional support 
for Iceberg types.
+
+| Gravitino Type               | Trino Type                   | Notes          
                              |
+|------------------------------|------------------------------|----------------------------------------------|
+| `boolean`                    | `BOOLEAN`                    |                
                              |
+| `byte`                       | `TINYINT`                    |                
                              |
+| `short`                      | `SMALLINT`                   |                
                              |
+| `integer`                    | `INTEGER`                    |                
                              |
+| `long`                       | `BIGINT`                     |                
                              |
+| `float`                      | `REAL`                       |                
                              |
+| `double`                     | `DOUBLE`                     |                
                              |
+| `decimal(p, s)`              | `DECIMAL(p, s)`              |                
                              |
+| `string`                     | `VARCHAR`                    |                
                              |
+| `varchar(n)`                 | `VARCHAR(n)`                 |                
                              |
+| `char(n)`                    | `CHAR(n)`                    |                
                              |
+| `binary`                     | `VARBINARY`                  |                
                              |
+| `date`                       | `DATE`                       |                
                              |
+| `time(6)`                    | `TIME(6)`                    | Iceberg tables 
only; microsecond precision   |
+| `timestamp`                  | `TIMESTAMP(3)`               | Hive-format 
tables; millisecond precision    |
+| `timestamp(6)`               | `TIMESTAMP(6)`               | Iceberg 
tables; microsecond precision        |
+| `timestamptz(6)`             | `TIMESTAMP(6) WITH TIME ZONE`| Iceberg tables 
only                          |
+| `list`                       | `ARRAY`                      |                
                              |
+| `map`                        | `MAP`                        |                
                              |
+| `struct`                     | `ROW`                        |                
                              |
+
+:::note
+`TIME` and `TIMESTAMP WITH TIME ZONE` are available for Iceberg-format tables 
only. Hive-format tables use millisecond-precision `TIMESTAMP` without time 
zone.
+:::
+
+## Trino Connector Configuration
+
+Gravitino passes catalog properties to the underlying Trino Hive connector. 
Supply additional Trino connector properties using the `trino.bypass.` prefix:
+
+```sql
+CALL gravitino.system.create_catalog(
+  'glue_test',
+  'glue',
+  MAP(
+    ARRAY['aws-region', 'aws-access-key-id', 'aws-secret-access-key', 
'warehouse',
+          'trino.bypass.hive.metastore.glue.max-connections'],
+    ARRAY['us-east-1', '<aws-access-key-id>', '<aws-secret-access-key>', 
's3://my-bucket/warehouse',
+          '50']
+  )
+);
+```
+
+The following Gravitino catalog properties are automatically forwarded to the 
Trino connector and cannot be overridden via `trino.bypass.*`:
+
+| Gravitino property      | Trino connector property              |
+|-------------------------|---------------------------------------|
+| `aws-region`            | `hive.metastore.glue.region`          |
+| `aws-glue-catalog-id`   | `hive.metastore.glue.catalogid`       |
+| `aws-access-key-id`     | `hive.metastore.glue.aws-access-key`, 
`hive.s3.aws-access-key` |
+| `aws-secret-access-key` | `hive.metastore.glue.aws-secret-key`, 
`hive.s3.aws-secret-key` |
+| `aws-glue-endpoint`     | `hive.metastore.glue.endpoint-url`    |
+
+For additional Trino Hive connector configuration options, refer to the
+[Trino Hive connector 
documentation](https://trino.io/docs/current/connector/hive.html).
diff --git a/docs/trino-connector/index.md b/docs/trino-connector/index.md
index 901d98df32..6c5a9f7b5d 100644
--- a/docs/trino-connector/index.md
+++ b/docs/trino-connector/index.md
@@ -18,6 +18,7 @@ Apache Gravitino Trino connector index:
     - [Iceberg](catalog-iceberg.md)
     - [MySQL](catalog-mysql.md)
     - [PostgreSQL](catalog-postgresql.md)
+    - [AWS Glue](catalog-glue.md)
   - [Trino cascading query](trino-cascading-query.md)
   - [Supported SQL](sql-support.md)
   - [UDF support](udf-support.md)
diff --git a/docs/trino-connector/supported-catalog.md 
b/docs/trino-connector/supported-catalog.md
index fd14f9deec..66e39fdc36 100644
--- a/docs/trino-connector/supported-catalog.md
+++ b/docs/trino-connector/supported-catalog.md
@@ -13,6 +13,7 @@ The catalogs currently supported by the Apache Gravitino 
Trino connector are as
 - [Iceberg](catalog-iceberg.md)
 - [MySQL](catalog-mysql.md)
 - [PostgreSQL](catalog-postgresql.md)
+- [AWS Glue](catalog-glue.md)
 
 ## Create Catalog
 
@@ -27,7 +28,7 @@ create_catalog(CATALOG varchar, PROVIDER varchar, PROPERTIES 
MAP(VARCHAR, VARCHA
 ```
 
 - CATALOG: The catalog name to be created.
-- PROVIDER: The catalog provider. Supported values: `hive`, 
`lakehouse-iceberg`, `jdbc-mysql`, `jdbc-postgresql`.
+- PROVIDER: The catalog provider. Supported values: `hive`, 
`lakehouse-iceberg`, `jdbc-mysql`, `jdbc-postgresql`, `glue`.
 - PROPERTIES: The properties of the catalog.
 - IGNORE_EXIST: The flag to ignore the error if the catalog already exists. 
It's optional, the default value is `false`.
 
@@ -36,6 +37,7 @@ The type of catalog properties reference:
 - [Iceberg catalog](../lakehouse-iceberg-catalog.md#catalog-properties)
 - [MySQL catalog](../jdbc-mysql-catalog.md#catalog-properties)
 - [PostgreSQL catalog](../jdbc-postgresql-catalog.md#catalog-properties)
+- [AWS Glue catalog](../aws-glue-catalog.md#catalog-properties)
 
 
 Drop catalog:

Reply via email to