Class RDBDocumentStoreJDBC
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStoreJDBC
-
public class RDBDocumentStoreJDBC extends Object
Implements (most) DB interactions used inRDBDocumentStore
.
-
-
Constructor Summary
Constructors Constructor Description RDBDocumentStoreJDBC(RDBDocumentStoreDB dbInfo, RDBDocumentSerializer ser, int queryHitsLimit, int queryTimeLimit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
appendingUpdate(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, Long modified, boolean setModifiedConditionally, Number hasBinary, Boolean deletedOnce, Long modcount, Long cmodcount, Long oldmodcount, String appendData)
int
delete(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<String> allIds)
int
delete(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, Map<String,Long> toDelete)
int
deleteWithCondition(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<RDBDocumentStore.QueryCondition> conditions)
long
determineServerTimeDifferenceMillis(Connection connection)
long
getLong(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String aggregate, String field, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions)
<T extends Document>
Set<String>insert(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<T> documents)
@NotNull List<RDBRow>
query(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions, int limit)
@NotNull Iterator<RDBRow>
queryAsIterator(RDBConnectionHandler ch, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions, int limit, String sortBy)
@Nullable RDBRow
read(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, long lastmodcount, long lastmodified)
List<RDBRow>
read(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, Collection<String> allKeys)
boolean
update(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, Long modified, Number hasBinary, Boolean deletedOnce, Long modcount, Long cmodcount, Long oldmodcount, String data)
<T extends Document>
Set<String>update(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<T> documents, boolean upsert)
Update a list of documents using JDBC batches.
-
-
-
Constructor Detail
-
RDBDocumentStoreJDBC
public RDBDocumentStoreJDBC(RDBDocumentStoreDB dbInfo, RDBDocumentSerializer ser, int queryHitsLimit, int queryTimeLimit)
-
-
Method Detail
-
appendingUpdate
public boolean appendingUpdate(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, Long modified, boolean setModifiedConditionally, Number hasBinary, Boolean deletedOnce, Long modcount, Long cmodcount, Long oldmodcount, String appendData) throws SQLException
- Throws:
SQLException
-
delete
public int delete(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<String> allIds) throws SQLException
- Throws:
SQLException
-
delete
public int delete(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, Map<String,Long> toDelete) throws SQLException
- Throws:
SQLException
-
deleteWithCondition
public int deleteWithCondition(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<RDBDocumentStore.QueryCondition> conditions) throws SQLException, DocumentStoreException
- Throws:
SQLException
DocumentStoreException
-
determineServerTimeDifferenceMillis
public long determineServerTimeDifferenceMillis(Connection connection)
-
insert
public <T extends Document> Set<String> insert(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<T> documents) throws SQLException
- Throws:
SQLException
-
update
public <T extends Document> Set<String> update(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, List<T> documents, boolean upsert) throws SQLException
Update a list of documents using JDBC batches. Some of the updates may fail because of the concurrent changes. The method returns a set of successfully updated documents. It's the caller responsibility to compare the set with the list of input documents, find out which documents conflicted and take appropriate action.If the
upsert
parameter is set to true, the method will also try to insert new documents, those which modcount equals to 1.The order of applying updates will be different than order of the passed list, so there shouldn't be two updates related to the same document. An
IllegalArgumentException
will be thrown if there are.- Parameters:
connection
- JDBC connectiontmd
- Table metadatadocuments
- List of documents to updateupsert
- Insert new documents- Returns:
- set containing ids of successfully updated documents
- Throws:
SQLException
-
query
@NotNull public @NotNull List<RDBRow> query(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions, int limit) throws SQLException
- Throws:
SQLException
-
getLong
public long getLong(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String aggregate, String field, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions) throws SQLException
- Throws:
SQLException
-
queryAsIterator
@NotNull public @NotNull Iterator<RDBRow> queryAsIterator(RDBConnectionHandler ch, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String minId, String maxId, List<String> excludeKeyPatterns, List<RDBDocumentStore.QueryCondition> conditions, int limit, String sortBy) throws SQLException
- Throws:
SQLException
-
read
public List<RDBRow> read(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, Collection<String> allKeys) throws SQLException
- Throws:
SQLException
-
read
@Nullable public @Nullable RDBRow read(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, long lastmodcount, long lastmodified) throws SQLException
- Throws:
SQLException
-
update
public boolean update(Connection connection, org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.RDBTableMetaData tmd, String id, Long modified, Number hasBinary, Boolean deletedOnce, Long modcount, Long cmodcount, Long oldmodcount, String data) throws SQLException
- Throws:
SQLException
-
-