use of io.trino.spi.eventlistener.QueryCompletedEvent in project trino by trinodb.
the class QueryMonitor method queryImmediateFailureEvent.
public void queryImmediateFailureEvent(BasicQueryInfo queryInfo, ExecutionFailureInfo failure) {
eventListenerManager.queryCompleted(new QueryCompletedEvent(new QueryMetadata(queryInfo.getQueryId().toString(), queryInfo.getSession().getTransactionId().map(TransactionId::toString), queryInfo.getQuery(), queryInfo.getUpdateType(), queryInfo.getPreparedQuery(), queryInfo.getState().toString(), ImmutableList.of(), ImmutableList.of(), queryInfo.getSelf(), Optional.empty(), Optional.empty()), new QueryStatistics(ofMillis(0), ofMillis(0), ofMillis(0), ofMillis(queryInfo.getQueryStats().getQueuedTime().toMillis()), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ImmutableList.of(), 0, true, ImmutableList.of(), ImmutableList.of(), Optional.empty()), createQueryContext(queryInfo.getSession(), queryInfo.getResourceGroupId(), queryInfo.getQueryType()), new QueryIOMetadata(ImmutableList.of(), Optional.empty()), createQueryFailureInfo(failure, Optional.empty()), ImmutableList.of(), ofEpochMilli(queryInfo.getQueryStats().getCreateTime().getMillis()), ofEpochMilli(queryInfo.getQueryStats().getEndTime().getMillis()), ofEpochMilli(queryInfo.getQueryStats().getEndTime().getMillis())));
logQueryTimeline(queryInfo);
}
use of io.trino.spi.eventlistener.QueryCompletedEvent in project trino by trinodb.
the class TestEventListenerBasic method testReferencedTablesInCreateMaterializedView.
@Test
public void testReferencedTablesInCreateMaterializedView() throws Exception {
runQueryAndWaitForEvents("CREATE MATERIALIZED VIEW mock.default.test_view AS SELECT * FROM nation", 2);
QueryCompletedEvent event = getOnlyElement(generatedEvents.getQueryCompletedEvents());
assertThat(event.getIoMetadata().getOutput().get().getCatalogName()).isEqualTo("mock");
assertThat(event.getIoMetadata().getOutput().get().getSchema()).isEqualTo("default");
assertThat(event.getIoMetadata().getOutput().get().getTable()).isEqualTo("test_view");
assertThat(event.getIoMetadata().getOutput().get().getColumns().get()).containsExactly(new OutputColumnMetadata("nationkey", BIGINT_TYPE, ImmutableSet.of(new ColumnDetail("tpch", "tiny", "nation", "nationkey"))), new OutputColumnMetadata("name", "varchar(25)", ImmutableSet.of(new ColumnDetail("tpch", "tiny", "nation", "name"))), new OutputColumnMetadata("regionkey", BIGINT_TYPE, ImmutableSet.of(new ColumnDetail("tpch", "tiny", "nation", "regionkey"))), new OutputColumnMetadata("comment", "varchar(152)", ImmutableSet.of(new ColumnDetail("tpch", "tiny", "nation", "comment"))));
List<TableInfo> tables = event.getMetadata().getTables();
assertThat(tables).hasSize(1);
TableInfo table = tables.get(0);
assertThat(table.getCatalog()).isEqualTo("tpch");
assertThat(table.getSchema()).isEqualTo("tiny");
assertThat(table.getTable()).isEqualTo("nation");
assertThat(table.getAuthorization()).isEqualTo("user");
assertThat(table.isDirectlyReferenced()).isTrue();
assertThat(table.getFilters()).isEmpty();
assertThat(table.getColumns()).hasSize(4);
}
use of io.trino.spi.eventlistener.QueryCompletedEvent in project trino by trinodb.
the class TestEventListenerBasic method testOutputColumnsForUpdatingSingleColumn.
@Test
public void testOutputColumnsForUpdatingSingleColumn() throws Exception {
runQueryAndWaitForEvents("UPDATE mock.default.table_for_output SET test_varchar = 're-reset' WHERE test_bigint = 1", 2);
QueryCompletedEvent event = getOnlyElement(generatedEvents.getQueryCompletedEvents());
assertThat(event.getIoMetadata().getOutput().get().getColumns().get()).containsExactly(new OutputColumnMetadata("test_varchar", VARCHAR_TYPE, ImmutableSet.of()));
}
use of io.trino.spi.eventlistener.QueryCompletedEvent in project trino by trinodb.
the class TestEventListenerBasic method testReferencedTablesWithRowFilter.
@Test
public void testReferencedTablesWithRowFilter() throws Exception {
runQueryAndWaitForEvents("SELECT 1 FROM mock.default.test_table_with_row_filter", 2);
QueryCompletedEvent event = getOnlyElement(generatedEvents.getQueryCompletedEvents());
List<TableInfo> tables = event.getMetadata().getTables();
assertThat(tables).hasSize(2);
TableInfo table = tables.get(0);
assertThat(table.getCatalog()).isEqualTo("tpch");
assertThat(table.getSchema()).isEqualTo("tiny");
assertThat(table.getTable()).isEqualTo("nation");
assertThat(table.getAuthorization()).isEqualTo("user");
assertThat(table.isDirectlyReferenced()).isFalse();
assertThat(table.getFilters()).isEmpty();
assertThat(table.getColumns()).hasSize(1);
ColumnInfo column = table.getColumns().get(0);
assertThat(column.getColumn()).isEqualTo("name");
assertThat(column.getMasks()).isEmpty();
table = tables.get(1);
assertThat(table.getCatalog()).isEqualTo("mock");
assertThat(table.getSchema()).isEqualTo("default");
assertThat(table.getTable()).isEqualTo("test_table_with_row_filter");
assertThat(table.getAuthorization()).isEqualTo("user");
assertThat(table.isDirectlyReferenced()).isTrue();
assertThat(table.getFilters()).hasSize(1);
assertThat(table.getColumns()).hasSize(1);
column = table.getColumns().get(0);
assertThat(column.getColumn()).isEqualTo("test_varchar");
assertThat(column.getMasks()).isEmpty();
}
use of io.trino.spi.eventlistener.QueryCompletedEvent in project trino by trinodb.
the class TestEventListenerBasic method testOutputColumnsForCreateTableAsSelectAllFromView.
@Test
public void testOutputColumnsForCreateTableAsSelectAllFromView() throws Exception {
runQueryAndWaitForEvents("CREATE TABLE mock.default.create_new_table AS SELECT * FROM mock.default.test_view", 2);
QueryCompletedEvent event = getOnlyElement(generatedEvents.getQueryCompletedEvents());
assertThat(event.getIoMetadata().getOutput().get().getColumns().get()).containsExactly(new OutputColumnMetadata("test_column", BIGINT_TYPE, ImmutableSet.of(new ColumnDetail("mock", "default", "test_view", "test_column"))));
}
Aggregations