// pointersmd.proto holds metadata for the pointers section of a data object. The // pointers contains references to other dataobjects in storage, intended for use with indexing. syntax = "proto3"; package dataobj.metadata.pointers.v1; import "pkg/dataobj/internal/metadata/datasetmd/datasetmd.proto"; option go_package = "github.com/grafana/loki/v3/pkg/dataobj/internal/metadata/pointersmd"; // Metadata describes the metadata for the pointers section. message Metadata { // Columns within the pointers section. repeated ColumnDesc columns = 1; // Section sort information. dataobj.metadata.dataset.v1.SectionSortInfo sort_info = 2; } // ColumnDesc describes an individual column within the pointers table. message ColumnDesc { // Information about the column. dataobj.metadata.dataset.v1.ColumnInfo info = 1; // Column type. ColumnType type = 2; } // ColumnType represents the valid types that a pointer's column can have. enum ColumnType { // Invalid column type. COLUMN_TYPE_UNSPECIFIED = 0; // COLUMN_TYPE_PATH is a column containing the data object path in object storage. COLUMN_TYPE_PATH = 1; // COLUMN_TYPE_SECTION is the section number within the referenced data object. COLUMN_TYPE_SECTION = 2; // COLUMN_TYPE_POINTER_ is the type of index this pointer holds: Stream or Column. COLUMN_TYPE_POINTER_KIND = 3; // COLUMN_TYPE_STREAM_ID is a column containing the streamID within the index object COLUMN_TYPE_STREAM_ID = 4; // COLUMN_TYPE_STREAM_ID_REF is a column containing the streamID within the referenced object COLUMN_TYPE_STREAM_ID_REF = 5; // COLUMN_TYPE_MIN_TIMESTAMP is a column containing the minimum timestamp of // a stream. COLUMN_TYPE_MIN_TIMESTAMP = 6; // COLUMN_TYPE_MAX_TIMESTAMP is a column containing the maximum timestamp of // a stream. COLUMN_TYPE_MAX_TIMESTAMP = 7; // COLUMN_TYPE_ROW_COUNT is a column indicating the number of rows for a stream. COLUMN_TYPE_ROW_COUNT = 8; // COLUMN_TYPE_UNCOMPRESSED_SIZE is a column indicating the uncompressed size // of a stream. Size of a stream is the sum of the length of all log lines and // the length of all structured metadata values COLUMN_TYPE_UNCOMPRESSED_SIZE = 9; // COLUMN_TYPE_COLUMN_NAME is the name of a column within a referenced section COLUMN_TYPE_COLUMN_NAME = 10; // COLUMN_TYPE_COLUMN_INDEX is the index of a column within a referenced section to uniquely refer to it. COLUMN_TYPE_COLUMN_INDEX = 11; // COLUMN_TYPE_VALUES_BLOOM_FILTER is the raw bytes of a bloom filter for values stored in referenced column & section. COLUMN_TYPE_VALUES_BLOOM_FILTER = 12; } // ColumnMetadata describes the metadata for a column. message ColumnMetadata { // Pages within the column. repeated PageDesc pages = 1; } // PageDesc describes an individual page within a column. message PageDesc { // Information about the page. dataobj.metadata.dataset.v1.PageInfo info = 1; }