blob: 61b2f5610bc4ef154893974bc63594dff1a7c6d4 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
namespace cpp impala
namespace java org.apache.impala.thrift
include "Types.thrift"
struct TVertexMetadata {
// Table name.
1: required string table_name
// Type of the table (e.g. hive, iceberg, kudu, hbase)
2: required string table_type
// Create time of the table/view.
3: required i64 table_create_time
}
struct TVertex {
// Vertex id
1: required i64 id
// Column label
2: required string label
// Metadata of the vertex.
3: optional TVertexMetadata metadata
}
enum TEdgeType {
PROJECTION = 0
PREDICATE = 1
}
struct TMultiEdge {
// Set of source vertices
1: list<TVertex> sources
// Set of target vertices
2: list<TVertex> targets
// Connecting edge type
3: TEdgeType edgetype
}
struct TLineageGraph {
// Input SQL query
1: required string query_text
// 128-bit Murmur3 hash of the query string
2: required string hash
// Name of the user who issued this query
3: required string user
// Query start time as a unix epoch, set in planner
4: required i64 started
// Query end time as unix epoch.
// Marked as optional as it is set in the backend
5: optional i64 ended
6: list<TMultiEdge> edges
7: list<TVertex> vertices
// Query id in TQueryCtx
8: required Types.TUniqueId query_id
// Set only for external tables to establish
// lineage between the table and it's location.
9: optional string table_location
}