@Override public Map<String,Object> metaData() { if ( transaction instanceof KernelTransactionImplementation ) { return ((KernelTransactionImplementation) transaction).getMetaData(); } else { return Collections.emptyMap(); } }
@Override public Map<String,Object> getMetaData() { statement.assertOpen(); return statement.getTransaction().getMetaData(); }
@Override public ExecutingQuery startQueryExecution( KernelStatement statement, ClientConnectionInfo clientConnection, String queryText, MapValue queryParameters ) { long queryId = lastQueryId.incrementAndGet(); Thread thread = Thread.currentThread(); long threadId = thread.getId(); String threadName = thread.getName(); ExecutingQuery executingQuery = new ExecutingQuery( queryId, clientConnection, statement.username(), queryText, queryParameters, statement.getTransaction().getMetaData(), () -> statement.locks().activeLockCount(), statement.getPageCursorTracer(), threadId, threadName, clock, cpuClockRef.get(), heapAllocationRef.get() ); registerExecutingQuery( statement, executingQuery ); return executingQuery; }
@Test public void shouldAccessExampleMetaData() { EmbeddedProxySPI spi = mock( EmbeddedProxySPI.class ); final KernelTransactionImplementation transaction = mock( KernelTransactionImplementation.class ); when( transaction.getMetaData() ).thenReturn( genericMap( "username", "Igor" ) ); TxStateTransactionDataSnapshot transactionDataSnapshot = new TxStateTransactionDataSnapshot( state, spi, ops, transaction ); assertEquals( 1, transactionDataSnapshot.metaData().size() ); assertThat( "Expected metadata map to contain defined username", transactionDataSnapshot.metaData(), equalTo( genericMap( "username", "Igor" ) ) ); }
KernelTransactionImplementationHandle( KernelTransactionImplementation tx, SystemNanoClock clock ) { this.txReuseCount = tx.getReuseCount(); this.lastTransactionIdWhenStarted = tx.lastTransactionIdWhenStarted(); this.lastTransactionTimestampWhenStarted = tx.lastTransactionTimestampWhenStarted(); this.startTime = tx.startTime(); this.timeoutMillis = tx.timeout(); this.subject = tx.subjectOrAnonymous(); this.terminationReason = tx.getReasonIfTerminated(); this.executingQueries = tx.executingQueries(); this.metaData = tx.getMetaData(); this.userTransactionId = tx.userTransactionId(); this.tx = tx; this.clock = clock; }
@Override public Map<String,Object> metaData() { if ( transaction instanceof KernelTransactionImplementation ) { return ((KernelTransactionImplementation) transaction).getMetaData(); } else { return Collections.emptyMap(); } }
@Override public Map<String,Object> getMetaData() { statement.assertOpen(); return statement.getTransaction().getMetaData(); }
@Override public ExecutingQuery startQueryExecution( KernelStatement statement, ClientConnectionInfo clientConnection, String queryText, MapValue queryParameters ) { long queryId = lastQueryId.incrementAndGet(); Thread thread = Thread.currentThread(); long threadId = thread.getId(); String threadName = thread.getName(); ExecutingQuery executingQuery = new ExecutingQuery( queryId, clientConnection, statement.username(), queryText, queryParameters, statement.getTransaction().getMetaData(), () -> statement.locks().activeLockCount(), statement.getPageCursorTracer(), threadId, threadName, clock, cpuClockRef.get(), heapAllocationRef.get() ); registerExecutingQuery( statement, executingQuery ); return executingQuery; }
KernelTransactionImplementationHandle( KernelTransactionImplementation tx, SystemNanoClock clock ) { this.txReuseCount = tx.getReuseCount(); this.lastTransactionIdWhenStarted = tx.lastTransactionIdWhenStarted(); this.lastTransactionTimestampWhenStarted = tx.lastTransactionTimestampWhenStarted(); this.startTime = tx.startTime(); this.timeoutMillis = tx.timeout(); this.subject = tx.subjectOrAnonymous(); this.terminationReason = tx.getReasonIfTerminated(); this.executingQueries = tx.executingQueries(); this.metaData = tx.getMetaData(); this.userTransactionId = tx.userTransactionId(); this.tx = tx; this.clock = clock; }