@Override public KernelTransaction kernelTransaction() { return statementContext.getKernelTransactionBoundToThisThread( true ); }
@Override public KernelTransaction beginTransaction( LoginContext loginContext, Duration txTimeout, Map<String,Object> txMetadata ) { beginTransaction( explicit, loginContext, txTimeout, txMetadata ); return txBridge.getKernelTransactionBoundToThisThread( false ); }
@Override public Statement get() { return getKernelTransactionBoundToThisThread( true ).acquireStatement(); }
void suspendSinceTransactionsAreStillThreadBound() { assert suspendedTransaction == null : "Can't suspend the transaction if it already is suspended."; suspendedTransaction = bridge.getKernelTransactionBoundToThisThread( true ); bridge.unbindTransactionFromCurrentThread(); }
private <T> ResourceIterable<T> allInUse( final TokenAccess<T> tokens ) { assertTransactionOpen(); return () -> tokens.inUse( statementContext.getKernelTransactionBoundToThisThread( true ) ); }
public KernelTransaction transaction() { ensureStarted(); return database.getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ) .getKernelTransactionBoundToThisThread( true ); }
private InternalTransaction beginTransactionInternal( KernelTransaction.Type type, LoginContext loginContext, long timeoutMillis ) { if ( statementContext.hasTransaction() ) { // FIXME: perhaps we should check that the new type and access mode are compatible with the current tx return new PlaceboTransaction( statementContext.getKernelTransactionBoundToThisThread( true ) ); } return new TopLevelTransaction( spi.beginTransaction( type, loginContext, timeoutMillis ) ); }
private KernelTransaction ktx() { return graphDatabaseAPI.getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ).getKernelTransactionBoundToThisThread( true ); } }
private KernelTransaction ktx() { return ((GraphDatabaseAPI) db).getDependencyResolver() .resolveDependency( ThreadToStatementContextBridge.class ) .getKernelTransactionBoundToThisThread( true ); }
private static KernelTransaction transactionOn( GraphDatabaseService db ) { DependencyResolver resolver = ((GraphDatabaseAPI) db).getDependencyResolver(); ThreadToStatementContextBridge bridge = resolver.resolveDependency( ThreadToStatementContextBridge.class ); return bridge.getKernelTransactionBoundToThisThread( true ); }
private TopLevelTransaction activeTransaction() { ThreadToStatementContextBridge bridge = db.getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ); KernelTransaction kernelTransaction = bridge.getKernelTransactionBoundToThisThread( false ); return kernelTransaction == null ? null : new TopLevelTransaction( kernelTransaction ); } }
@Override public ResourceIterator<Node> findNodes( final Label myLabel, final String key, final Object value ) { KernelTransaction transaction = statementContext.getKernelTransactionBoundToThisThread( true ); TokenRead tokenRead = transaction.tokenRead(); int labelId = tokenRead.nodeLabel( myLabel.name() ); int propertyId = tokenRead.propertyKey( key ); return nodesByLabelAndProperty( transaction, labelId, IndexQuery.exact( propertyId, Values.of( value ) ) ); }
@Before public void exposeGuts() { transactionSupplier = () -> db.getGraphDatabaseAPI().getDependencyResolver() .resolveDependency( ThreadToStatementContextBridge.class ).getKernelTransactionBoundToThisThread( true ); }
@Before public void setUp() { kernelTransactionSupplier = () -> db.getGraphDatabaseAPI().getDependencyResolver() .resolveDependency( ThreadToStatementContextBridge.class ).getKernelTransactionBoundToThisThread( true ); }
@Before public void exposeGuts() { ktxSupplier = () -> db.getGraphDatabaseAPI().getDependencyResolver() .resolveDependency( ThreadToStatementContextBridge.class ) .getKernelTransactionBoundToThisThread( true ); }
@Override public ResourceIterator<Node> findNodes( Label label, String key1, Object value1, String key2, Object value2 ) { KernelTransaction transaction = statementContext.getKernelTransactionBoundToThisThread( true ); TokenRead tokenRead = transaction.tokenRead(); int labelId = tokenRead.nodeLabel( label.name() ); return nodesByLabelAndProperties( transaction, labelId, IndexQuery.exact( tokenRead.propertyKey( key1 ), Values.of( value1 ) ), IndexQuery.exact( tokenRead.propertyKey( key2 ), Values.of( value2 ) ) ); }
private void dropIndex( IndexReference index ) throws KernelException { try ( Transaction tx = db.beginTx() ) { KernelTransaction ktx = bridge.getKernelTransactionBoundToThisThread( true ); try ( Statement ignore = ktx.acquireStatement() ) { ktx.schemaWrite().indexDrop( index ); } tx.success(); } }
private int getPropertyKeyId( String name ) { try ( Transaction tx = database.beginTx() ) { KernelTransaction transaction = ((GraphDatabaseAPI) database).getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ).getKernelTransactionBoundToThisThread( true ); return transaction.tokenRead().propertyKey( name ); } }
private int getLabelId( String name ) { try ( Transaction tx = database.beginTx() ) { KernelTransaction transaction = ((GraphDatabaseAPI) database).getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ).getKernelTransactionBoundToThisThread( true ); return transaction.tokenRead().nodeLabel( name ); } } }
@Test public void shouldHandleNodeDetachDeleteConcurrentlyWithIndexDrop() throws Throwable { shouldHandleIndexDropConcurrentlyWithOperation( nodeId -> { ThreadToStatementContextBridge txBridge = db.getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ); txBridge.getKernelTransactionBoundToThisThread( true ).dataWrite().nodeDetachDelete( nodeId ); } ); }