Shiv Kumar
08/06/2026, 10:33 AMcreate view xeno_prod_ib.reporting.merchant_mv
as select * from xeno_prod_ib.xeno_sql_zenmaster_new.merchant
where xeno_prod_ib is external glue catalog which contains iceberg tables xeno_prod_ib.xeno_sql_zenmaster_new.merchant is iceberg table.
My current starrocks version is: 4.1.4-4a9848e
I am getting following error:
SQL Error [1064] [42000]: This catalog doesn't support creating/alter viewsRocky
08/06/2026, 10:34 AMThis catalog doesn't support creating/alter views occurs because you are attempting to create a view definition directly inside an external catalog (AWS Glue). In StarRocks, external catalogs like Glue are primarily used for mapping external metadata and do not always support storing StarRocks-specific view definitions or the Iceberg View specification.
To resolve this, you should create the view in your default_catalog (StarRocks' internal metadata store). This view can still reference tables from your external Glue catalog.
Recommended Solution
Create the view in a database within the internal catalog:
sql
-- First, ensure you have a database in the default_catalog
CREATE DATABASE IF NOT EXISTS default_catalog.reporting;
-- Create the view in the default_catalog
CREATE VIEW default_catalog.reporting.merchant_mv
AS
SELECT * FROM xeno_prod_ib.xeno_sql_zenmaster_new.merchant;
Why this happens
1. Metadata Storage: StarRocks logical views are stored in the StarRocks Frontend (FE). When you specify a path like xeno_prod_ib.reporting.merchant_mv, StarRocks tries to persist that view definition into the external Glue catalog.
2. Catalog Limitations: While StarRocks (starting from v3.5 and enhanced in v4.1) supports Iceberg Views, this support is often specific to certain catalog types (like the Iceberg REST catalog). The standard Glue catalog implementation in StarRocks frequently restricts DDL operations for views because Glue's traditional API does not natively support the Iceberg View spec in the same way a dedicated Iceberg REST server does.
3. Permissions: External catalogs are often treated as read-only for metadata objects like views, even if they allow INSERT INTO for data.
Summary
* Logical Views: Always create these in the default_catalog. They are lightweight and can point to any table in any catalog.
* Iceberg Views: If you specifically need the view to be visible to other engines (like Spark or Trino) via Glue, you would need to use a catalog type that supports the Iceberg View specification (typically a REST-based catalog), but for most StarRocks-only use cases, a standard logical view in the default_catalog is the correct.
References
• release_notes/release-2.5.md
• release_notes/release-2.3.md
• release_notes/release-4.0.md