Class JdbcBasePersistenceImpl

java.lang.Object
org.apache.polaris.persistence.relational.jdbc.JdbcBasePersistenceImpl
All Implemented Interfaces:
org.apache.polaris.core.persistence.BasePersistence, org.apache.polaris.core.persistence.IntegrationPersistence, org.apache.polaris.core.policy.PolicyMappingPersistence

public class JdbcBasePersistenceImpl extends Object implements org.apache.polaris.core.persistence.BasePersistence, org.apache.polaris.core.persistence.IntegrationPersistence
  • Constructor Summary

    Constructors
    Constructor
    Description
    JdbcBasePersistenceImpl(DatasourceOperations databaseOperations, org.apache.polaris.core.persistence.PrincipalSecretsGenerator secretsGenerator, org.apache.polaris.core.storage.PolarisStorageIntegrationProvider storageIntegrationProvider, String realmId)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo>
    org.apache.polaris.core.storage.PolarisStorageIntegration<T>
    createStorageIntegration(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId, org.apache.polaris.core.storage.PolarisStorageConfigurationInfo polarisStorageConfigurationInfo)
     
    void
    deleteAll(org.apache.polaris.core.PolarisCallContext callCtx)
     
    void
    deleteAllEntityGrantRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisEntityCore entity, List<org.apache.polaris.core.entity.PolarisGrantRecord> grantsOnGrantee, List<org.apache.polaris.core.entity.PolarisGrantRecord> grantsOnSecurable)
     
    void
    deleteAllEntityPolicyMappingRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisBaseEntity entity, List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> mappingOnTarget, List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> mappingOnPolicy)
     
    void
    deleteEntity(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisBaseEntity entity)
     
    void
    deleteFromGrantRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisGrantRecord grantRec)
     
    void
    deleteFromPolicyMappingRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.policy.PolarisPolicyMappingRecord record)
     
    void
    deletePrincipalSecrets(org.apache.polaris.core.PolarisCallContext callCtx, String clientId, long principalId)
     
    long
    generateNewId(org.apache.polaris.core.PolarisCallContext callCtx)
     
    org.apache.polaris.core.entity.PolarisPrincipalSecrets
    generateNewPrincipalSecrets(org.apache.polaris.core.PolarisCallContext callCtx, String principalName, long principalId)
     
    boolean
    hasChildren(org.apache.polaris.core.PolarisCallContext callContext, org.apache.polaris.core.entity.PolarisEntityType optionalEntityType, long catalogId, long parentId)
     
    <T extends org.apache.polaris.core.entity.PolarisEntity & org.apache.polaris.core.entity.LocationBasedEntity>
    Optional<Optional<String>>
    hasOverlappingSiblings(org.apache.polaris.core.PolarisCallContext callContext, T entity)
    <T> org.apache.polaris.core.persistence.pagination.Page<T>
    listEntities(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, org.apache.polaris.core.entity.PolarisEntityType entityType, Predicate<org.apache.polaris.core.entity.PolarisBaseEntity> entityFilter, Function<org.apache.polaris.core.entity.PolarisBaseEntity,T> transformer, org.apache.polaris.core.persistence.pagination.PageToken pageToken)
     
    org.apache.polaris.core.persistence.pagination.Page<org.apache.polaris.core.entity.EntityNameLookupRecord>
    listEntities(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, org.apache.polaris.core.entity.PolarisEntityType entityType, Predicate<org.apache.polaris.core.entity.PolarisBaseEntity> entityFilter, org.apache.polaris.core.persistence.pagination.PageToken pageToken)
     
    org.apache.polaris.core.persistence.pagination.Page<org.apache.polaris.core.entity.EntityNameLookupRecord>
    listEntities(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, org.apache.polaris.core.entity.PolarisEntityType entityType, org.apache.polaris.core.persistence.pagination.PageToken pageToken)
     
    List<org.apache.polaris.core.entity.PolarisGrantRecord>
    loadAllGrantRecordsOnGrantee(org.apache.polaris.core.PolarisCallContext callCtx, long granteeCatalogId, long granteeId)
     
    List<org.apache.polaris.core.entity.PolarisGrantRecord>
    loadAllGrantRecordsOnSecurable(org.apache.polaris.core.PolarisCallContext callCtx, long securableCatalogId, long securableId)
     
    List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord>
    loadAllPoliciesOnTarget(org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId)
     
    List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord>
    loadAllTargetsOnPolicy(org.apache.polaris.core.PolarisCallContext callCtx, long policyCatalogId, long policyId, int policyTypeCode)
     
    <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo>
    org.apache.polaris.core.storage.PolarisStorageIntegration<T>
    loadPolarisStorageIntegration(org.apache.polaris.core.PolarisCallContext callContext, org.apache.polaris.core.entity.PolarisBaseEntity entity)
     
    List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord>
    loadPoliciesOnTargetByType(org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId, int policyTypeCode)
     
    org.apache.polaris.core.entity.PolarisPrincipalSecrets
    loadPrincipalSecrets(org.apache.polaris.core.PolarisCallContext callCtx, String clientId)
     
    List<org.apache.polaris.core.entity.PolarisBaseEntity>
    lookupEntities(org.apache.polaris.core.PolarisCallContext callCtx, List<org.apache.polaris.core.entity.PolarisEntityId> entityIds)
     
    org.apache.polaris.core.entity.PolarisBaseEntity
    lookupEntity(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId, int typeCode)
     
    org.apache.polaris.core.entity.PolarisBaseEntity
    lookupEntityByName(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, int typeCode, String name)
     
    int
    lookupEntityGrantRecordsVersion(org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId)
     
    List<org.apache.polaris.core.entity.PolarisChangeTrackingVersions>
    lookupEntityVersions(org.apache.polaris.core.PolarisCallContext callCtx, List<org.apache.polaris.core.entity.PolarisEntityId> entityIds)
     
    org.apache.polaris.core.entity.PolarisGrantRecord
    lookupGrantRecord(org.apache.polaris.core.PolarisCallContext callCtx, long securableCatalogId, long securableId, long granteeCatalogId, long granteeId, int privilegeCode)
     
    org.apache.polaris.core.policy.PolarisPolicyMappingRecord
    lookupPolicyMappingRecord(org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId, int policyTypeCode, long policyCatalogId, long policyId)
     
    <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo>
    void
    persistStorageIntegrationIfNeeded(org.apache.polaris.core.PolarisCallContext callContext, org.apache.polaris.core.entity.PolarisBaseEntity entity, org.apache.polaris.core.storage.PolarisStorageIntegration<T> storageIntegration)
     
    org.apache.polaris.core.entity.PolarisPrincipalSecrets
    rotatePrincipalSecrets(org.apache.polaris.core.PolarisCallContext callCtx, String clientId, long principalId, boolean reset, String oldSecretHash)
     
    void
    writeEntities(org.apache.polaris.core.PolarisCallContext callCtx, List<org.apache.polaris.core.entity.PolarisBaseEntity> entities, List<org.apache.polaris.core.entity.PolarisBaseEntity> originalEntities)
     
    void
    writeEntity(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisBaseEntity entity, boolean nameOrParentChanged, org.apache.polaris.core.entity.PolarisBaseEntity originalEntity)
     
    void
    writeToGrantRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.entity.PolarisGrantRecord grantRec)
     
    void
    writeToPolicyMappingRecords(org.apache.polaris.core.PolarisCallContext callCtx, org.apache.polaris.core.policy.PolarisPolicyMappingRecord record)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.polaris.core.persistence.BasePersistence

    detach, lookupEntityIdAndSubTypeByName
  • Constructor Details

    • JdbcBasePersistenceImpl

      public JdbcBasePersistenceImpl(DatasourceOperations databaseOperations, org.apache.polaris.core.persistence.PrincipalSecretsGenerator secretsGenerator, org.apache.polaris.core.storage.PolarisStorageIntegrationProvider storageIntegrationProvider, String realmId)
  • Method Details

    • generateNewId

      public long generateNewId(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx)
      Specified by:
      generateNewId in interface org.apache.polaris.core.persistence.BasePersistence
    • writeEntity

      public void writeEntity(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisBaseEntity entity, boolean nameOrParentChanged, org.apache.polaris.core.entity.PolarisBaseEntity originalEntity)
      Specified by:
      writeEntity in interface org.apache.polaris.core.persistence.BasePersistence
    • writeEntities

      public void writeEntities(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull List<org.apache.polaris.core.entity.PolarisBaseEntity> entities, List<org.apache.polaris.core.entity.PolarisBaseEntity> originalEntities)
      Specified by:
      writeEntities in interface org.apache.polaris.core.persistence.BasePersistence
    • writeToGrantRecords

      public void writeToGrantRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisGrantRecord grantRec)
      Specified by:
      writeToGrantRecords in interface org.apache.polaris.core.persistence.BasePersistence
    • deleteEntity

      public void deleteEntity(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisBaseEntity entity)
      Specified by:
      deleteEntity in interface org.apache.polaris.core.persistence.BasePersistence
    • deleteFromGrantRecords

      public void deleteFromGrantRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisGrantRecord grantRec)
      Specified by:
      deleteFromGrantRecords in interface org.apache.polaris.core.persistence.BasePersistence
    • deleteAllEntityGrantRecords

      public void deleteAllEntityGrantRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisEntityCore entity, @Nonnull List<org.apache.polaris.core.entity.PolarisGrantRecord> grantsOnGrantee, @Nonnull List<org.apache.polaris.core.entity.PolarisGrantRecord> grantsOnSecurable)
      Specified by:
      deleteAllEntityGrantRecords in interface org.apache.polaris.core.persistence.BasePersistence
    • deleteAll

      public void deleteAll(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx)
      Specified by:
      deleteAll in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupEntity

      public org.apache.polaris.core.entity.PolarisBaseEntity lookupEntity(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId, int typeCode)
      Specified by:
      lookupEntity in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupEntityByName

      public org.apache.polaris.core.entity.PolarisBaseEntity lookupEntityByName(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, int typeCode, @Nonnull String name)
      Specified by:
      lookupEntityByName in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupEntities

      @Nonnull public List<org.apache.polaris.core.entity.PolarisBaseEntity> lookupEntities(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, List<org.apache.polaris.core.entity.PolarisEntityId> entityIds)
      Specified by:
      lookupEntities in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupEntityVersions

      @Nonnull public List<org.apache.polaris.core.entity.PolarisChangeTrackingVersions> lookupEntityVersions(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, List<org.apache.polaris.core.entity.PolarisEntityId> entityIds)
      Specified by:
      lookupEntityVersions in interface org.apache.polaris.core.persistence.BasePersistence
    • listEntities

      @Nonnull public org.apache.polaris.core.persistence.pagination.Page<org.apache.polaris.core.entity.EntityNameLookupRecord> listEntities(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, @Nonnull org.apache.polaris.core.entity.PolarisEntityType entityType, @Nonnull org.apache.polaris.core.persistence.pagination.PageToken pageToken)
      Specified by:
      listEntities in interface org.apache.polaris.core.persistence.BasePersistence
    • listEntities

      @Nonnull public org.apache.polaris.core.persistence.pagination.Page<org.apache.polaris.core.entity.EntityNameLookupRecord> listEntities(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, @Nonnull org.apache.polaris.core.entity.PolarisEntityType entityType, @Nonnull Predicate<org.apache.polaris.core.entity.PolarisBaseEntity> entityFilter, @Nonnull org.apache.polaris.core.persistence.pagination.PageToken pageToken)
      Specified by:
      listEntities in interface org.apache.polaris.core.persistence.BasePersistence
    • listEntities

      @Nonnull public <T> org.apache.polaris.core.persistence.pagination.Page<T> listEntities(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long parentId, org.apache.polaris.core.entity.PolarisEntityType entityType, @Nonnull Predicate<org.apache.polaris.core.entity.PolarisBaseEntity> entityFilter, @Nonnull Function<org.apache.polaris.core.entity.PolarisBaseEntity,T> transformer, @Nonnull org.apache.polaris.core.persistence.pagination.PageToken pageToken)
      Specified by:
      listEntities in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupEntityGrantRecordsVersion

      public int lookupEntityGrantRecordsVersion(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId)
      Specified by:
      lookupEntityGrantRecordsVersion in interface org.apache.polaris.core.persistence.BasePersistence
    • lookupGrantRecord

      public org.apache.polaris.core.entity.PolarisGrantRecord lookupGrantRecord(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long securableCatalogId, long securableId, long granteeCatalogId, long granteeId, int privilegeCode)
      Specified by:
      lookupGrantRecord in interface org.apache.polaris.core.persistence.BasePersistence
    • loadAllGrantRecordsOnSecurable

      @Nonnull public List<org.apache.polaris.core.entity.PolarisGrantRecord> loadAllGrantRecordsOnSecurable(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long securableCatalogId, long securableId)
      Specified by:
      loadAllGrantRecordsOnSecurable in interface org.apache.polaris.core.persistence.BasePersistence
    • loadAllGrantRecordsOnGrantee

      @Nonnull public List<org.apache.polaris.core.entity.PolarisGrantRecord> loadAllGrantRecordsOnGrantee(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long granteeCatalogId, long granteeId)
      Specified by:
      loadAllGrantRecordsOnGrantee in interface org.apache.polaris.core.persistence.BasePersistence
    • hasChildren

      public boolean hasChildren(@Nonnull org.apache.polaris.core.PolarisCallContext callContext, org.apache.polaris.core.entity.PolarisEntityType optionalEntityType, long catalogId, long parentId)
      Specified by:
      hasChildren in interface org.apache.polaris.core.persistence.BasePersistence
    • hasOverlappingSiblings

      public <T extends org.apache.polaris.core.entity.PolarisEntity & org.apache.polaris.core.entity.LocationBasedEntity> Optional<Optional<String>> hasOverlappingSiblings(@Nonnull org.apache.polaris.core.PolarisCallContext callContext, T entity)
      Specified by:
      hasOverlappingSiblings in interface org.apache.polaris.core.persistence.BasePersistence
    • loadPrincipalSecrets

      @Nullable public org.apache.polaris.core.entity.PolarisPrincipalSecrets loadPrincipalSecrets(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull String clientId)
      Specified by:
      loadPrincipalSecrets in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • generateNewPrincipalSecrets

      @Nonnull public org.apache.polaris.core.entity.PolarisPrincipalSecrets generateNewPrincipalSecrets(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull String principalName, long principalId)
      Specified by:
      generateNewPrincipalSecrets in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • rotatePrincipalSecrets

      @Nullable public org.apache.polaris.core.entity.PolarisPrincipalSecrets rotatePrincipalSecrets(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull String clientId, long principalId, boolean reset, @Nonnull String oldSecretHash)
      Specified by:
      rotatePrincipalSecrets in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • deletePrincipalSecrets

      public void deletePrincipalSecrets(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull String clientId, long principalId)
      Specified by:
      deletePrincipalSecrets in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • writeToPolicyMappingRecords

      public void writeToPolicyMappingRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.policy.PolarisPolicyMappingRecord record)
      Specified by:
      writeToPolicyMappingRecords in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • deleteFromPolicyMappingRecords

      public void deleteFromPolicyMappingRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.policy.PolarisPolicyMappingRecord record)
      Specified by:
      deleteFromPolicyMappingRecords in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • deleteAllEntityPolicyMappingRecords

      public void deleteAllEntityPolicyMappingRecords(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, @Nonnull org.apache.polaris.core.entity.PolarisBaseEntity entity, @Nonnull List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> mappingOnTarget, @Nonnull List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> mappingOnPolicy)
      Specified by:
      deleteAllEntityPolicyMappingRecords in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • lookupPolicyMappingRecord

      @Nullable public org.apache.polaris.core.policy.PolarisPolicyMappingRecord lookupPolicyMappingRecord(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId, int policyTypeCode, long policyCatalogId, long policyId)
      Specified by:
      lookupPolicyMappingRecord in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • loadPoliciesOnTargetByType

      @Nonnull public List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> loadPoliciesOnTargetByType(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId, int policyTypeCode)
      Specified by:
      loadPoliciesOnTargetByType in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • loadAllPoliciesOnTarget

      @Nonnull public List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> loadAllPoliciesOnTarget(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long targetCatalogId, long targetId)
      Specified by:
      loadAllPoliciesOnTarget in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • loadAllTargetsOnPolicy

      @Nonnull public List<org.apache.polaris.core.policy.PolarisPolicyMappingRecord> loadAllTargetsOnPolicy(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long policyCatalogId, long policyId, int policyTypeCode)
      Specified by:
      loadAllTargetsOnPolicy in interface org.apache.polaris.core.policy.PolicyMappingPersistence
    • createStorageIntegration

      @Nullable public <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo> org.apache.polaris.core.storage.PolarisStorageIntegration<T> createStorageIntegration(@Nonnull org.apache.polaris.core.PolarisCallContext callCtx, long catalogId, long entityId, org.apache.polaris.core.storage.PolarisStorageConfigurationInfo polarisStorageConfigurationInfo)
      Specified by:
      createStorageIntegration in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • persistStorageIntegrationIfNeeded

      public <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo> void persistStorageIntegrationIfNeeded(@Nonnull org.apache.polaris.core.PolarisCallContext callContext, @Nonnull org.apache.polaris.core.entity.PolarisBaseEntity entity, @Nullable org.apache.polaris.core.storage.PolarisStorageIntegration<T> storageIntegration)
      Specified by:
      persistStorageIntegrationIfNeeded in interface org.apache.polaris.core.persistence.IntegrationPersistence
    • loadPolarisStorageIntegration

      @Nullable public <T extends org.apache.polaris.core.storage.PolarisStorageConfigurationInfo> org.apache.polaris.core.storage.PolarisStorageIntegration<T> loadPolarisStorageIntegration(@Nonnull org.apache.polaris.core.PolarisCallContext callContext, @Nonnull org.apache.polaris.core.entity.PolarisBaseEntity entity)
      Specified by:
      loadPolarisStorageIntegration in interface org.apache.polaris.core.persistence.IntegrationPersistence