Class PostgresDatabaseAdapter
- java.lang.Object
-
- org.projectnessie.versioned.persist.adapter.spi.AbstractDatabaseAdapter<ConnectionWrapper,TxDatabaseAdapterConfig>
-
- org.projectnessie.versioned.persist.tx.TxDatabaseAdapter
-
- org.projectnessie.versioned.persist.tx.postgres.PostgresDatabaseAdapter
-
- All Implemented Interfaces:
org.projectnessie.versioned.persist.adapter.DatabaseAdapter
public class PostgresDatabaseAdapter extends TxDatabaseAdapter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.projectnessie.versioned.persist.tx.TxDatabaseAdapter
TxDatabaseAdapter.LoopOp, TxDatabaseAdapter.NessieSqlDataType
-
Nested classes/interfaces inherited from class org.projectnessie.versioned.persist.adapter.spi.AbstractDatabaseAdapter
org.projectnessie.versioned.persist.adapter.spi.AbstractDatabaseAdapter.CommonAncestorState, org.projectnessie.versioned.persist.adapter.spi.AbstractDatabaseAdapter.ConflictingKeyCheckResult
-
-
Field Summary
-
Fields inherited from class org.projectnessie.versioned.persist.tx.TxDatabaseAdapter
CONSTRAINT_VIOLATION_SQL_CODE, CONSTRAINT_VIOLATION_SQL_STATE, DEADLOCK_SQL_STATE_POSTGRES, REF_TYPE_BRANCH, REF_TYPE_TAG, RETRY_SQL_STATE_COCKROACH
-
-
Constructor Summary
Constructors Constructor Description PostgresDatabaseAdapter(TxDatabaseAdapterConfig config, TxConnectionProvider<?> db, org.projectnessie.versioned.persist.adapter.events.AdapterEventConsumer eventConsumer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanbatchDDL()Whether this implementation shall use bates for DDL operations to create tables.protected java.util.Map<TxDatabaseAdapter.NessieSqlDataType,java.lang.String>databaseSqlFormatParameters()Get database-specific 'strings' like column definitions for 'BLOB' column types.protected java.lang.StringinsertOnConflictDoNothing(java.lang.String insertSql)Some RDBMS' just return an error when an INSERT/UPDATE/DELETE violates a constraint, like a primary key, but other RDBMS' like PostgreSQL do return an error and mark the whole transaction as failed.protected booleanmetadataUpperCase()Whether the database/JDBC-driver require schema-metadata-queries require upper-case names.-
Methods inherited from class org.projectnessie.versioned.persist.tx.TxDatabaseAdapter
allCreateTableDDL, assertCleanStateForTests, assign, borrowConnection, checkNamedRefExistence, checkNamedRefExistence, commit, commitLog, consistentPutAttachment, create, delete, deleteAttachments, diff, doFetchFromCommitLog, doFetchFromRefLog, doFetchGlobalStates, doFetchKeyLists, doFetchMultipleFromCommitLog, doFetchPageFromRefLog, doScanAllCommitLogEntries, doUpdateMultipleCommits, doWriteIndividualCommit, doWriteKeyListEntities, doWriteMultipleCommits, entitySize, entitySize, eraseRepo, fetchNamedRef, fetchNamedRefHead, fetchNamedRefs, fetchRepositoryDescription, getAttachmentKeys, getRefLogHead, globalContent, hashOnRef, hashOnReference, initializeRepo, insertNewReference, insertRefLogHead, isIntegrityConstraintViolation, isRetryTransaction, keys, mapToAttachment, merge, namedRef, namedRefFromRow, namedRefs, newConnection, newIntegrityConstraintViolationException, opLoop, persistAttachments, putAttachments, readRefLog, referenceTypeDiscriminator, refLog, repoMaintenance, sqlForManyPlaceholders, throwIfReferenceConflictException, transplant, tryMoveNamedReference, updateMultipleCommits, updateRefLogHead, updateRepositoryDescription, values, writeMany, writeMultipleCommits
-
Methods inherited from class org.projectnessie.versioned.persist.adapter.spi.AbstractDatabaseAdapter
buildDiff, buildIndividualCommit, buildKeyList, checkConflictingKeysForCommit, checkExpectedGlobalStates, checkForModifiedKeysBetweenExpectedAndCurrentCommit, commitAttempt, copyCommits, fetchCommitLogEntries, fetchFromCommitLog, fetchFromRefLog, fetchGlobalStates, fetchKeyLists, fetchPageFromRefLog, fetchValues, findCommonAncestor, findCommonAncestor, getConfig, getEventConsumer, hashOnRef, hashOnRef, hasKeyCollisions, individualCommitHash, keysForCommitEntry, keysForCommitEntry, logFetcher, logFetcherWithPage, maxEntitySize, mergeAttempt, mergeTransplantCommon, namedReferenceWithCommitMeta, namedRefsAnyRetrieves, namedRefsFilterAndEnhance, namedRefsMaybeFilter, namedRefsRequiresBaseReference, namedRefsRequiresBaseReference, namedRefsRetrieveOptionsForReference, namedRefsRetrieveOptionsForReference, namedRefsWithDefaultBranchRelatedInfo, noAncestorHash, readCommitLog, readCommitLogHashes, readCommitLogHashesStream, readCommitLogStream, readCommitLogStream, readRefLogStream, rebuildKeyList, repositoryEvent, scanAllCommitLogEntries, squashCommits, transplantAttempt, tryLoopStateCompletion, validateHashExists, writeIndividualCommit, writeKeyListEntities, writeMultipleCommits
-
-
-
-
Constructor Detail
-
PostgresDatabaseAdapter
public PostgresDatabaseAdapter(TxDatabaseAdapterConfig config, TxConnectionProvider<?> db, org.projectnessie.versioned.persist.adapter.events.AdapterEventConsumer eventConsumer)
-
-
Method Detail
-
databaseSqlFormatParameters
protected java.util.Map<TxDatabaseAdapter.NessieSqlDataType,java.lang.String> databaseSqlFormatParameters()
Description copied from class:TxDatabaseAdapterGet database-specific 'strings' like column definitions for 'BLOB' column types. Used as placeholders to format the DDL statements fromTxDatabaseAdapter.allCreateTableDDL().- Specified by:
databaseSqlFormatParametersin classTxDatabaseAdapter- See Also:
TxDatabaseAdapter.NessieSqlDataType,TxDatabaseAdapter.allCreateTableDDL()
-
insertOnConflictDoNothing
protected java.lang.String insertOnConflictDoNothing(java.lang.String insertSql)
Description copied from class:TxDatabaseAdapterSome RDBMS' just return an error when an INSERT/UPDATE/DELETE violates a constraint, like a primary key, but other RDBMS' like PostgreSQL do return an error and mark the whole transaction as failed. This function allows is meant to be implemented for RDBMS' that do mark the transaction as failed to modify an INSERT SQL statement to neither yield an error nor mark the transaction as failed.- Overrides:
insertOnConflictDoNothingin classTxDatabaseAdapter
-
metadataUpperCase
protected boolean metadataUpperCase()
Description copied from class:TxDatabaseAdapterWhether the database/JDBC-driver require schema-metadata-queries require upper-case names.- Overrides:
metadataUpperCasein classTxDatabaseAdapter
-
batchDDL
protected boolean batchDDL()
Description copied from class:TxDatabaseAdapterWhether this implementation shall use bates for DDL operations to create tables.- Overrides:
batchDDLin classTxDatabaseAdapter
-
-