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

dependabot[bot] pushed a change to branch 
dependabot/gradle/flinkjdbc21-4.1.0-2.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git


    omit 355344cb2b build(deps): bump flinkjdbc21 from 4.1.0-2.1 to 4.1.0-2.2
     add ba47e2225a [#12613] feat(client-python): Add Semantic Model DTOs and 
serialization (#12859)
     add 0e2233aa21 [#12594] feat(authz): Add Semantic Model ownership and 
privilege support (#12867)
     add 42ba56320c [#12615] feat(tag): Add tag support for Semantic Models 
(#12870)
     add 8574ed9b90 [#13637] Retry and fall back when fetching libssl1.1 in CI 
(#13639)
     add 5af40fd4d9 [#13573] fix: slow metadata reads caused by NoOpsCache lock 
contention (#13574)
     add 8769b54b86 [#3560] improvement(client-python): Fix too-many-arguments 
and too-many-positional-arguments Pylint rules (#13671)
     add 040e298517 [#3767] refactor(client-python): Share table-driven error 
handler base to reduce duplicate code (#13672)
     add 73f2ddd913 [#12759] docs: add design doc for tag-based access control 
(#12757)
     add 2d63db89d9 [#13678] fix(core): make a cancelled local job end as 
CANCELLED (#13679)
     add dcdf5503e3 [#13637] Make release re-runs safe after a partial failure 
(#13638)
     add 3207d8f5f9 [#13685] fix(gvfs): Support Basic authentication in Java 
client (#13688)
     add cf725eeeb3 [#13637] docs: fix checksum algorithm in 
how-to-sign-releases (#13643)
     add 576d7d8084 [MINOR] docs: fix skill frontmatter position and document 
vote + GitHub release stages (#13640)
     add 6d4058d81e [#13545] docs: design tag-based Iceberg read restrictions 
(#13546)
     add 65f44cd106 [#11195] feat(maintenance): Integrate orphan cleanup 
policies with the optimizer (#13531)
     add a0c3e63503 [#13686] fix(iceberg-rest): Preserve 
WebApplicationException HTTP status (#13687)
     add 3d2bd431bb [#12516] fix(scripts): make 1.3 to 2.0 upgrades retryable 
(#13689)
     add 2c18230c18 [#10270] test(core): Guard @Param("roleId") binding on 
RoleMetaMapper.softDeleteRoleMetaByRoleId (#13666)
     add 62240804b7 [#13697] improvement(trino-connector): Load catalogs with a 
single detailed listing on refresh (#13698)
     add d429c341b5 [#13680] fix: accept PascalCase ExistOk as a Lance create 
mode (#13681)
     add 98281f7269 [#13160] fix(postgresql): Preserve unsupported constrained 
NUMERIC types (#13163)
     add db0dbdedf7 [#13582] improvement(core): Make JDBC idle connection 
retention configurable (#13620)
     add 34272ba4fa [#13692] feat(policy): define read restriction policy 
(#13693)
     add b15b420b6c [#13592] fix(jdbc): Use driver validation for catalog 
connection pools (#13600)
     add 51fb2d29c7 [#13581] improvement(core): Drain change-log backlog 
without waiting the poll interval after a full batch (#13619)
     add 371ac41870 [#13555][#13566][#13567][#13587] feat(core): Let job 
executors decide how to handle job resources through JobContext (#13563)
     add e96a2fb902 [#13605] fix(authz): Reload role policies cleared between 
checks of one authorization request (#13606)
     add 7ff63ddbfd [#13614] improvement(spark-connector): Upgrade Kyuubi Spark 
Hive connector to 1.12.0 to support dynamic partition pruning (#13615)
     add d71f7121db [#13580] fix(core): Avoid deadlock between cache eviction 
and segment locks (#13702)
     add 79527d7669 [#10166] fix(server): reject null request bodies in bulk 
role and run-job operations (#13670)
     add 2ebf08fa2a [#13540] feat(semantic-model): Add Ossie import and export 
(#13571)
     add 10d51bd966 [#12594][followup] fix(authz): Clarify semantic model 
privilege naming and filtering (#13718)
     add 912302110a [#13557] fix(core): Invalidate the authorizer name-id 
mapping on model, tag, policy and job template rename or delete (#13558)
     add 278102990e [#13547] fix(mysql): Handle decimal precision beyond 
Gravitino limit (#13548)
     add c5ac5b0cbd [#12595] feat(core): Add event listener support for 
Semantic Model operations (#13458)
     add ddbc9a20c7 [MINOR] refactor(server): Share Iceberg REST service URI 
resolution (#13738)
     add 4718fc54db [#13480] improvement(core): add a connector SPI to resolve 
physical table names (#13481)
     add 0237d79b73 [#13726] feat(policy): Support Iceberg rewrite strategy and 
sort order (#13727)
     add 3a449c59d2 [#13490] feat(clickhouse): support quarter/year start 
partition transforms (#13492)
     add b63f010793 [#13736] fix(python-client): make close idempotent (#13741)
     add 9014793d4c [#13591] fix(jdbc): Avoid nested connection borrows in JDBC 
catalog operations (#13729)
     add 0782dd9a0e [#13694] fix(authorization): Normalize metadata ID cache 
keys (#13699)
     add f887d0dc5f [MINOR] docs(client-python): document explicit client 
cleanup (#13745)
     add 3b92859318 [#13521] fix(core): delete legacy table versions by row on 
PostgreSQL, not by table id (#13526)
     add c17fc03b01 [#13447] fix(core): re-insert updated columns at their 
current index in bundled alters (#13448)
     add 14b0e7d818 [#13338] fix(lance): Preserve Lance blob columns as 
readable external types (#13390)
     add f8acb110ff [#13376] feat(clickhouse): preserve legacy Annoy and 
USearch index metadata (#13432)
     add e28a72c5f0 [MINOR] docs: state that supportedObjectTypes is not 
enforced in the OpenAPI spec (#13758)
     add c732bfa5de [#12594] feat(server): Authorize Semantic Model REST and 
validate sources (#13512)
     add 27eed7ecba [#12609] docs(open-api): Add Semantic Model REST API 
(#12627)
     add 8bd56bd493 [#13177] fix(core): Add statistic CAS and live-target 
checks (#13487)
     add 7a4f230f3e [#12903] fix(trino-connector): Keep MySQL time/timestamp 
precision in the Trino connector (#12906)
     add aa0fd7245e [MINOR] test(server): Fix stale Ossie import assertion 
(#13772)
     add b9a8632eae [#13224] fix(api): roll back registered model when 
registerModel version linking fails (#13225)
     add 383c96a7aa [#12614] feat(client-python): Add Semantic Model catalog 
operations (#12860)
     add a853a14544 [#12594] fix(server): Check semantic source capabilities 
before lookup (#13763)
     add afb28398d6 [#13488] docs: Add Table Maintenance Service design (#13386)
     add b837e07a93 [#13731] improvement(core): Remove TreeLock from partition, 
tag, policy, owner, model and table statistic operations (#13737)
     add 878240b75d [MINOR] fix(fileset): validate sub-path resolution (#13721)
     add 4f11ac17b8 [#13761] feat(tms): plugins/tms skeleton, DDL, and DAOs 
(#13762)
     add 40aab9d43a [#13765] feat(policy): Add TMS policy content fields and 
REST round-trip (#13766)
     add 2d4796baad [#13767] improve(core,jdbc): verify JDBC catalog backend 
reachable at create (#13769)
     add cb0accec80 [#12614] feat(python): Support Ossie Semantic Model import 
and export (#13795)
     add 0817563e8b [#13808] fix(client-python): Complete Semantic Model 
authorization mappings (#13793)
     add de25ce3bd8 [#13781] fix(client): Encode spaces as %20 in REST path 
segments (#13784)
     add 9223348fc8 [#13809] fix(core): Clarify catalog drop errors for 
unreachable backends (#13810)
     add 48572b5eb7 [#13613] feat(k8s-job-executor): Add the k8s job executor 
module with its configurations and Kubernetes connection (part 1/3) (#13724)
     add 1edfaf5399 [MINOR] docs(trino-connector): Clarify IRC access without a 
forwarded token (#13785)
     add f3bd25d546 [#12610] feat(client): Add Semantic Model Java client 
(#12628)
     add 880032f6af [#13782] fix(trino-connector): Report authorization and 
validation refusals as user errors (#13787)
     add 61addf63ed [#13775] feat(mcp-server): Add Semantic Model tools (#13804)
     add bd301d1bb3 [#13719] feat(policy): add restricted Rego parser for read 
restrictions (#13478)
     add e5b3528a26 [#13783] fix(trino-connector): Report querying a Gravitino 
view as not supported (#13788)
     add 51a316e320 [#13613] feat(k8s-job-executor): Build the SparkApplication 
of a Spark job and map its state to the job status (part 2/3) (#13725)
     add f58ea84310 [#13773] feat(tms): Add scheduler pools and soft-slot 
occupancy claim (#13774)
     add 294dbf8ff9 [#12614] feat(client-python): Support Semantic Model tags 
and owners (#13794)
     add b354e8fcbe [#13786] feat(core): Add Semantic Model import/export 
events (#13791)
     add 46cbef5bdd [#13748] fix(auth): Isolate request-specific role 
membership (#13747)
     add ff256c0ea5 [#13739] feat(flink-connector): Support Apache Flink 2.2 
(#13740)
     new f5668e8566 build(deps): bump flinkjdbc21 from 4.1.0-2.1 to 4.1.0-2.2

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (355344cb2b)
            \
             N -- N -- N   refs/heads/dependabot/gradle/flinkjdbc21-4.1.0-2.2 
(f5668e8566)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../workflows/backend-integration-test-action.yml  |   11 +-
 .github/workflows/build.yml                        |   10 +-
 .github/workflows/contrib-catalog-test.yml         |   10 +-
 .../workflows/flink-integration-test-action.yml    |    4 +-
 .../iceberg-rest-trino-integration-test-action.yml |   10 +-
 .../workflows/trino-integration-test-action.yml    |    2 +
 .../workflows/trino-multi-version-test-action.yml  |    2 +
 LICENSE.bin                                        |    8 +
 agent-skills/gravitino-release/SKILL.md            |   75 +-
 agent-skills/trino-test/SKILL.md                   |   16 +-
 .../apache/gravitino/authorization/Privilege.java  |    8 +-
 .../apache/gravitino/authorization/Privileges.java |  122 +-
 .../gravitino/authorization/SecurableObjects.java  |   16 +
 .../org/apache/gravitino/file/FilesetCatalog.java  |   12 +
 .../java/org/apache/gravitino/job/JobHandle.java   |    2 +-
 .../org/apache/gravitino/job/ShellJobTemplate.java |    5 +
 .../org/apache/gravitino/model/ModelCatalog.java   |   33 +-
 .../apache/gravitino/policy/ColumnMaskContent.java |   91 +
 .../policy/IcebergDataCompactionContent.java       |   85 +-
 .../policy/IcebergOrphanFileRemovalContent.java    |  163 ++
 .../policy/IcebergRewriteManifestsContent.java     |   90 +
 .../policy/IcebergSnapshotExpirationContent.java   |   90 +
 .../java/org/apache/gravitino/policy/Policy.java   |   25 +-
 .../apache/gravitino/policy/PolicyContents.java    |  115 ++
 .../gravitino/policy/ReadRestrictionContent.java   |   52 +
 .../apache/gravitino/policy/RowFilterContent.java  |   91 +
 .../apache/gravitino/rel/SupportsPartitions.java   |   10 +-
 .../org/apache/gravitino/rel/indexes/Index.java    |    6 +
 .../apache/gravitino/semantic/AIContextObject.java |   52 +-
 .../apache/gravitino/semantic/CustomExtension.java |    6 +
 .../apache/gravitino/semantic/OssieDocument.java   |   96 +
 .../org/apache/gravitino/semantic/OssieFormat.java |   14 +-
 .../apache/gravitino/semantic/OssieVersion.java    |   15 +-
 .../apache/gravitino/semantic/SemanticModel.java   |   34 +
 .../gravitino/semantic/SemanticModelCatalog.java   |   49 +
 .../apache/gravitino/stats/SupportsStatistics.java |   16 +
 .../org/apache/gravitino/tag/SupportsTags.java     |    6 +-
 .../authorization/TestSecurableObjects.java        |   83 +
 .../apache/gravitino/model/TestModelCatalog.java   |  228 +++
 .../TestIcebergOrphanFileRemovalContent.java       |   97 +
 .../gravitino/policy/TestPolicyBuiltInType.java    |   33 +
 .../gravitino/policy/TestPolicyContents.java       |   53 +
 .../policy/TestReadRestrictionContent.java         |   97 +
 .../gravitino/semantic/TestOssieDocument.java      |   67 +
 .../semantic/TestSemanticModelCatalog.java         |   13 +
 .../semantic/TestSemanticModelSupportingTypes.java |   31 +-
 build.gradle.kts                                   |    3 +-
 .../catalog/clickhouse/ClickHouseConstants.java    |   21 +
 .../operations/ClickHouseTableOperations.java      |  239 ++-
 .../operations/ClickHouseTableSqlUtils.java        |   25 +
 .../integration/test/CatalogClickHouseIT.java      |  235 ++-
 ...stClickHouseTableOperationsConnectionUsage.java |   67 +
 .../TestClickHouseTableOperationsPartitioning.java |   38 +-
 .../TestClickHouseTableOperationsUnit.java         |  464 ++++-
 .../operation/OceanBaseTableOperations.java        |   23 +-
 ...estOceanBaseTableOperationsConnectionUsage.java |   80 +
 .../catalog/fileset/FilesetCatalogOperations.java  |   64 +-
 .../fileset/TestFilesetCatalogOperations.java      |  280 +++
 .../apache/gravitino/catalog/jdbc/JdbcCatalog.java |   46 +
 .../catalog/jdbc/JdbcCatalogOperations.java        |  169 +-
 .../jdbc/JdbcCatalogPropertiesMetadata.java        |   28 +-
 .../gravitino/catalog/jdbc/config/JdbcConfig.java  |   85 +
 .../converter/JdbcColumnDefaultValueConverter.java |    4 +-
 .../jdbc/operation/JdbcDatabaseOperations.java     |    8 +-
 .../jdbc/operation/JdbcTableOperations.java        |  149 +-
 .../catalog/jdbc/operation/TableOperation.java     |   25 +
 .../catalog/jdbc/utils/DataSourceUtils.java        |   29 +-
 .../catalog/jdbc/utils/JdbcConnectionTimeouts.java |  303 ++++
 .../catalog/jdbc/TestJdbcCatalogOperations.java    |  123 ++
 .../jdbc/TestJdbcCatalogOperationsProbe.java       |  204 +++
 .../jdbc/TestJdbcCatalogPropertiesMetadata.java    |  129 ++
 .../catalog/jdbc/config/TestJdbcConfig.java        |   17 +
 .../TestJdbcOperationsConnectionUsage.java         |  480 +++++
 .../jdbc/utils/ConnectionCountingDataSource.java   |  168 ++
 .../jdbc/utils/TestDataSourceValidation.java       |  193 ++
 .../catalog/jdbc/utils/TestJdbcConfig.java         |   43 +
 .../jdbc/utils/TestJdbcConnectionTimeouts.java     |  326 ++++
 catalogs/catalog-jdbc-mysql/build.gradle.kts       |    1 +
 .../mysql/converter/MysqlTypeConverter.java        |   21 +-
 .../mysql/operation/MysqlTableOperations.java      |  122 +-
 .../catalog/mysql/TestMysqlDataSource.java         |  144 ++
 .../mysql/converter/TestMysqlTypeConverter.java    |   12 +
 .../mysql/integration/test/CatalogMysqlIT.java     |  106 ++
 .../mysql/operation/TestMysqlTableOperations.java  |   59 +
 .../TestMysqlTableOperationsSqlGeneration.java     |   63 +
 catalogs/catalog-jdbc-postgresql/build.gradle.kts  |    1 +
 .../converter/PostgreSqlTypeConverter.java         |   15 +-
 .../postgresql/TestPostgreSqlDataSource.java       |  126 ++
 .../converter/TestPostgreSqlTypeConverter.java     |   15 +
 .../integration/test/CatalogPostgreSqlIT.java      |   32 +
 .../catalog/kafka/TestKafkaCatalogOperations.java  |    6 +
 .../lakehouse/lance/LanceTableOperations.java      |   27 +-
 .../generic/TestGenericCatalogOperations.java      |    6 +
 .../lakehouse/lance/TestLanceTableOperations.java  |   74 +
 catalogs/catalog-model/build.gradle.kts            |    1 +
 .../catalog/model/TestModelCatalogOperations.java  |   82 +-
 clients/client-java/build.gradle.kts               |    1 +
 .../org/apache/gravitino/client/DTOConverters.java |   37 +
 .../org/apache/gravitino/client/ErrorHandlers.java |   79 +
 .../apache/gravitino/client/FilesetCatalog.java    |   11 +-
 .../gravitino/client/GenericSemanticModel.java     |  200 +++
 .../org/apache/gravitino/client/HTTPClient.java    |   66 +-
 .../org/apache/gravitino/client/RESTClient.java    |   41 +
 .../apache/gravitino/client/RelationalCatalog.java |   68 +-
 .../client/SemanticModelCatalogOperations.java     |  266 +++
 .../gravitino/client/TestGenericSemanticModel.java |  140 ++
 .../apache/gravitino/client/TestHTTPClient.java    |   67 +
 .../gravitino/client/TestRelationalCatalog.java    |   24 +
 .../gravitino/client/TestSemanticModelCatalog.java |  692 ++++++++
 .../gravitino/client/TestSupportPolicies.java      |   84 +-
 .../apache/gravitino/client/TestSupportTags.java   |   81 +
 .../client/integration/test/SemanticModelIT.java   | 1358 ++++++++++++++
 .../gravitino/api/authorization/privileges.py      |  107 +-
 .../api/authorization/securable_objects.py         |   24 +
 .../client-python/gravitino/api/job/job_handle.py  |    4 +-
 .../client-python/gravitino/api/metadata_object.py |    3 +
 .../gravitino/api/metadata_objects.py              |    4 +-
 .../gravitino/api/rel/indexes/index.py             |    8 +
 .../gravitino/api/semantic/ai_context_object.py    |   39 +-
 .../gravitino/api/semantic/semantic_model.py       |   15 +
 .../api/semantic/semantic_model_catalog.py         |   57 +-
 .../gravitino/api/stats/supports_statistics.py     |   14 +
 .../gravitino/client/generic_semantic_model.py     |  120 ++
 .../gravitino/client/relational_catalog.py         |   19 +
 .../client/semantic_model_catalog_operations.py    |  310 ++++
 .../dto/rel/indexes/json_serdes/index_serdes.py    |    9 +-
 .../dto/requests/semantic_model_create_request.py  |   69 +
 .../dto/requests/semantic_model_update_request.py  |  144 ++
 .../dto/requests/semantic_model_updates_request.py |   43 +
 .../dto/responses/semantic_model_response.py       |   56 +
 .../gravitino/{api => dto/semantic}/__init__.py    |    0
 .../gravitino/dto/semantic/ai_context_dto.py       |   77 +
 .../dto/semantic/ai_context_object_dto.py          |   97 +
 .../gravitino/dto/semantic/custom_extension_dto.py |   56 +
 .../gravitino/dto/semantic/dataset_dto.py          |  139 ++
 .../dto/semantic/dialect_expression_dto.py         |   59 +
 .../gravitino/dto/semantic/dimension_dto.py        |   48 +
 .../gravitino/dto/semantic/expression_dto.py       |   58 +
 .../gravitino/dto/semantic/field_dto.py            |  155 ++
 .../{api => dto/semantic/json_serdes}/__init__.py  |    0
 .../dto/semantic/json_serdes/ai_context_serdes.py  |  104 ++
 .../dto/semantic/json_serdes/data_type_serdes.py   |   47 +
 .../semantic/json_serdes/semantic_json_mixin.py    |   74 +
 .../gravitino/dto/semantic/metric_dto.py           |  129 ++
 .../gravitino/dto/semantic/relationship_dto.py     |  127 ++
 .../gravitino/dto/semantic/semantic_dto_utils.py   |   47 +
 .../dto/semantic/semantic_model_definition_dto.py  |  122 ++
 .../gravitino/dto/semantic/semantic_model_dto.py   |   75 +
 .../exceptions/handlers/catalog_error_handler.py   |   59 +-
 .../handlers/credential_error_handler.py           |   26 +-
 .../exceptions/handlers/fileset_error_handler.py   |   40 +-
 .../exceptions/handlers/function_error_handler.py  |   51 +-
 .../exceptions/handlers/group_error_handler.py     |   49 +-
 .../exceptions/handlers/job_error_handler.py       |   64 +-
 .../exceptions/handlers/metalake_error_handler.py  |   32 +-
 .../exceptions/handlers/model_error_handler.py     |   79 +-
 .../exceptions/handlers/owner_error_handler.py     |   40 +-
 .../exceptions/handlers/partition_error_handler.py |   61 +-
 .../handlers/permission_error_handler.py           |   65 +-
 .../exceptions/handlers/rest_error_handler.py      |   29 +
 .../exceptions/handlers/role_error_handler.py      |   67 +-
 .../exceptions/handlers/schema_error_handler.py    |   45 +-
 .../exceptions/handlers/secret_error_handler.py    |   23 +-
 ..._handler.py => semantic_model_error_handler.py} |   58 +-
 .../handlers/statistics_error_handler.py           |   67 +-
 .../exceptions/handlers/table_error_handler.py     |   62 +-
 .../exceptions/handlers/tag_error_handler.py       |   54 +-
 .../exceptions/handlers/user_error_handler.py      |   50 +-
 .../exceptions/handlers/view_error_handler.py      |   62 +-
 .../client-python/gravitino/utils/http_client.py   |   12 +-
 clients/client-python/pylintrc                     |    8 +-
 clients/client-python/requirements.txt             |    1 +
 .../test_semantic_model_authorization.py           |  266 +++
 .../tests/integration/test_semantic_model_ossie.py |  300 ++++
 .../test_semantic_model_tags_and_owner.py          |  319 ++++
 .../test_semantic_model_supporting_types.py        |   13 +-
 .../unittests/auth/test_oauth2_token_provider.py   |   23 +
 .../unittests/authorization/test_privileges.py     |   12 +
 .../test_semantic_model_authorization.py           |  169 ++
 .../tests/unittests/dto/rel/test_index_serdes.py   |   60 +
 .../unittests/dto/semantic}/__init__.py            |    0
 .../semantic/test_semantic_model_definition_dto.py |  247 +++
 .../dto/semantic/test_semantic_model_dto.py        |  110 ++
 .../semantic/test_semantic_wire_compatibility.py   |  307 ++++
 .../unittests/dto/test_semantic_model_rest.py      |  137 ++
 .../unittests/test_code_mapping_error_handler.py   |  324 ++++
 .../tests/unittests/test_error_handler.py          |  104 ++
 .../tests/unittests/test_gravitino_client.py       |   17 +
 .../tests/unittests/test_http_client_close.py      |   58 +
 .../tests/unittests/test_http_client_raw_body.py   |   64 +
 .../tests/unittests/test_metadata_objects.py       |    2 +-
 .../tests/unittests/test_semantic_model_catalog.py |  386 ++++
 .../tests/unittests/test_semantic_model_ossie.py   |  250 +++
 .../test_semantic_model_tags_and_owner.py          |  208 +++
 .../GravitinoVirtualFileSystemConfiguration.java   |   17 +-
 .../hadoop/GravitinoVirtualFileSystemUtils.java    |   25 +
 .../filesystem/hadoop/TestBasicClient.java         |  152 ++
 .../java/org/apache/gravitino/dto/job/JobDTO.java  |    4 +-
 .../gravitino/dto/policy/PolicyContentDTO.java     |  277 +++
 .../org/apache/gravitino/dto/policy/PolicyDTO.java |   17 +-
 .../dto/requests/PolicyCreateRequest.java          |   17 +-
 .../dto/requests/PolicyUpdateRequest.java          |   17 +-
 .../apache/gravitino/dto/util/DTOConverters.java   |   61 +
 .../java/org/apache/gravitino/rest/RESTUtils.java  |   24 +-
 .../org/apache/gravitino/utils/FileFetcher.java    |    7 +-
 .../dto/policy/TestOrphanFileRemovalPolicyDTO.java |  122 ++
 .../apache/gravitino/dto/policy/TestPolicyDTO.java |    6 +
 .../dto/policy/TestReadRestrictionPolicyDTO.java   |  214 +++
 ...iteManifestsAndSnapshotExpirationPolicyDTO.java |   68 +
 .../org/apache/gravitino/json/TestJsonUtils.java   |   14 +
 .../org/apache/gravitino/rest/TestRESTUtils.java   |   10 +-
 .../apache/gravitino/utils/TestFileFetcher.java    |   19 +
 conf/gravitino.conf.template                       |    3 +
 core/build.gradle.kts                              |    6 +
 .../cache/it/AbstractEntityStorageBenchmark.java   |    8 +
 .../main/java/org/apache/gravitino/Configs.java    |   33 +
 .../java/org/apache/gravitino/GravitinoEnv.java    |   35 +-
 .../java/org/apache/gravitino/audit/AuditLog.java  |   49 +
 .../gravitino/audit/v2/CompatibilityUtils.java     |    7 +
 .../authorization/AuthorizationRequestContext.java |  193 ++
 .../authorization/AuthorizationUtils.java          |   93 +-
 .../authorization/FutureGrantManager.java          |   15 +-
 .../gravitino/authorization/OwnerManager.java      |   95 +-
 .../gravitino/authorization/PermissionManager.java |   81 +-
 .../apache/gravitino/cache/BaseEntityCache.java    |   23 +-
 .../gravitino/cache/CaffeineEntityCache.java       |   84 +-
 .../org/apache/gravitino/cache/NoOpsCache.java     |   15 +-
 .../gravitino/catalog/CapabilityHelpers.java       |   44 +
 .../apache/gravitino/catalog/CatalogManager.java   |   83 +-
 .../apache/gravitino/catalog/FilesetFileOps.java   |    6 +
 .../gravitino/catalog/ManagedTableOperations.java  |   15 +-
 .../catalog/ModelOperationDispatcher.java          |  227 +--
 .../catalog/PartitionOperationDispatcher.java      |   49 +-
 .../gravitino/catalog/SemanticModelDispatcher.java |  160 +-
 .../catalog/SemanticModelNormalizeDispatcher.java  |   17 +
 .../catalog/SemanticModelOperationDispatcher.java  |   52 +-
 .../gravitino/catalog/SemanticModelValidator.java  |   21 +-
 .../catalog/TableNormalizeDispatcher.java          |   16 +-
 .../apache/gravitino/connector/BaseCatalog.java    |   15 +
 .../connector/SupportsTableNameResolution.java     |   80 +
 .../apache/gravitino/connector/job/JobContext.java |   98 +
 .../gravitino/connector/job/JobExecutor.java       |   42 +-
 .../gravitino/connector/job/JobResourceUtils.java  |  234 +++
 .../apache/gravitino/hook/JobHookDispatcher.java   |   22 +-
 .../apache/gravitino/hook/ModelHookDispatcher.java |   15 +-
 .../gravitino/hook/PolicyHookDispatcher.java       |   17 +-
 .../hook/SemanticModelHookDispatcher.java          |  147 ++
 .../apache/gravitino/hook/TagHookDispatcher.java   |   17 +-
 .../apache/gravitino/hook/ViewHookDispatcher.java  |    8 +-
 .../apache/gravitino/job/JobExecutorFactory.java   |   39 +
 .../java/org/apache/gravitino/job/JobManager.java  |   15 +-
 .../apache/gravitino/job/JobTemplateResolver.java  |   73 +-
 .../gravitino/job/local/LocalJobExecutor.java      |  125 +-
 .../job/local/LocalJobExecutorConfigs.java         |    9 +
 .../gravitino/job/local/LocalProcessBuilder.java   |   30 +-
 .../gravitino/job/local/ShellProcessBuilder.java   |   16 +-
 .../gravitino/job/local/SparkProcessBuilder.java   |    5 +-
 .../listener/SemanticModelEventDispatcher.java     |  221 +++
 .../listener/api/event/OperationType.java          |   11 +
 .../event/semantic/AlterSemanticModelEvent.java    |   74 +
 .../semantic/AlterSemanticModelFailureEvent.java   |   64 +
 .../event/semantic/AlterSemanticModelPreEvent.java |   62 +
 .../event/semantic/CreateSemanticModelEvent.java   |   58 +
 .../semantic/CreateSemanticModelFailureEvent.java  |   62 +
 .../semantic/CreateSemanticModelPreEvent.java      |   58 +
 .../api/event/semantic/DropSemanticModelEvent.java |   56 +
 .../semantic/DropSemanticModelFailureEvent.java    |   46 +
 .../event/semantic/DropSemanticModelPreEvent.java  |   32 +-
 .../event/semantic/ExportSemanticModelEvent.java   |   57 +
 .../semantic/ExportSemanticModelFailureEvent.java  |   61 +
 .../semantic/ExportSemanticModelPreEvent.java      |   60 +
 .../event/semantic/ImportSemanticModelEvent.java   |   74 +
 .../semantic/ImportSemanticModelFailureEvent.java  |   73 +
 .../semantic/ImportSemanticModelPreEvent.java      |   72 +
 .../api/event/semantic/ListSemanticModelEvent.java |   70 +
 .../semantic/ListSemanticModelFailureEvent.java    |   57 +
 .../event/semantic/ListSemanticModelPreEvent.java  |   56 +
 .../api/event/semantic/LoadSemanticModelEvent.java |   58 +
 .../semantic/LoadSemanticModelFailureEvent.java    |   46 +
 .../event/semantic/LoadSemanticModelPreEvent.java  |   32 +-
 .../api/event/semantic/SemanticModelEvent.java     |   45 +
 .../event/semantic/SemanticModelFailureEvent.java  |   40 +
 .../api/event/semantic/SemanticModelPreEvent.java  |   27 +-
 .../gravitino/listener/api/info/JobInfo.java       |    2 +-
 .../listener/api/info/SemanticModelInfo.java       |  124 ++
 .../java/org/apache/gravitino/meta/JobEntity.java  |    6 +-
 .../org/apache/gravitino/policy/PolicyManager.java |  281 ++-
 .../gravitino/policy/rego/CanonicalExpression.java |   49 +
 .../org/apache/gravitino/policy/rego/Column.java   |   65 +
 .../apache/gravitino/policy/rego/Comparison.java   |  119 ++
 .../gravitino/policy/rego/ComparisonOperator.java  |   71 +
 .../gravitino/policy/rego/ExpressionValidator.java |  146 ++
 .../gravitino/policy/rego/GroupMembership.java     |   65 +
 .../org/apache/gravitino/policy/rego/Literal.java  |  120 ++
 .../apache/gravitino/policy/rego/LiteralArray.java |   83 +
 .../rego/LiteralType.java}                         |   17 +-
 .../gravitino/policy/rego/LogicalExpression.java   |  112 ++
 .../rego/LogicalOperator.java}                     |   21 +-
 .../java/org/apache/gravitino/policy/rego/Not.java |   67 +
 .../rego/RestrictedRegoExpressionParserFacade.java |  105 ++
 .../gravitino/policy/rego/RestrictedRegoLexer.java |  322 ++++
 .../policy/rego/RestrictedRegoLimits.java          |   24 +-
 .../policy/rego/RestrictedRegoProgram.java         |  410 +++++
 .../policy/rego/RestrictedRegoSourceParser.java    |  358 ++++
 .../policy/rego/RestrictedRegoSourceValidator.java |  113 ++
 .../apache/gravitino/policy/rego/SessionUser.java  |   35 +-
 .../gravitino/semantic/OssieDocumentConverter.java |  994 +++++++++++
 .../semantic/SemanticModelPropertiesMetadata.java  |   64 +
 .../apache/gravitino/stats/StatisticManager.java   |   41 +-
 .../storage/relational/EntityChangeLogPoller.java  |  186 +-
 .../storage/relational/EntityChangeLogWriter.java  |   51 +
 .../gravitino/storage/relational/JDBCBackend.java  |   22 +-
 .../storage/relational/RelationalEntityStore.java  |    4 +-
 .../mapper/OwnerMetaSQLProviderFactory.java        |    4 +
 .../relational/mapper/SemanticModelMetaMapper.java |   16 +
 .../relational/mapper/StatisticMetaMapper.java     |   44 +-
 .../mapper/StatisticSQLProviderFactory.java        |   44 +-
 .../provider/base/StatisticBaseSQLProvider.java    |  104 +-
 .../postgresql/StatisticPostgresSQLProvider.java   |   31 -
 .../postgresql/TableVersionPostgreSQLProvider.java |    5 +-
 .../relational/service/JobTemplateMetaService.java |   16 +-
 .../relational/service/LiveEndpointService.java    |    4 +-
 .../relational/service/MetadataObjectService.java  |   32 +
 .../relational/service/ModelMetaService.java       |   41 +-
 .../service/ModelVersionMetaService.java           |  210 ++-
 .../OrphanedMetadataObjectRelationService.java     |    4 +
 .../service/SemanticModelMetaService.java          |   46 +-
 .../relational/service/StatisticMetaService.java   |  351 +++-
 .../storage/relational/service/TagMetaService.java |   34 +-
 .../session/SqlSessionFactoryHelper.java           |   12 +-
 .../java/org/apache/gravitino/tag/TagManager.java  |  560 +++---
 .../apache/gravitino/utils/EntityClassMapper.java  |    6 +
 .../apache/gravitino/utils/MetadataObjectUtil.java |    7 +
 .../java/org/apache/gravitino/TestCatalog.java     |   17 +
 .../test/java/org/apache/gravitino/TestConfig.java |   14 +
 .../TestGravitinoEnvMetadataComponents.java        |   23 +-
 .../org/apache/gravitino/audit/TestOperation.java  |  101 ++
 .../gravitino/audit/v2/TestCompatibilityUtils.java |    7 +
 .../authorization/TestAccessControlManager.java    |    6 +
 .../TestAccessControlManagerForPermissions.java    |   88 +
 .../TestAuthorizationRequestContext.java           |  274 +++
 .../authorization/TestAuthorizationUtils.java      |   99 ++
 .../authorization/TestFutureGrantManager.java      |   90 +
 .../gravitino/authorization/TestOwnerManager.java  |   81 +-
 .../gravitino/cache/TestBaseEntityCache.java       |   14 +-
 .../cache/TestCaffeineEntityCacheEviction.java     |  336 ++++
 .../org/apache/gravitino/cache/TestNoOpsCache.java |  132 ++
 .../gravitino/catalog/TestCatalogManager.java      |  203 ++-
 .../catalog/TestManagedTableOperations.java        |   48 +
 .../catalog/TestModelOperationDispatcher.java      |   94 +-
 .../catalog/TestPartitionOperationDispatcher.java  |   45 +
 .../catalog/TestSemanticModelDispatcher.java       |   97 +
 .../TestSemanticModelNormalizeDispatcher.java      |   61 +
 .../TestSemanticModelOperationDispatcher.java      |  255 ++-
 .../catalog/TestSemanticModelValidator.java        |   45 +
 .../catalog/TestTableNormalizeDispatcher.java      |  174 ++
 .../gravitino/catalog/TreeLockTestSupport.java     |   18 +-
 .../gravitino/connector/TestCatalogOperations.java |   19 +
 .../connector/job/TestJobExecutionInfo.java        |    2 +-
 .../gravitino/connector/job/TestJobExecutor.java   |  125 ++
 .../connector/job/TestJobResourceUtils.java        |  403 +++++
 .../gravitino/hook/TestFilesetHookDispatcher.java  |    7 +
 .../gravitino/hook/TestJobHookDispatcher.java      |   71 +
 .../gravitino/hook/TestModelHookDispatcher.java    |   70 +
 .../gravitino/hook/TestPolicyHookDispatcher.java   |   71 +
 .../hook/TestSemanticModelHookDispatcher.java      |  302 ++++
 .../gravitino/hook/TestTagHookDispatcher.java      |   66 +
 .../gravitino/hook/TestViewHookDispatcher.java     |   23 +
 .../gravitino/job/TestJobExecutorFactory.java      |  166 +-
 .../org/apache/gravitino/job/TestJobManager.java   |   87 +-
 .../gravitino/job/TestJobTemplateResolver.java     |  346 +---
 .../gravitino/job/local/TestLocalJobExecutor.java  |  311 +++-
 .../listener/api/event/TestSemanticModelEvent.java |  553 ++++++
 .../event/TestSemanticModelImportExportEvent.java  |  415 +++++
 .../apache/gravitino/meta/TestPolicyEntity.java    |   37 +
 .../apache/gravitino/policy/TestPolicyManager.java |  214 ++-
 .../policy/rego/RestrictedRegoTestUtils.java       |  117 ++
 .../apache/gravitino/policy/rego/TestColumn.java   |   18 +-
 .../gravitino/policy/rego/TestComparison.java      |   54 +
 .../policy/rego/TestComparisonOperator.java        |   17 +-
 .../gravitino/policy/rego/TestGroupMembership.java |   19 +-
 .../apache/gravitino/policy/rego/TestLiteral.java  |   48 +
 .../gravitino/policy/rego/TestLiteralArray.java    |   55 +
 .../policy/rego/TestLogicalExpression.java         |   65 +
 .../org/apache/gravitino/policy/rego/TestNot.java  |   26 +-
 .../TestRestrictedRegoExpressionParserFacade.java  |  126 ++
 .../policy/rego/TestRestrictedRegoGoldenFile.java  |  176 ++
 .../policy/rego/TestRestrictedRegoLexer.java       |   81 +
 .../policy/rego/TestRestrictedRegoProgram.java     |  113 ++
 .../rego/TestRestrictedRegoSourceParser.java       |  256 +++
 .../rego/TestRestrictedRegoSourceValidator.java    |  164 ++
 .../gravitino/policy/rego/TestSessionUser.java     |   17 +-
 .../semantic/TestOssieDocumentConverter.java       |  876 +++++++++
 .../TestSemanticModelPropertiesMetadata.java       |   46 +
 .../gravitino/stats/TestStatisticManager.java      |   84 +
 .../storage/AbstractEntityStorageTest.java         |    6 +
 .../apache/gravitino/storage/TestSQLScripts.java   |  339 ++++
 .../storage/relational/BackendTestExtension.java   |    2 +
 .../TestEntityCacheCrossNodeInvalidation.java      |   61 +-
 .../relational/TestEntityChangeLogPoller.java      |  304 +++-
 ...TestRelationalEntityStoreHierarchicalCache.java |    4 +
 .../relational/TestSemanticModelJDBCBackend.java   |  137 ++
 .../relational/mapper/TestRoleMetaMapper.java      |   50 +
 .../mapper/provider/base/TestAuthMappers.java      |    2 +
 .../provider/base/TestEntityChangeLogMapper.java   |    2 +
 .../provider/base/TestUserRoleRelMapper.java       |    2 +
 .../service/TestJobTemplateMetaService.java        |   85 +
 .../service/TestModelVersionMetaService.java       |  196 ++
 .../TestOrphanedMetadataObjectRelationService.java |   59 +
 .../service/TestStatisticConcurrentWrites.java     |  277 +++
 .../service/TestStatisticMetaService.java          |  778 +++++++-
 .../relational/service/TestTableMetaService.java   |   73 +
 .../relational/service/TestTagMetaService.java     |   49 +-
 .../storage/relational/session/TestSqlSession.java |   64 +
 .../org/apache/gravitino/tag/TestTagManager.java   |  172 +-
 .../org/apache/gravitino/utils/RaceTestUtils.java  |   85 +
 .../gravitino/utils/TestMetadataObjectUtil.java    |   18 +
 .../test/resources/restricted-rego-v1-cases.golden |   91 +
 .../test/resources/restricted-rego-v1-cases.txt    |   35 +
 .../gravitino-entity-cache-multinode-design.md     |    2 +-
 design-docs/gravitino-semantic-model-design.md     |    4 +-
 design-docs/table-maintenance-service-design.md    |  572 ++++++
 design-docs/tag-based-access-control.md            |  844 +++++++++
 ...tag-based-read-restrictions-for-iceberg-rest.md |  725 ++++++++
 .../gravitino/resources/config/gravitino.conf      |    3 +
 dev/charts/gravitino/tests/configmap_test.yaml     |   19 +
 dev/charts/gravitino/values.yaml                   |    5 +
 dev/docker/flink-connectors/Dockerfile             |   11 +-
 dev/docker/flink-connectors/README.md              |    7 +-
 dev/docker/flink-connectors/copy-connector.sh      |   10 +-
 .../flink-connectors-dependency.sh                 |    9 +-
 dev/performance/jdbc_idle_retention.py             |  195 ++
 dev/performance/test_jdbc_idle_retention.py        |   77 +
 dev/release/publish-docker.sh                      |    4 +-
 dev/release/release-build.sh                       |    2 +
 docs/development/custom-job-executor.md            |   34 +
 docs/flink-connector/flink-catalog-iceberg.md      |    1 +
 docs/flink-connector/flink-catalog-jdbc.md         |    8 +-
 docs/flink-connector/flink-catalog-paimon.md       |   16 +-
 docs/flink-connector/flink-connector.md            |    3 +-
 docs/gravitino-mcp-server.md                       |   51 +
 docs/gravitino-server-config.md                    |   53 +-
 docs/how-to-sign-releases.md                       |   14 +-
 docs/how-to-upgrade.md                             |    5 +
 docs/how-to-use-gravitino-client.md                |   18 +-
 docs/how-to-use-gvfs.md                            |   25 +-
 docs/how-to-use-python-client.md                   |   33 +
 docs/how-to-use-relational-backend-storage.md      |   21 +
 docs/iceberg-compaction-policy.md                  |   34 +-
 docs/jdbc-catalog-connection-validation.md         |  107 ++
 docs/jdbc-clickhouse-catalog.md                    |   36 +-
 docs/jdbc-doris-catalog.md                         |   22 +-
 docs/jdbc-hologres-catalog.md                      |   22 +-
 docs/jdbc-mysql-catalog.md                         |   44 +-
 docs/jdbc-oceanbase-catalog.md                     |   22 +-
 docs/jdbc-postgresql-catalog.md                    |   38 +-
 docs/jdbc-starrocks-catalog.md                     |   22 +-
 docs/lakehouse-generic-lance-table.md              |   45 +-
 docs/lance-rest-service.md                         |    5 +-
 docs/manage-jobs-in-gravitino.md                   |   43 +-
 docs/manage-statistics-in-gravitino.md             |   18 +
 docs/metrics.md                                    |   15 +-
 docs/open-api/filesets.yaml                        |   33 +-
 docs/open-api/indexes.yaml                         |    2 +
 docs/open-api/jobs.yaml                            |   30 +-
 docs/open-api/openapi.yaml                         |   21 +
 docs/open-api/policies.yaml                        |  409 ++++-
 docs/open-api/roles.yaml                           |    5 +
 docs/open-api/semantic-models.yaml                 | 1591 +++++++++++++++++
 docs/open-api/statistics.yaml                      |    4 +-
 docs/open-api/tags.yaml                            |    3 +-
 docs/policies.md                                   |  140 +-
 docs/security/access-control.md                    |   21 +-
 docs/spark-connector/spark-catalog-hive.md         |   18 +
 .../optimizer-configuration.md                     |   64 +-
 docs/table-maintenance-service/optimizer.md        |   13 +-
 docs/tags.md                                       |   27 +-
 docs/trino-connector/authentication.md             |   17 +-
 docs/trino-connector/catalog-mysql.md              |   14 +
 .../flink/connector/utils/TestTypeUtils.java       |    7 +
 .../v2.1/flink-runtime/build.gradle.kts            |    5 +-
 .../flink/runtime/TestRuntimeJarDependencies.java  |   37 +-
 flink-connector/v2.1/flink/build.gradle.kts        |    7 +-
 .../{v2.1 => v2.2}/flink-runtime/build.gradle.kts  |    9 +-
 .../flink/runtime/TestRuntimeJarDependencies.java  |   37 +-
 .../{v2.1 => v2.2}/flink/build.gradle.kts          |   25 +-
 .../GravitinoIcebergCatalogFactoryFlink22.java     |   47 +
 .../iceberg/GravitinoIcebergCatalogFlink22.java    |  105 ++
 .../jdbc/GravitinoJdbcCatalogFlink22.java          |   64 +
 .../GravitinoMysqlJdbcCatalogFactoryFlink22.java   |   41 +
 ...GravitinoPostgresJdbcCatalogFactoryFlink22.java |   42 +
 .../GravitinoPaimonCatalogFactoryFlink22.java      |   27 +-
 .../paimon/GravitinoPaimonCatalogFlink22.java      |   52 +
 .../connector/utils/CatalogCompatFlink22.java      |   64 +
 .../org.apache.flink.table.factories.Factory       |   29 +
 .../connector/catalog/TestBaseCatalogFlink22.java  |   15 +-
 .../hive/TestFlinkGenericTableUtilFlink22.java     |   15 +-
 .../hive/TestGravitinoHiveCatalogFlink22.java      |   15 +-
 .../TestGravitinoIcebergCatalogFlink22.java        |   84 +
 .../test/catalog/GravitinoCatalogManagerIT22.java  |    6 +-
 .../test/iceberg/FlinkIcebergHiveCatalogIT22.java  |    6 +-
 .../test/iceberg/FlinkIcebergJdbcCatalogIT22.java  |   21 +-
 .../test/iceberg/FlinkIcebergRestCatalogIT22.java  |    6 +-
 .../test/jdbc/FlinkJdbcMysqlCatalogIT22.java       |   53 +
 .../test/paimon/FlinkPaimonHiveBackendIT22.java    |    6 +-
 .../test/paimon/FlinkPaimonJdbcBackendIT22.java    |    6 +-
 .../FlinkPaimonLocalFileSystemBackendIT22.java     |    6 +-
 .../jdbc/TestGravitinoJdbcCatalogFlink22.java      |   15 +-
 .../paimon/TestGravitinoPaimonCatalogFlink22.java  |   15 +-
 .../connector/utils/TestCatalogCompatFlink22.java  |   80 +
 gradle/libs.versions.toml                          |   22 +-
 .../iceberg/service/IcebergExceptionMapper.java    |   28 +-
 .../service/TestIcebergExceptionMapper.java        |   24 +
 .../iceberg/service/rest/TestIcebergConfig.java    |   19 +
 .../rest/TestIcebergNamespaceOperations.java       |    5 +-
 .../docker-script/init/mysql/init.sql              |   21 +
 .../lance/common/ops/gravitino/CommonUtil.java     |   21 +-
 .../lance/common/ops/gravitino/LanceBlobTypes.java |  260 +++
 .../ops/gravitino/LanceDataTypeConverter.java      |   56 +-
 .../common/ops/gravitino/TestLanceBlobTypes.java   |  292 +++
 .../ops/gravitino/TestLanceDataTypeConverter.java  |  298 ++++
 .../gravitino/TestGravitinoLanceModeParsing.java   |   20 +-
 .../jobs/iceberg/IcebergRemoveOrphanFilesJob.java  |   44 +-
 .../TestIcebergRemoveOrphanFilesJobWithSpark.java  |   43 +
 .../common/util/OrphanFileLocationUtils.java       |   79 +
 maintenance/optimizer/build.gradle.kts             |    3 +
 .../handler/BaseExpressionStrategyHandler.java     |    5 +-
 .../handler/compaction/CompactionJobContext.java   |    8 +
 .../compaction/CompactionStrategyHandler.java      |   22 +
 .../OrphanFileRemovalJobContext.java}              |   62 +-
 .../OrphanFileRemovalStrategyHandler.java}         |   31 +-
 .../job/GravitinoCompactionJobAdapter.java         |   13 +-
 .../recommender/job/GravitinoJobSubmitter.java     |    5 +-
 .../job/GravitinoOrphanFileRemovalJobAdapter.java  |  104 ++
 .../optimizer/integration/test/RecommenderIT.java  |  169 ++
 .../compaction/TestCompactionStrategyHandler.java  |    2 +
 .../TestGravitinoPolicyCompactionStrategy.java     |   55 +
 .../job/TestBuiltinIcebergRewriteDataFiles.java    |    2 +
 .../job/TestGravitinoCompactionJobAdapter.java     |   19 +-
 .../recommender/job/TestGravitinoJobSubmitter.java |    9 +
 .../TestGravitinoOrphanFileRemovalJobAdapter.java  |  159 ++
 .../statistics/TestGravitinoStatisticsUpdater.java |   26 +
 .../mcp_server/client/gravitino_operation.py       |    6 +
 .../client/plain/plain_rest_client_operation.py    |   10 +
 .../plain_rest_client_semantic_model_operation.py  |  106 ++
 mcp-server/mcp_server/client/plain/utils.py        |    8 +-
 .../mcp_server/client/semantic_model_operation.py  |   69 +
 mcp-server/mcp_server/tools/__init__.py            |    3 +
 mcp-server/mcp_server/tools/semantic_model.py      |  160 ++
 mcp-server/tests/unit/client/test_url_encoding.py  |   58 +
 mcp-server/tests/unit/tools/mock_operation.py      |   44 +
 mcp-server/tests/unit/tools/test_semantic_model.py |  424 +++++
 plugins/k8s-job-executor/build.gradle.kts          |   85 +
 .../apache/gravitino/job/k8s/K8sClientUtils.java   |  288 +++
 .../gravitino/job/k8s/K8sJobExecutionId.java       |  132 ++
 .../gravitino/job/k8s/K8sJobExecutorConfigs.java   |  519 ++++++
 .../gravitino/job/k8s/K8sJobResourceUtils.java     |  106 ++
 .../gravitino/job/k8s/K8sKubeconfigUtils.java      |  115 ++
 .../job/k8s/spark/SparkApplicationStatusUtils.java |  480 +++++
 .../job/k8s/spark/SparkApplicationUtils.java       |  245 +++
 .../gravitino/job/k8s/TestK8sClientUtils.java      |  451 +++++
 .../gravitino/job/k8s/TestK8sJobExecutionId.java   |   76 +
 .../job/k8s/TestK8sJobExecutorConfigs.java         |  197 +++
 .../gravitino/job/k8s/TestK8sJobResourceUtils.java |   85 +
 .../k8s/spark/TestSparkApplicationStatusUtils.java |  767 ++++++++
 .../job/k8s/spark/TestSparkApplicationUtils.java   |  471 +++++
 .../catalog-model => plugins/tms}/build.gradle.kts |   74 +-
 .../maintenance/TableMaintenanceConfig.java        |  263 +++
 .../scheduler/TableMaintenanceSchedulerPools.java  |  152 ++
 .../mapper/TableMaintenanceActionMapper.java       |  107 ++
 .../TableMaintenanceActionSQLProviderFactory.java  |  191 ++
 .../storage/mapper/TableSnapshotMetricsMapper.java |   41 +
 .../TableSnapshotMetricsSQLProviderFactory.java    |   80 +
 .../mapper/provider/TmsMapperPackageProvider.java  |   22 +-
 .../TableMaintenanceActionBaseSQLProvider.java     |  233 +++
 .../base/TableSnapshotMetricsBaseSQLProvider.java  |   56 +
 .../h2/TableMaintenanceActionH2Provider.java       |    8 +-
 .../h2/TableSnapshotMetricsH2Provider.java         |    8 +-
 .../TableMaintenanceActionPostgreSQLProvider.java  |   20 +-
 .../TableSnapshotMetricsPostgreSQLProvider.java    |    8 +-
 .../storage/po/TableMaintenanceActionPO.java       |   38 +-
 .../storage/po/TableSnapshotMetricsPO.java         |   36 +-
 .../storage/service/OccupancyClaim.java            |   82 +
 .../service/TableMaintenanceActionMetaService.java |  335 ++++
 .../service/TableSnapshotMetricsMetaService.java   |   87 +
 ...elational.mapper.provider.MapperPackageProvider |   16 +-
 .../TestTableMaintenanceSchedulerPools.java        |   55 +
 .../mapper/TestTmsMapperPackageProvider.java       |   51 +
 .../TestTableMaintenanceActionMetaService.java     |   99 ++
 .../TestTableSnapshotMetricsMetaService.java       |   46 +
 scripts/h2/schema-2.0.0-h2.sql                     |   81 +
 scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql           |  109 +-
 scripts/mysql/schema-2.0.0-mysql.sql               |   81 +
 scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql     |  589 ++++++-
 scripts/postgresql/schema-2.0.0-postgresql.sql     |  131 ++
 .../upgrade-1.3.0-to-2.0.0-postgresql.sql          |  135 +-
 .../server/authorization/MetadataIdConverter.java  |  121 +-
 .../AuthorizationExpressionConstants.java          |   47 +
 .../AuthorizationExpressionConverter.java          |   24 +-
 .../jcasbin/JcasbinAuthorizationCacheKeys.java     |    1 +
 .../jcasbin/JcasbinAuthorizationLookups.java       |  132 +-
 .../authorization/jcasbin/JcasbinAuthorizer.java   |  687 +++++---
 .../jcasbin/JcasbinChangeListener.java             |   29 +-
 .../jcasbin/JcasbinLoadedRolesCache.java           |    7 +-
 .../org/apache/gravitino/server/web/Utils.java     |  161 ++
 .../src/main/resources/jcasbin_model.conf          |   32 +-
 .../server/authorization/TestJcasbinModel.java     |  236 ++-
 .../authorization/TestMetadataIdConverter.java     |  117 ++
 .../jcasbin/TestJcasbinAuthorizationCacheKeys.java |   27 +
 .../jcasbin/TestJcasbinAuthorizationLookups.java   |   63 +-
 .../jcasbin/TestJcasbinAuthorizer.java             | 1864 ++++++++++++++++++--
 .../jcasbin/TestJcasbinChangePoller.java           |   37 +-
 .../TestJcasbinMetadataIdCacheNormalization.java   |  611 +++++++
 .../jcasbin/TestJcasbinModelCacheInvalidation.java |  161 ++
 .../org/apache/gravitino/server/web/TestUtils.java |  155 ++
 .../src/test/resources/jcasbin_policy.txt          |    6 -
 .../apache/gravitino/server/GravitinoServer.java   |    2 +
 .../web/filter/GravitinoInterceptionService.java   |    2 +
 .../gravitino/server/web/rest/BulkOperations.java  |   16 +
 .../server/web/rest/CatalogOperations.java         |    4 +-
 .../server/web/rest/ExceptionHandlers.java         |    4 +-
 .../web/rest/IcebergRESTServiceOperations.java     |  149 +-
 .../gravitino/server/web/rest/JobOperations.java   |    8 +
 .../server/web/rest/MetalakeOperations.java        |   14 +-
 .../server/web/rest/SemanticModelOperations.java   |  272 ++-
 .../web/rest/SemanticModelSourceValidator.java     |  228 +++
 .../filter/TestGravitinoInterceptionService.java   |  111 ++
 .../server/web/rest/TestBulkOperations.java        |   22 +
 .../server/web/rest/TestCatalogOperations.java     |   28 +
 .../server/web/rest/TestFilesetOperations.java     |   54 +-
 .../server/web/rest/TestJobOperations.java         |   16 +
 .../web/rest/TestMetadataObjectTagOperations.java  |   85 +
 .../web/rest/TestSemanticModelOperations.java      |  888 +++++++++-
 .../web/rest/TestSemanticModelSourceValidator.java |  362 ++++
 .../server/web/rest/TestStatisticOperations.java   |   47 +
 .../server/web/rest/TestTableOperations.java       |   26 +
 ...stMetadataObjectTagAuthorizationExpression.java |   69 +
 .../TestSemanticModelAuthorizationExpression.java  |  191 ++
 settings.gradle.kts                                |    9 +-
 .../integration/test/hive/SparkHiveCatalogIT.java  |   98 +
 .../connector/jdbc/TestSparkJdbcTypeConverter.java |    7 +
 .../testsets/jdbc-mysql/00005_create_catalog.txt   |    2 +-
 .../testsets/jdbc-mysql/00006_datatype.txt         |   14 +-
 .../jdbc-mysql/00011_column_properties.txt         |   14 +-
 .../jdbc-mysql/00016_datetime_precision.sql        |   41 +
 .../jdbc-mysql/00016_datetime_precision.txt        |   54 +
 .../trino-ci-testset/testsets/trino-452-446.patch  |   37 +-
 .../trino/connector/GravitinoConnector.java        |   32 +-
 .../trino/connector/GravitinoErrorCode.java        |   94 +-
 .../trino/connector/GravitinoMetadata.java         |   20 +-
 .../connector/catalog/CatalogConnectorManager.java |   24 +-
 .../catalog/CatalogConnectorMetadata.java          |  107 +-
 .../jdbc/mysql/MySQLDataTypeTransformer.java       |   63 +-
 .../AlterCatalogStoredProcedure.java               |    7 +-
 .../CreateCatalogStoredProcedure.java              |   16 +-
 .../DropCatalogStoredProcedure.java                |   10 +-
 .../connector/util/GeneralDataTypeTransformer.java |   12 +
 .../trino/connector/TestGravitinoConnector.java    |    5 +-
 .../TestGravitinoConnectorForwardUser.java         |   24 +
 .../trino/connector/TestGravitinoErrorCode.java    |  167 ++
 .../TestGravitinoMetadataGetSupportedType.java     |   66 +
 .../TestGravitinoMetadataGetTableHandle.java       |  105 ++
 .../catalog/TestCatalogConnectorManager.java       |   72 +-
 .../TestCatalogConnectorMetadataErrors.java        |  223 +++
 .../catalog/TestCatalogConnectorMetadataView.java  |  100 ++
 .../jdbc/mysql/TestMySQLDataTypeTransformer.java   |  131 ++
 .../TestPostgreSQLDataTypeTransformer.java         |    8 +
 .../TestAlterCatalogStoredProcedure.java           |   26 +
 .../TestCreateCatalogStoredProcedure.java          |   85 +
 .../TestDropCatalogStoredProcedure.java            |   29 +-
 .../integration/test/web/ui/MetalakePageTest.java  |    4 +-
 671 files changed, 59898 insertions(+), 4468 deletions(-)
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/ColumnMaskContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/IcebergOrphanFileRemovalContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/IcebergRewriteManifestsContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/IcebergSnapshotExpirationContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/ReadRestrictionContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/policy/RowFilterContent.java
 create mode 100644 
api/src/main/java/org/apache/gravitino/semantic/OssieDocument.java
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
api/src/main/java/org/apache/gravitino/semantic/OssieFormat.java (74%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
api/src/main/java/org/apache/gravitino/semantic/OssieVersion.java (71%)
 create mode 100644 
api/src/test/java/org/apache/gravitino/model/TestModelCatalog.java
 create mode 100644 
api/src/test/java/org/apache/gravitino/policy/TestIcebergOrphanFileRemovalContent.java
 create mode 100644 
api/src/test/java/org/apache/gravitino/policy/TestReadRestrictionContent.java
 create mode 100644 
api/src/test/java/org/apache/gravitino/semantic/TestOssieDocument.java
 create mode 100644 
catalogs-contrib/catalog-jdbc-clickhouse/src/test/java/org/apache/gravitino/catalog/clickhouse/operations/TestClickHouseTableOperationsConnectionUsage.java
 create mode 100644 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperationsConnectionUsage.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/utils/JdbcConnectionTimeouts.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperationsProbe.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/operation/TestJdbcOperationsConnectionUsage.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/ConnectionCountingDataSource.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestDataSourceValidation.java
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestJdbcConnectionTimeouts.java
 create mode 100644 
catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/TestMysqlDataSource.java
 create mode 100644 
catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/TestPostgreSqlDataSource.java
 create mode 100644 
clients/client-java/src/main/java/org/apache/gravitino/client/GenericSemanticModel.java
 create mode 100644 
clients/client-java/src/main/java/org/apache/gravitino/client/SemanticModelCatalogOperations.java
 create mode 100644 
clients/client-java/src/test/java/org/apache/gravitino/client/TestGenericSemanticModel.java
 create mode 100644 
clients/client-java/src/test/java/org/apache/gravitino/client/TestSemanticModelCatalog.java
 create mode 100644 
clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/SemanticModelIT.java
 create mode 100644 
clients/client-python/gravitino/client/generic_semantic_model.py
 create mode 100644 
clients/client-python/gravitino/client/semantic_model_catalog_operations.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/semantic_model_create_request.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/semantic_model_update_request.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/semantic_model_updates_request.py
 create mode 100644 
clients/client-python/gravitino/dto/responses/semantic_model_response.py
 copy clients/client-python/gravitino/{api => dto/semantic}/__init__.py (100%)
 create mode 100644 
clients/client-python/gravitino/dto/semantic/ai_context_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/ai_context_object_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/custom_extension_dto.py
 create mode 100644 clients/client-python/gravitino/dto/semantic/dataset_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/dialect_expression_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/dimension_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/expression_dto.py
 create mode 100644 clients/client-python/gravitino/dto/semantic/field_dto.py
 copy clients/client-python/gravitino/{api => 
dto/semantic/json_serdes}/__init__.py (100%)
 create mode 100644 
clients/client-python/gravitino/dto/semantic/json_serdes/ai_context_serdes.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/json_serdes/data_type_serdes.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/json_serdes/semantic_json_mixin.py
 create mode 100644 clients/client-python/gravitino/dto/semantic/metric_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/relationship_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/semantic_dto_utils.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/semantic_model_definition_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/semantic/semantic_model_dto.py
 copy 
clients/client-python/gravitino/exceptions/handlers/{view_error_handler.py => 
semantic_model_error_handler.py} (52%)
 create mode 100644 
clients/client-python/tests/integration/test_semantic_model_authorization.py
 create mode 100644 
clients/client-python/tests/integration/test_semantic_model_ossie.py
 create mode 100644 
clients/client-python/tests/integration/test_semantic_model_tags_and_owner.py
 create mode 100644 
clients/client-python/tests/unittests/authorization/test_semantic_model_authorization.py
 copy clients/client-python/{gravitino/api => 
tests/unittests/dto/semantic}/__init__.py (100%)
 create mode 100644 
clients/client-python/tests/unittests/dto/semantic/test_semantic_model_definition_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/semantic/test_semantic_model_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/semantic/test_semantic_wire_compatibility.py
 create mode 100644 
clients/client-python/tests/unittests/dto/test_semantic_model_rest.py
 create mode 100644 
clients/client-python/tests/unittests/test_code_mapping_error_handler.py
 create mode 100644 
clients/client-python/tests/unittests/test_http_client_close.py
 create mode 100644 
clients/client-python/tests/unittests/test_http_client_raw_body.py
 create mode 100644 
clients/client-python/tests/unittests/test_semantic_model_catalog.py
 create mode 100644 
clients/client-python/tests/unittests/test_semantic_model_ossie.py
 create mode 100644 
clients/client-python/tests/unittests/test_semantic_model_tags_and_owner.py
 create mode 100644 
clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/TestBasicClient.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/dto/policy/TestOrphanFileRemovalPolicyDTO.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/dto/policy/TestReadRestrictionPolicyDTO.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/dto/policy/TestRewriteManifestsAndSnapshotExpirationPolicyDTO.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/connector/SupportsTableNameResolution.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/connector/job/JobContext.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/connector/job/JobResourceUtils.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/hook/SemanticModelHookDispatcher.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/SemanticModelEventDispatcher.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/AlterSemanticModelPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/CreateSemanticModelPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelFailureEvent.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/DropSemanticModelPreEvent.java
 (50%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ExportSemanticModelPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ImportSemanticModelPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelFailureEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/ListSemanticModelPreEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelFailureEvent.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/LoadSemanticModelPreEvent.java
 (50%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelEvent.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelFailureEvent.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/main/java/org/apache/gravitino/listener/api/event/semantic/SemanticModelPreEvent.java
 (53%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/listener/api/info/SemanticModelInfo.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/CanonicalExpression.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/Column.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/Comparison.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/ComparisonOperator.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/ExpressionValidator.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/GroupMembership.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/Literal.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/LiteralArray.java
 copy 
core/src/main/java/org/apache/gravitino/{catalog/SemanticModelDispatcher.java 
=> policy/rego/LiteralType.java} (73%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/LogicalExpression.java
 copy 
core/src/main/java/org/apache/gravitino/{catalog/SemanticModelDispatcher.java 
=> policy/rego/LogicalOperator.java} (67%)
 create mode 100644 core/src/main/java/org/apache/gravitino/policy/rego/Not.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoExpressionParserFacade.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoLexer.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoLimits.java 
(61%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoProgram.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoSourceParser.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/policy/rego/RestrictedRegoSourceValidator.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => core/src/main/java/org/apache/gravitino/policy/rego/SessionUser.java (59%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/semantic/OssieDocumentConverter.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/semantic/SemanticModelPropertiesMetadata.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/EntityChangeLogWriter.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/cache/TestCaffeineEntityCacheEviction.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/cache/TestNoOpsCache.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/catalog/TestSemanticModelDispatcher.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/connector/job/TestJobExecutor.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/connector/job/TestJobResourceUtils.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/hook/TestSemanticModelHookDispatcher.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/listener/api/event/TestSemanticModelEvent.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/listener/api/event/TestSemanticModelImportExportEvent.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/RestrictedRegoTestUtils.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => core/src/test/java/org/apache/gravitino/policy/rego/TestColumn.java (64%)
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestComparison.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/test/java/org/apache/gravitino/policy/rego/TestComparisonOperator.java 
(66%)
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
core/src/test/java/org/apache/gravitino/policy/rego/TestGroupMembership.java 
(60%)
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestLiteral.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestLiteralArray.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestLogicalExpression.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => core/src/test/java/org/apache/gravitino/policy/rego/TestNot.java (57%)
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoExpressionParserFacade.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoGoldenFile.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoLexer.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoProgram.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoSourceParser.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/policy/rego/TestRestrictedRegoSourceValidator.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => core/src/test/java/org/apache/gravitino/policy/rego/TestSessionUser.java 
(68%)
 create mode 100644 
core/src/test/java/org/apache/gravitino/semantic/TestOssieDocumentConverter.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/semantic/TestSemanticModelPropertiesMetadata.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/mapper/TestRoleMetaMapper.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/service/TestStatisticConcurrentWrites.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/utils/RaceTestUtils.java
 create mode 100644 core/src/test/resources/restricted-rego-v1-cases.golden
 create mode 100644 core/src/test/resources/restricted-rego-v1-cases.txt
 create mode 100644 design-docs/table-maintenance-service-design.md
 create mode 100644 design-docs/tag-based-access-control.md
 create mode 100644 design-docs/tag-based-read-restrictions-for-iceberg-rest.md
 create mode 100644 dev/performance/jdbc_idle_retention.py
 create mode 100644 dev/performance/test_jdbc_idle_retention.py
 create mode 100644 docs/jdbc-catalog-connection-validation.md
 create mode 100644 docs/open-api/semantic-models.yaml
 copy flink-connector/{v2.1 => v2.2}/flink-runtime/build.gradle.kts (90%)
 copy flink-connector/{v2.1 => 
v2.2}/flink-runtime/src/test/java/org/apache/gravitino/flink/runtime/TestRuntimeJarDependencies.java
 (69%)
 copy flink-connector/{v2.1 => v2.2}/flink/build.gradle.kts (94%)
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/iceberg/GravitinoIcebergCatalogFactoryFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/iceberg/GravitinoIcebergCatalogFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/GravitinoJdbcCatalogFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/mysql/GravitinoMysqlJdbcCatalogFactoryFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/jdbc/postgresql/GravitinoPostgresJdbcCatalogFactoryFlink22.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/paimon/GravitinoPaimonCatalogFactoryFlink22.java
 (50%)
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/paimon/GravitinoPaimonCatalogFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/java/org/apache/gravitino/flink/connector/utils/CatalogCompatFlink22.java
 create mode 100644 
flink-connector/v2.2/flink/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/catalog/TestBaseCatalogFlink22.java
 (69%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/hive/TestFlinkGenericTableUtilFlink22.java
 (68%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/hive/TestGravitinoHiveCatalogFlink22.java
 (68%)
 create mode 100644 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/iceberg/TestGravitinoIcebergCatalogFlink22.java
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/catalog/GravitinoCatalogManagerIT22.java
 (76%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergHiveCatalogIT22.java
 (76%)
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergJdbcCatalogIT22.java
 (54%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/iceberg/FlinkIcebergRestCatalogIT22.java
 (76%)
 create mode 100644 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/jdbc/FlinkJdbcMysqlCatalogIT22.java
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonHiveBackendIT22.java
 (76%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonJdbcBackendIT22.java
 (76%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/paimon/FlinkPaimonLocalFileSystemBackendIT22.java
 (76%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/jdbc/TestGravitinoJdbcCatalogFlink22.java
 (68%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/paimon/TestGravitinoPaimonCatalogFlink22.java
 (68%)
 create mode 100644 
flink-connector/v2.2/flink/src/test/java/org/apache/gravitino/flink/connector/utils/TestCatalogCompatFlink22.java
 create mode 100644 
lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/LanceBlobTypes.java
 create mode 100644 
lance/lance-common/src/test/java/org/apache/gravitino/lance/common/ops/gravitino/TestLanceBlobTypes.java
 create mode 100644 
maintenance/optimizer-api/src/main/java/org/apache/gravitino/maintenance/optimizer/common/util/OrphanFileLocationUtils.java
 copy 
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/{compaction/CompactionJobContext.java
 => orphan/OrphanFileRemovalJobContext.java} (53%)
 copy 
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/handler/{compaction/CompactionStrategyHandler.java
 => orphan/OrphanFileRemovalStrategyHandler.java} (70%)
 create mode 100644 
maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/recommender/job/GravitinoOrphanFileRemovalJobAdapter.java
 create mode 100644 
maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/recommender/job/TestGravitinoOrphanFileRemovalJobAdapter.java
 create mode 100644 
mcp-server/mcp_server/client/plain/plain_rest_client_semantic_model_operation.py
 create mode 100644 mcp-server/mcp_server/client/semantic_model_operation.py
 create mode 100644 mcp-server/mcp_server/tools/semantic_model.py
 create mode 100644 mcp-server/tests/unit/tools/test_semantic_model.py
 create mode 100644 plugins/k8s-job-executor/build.gradle.kts
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sClientUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobExecutionId.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobExecutorConfigs.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sJobResourceUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/K8sKubeconfigUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/spark/SparkApplicationStatusUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/main/java/org/apache/gravitino/job/k8s/spark/SparkApplicationUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sClientUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobExecutionId.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobExecutorConfigs.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/TestK8sJobResourceUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/spark/TestSparkApplicationStatusUtils.java
 create mode 100644 
plugins/k8s-job-executor/src/test/java/org/apache/gravitino/job/k8s/spark/TestSparkApplicationUtils.java
 copy {catalogs/catalog-model => plugins/tms}/build.gradle.kts (54%)
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java
 (54%)
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java
 (70%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java
 (71%)
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java
 (60%)
 copy 
core/src/main/java/org/apache/gravitino/catalog/SemanticModelDispatcher.java => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java
 (69%)
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java
 (50%)
 copy 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/config/TestJdbcConfig.java
 => 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java
 (52%)
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java
 create mode 100644 
plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java
 copy clients/client-python/requirements.txt => 
plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider
 (74%)
 create mode 100644 
plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java
 create mode 100644 
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java
 create mode 100644 
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java
 create mode 100644 
plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java
 create mode 100644 
server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinMetadataIdCacheNormalization.java
 create mode 100644 
server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinModelCacheInvalidation.java
 create mode 100644 
server/src/main/java/org/apache/gravitino/server/web/rest/SemanticModelSourceValidator.java
 create mode 100644 
server/src/test/java/org/apache/gravitino/server/web/rest/TestSemanticModelSourceValidator.java
 create mode 100644 
server/src/test/java/org/apache/gravitino/server/web/rest/authorization/TestMetadataObjectTagAuthorizationExpression.java
 create mode 100644 
server/src/test/java/org/apache/gravitino/server/web/rest/authorization/TestSemanticModelAuthorizationExpression.java
 create mode 100644 
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/jdbc-mysql/00016_datetime_precision.sql
 create mode 100644 
trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/jdbc-mysql/00016_datetime_precision.txt
 create mode 100644 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoErrorCode.java
 create mode 100644 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoMetadataGetSupportedType.java
 create mode 100644 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/TestGravitinoMetadataGetTableHandle.java
 create mode 100644 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/TestCatalogConnectorMetadataErrors.java
 create mode 100644 
trino-connector/trino-connector/src/test/java/org/apache/gravitino/trino/connector/catalog/TestCatalogConnectorMetadataView.java

Reply via email to