[Enhance](catalog)add table cache in paimon jni (#25014)
- fix get old schema after refresh paimon table - add table cache in paimon jni
This commit is contained in:
@ -55,19 +55,21 @@ public class PaimonExternalTable extends ExternalTable {
|
||||
protected synchronized void makeSureInitialized() {
|
||||
super.makeSureInitialized();
|
||||
if (!objectCreated) {
|
||||
originTable = ((PaimonExternalCatalog) catalog).getPaimonTable(dbName, name);
|
||||
lastUpdateTime = System.currentTimeMillis();
|
||||
objectCreated = true;
|
||||
}
|
||||
}
|
||||
|
||||
public Table getOriginTable() {
|
||||
if (originTable == null) {
|
||||
originTable = ((PaimonExternalCatalog) catalog).getPaimonTable(dbName, name);
|
||||
}
|
||||
makeSureInitialized();
|
||||
return originTable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Column> initSchema() {
|
||||
//init schema need update lastUpdateTime and get latest schema
|
||||
objectCreated = false;
|
||||
Table table = getOriginTable();
|
||||
TableSchema schema = ((AbstractFileStoreTable) table).schema();
|
||||
List<DataField> columns = schema.fields();
|
||||
|
||||
@ -102,6 +102,10 @@ public class PaimonScanNode extends FileQueryScanNode {
|
||||
fileDesc.setDbName(((PaimonExternalTable) source.getTargetTable()).getDbName());
|
||||
fileDesc.setPaimonOptions(((PaimonExternalCatalog) source.getCatalog()).getPaimonOptionsMap());
|
||||
fileDesc.setTableName(source.getTargetTable().getName());
|
||||
fileDesc.setCtlId(source.getCatalog().getId());
|
||||
fileDesc.setDbId(((PaimonExternalTable) source.getTargetTable()).getDbId());
|
||||
fileDesc.setTblId(source.getTargetTable().getId());
|
||||
fileDesc.setLastUpdateTime(source.getTargetTable().getLastUpdateTime());
|
||||
tableFormatFileDesc.setPaimonParams(fileDesc);
|
||||
rangeDesc.setTableFormatParams(tableFormatFileDesc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user