[Bugfix](light-schema-change) Fix bf columns message miss when load (#11367)

This commit is contained in:
Lightman
2022-08-01 10:53:25 +08:00
committed by GitHub
parent 11f6c69a22
commit 76970200ec
3 changed files with 9 additions and 3 deletions

View File

@ -47,6 +47,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
/**
* This class represents the column-related metadata.
@ -711,7 +712,8 @@ public class Column implements Writable {
return this.uniqueId;
}
public void setIndexFlag(TColumn tColumn, List<Index> indexes) {
public void setIndexFlag(TColumn tColumn, OlapTable olapTable) {
List<Index> indexes = olapTable.getIndexes();
for (Index index : indexes) {
if (index.getIndexType() == IndexDef.IndexType.BITMAP) {
List<String> columns = index.getColumns();
@ -720,5 +722,9 @@ public class Column implements Writable {
}
}
}
Set<String> bfColumns = olapTable.getCopiedBfColumns();
if (bfColumns != null && bfColumns.contains(tColumn.getColumnName())) {
tColumn.setIsBloomFilterColumn(true);
}
}
}

View File

@ -792,7 +792,7 @@ public class OlapScanNode extends ScanNode {
if (selectedIndexId != -1) {
for (Column col : olapTable.getSchemaByIndexId(selectedIndexId, true)) {
TColumn tColumn = col.toThrift();
col.setIndexFlag(tColumn, olapTable.getIndexes());
col.setIndexFlag(tColumn, olapTable);
columnsDesc.add(tColumn);
if ((Util.showHiddenColumns() || (!Util.showHiddenColumns() && col.isVisible())) && col.isKey()) {
keyColumnNames.add(col.getName());

View File

@ -192,7 +192,7 @@ public class OlapTableSink extends DataSink {
columns.addAll(indexMeta.getSchema().stream().map(Column::getName).collect(Collectors.toList()));
for (Column column : indexMeta.getSchema()) {
TColumn tColumn = column.toThrift();
column.setIndexFlag(tColumn, table.getIndexes());
column.setIndexFlag(tColumn, table);
columnsDesc.add(tColumn);
}
TOlapTableIndexSchema indexSchema = new TOlapTableIndexSchema(pair.getKey(), columns,