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

yuqi1129 pushed a change to branch feat/12166-occ-drop-cas
in repository https://gitbox.apache.org/repos/asf/gravitino.git


 discard 6dee767f6f [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for schema (non-cascade)
 discard 2b4af4158e [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for user, group, role
 discard 09c4af9ef5 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for metalake and catalog
 discard 0469549218 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for view, function, model
 discard 67a412d2a4 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for table and fileset
 discard 32b2a823ab [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for topic
 discard 6779604b61 [#12166] improvement(core): add OCC version columns to 
model_meta and wire version CAS
 discard e91b088256 [#12166] improvement(core): slim table/function UPDATE 
WHERE to version CAS; keep fileset/policy full-row
 discard dc35507336 [#12166] improvement(core): slim UPDATE WHERE to version 
CAS for metalake/catalog/schema/tag/user/group/role
 discard b92ead1eea [#12166] improvement(core): slim topic UPDATE WHERE to 
version CAS
 discard ed8e5c673a [#12166] improvement(core): always raise current_version on 
entity update for OCC
     add b464820eb0 [#11844] feat(tag): Support tags for views and functions 
(#11897)
     add f5948f872b [#11985] fix(openapi): drop stray OpenAPI 3.1 null token 
from statistics value (#11987)
     add 61ee16ae63 [#11980] fix(core): sort column ordinal positions while 
fetching from entity store (#11979)
     add fe44f02ecf [#11976] fix(core): refresh built-in job template when 
content drifts even if version is unchanged (#11978)
     add c2c1b8a672 [#11955] feat(iceberg): native geometry and geography type 
support for Iceberg V3 (#11958)
     add cf289fb759 [#11590] fix(doris): fix partition parsing for Doris 3.0+ 
format (#11732)
     add 9fbed05f36 [MINOR] fix: polish log and error message quality across 
Java modules (#10387)
     add 7ba1da7166 [#11962] feat(iceberg): support V3 nanosecond timestamp 
types (#11938)
     add e71af9ca98 [#11902] feat(client-java): Support tags for views and 
functions (#11903)
     add 40ab9a58f2 [#11983] test(iceberg): add end-to-end coverage for 
round-trip of remaining V2 column types (#11984)
     add 425112e554 [MINOR] docs: update Doris catalog documentation for 
3.0.x/4.0.x compatibility (#11995)
     add 69ef06b81b [#11951] feat(iceberg): map V3 unknown type to Gravitino 
NullType (#11969)
     add 438da702f1 [#12009] improvement(core): Support custom case sensitivity 
normalization in Capability (#12010)
     add 771c5e22cd [#11966] feat(auth): add X-Gravitino-Active-Roles header 
grammar and parser (#11970)
     add 8d6591d9f0 [#11946] improvement(api): Add properties field to 
TableChange.AddIndex for custom index parameters (#12013)
     add e5fe677dab [#11963] fix(cli): support parsing the variant column type 
(#11964)
     add 4ff7aac259 [#12014] fix(core): Don't wrap plain ClassNotFoundException 
in IsolatedClassLoader (#12015)
     add 4059726b7f [#5820] test(client-python): Improve IT server lifecycle 
(#11977)
     add b473bfd98f [MINOR] chore: Add nevzheng as GitHub triage collaborator 
(#12028)
     add 41cb729b6e [#3767] refactor(client-python): Share metalake operation 
test fixtures (#11993)
     add f229b4c427 build(deps): bump cachetools from 7.0.1 to 7.1.4 in 
/clients/client-python (#11868)
     add ece6c4168b build(deps): update fakeredis requirement from <2.35.0 to 
<2.37.0 in /mcp-server (#11866)
     add 1f5cee0770 [#3767] refactor(client-python): Share table test fixtures 
(#11992)
     add 64009ee93c [MINOR] fix(web-v2): Normalize service admins configuration 
(#12046)
     add 11c39c2d2a [#3767] refactor(client-python): Share metalake integration 
test setup (#12005)
     add d4190675a0 [#12037] improvement(authz): Improve the JCasbin checks 
(#12001)
     add 4074abf914 [#11985] fix(openapi): repair three codegen-breaking 
defects invisible to lint (#11988)
     add c10925adb7 [#12039] feat(client-python): Add view API definitions 
(#12040)
     add 840fe67f55 Web UI support for built-in IdP Basic login (#11812)
     add 40f9cb4323 [MINOR] fix(web-v2): Remove stale twc prefix from toast 
(#11950)
     add 5863632372 [MINOR] test(client-python): Fix API unit test discovery 
(#12041)
     add 849aa37c71 [#11985] fix(openapi): restore the ExternalType variant to 
DataType (#11991)
     add 988bbe0438 [#11985] fix(openapi): clear the remaining non-lineage 
recommended-strict findings (#11990)
     add b30e457318 [#11985] fix(openapi): correct the OpenLineage translation 
in the lineage schemas (#11989)
     add da99abcc36 [#11943] improvement(iceberg,core): validate warehouse at 
catalog creation and fail fast with an actionable error (#11959)
     add 6842f00b74 [MINOR] improvement(cache): Add logs for Caffeine cache 
removals (#12043)
     add c60b82cc63 [#12038] improvement(scripts): increase relational store 
column comment length limit to 4096 (#12047)
     add a03467c5e5 [#11967] feat(auth): narrow allow enforcement to active 
roles (deny stays global) (#12044)
     add fc88ddc8d4 [#12035] improvement(catalog-jdbc): block DBCP2 
class-loading properties in datasource config (#12036)
     add e675c0465c [#12091] improvement(ci): Route contrib catalog tests to 
contrib CI (#12092)
     add b49d895eaf [MINOR] improvement(authz): Add debug logging for 
list-authorization short-circuit (#12101)
     add 23f871f805 [#11802] fix(clickhouse): support user-defined GRANULARITY 
and validate shard key type (#11806)
     add 648fdd7c1a [#12089] improvement(client-python): Implement client-side 
view models (#12090)
     add 394e0c6a99 build(deps-dev): bump coverage from 7.13.4 to 7.14.3 in 
/clients/client-python (#11872)
     add 65d305fdaa [#12097] improvement(core): Validate names before 
normalizing in CapabilityHelpers (#12098)
     add d9c9237410 [#10093] feat(core): Introduce ClassLoaderPool to share 
ClassLoaders across same-type catalogs (#10480)
     add afbd958c45 [MINOR] fix(jdbc): Quote comments in generated DDL (#12007)
     add 5fe2959078 [#11923] docs(core): add multi-node entity store cache 
invalidation design (#11738)
     add b0aaac4b9a [#12106] improvement(common): gate Kerberos login-module 
debug on sun.security.krb5.debug (#12107)
     add 941f030f3e [#12116] improvement(client-python): Add view create/drop 
operations (#12117)
     add f8d7523b0d [#12095] feat(auth): parse X-Gravitino-Active-Roles into 
the request path (#12096)
     add 1249341afd [#12102] feat(jdbc-doris): Support frequently-used table 
properties (#12103)
     add cf1b173ca8 [MINOR] docs: update credential vending, add vended 
credentials to Trino (#12165)
     add 9e790c649d [#12099] feat(mcp-server): add read tools for table 
partitions (#12128)
     add c54b342ac8 [#12154] fix(core): Clean up orphaned metadata object 
relations (#12160)
     add 2214a29dcc [#12158] improvement(client-python): Add view query/alter 
operations (#12159)
     add a33fa0d1d7 [#12169] fix(auth): clear only role policies on cache 
eviction (#12172)
     add de7b8a3a0c [#12166] improvement(core): always raise current_version on 
entity update for OCC
     add 5bf069ada2 [#12166] improvement(core): slim topic UPDATE WHERE to 
version CAS
     add 313f8cbef1 [#12166] improvement(core): slim UPDATE WHERE to version 
CAS for metalake/catalog/schema/tag/user/group/role
     add cf8184833d [#12166] improvement(core): slim table/function UPDATE 
WHERE to version CAS; keep fileset/policy full-row
     add c5ce5c0ea2 [#12166] improvement(core): add OCC version columns to 
model_meta and wire version CAS
     add 3d7e506910 [#12166] fix(core): roll back dependent writes on OCC 
conflicts
     add 31ea11df0f [#12166] fix(core): load model OCC versions without cache
     new feea8f4c45 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for topic
     new 52a5727d49 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for table and fileset
     new 76140de5b4 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for view, function, model
     new e6245150e7 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for metalake and catalog
     new 47525235e2 [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for user, group, role
     new 897af74faf [#12166] improvement(core): version-checked soft-delete 
(drop CAS) for schema (non-cascade)

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   (6dee767f6f)
            \
             N -- N -- N   refs/heads/feat/12166-occ-drop-cas (897af74faf)

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 6 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:
 .asf.yaml                                          |   1 +
 .../workflows/backend-integration-test-action.yml  |  20 +-
 .github/workflows/backend-integration-test.yml     |  33 --
 .github/workflows/build.yml                        |   3 +
 .github/workflows/contrib-catalog-test.yml         | 132 ++++++
 .../org/apache/gravitino/function/Function.java    |   9 +
 .../java/org/apache/gravitino/rel/TableChange.java |  53 ++-
 .../main/java/org/apache/gravitino/rel/View.java   |   9 +
 .../java/org/apache/gravitino/rel/types/Type.java  |  10 +
 .../java/org/apache/gravitino/rel/types/Types.java | 165 +++++++
 .../java/org/apache/gravitino/TestTableChange.java | 101 +++++
 .../java/org/apache/gravitino/rel/TestTypes.java   |  26 ++
 .../ranger/RangerAuthorizationPlugin.java          |  16 +-
 .../ranger/RangerClientExtension.java              |   4 +-
 .../authorization/ranger/RangerHelper.java         |   2 +-
 .../gcs/credential/GCSTokenGenerator.java          |   2 +-
 .../catalog/clickhouse/ClickHouseConstants.java    |   6 +
 .../operations/ClickHouseTableOperations.java      | 267 +++++++++--
 .../test/CatalogClickHouseClusterIT.java           | 252 ++++++++++
 .../integration/test/CatalogClickHouseIT.java      | 215 +++++++++
 .../operations/TestClickHouseTableOperations.java  | 269 ++++++++++-
 .../TestClickHouseTableOperationsCluster.java      | 379 ++++++++++++++++
 .../catalog/fileset/FilesetCatalogOperations.java  |  12 +-
 .../catalog/hive/HiveCatalogOperations.java        |   2 -
 .../catalog/jdbc/JdbcCatalogOperations.java        |  17 -
 .../catalog/jdbc/utils/DataSourceUtils.java        |  56 +++
 .../catalog/jdbc/utils/JdbcConnectorUtils.java     |  61 +++
 .../catalog/jdbc/TestJdbcCatalogOperations.java    |  71 +--
 .../jdbc/utils/TestDataSourceUrlValidation.java    | 257 ++++++++++-
 .../catalog/jdbc/utils/TestJdbcConnectorUtils.java |  69 +++
 .../doris/DorisTablePropertiesMetadata.java        |  44 +-
 .../doris/operation/DorisTableOperations.java      |  15 +-
 .../gravitino/catalog/doris/utils/DorisUtils.java  |  19 +-
 .../gravitino/catalog/doris/TestDorisCatalog.java  | 124 ++++-
 .../doris/integration/test/CatalogDoris3xIT.java   | 240 ++++++++++
 .../doris/integration/test/CatalogDoris4xIT.java   | 241 ++++++++++
 .../doris/integration/test/CatalogDorisIT.java     | 129 ++++++
 .../operation/TestDorisDatabaseOperations.java     |   2 +-
 .../TestDorisDatabaseOperationsSqlGeneration.java} |  24 +-
 .../TestDorisTableOperationsSqlGeneration.java     |  63 ++-
 .../catalog/doris/utils/TestDorisUtils.java        |  42 ++
 .../mysql/operation/MysqlTableOperations.java      |  12 +-
 .../TestMysqlTableOperationsSqlGeneration.java     |  60 ++-
 .../operation/PostgreSqlSchemaOperations.java      |   5 +-
 .../operation/PostgreSqlTableOperations.java       |  20 +-
 ...stPostgreSqlSchemaOperationsSqlGeneration.java} |  27 +-
 ...TestPostgreSqlTableOperationsSqlGeneration.java |  59 ++-
 .../operations/StarRocksTableOperations.java       |  22 +-
 .../catalog/starrocks/utils/StarRocksUtils.java    |   7 +-
 .../operation/TestStarRocksTableOperations.java    |  50 ++
 .../TestStarRocksTableOperationsSqlGeneration.java |  77 +++-
 .../starrocks/utils/TestStarRocksUtils.java        |  25 +
 .../catalog/lakehouse/iceberg/IcebergCatalog.java  |  16 +
 .../iceberg/IcebergCatalogOperations.java          |  49 +-
 .../iceberg/converter/FromIcebergType.java         |  22 +
 .../lakehouse/iceberg/converter/ToIcebergType.java |  57 ++-
 .../iceberg/converter/ToIcebergTypeVisitor.java    |   7 +
 .../lakehouse/iceberg/TestIcebergCatalog.java      |  11 +
 .../iceberg/TestIcebergCatalogOperations.java      |  53 +++
 .../iceberg/converter/TestConvertUtil.java         | 140 ++++++
 .../integration/test/CatalogIcebergBaseIT.java     | 364 +++++++++++++--
 .../integration/test/CatalogIcebergRestIT.java     | 130 ++++++
 .../integration/test/IcebergClassLoaderPoolIT.java | 265 +++++++++++
 .../integration/test/TestMultipleJDBCLoad.java     |  12 +-
 .../lakehouse/paimon/PaimonCatalogOperations.java  |   4 +-
 .../lakehouse/paimon/ops/PaimonCatalogOps.java     |   2 +-
 .../lakehouse/paimon/utils/CatalogUtils.java       |   6 +-
 .../catalog/hadoop/auth/KerberosAuthUtils.java     |   4 +-
 .../apache/gravitino/hive/CachedClientPool.java    |  10 +-
 .../org/apache/gravitino/cli/TypeConverter.java    |   2 +
 .../org/apache/gravitino/cli/TestParseType.java    |   6 +
 .../apache/gravitino/cli/TestTypeConverter.java    |   1 +
 .../org/apache/gravitino/client/DTOConverters.java |   3 +-
 .../org/apache/gravitino/client/ErrorHandlers.java |   3 +
 .../client/FunctionCatalogOperations.java          |  10 +-
 .../{GenericColumn.java => GenericFunction.java}   |  97 ++--
 .../{GenericColumn.java => GenericView.java}       | 105 +++--
 .../gravitino/client/KerberosTokenProvider.java    |   4 +-
 .../apache/gravitino/client/RelationalCatalog.java |   6 +-
 .../gravitino/client/TestFunctionCatalog.java      |  46 ++
 .../apache/gravitino/client/TestSupportTags.java   | 107 +++++
 .../gravitino/client/integration/test/TagIT.java   | 227 +++++++++
 clients/client-python/build.gradle.kts             |  19 +-
 clients/client-python/gravitino/api/catalog.py     |  10 +
 .../client-python/gravitino/api/rel/dialects.py    |   9 +-
 .../rel/representation.py}                         |  12 +-
 .../rel/sql_representation.py}                     |  35 +-
 .../rel/types/json_serdes/_helper/serdes_utils.py  |  24 +-
 .../client-python/gravitino/api/rel/types/type.py  |   8 +
 .../client-python/gravitino/api/rel/types/types.py | 129 ++++++
 clients/client-python/gravitino/api/rel/view.py    |  68 +++
 .../gravitino/api/rel/view_catalog.py              | 149 ++++++
 .../client-python/gravitino/api/rel/view_change.py | 214 +++++++++
 .../client-python/gravitino/client/generic_view.py |  63 +++
 .../gravitino/client/relational_catalog.py         | 224 ++++++++-
 .../dto/rel/json_serdes/representation_serdes.py   |  49 ++
 .../auditable.py => dto/rel/representation_dto.py} |  17 +-
 .../sql_representation_dto.py}                     |  40 +-
 .../client-python/gravitino/dto/rel/view_dto.py    | 105 +++++
 .../gravitino/dto/requests/view_create_request.py  |  96 ++++
 .../gravitino/dto/requests/view_update_request.py  | 166 +++++++
 ..._updates_request.py => view_updates_request.py} |  26 +-
 ...{function_list_response.py => view_response.py} |  34 +-
 .../gravitino/dto/util/dto_converters.py           |  54 ++-
 clients/client-python/gravitino/exceptions/base.py |   8 +
 ...able_error_handler.py => view_error_handler.py} |  20 +-
 clients/client-python/gravitino/utils/serdes.py    |  10 +
 clients/client-python/requirements-dev.txt         |   4 +-
 clients/client-python/requirements.txt             |   2 +-
 .../tests/integration/integration_test_env.py      |  78 +++-
 .../tests/integration/test_catalog.py              |  37 +-
 .../tests/integration/test_group_management.py     |  10 +-
 .../client-python/tests/integration/test_owner.py  |  37 +-
 .../tests/integration/test_relational_catalog.py   | 171 +++++++
 .../tests/integration/test_role_management.py      |  10 +-
 .../client-python/tests/integration/test_schema.py |  32 +-
 .../client-python/tests/integration/test_user.py   |  41 +-
 .../{gravitino => tests/unittests}/api/__init__.py |   0
 .../unittests/api/rel/test_sql_representation.py   |  54 +++
 .../tests/unittests/api/rel/test_types.py          |  26 ++
 .../tests/unittests/api/rel/test_view.py           |  69 +++
 .../tests/unittests/api/rel/test_view_change.py    | 150 ++++++
 .../api/stats/test_supports_statistics.py          |   9 +-
 .../api => tests/unittests/api/tag}/__init__.py    |   0
 .../unittests/client/operation_test_fixtures.py    |  89 ++++
 .../client/test_metalake_group_operations.py       |  73 +--
 .../client/test_metalake_role_operations.py        | 167 ++-----
 .../client/test_metalake_user_operations.py        |  73 +--
 .../dto/rel/test_representation_serdes.py          |  54 +++
 .../dto/rel/test_sql_representation_dto.py         |  55 +++
 .../tests/unittests/dto/rel/test_table_dto.py      | 129 +-----
 .../tests/unittests/dto/rel/test_view_dto.py       | 293 ++++++++++++
 .../dto/requests/test_view_create_request.py       | 144 ++++++
 .../dto/requests/test_view_update_request.py       | 197 ++++++++
 .../unittests/dto/responses/test_responses.py      | 163 +------
 .../unittests/dto/responses/test_view_response.py  |  51 +++
 .../unittests/dto/util/test_dto_converters.py      | 181 +++-----
 .../api => tests/unittests/fixtures}/__init__.py   |   0
 .../tests/unittests/fixtures/table_fixtures.py     | 222 +++++++++
 .../unittests/json_serdes/test_type_serdes.py      |   9 +
 .../tests/unittests/test_error_handler.py          |  83 ++++
 .../tests/unittests/test_generic_view.py           |  61 +++
 .../tests/unittests/test_relational_catalog.py     | 380 +++++++++++-----
 .../tests/unittests/test_relational_table.py       | 158 +------
 .../client-python/tests/unittests/test_requests.py | 133 +-----
 .../filesystem/hadoop/BaseGVFSOperations.java      |  20 +-
 .../org/apache/gravitino/auth/ActiveRoles.java     | 164 +++++++
 .../apache/gravitino/auth/ActiveRolesParser.java   | 122 +++++
 .../org/apache/gravitino/auth/AuthConstants.java   |  10 +
 ...rType.java => IllegalActiveRolesException.java} |  33 +-
 .../org/apache/gravitino/auth/KerberosUtils.java   |   6 +-
 .../gravitino/dto/requests/TableUpdateRequest.java |  20 +-
 .../java/org/apache/gravitino/json/JsonUtils.java  |  19 +
 .../org/apache/gravitino/auth/TestActiveRoles.java | 102 +++++
 .../gravitino/auth/TestActiveRolesParser.java      | 122 +++++
 .../org/apache/gravitino/json/TestJsonUtils.java   |  33 ++
 conf/gravitino.conf.template                       |   4 +
 .../main/java/org/apache/gravitino/Configs.java    |  12 +
 .../java/org/apache/gravitino/UserPrincipal.java   |  32 ++
 .../apache/gravitino/audit/AuditLogManager.java    |   9 +-
 .../authorization/AuthorizationRequestContext.java |  37 ++
 .../authorization/GravitinoAuthorizer.java         |   2 +-
 .../gravitino/authorization/OwnerManager.java      |   7 +-
 .../auxiliary/AuxiliaryServiceManager.java         |   4 +-
 .../gravitino/cache/CaffeineEntityCache.java       |   4 +-
 .../gravitino/catalog/CapabilityHelpers.java       |  54 ++-
 .../apache/gravitino/catalog/CatalogManager.java   | 202 +++++++--
 .../catalog/FilesetNormalizeDispatcher.java        |  17 +-
 .../catalog/FunctionNormalizeDispatcher.java       |  17 +-
 .../gravitino/catalog/ManagedTableOperations.java  |   8 +-
 .../catalog/ModelNormalizeDispatcher.java          |  17 +-
 .../catalog/PartitionNormalizeDispatcher.java      |  22 +-
 .../catalog/SchemaNormalizeDispatcher.java         |  19 +-
 .../catalog/SchemaOperationDispatcher.java         |   2 +-
 .../catalog/TableNormalizeDispatcher.java          |  17 +-
 .../catalog/TableOperationDispatcher.java          |   2 +-
 .../catalog/TopicNormalizeDispatcher.java          |  17 +-
 .../catalog/TopicOperationDispatcher.java          |   2 +-
 .../gravitino/catalog/ViewNormalizeDispatcher.java |  16 +-
 .../gravitino/catalog/ViewOperationDispatcher.java |   2 +-
 .../apache/gravitino/connector/BaseCatalog.java    |   9 +
 .../gravitino/connector/capability/Capability.java |  20 +
 .../gravitino/credential/CredentialCache.java      |   5 +-
 .../gravitino/hook/CatalogHookDispatcher.java      |   4 +-
 .../job/BuiltInJobTemplateEventListener.java       |   7 +-
 .../gravitino/listener/AsyncQueueListener.java     |   2 +-
 .../apache/gravitino/metrics/MetricsSystem.java    |   2 +-
 .../storage/LancePartitionStatisticStorage.java    |   4 +
 .../gravitino/storage/relational/JDBCBackend.java  |  10 +-
 .../relational/RelationalGarbageCollector.java     |  29 +-
 ...r.java => SupportsOrphanedRelationCleanup.java} |  20 +-
 .../OrphanedMetadataObjectRelationMapper.java      |  81 ++++
 .../OrphanedMetadataObjectRelationSQLProvider.java |  96 ++++
 .../provider/DefaultMapperPackageProvider.java     |   2 +
 .../provider/base/ModelMetaBaseSQLProvider.java    |   8 +-
 .../base/TagMetadataObjectRelBaseSQLProvider.java  |  28 ++
 .../TagMetadataObjectRelPostgreSQLProvider.java    |  28 ++
 .../relational/service/FunctionMetaService.java    |  27 +-
 .../relational/service/GroupMetaService.java       |  23 +-
 .../OrphanedMetadataObjectRelationService.java     | 153 +++++++
 .../relational/service/PolicyMetaService.java      |  26 +-
 .../relational/service/RoleMetaService.java        |  21 +-
 .../relational/service/TableMetaService.java       |  24 +-
 .../relational/service/UserMetaService.java        |  43 +-
 .../java/org/apache/gravitino/tag/TagManager.java  |   4 +-
 .../org/apache/gravitino/utils/ClassLoaderKey.java |  70 +++
 .../apache/gravitino/utils/ClassLoaderPool.java    | 216 +++++++++
 .../gravitino/utils/IsolatedClassLoader.java       |  43 +-
 .../gravitino/utils/PooledClassLoaderEntry.java    | 101 +++++
 .../org/apache/gravitino/utils/PrincipalUtils.java |   6 +-
 .../java/org/apache/gravitino/TestCatalog.java     |   7 +
 .../TestAuthorizationRequestContext.java           |  17 +
 .../gravitino/catalog/TestCapabilityHelpers.java   | 145 ++++++
 .../gravitino/catalog/TestCatalogManager.java      |  74 +++
 .../catalog/TestClassLoaderPoolIntegration.java    | 349 ++++++++++++++
 .../catalog/TestManagedTableOperations.java        |  42 ++
 .../catalog/TestPartitionNormalizeDispatcher.java  |  72 +++
 .../catalog/TestTableNormalizeDispatcher.java      |  82 ++++
 .../gravitino/connector/TestCatalogOperations.java |  10 +-
 .../connector/capability/TestCapability.java       |   8 +
 .../job/TestBuiltInJobTemplateEventListener.java   |  52 ++-
 .../relational/TestRelationalGarbageCollector.java |  72 +++
 .../relational/service/TestCatalogMetaService.java | 157 +++++++
 .../service/TestFunctionMetaService.java           | 108 +++++
 .../relational/service/TestGroupMetaService.java   | 108 +++++
 .../relational/service/TestModelMetaService.java   |  48 ++
 .../TestOrphanedMetadataObjectRelationService.java | 139 ++++++
 .../relational/service/TestPolicyMetaService.java  |  90 ++++
 .../relational/service/TestRoleMetaService.java    |  96 ++++
 .../relational/service/TestSchemaMetaService.java  | 146 ++++++
 .../relational/service/TestTableMetaService.java   | 102 +++++
 .../relational/service/TestUserMetaService.java    | 155 +++++++
 .../relational/service/TestViewMetaService.java    |  41 ++
 .../org/apache/gravitino/tag/TestTagManager.java   | 167 ++++++-
 .../gravitino/utils/TestClassLoaderPool.java       | 428 +++++++++++++++++
 .../gravitino/utils/TestIsolatedClassLoader.java   |  12 +
 .../gravitino/utils/TestMetadataObjectUtil.java    |  11 +
 .../gravitino-entity-cache-multinode-design.md     | 429 +++++++++++++++++
 design-docs/images/coherence-gate.png              | Bin 0 -> 86977 bytes
 design-docs/images/entity-key-invalidation.png     | Bin 0 -> 125578 bytes
 design-docs/images/roadmap.png                     | Bin 0 -> 76171 bytes
 design-docs/images/shared-cache.png                | Bin 0 -> 63940 bytes
 docs/gravitino-mcp-server.md                       |   2 +
 docs/gravitino-server-config.md                    |   1 +
 docs/iceberg-rest-engine/trino.md                  | 320 +++++++------
 docs/jdbc-clickhouse-catalog.md                    |  12 +-
 docs/jdbc-doris-catalog.md                         | 205 +++++++--
 docs/lakehouse-iceberg-catalog.md                  |  16 +-
 docs/manage-relational-metadata-using-gravitino.md |  15 +
 docs/manage-tags-in-gravitino.md                   |  10 +-
 docs/open-api/catalogs.yaml                        |  49 ++
 docs/open-api/datatype.yaml                        |  74 ++-
 docs/open-api/filesets.yaml                        |   1 -
 docs/open-api/indexes.yaml                         |   8 +
 docs/open-api/lineage.yaml                         |  11 +-
 docs/open-api/models.yaml                          |   3 +-
 docs/open-api/openapi.yaml                         |   4 +-
 docs/open-api/policies.yaml                        |   1 +
 docs/open-api/statistics.yaml                      |   6 +-
 docs/open-api/tables.yaml                          |  15 +-
 docs/open-api/tags.yaml                            |   4 +-
 docs/security/credential-vending.md                | 505 +++++++++++++--------
 ...partitioning-distribution-sort-order-indexes.md |  13 +-
 .../iceberg/common/ops/IcebergCatalogWrapper.java  |  74 ---
 .../common/utils/IcebergHiveCachedClientPool.java  |   9 +-
 .../iceberg/service/CatalogWrapperForREST.java     |   5 -
 .../service/IcebergCatalogWrapperManager.java      |   5 +-
 .../iceberg/service/IcebergExceptionMapper.java    |   1 +
 .../service/TestIcebergAuthenticationFilter.java   |  20 +
 .../integration/test/util/TestDatabaseName.java    |  14 +
 .../lance/service/LanceAuthenticationFilter.java   |   7 +
 .../mcp_server/client/gravitino_operation.py       |  11 +
 .../{topic_operation.py => partition_operation.py} |  63 +--
 .../client/plain/plain_rest_client_operation.py    |   9 +
 .../plain/plain_rest_client_partition_operation.py |  65 +++
 mcp-server/mcp_server/tools/__init__.py            |   2 +
 mcp-server/mcp_server/tools/partition.py           | 119 +++++
 mcp-server/pyproject.toml                          |   2 +-
 mcp-server/tests/unit/client/test_url_encoding.py  |  31 ++
 mcp-server/tests/unit/tools/mock_operation.py      |  30 ++
 mcp-server/tests/unit/tools/test_partition.py      |  92 ++++
 .../apache/gravitino/idp/IdpUserGroupManager.java  |   2 +-
 scripts/h2/schema-2.0.0-h2.sql                     |   2 +-
 scripts/h2/upgrade-1.3.0-to-2.0.0-h2.sql           |   3 +
 scripts/mysql/schema-2.0.0-mysql.sql               |   2 +-
 scripts/mysql/upgrade-1.3.0-to-2.0.0-mysql.sql     |   3 +
 scripts/postgresql/schema-2.0.0-postgresql.sql     |   2 +-
 .../upgrade-1.3.0-to-2.0.0-postgresql.sql          |   3 +
 .../authentication/AuthenticationFilter.java       |  24 +-
 .../authentication/KerberosAuthenticator.java      |   4 +-
 .../authorization/GravitinoAuthorizerProvider.java |   2 +-
 .../server/authorization/MetadataAuthzHelper.java  |  72 ++-
 .../authorization/jcasbin/JcasbinAuthorizer.java   | 248 +++++++---
 .../jcasbin/JcasbinLoadedRolesCache.java           |  22 +-
 .../apache/gravitino/server/web/JettyServer.java   |  14 +-
 .../authentication/TestAuthenticationFilter.java   |  80 ++++
 .../authentication/TestKerberosAuthenticator.java  |   4 +-
 .../jcasbin/TestJcasbinAuthorizer.java             | 446 +++++++++++++++++-
 .../server/web/rest/ExceptionHandlers.java         |  10 +
 .../gravitino/server/web/rest/OwnerOperations.java |   4 +-
 .../server/web/rest/PermissionOperations.java      |   4 +-
 .../server/web/rest/SchemaOperations.java          |   2 +-
 .../web/rest/TestMetadataObjectTagOperations.java  | 262 ++++++++++-
 .../gravitino/trino/connector/GravitinoConfig.java |  32 +-
 .../trino/connector/GravitinoConnectorFactory.java |   9 +-
 .../connector/GravitinoConnectorPluginManager.java |  14 +-
 .../gravitino/trino/connector/GravitinoHandle.java |   4 +-
 .../trino/connector/catalog/CatalogRegister.java   |   9 +-
 web-v2/web/src/app/login/components/BasicLogin.js  | 103 +++++
 .../web/src/app/login/components/DefaultLogin.js   |  78 ++--
 web-v2/web/src/app/login/components/SimpleLogin.js |  55 +++
 web-v2/web/src/app/login/page.js                   |  48 +-
 web-v2/web/src/app/metalakes/page.js               |   3 +-
 web-v2/web/src/app/rootLayout/UserSetting.js       |   3 +-
 web-v2/web/src/components/StyledToast.js           |   6 +-
 web-v2/web/src/lib/api/auth/index.js               |  14 +
 web-v2/web/src/lib/provider/session.js             |   8 +
 web-v2/web/src/lib/store/auth/index.js             |  71 ++-
 web-v2/web/src/lib/utils/axios/index.js            |  30 +-
 .../web/src/lib/utils/serviceAdmins.js             |  13 +-
 320 files changed, 16784 insertions(+), 2849 deletions(-)
 create mode 100644 .github/workflows/contrib-catalog-test.yml
 create mode 100644 
catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/utils/TestJdbcConnectorUtils.java
 copy 
catalogs/{catalog-lakehouse-hudi/src/test/java/org/apache/gravitino/catalog/lakehouse/hudi/backend/hms/TestHudiHMSBackend.java
 => 
catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/operation/TestDorisDatabaseOperationsSqlGeneration.java}
 (60%)
 copy 
catalogs/{catalog-lakehouse-hudi/src/test/java/org/apache/gravitino/catalog/lakehouse/hudi/backend/hms/TestHudiHMSBackend.java
 => 
catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/operation/TestPostgreSqlSchemaOperationsSqlGeneration.java}
 (56%)
 create mode 100644 
catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/IcebergClassLoaderPoolIT.java
 copy 
clients/client-java/src/main/java/org/apache/gravitino/client/{GenericColumn.java
 => GenericFunction.java} (57%)
 copy 
clients/client-java/src/main/java/org/apache/gravitino/client/{GenericColumn.java
 => GenericView.java} (58%)
 copy mcp-server/mcp_server/client/plain/exception.py => 
clients/client-python/gravitino/api/rel/dialects.py (84%)
 copy clients/client-python/gravitino/{auth/auth_constants.py => 
api/rel/representation.py} (77%)
 copy clients/client-python/gravitino/{dto/requests/user_add_request.py => 
api/rel/sql_representation.py} (55%)
 create mode 100644 clients/client-python/gravitino/api/rel/view.py
 create mode 100644 clients/client-python/gravitino/api/rel/view_catalog.py
 create mode 100644 clients/client-python/gravitino/api/rel/view_change.py
 create mode 100644 clients/client-python/gravitino/client/generic_view.py
 create mode 100644 
clients/client-python/gravitino/dto/rel/json_serdes/representation_serdes.py
 copy clients/client-python/gravitino/{api/auditable.py => 
dto/rel/representation_dto.py} (70%)
 copy clients/client-python/gravitino/dto/{responses/table_response.py => 
rel/sql_representation_dto.py} (50%)
 create mode 100644 clients/client-python/gravitino/dto/rel/view_dto.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/view_create_request.py
 create mode 100644 
clients/client-python/gravitino/dto/requests/view_update_request.py
 copy clients/client-python/gravitino/dto/requests/{metalake_updates_request.py 
=> view_updates_request.py} (61%)
 copy clients/client-python/gravitino/dto/responses/{function_list_response.py 
=> view_response.py} (55%)
 copy 
clients/client-python/gravitino/exceptions/handlers/{table_error_handler.py => 
view_error_handler.py} (83%)
 copy clients/client-python/{gravitino => tests/unittests}/api/__init__.py 
(100%)
 create mode 100644 
clients/client-python/tests/unittests/api/rel/test_sql_representation.py
 create mode 100644 clients/client-python/tests/unittests/api/rel/test_view.py
 create mode 100644 
clients/client-python/tests/unittests/api/rel/test_view_change.py
 copy clients/client-python/{gravitino/api => 
tests/unittests/api/tag}/__init__.py (100%)
 create mode 100644 
clients/client-python/tests/unittests/client/operation_test_fixtures.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_representation_serdes.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_sql_representation_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/rel/test_view_dto.py
 create mode 100644 
clients/client-python/tests/unittests/dto/requests/test_view_create_request.py
 create mode 100644 
clients/client-python/tests/unittests/dto/requests/test_view_update_request.py
 create mode 100644 
clients/client-python/tests/unittests/dto/responses/test_view_response.py
 copy clients/client-python/{gravitino/api => 
tests/unittests/fixtures}/__init__.py (100%)
 create mode 100644 
clients/client-python/tests/unittests/fixtures/table_fixtures.py
 create mode 100644 clients/client-python/tests/unittests/test_generic_view.py
 create mode 100644 
common/src/main/java/org/apache/gravitino/auth/ActiveRoles.java
 create mode 100644 
common/src/main/java/org/apache/gravitino/auth/ActiveRolesParser.java
 copy common/src/main/java/org/apache/gravitino/auth/{AuthenticatorType.java => 
IllegalActiveRolesException.java} (52%)
 create mode 100644 
common/src/test/java/org/apache/gravitino/auth/TestActiveRoles.java
 create mode 100644 
common/src/test/java/org/apache/gravitino/auth/TestActiveRolesParser.java
 copy 
core/src/main/java/org/apache/gravitino/storage/relational/{EntityChangeLogListener.java
 => SupportsOrphanedRelationCleanup.java} (55%)
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/mapper/OrphanedMetadataObjectRelationMapper.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/mapper/OrphanedMetadataObjectRelationSQLProvider.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/storage/relational/service/OrphanedMetadataObjectRelationService.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/ClassLoaderKey.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/ClassLoaderPool.java
 create mode 100644 
core/src/main/java/org/apache/gravitino/utils/PooledClassLoaderEntry.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/catalog/TestCapabilityHelpers.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/catalog/TestClassLoaderPoolIntegration.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/TestRelationalGarbageCollector.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/storage/relational/service/TestOrphanedMetadataObjectRelationService.java
 create mode 100644 
core/src/test/java/org/apache/gravitino/utils/TestClassLoaderPool.java
 create mode 100644 design-docs/gravitino-entity-cache-multinode-design.md
 create mode 100644 design-docs/images/coherence-gate.png
 create mode 100644 design-docs/images/entity-key-invalidation.png
 create mode 100644 design-docs/images/roadmap.png
 create mode 100644 design-docs/images/shared-cache.png
 mode change 100644 => 100755 docs/security/credential-vending.md
 copy mcp-server/mcp_server/client/{topic_operation.py => 
partition_operation.py} (57%)
 create mode 100644 
mcp-server/mcp_server/client/plain/plain_rest_client_partition_operation.py
 create mode 100644 mcp-server/mcp_server/tools/partition.py
 create mode 100644 mcp-server/tests/unit/tools/test_partition.py
 create mode 100644 web-v2/web/src/app/login/components/BasicLogin.js
 create mode 100644 web-v2/web/src/app/login/components/SimpleLogin.js
 copy web/web/postcss.config.js => web-v2/web/src/lib/utils/serviceAdmins.js 
(78%)


Reply via email to