15 package com.cloudera.impala.catalog;
18 import java.util.SortedMap;
19 import java.util.TreeMap;
21 import com.cloudera.impala.thrift.TCatalogObject;
22 import com.cloudera.impala.thrift.TTable;
23 import com.google.common.base.Preconditions;
47 new TreeMap<Long, TCatalogObject>();
53 Preconditions.checkNotNull(catalogObject);
54 removedCatalogObjects_.put(catalogObject.getCatalog_version(), catalogObject);
66 removedCatalogObjects_.firstKey() < currentCatalogVersion) {
68 removedCatalogObjects_.tailMap(currentCatalogVersion));
78 Preconditions.checkNotNull(catalogObject);
82 SortedMap<Long, TCatalogObject> candidateObjects =
83 removedCatalogObjects_.tailMap(catalogObject.getCatalog_version());
84 for (Map.Entry<Long, TCatalogObject> entry: candidateObjects.entrySet()) {
95 if (first.getType() != second.getType())
return false;
96 switch (first.getType()) {
98 return first.getDb().getDb_name().equalsIgnoreCase(second.getDb().getDb_name());
101 TTable firstTbl = first.getTable();
102 return firstTbl.getDb_name().equalsIgnoreCase(second.getTable().getDb_name()) &&
103 firstTbl.getTbl_name().equalsIgnoreCase(second.getTable().getTbl_name());
105 return first.getFn().getSignature().equals(second.getFn().getSignature()) &&
106 first.getFn().getName().equals(second.getFn().getName());
108 return first.getRole().getRole_name().equalsIgnoreCase(
109 second.getRole().getRole_name());
111 return first.getPrivilege().getPrivilege_name().equalsIgnoreCase(
112 second.getPrivilege().getPrivilege_name()) &&
113 first.getPrivilege().getRole_id() == second.getPrivilege().getRole_id();
114 default:
return false;
SortedMap< Long, TCatalogObject > removedCatalogObjects_
synchronized boolean wasObjectRemovedAfter(TCatalogObject catalogObject)
synchronized void addRemovedObject(TCatalogObject catalogObject)
boolean objectNamesMatch(TCatalogObject first, TCatalogObject second)
synchronized void garbageCollect(long currentCatalogVersion)