This is an automated email from the ASF dual-hosted git repository. dimas pushed a commit to branch dmitri-tmp1 in repository https://gitbox.apache.org/repos/asf/polaris.git
commit 22893550db9e97b76bd55941466fd4d8e09dd5e5 Author: Michael Collado <[email protected]> AuthorDate: Wed Oct 8 15:36:44 2025 -0700 Pulled out toResolvedPolarisEntity method per PR comment --- .../relational/jdbc/JdbcBasePersistenceImpl.java | 33 ++++++++++---------- .../persistence/cache/InMemoryEntityCache.java | 25 ++++++++------- .../TransactionalMetaStoreManagerImpl.java | 36 +++++++++++----------- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java index 7a032cfac..9401df2dd 100644 --- a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java +++ b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java @@ -18,9 +18,25 @@ */ package org.apache.polaris.persistence.relational.jdbc; +import static org.apache.polaris.persistence.relational.jdbc.QueryGenerator.PreparedQuery; + import com.google.common.base.Preconditions; import jakarta.annotation.Nonnull; import jakarta.annotation.Nullable; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; import org.apache.polaris.core.PolarisCallContext; import org.apache.polaris.core.PolarisDiagnostics; import org.apache.polaris.core.entity.EntityNameLookupRecord; @@ -62,23 +78,6 @@ import org.apache.polaris.persistence.relational.jdbc.models.SchemaVersion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import static org.apache.polaris.persistence.relational.jdbc.QueryGenerator.PreparedQuery; - public class JdbcBasePersistenceImpl implements BasePersistence, IntegrationPersistence { private static final Logger LOGGER = LoggerFactory.getLogger(JdbcBasePersistenceImpl.class); diff --git a/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java b/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java index 784bcf2a4..cf5ad0c21 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java @@ -23,6 +23,18 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalListener; import jakarta.annotation.Nonnull; import jakarta.annotation.Nullable; +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.stream.Collectors; import org.apache.polaris.core.PolarisCallContext; import org.apache.polaris.core.PolarisDiagnostics; import org.apache.polaris.core.config.BehaviorChangeConfiguration; @@ -41,19 +53,6 @@ import org.apache.polaris.core.persistence.dao.entity.ResolvedEntityResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; -import java.util.stream.Collectors; - /** An in-memory entity cache with a limit of 100k entities and a 1h TTL. */ public class InMemoryEntityCache implements EntityCache { private static final Logger LOGGER = LoggerFactory.getLogger(InMemoryEntityCache.class); diff --git a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java index 0bbaf1e6a..db3ccd0f3 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java @@ -2314,28 +2314,28 @@ public class TransactionalMetaStoreManagerImpl extends BaseMetaStoreManager { return entities.get(i); } }) - .map( - e -> { - if (e == null) { - return null; - } else { - // load the grant records - final List<PolarisGrantRecord> grantRecordsAsSecurable = - ms.loadAllGrantRecordsOnSecurableInCurrentTxn( - callCtx, e.getCatalogId(), e.getId()); - final List<PolarisGrantRecord> grantRecordsAsGrantee = - e.getType().isGrantee() - ? ms.loadAllGrantRecordsOnGranteeInCurrentTxn( - callCtx, e.getCatalogId(), e.getId()) - : List.of(); - return new ResolvedPolarisEntity( - PolarisEntity.of(e), grantRecordsAsGrantee, grantRecordsAsSecurable); - } - }) + .map(e -> toResolvedPolarisEntity(callCtx, e, ms)) .collect(Collectors.toList()); return new ResolvedEntitiesResult(ret); } + private static ResolvedPolarisEntity toResolvedPolarisEntity( + PolarisCallContext callCtx, PolarisBaseEntity e, TransactionalPersistence ms) { + if (e == null) { + return null; + } else { + // load the grant records + final List<PolarisGrantRecord> grantRecordsAsSecurable = + ms.loadAllGrantRecordsOnSecurableInCurrentTxn(callCtx, e.getCatalogId(), e.getId()); + final List<PolarisGrantRecord> grantRecordsAsGrantee = + e.getType().isGrantee() + ? ms.loadAllGrantRecordsOnSecurableInCurrentTxn(callCtx, e.getCatalogId(), e.getId()) + : List.of(); + return new ResolvedPolarisEntity( + PolarisEntity.of(e), grantRecordsAsGrantee, grantRecordsAsSecurable); + } + } + @Nonnull @Override public ResolvedEntitiesResult loadResolvedEntities(
