public void removeExtFilterFromProject(String filterName, String projectName) throws IOException { try (AutoLock lock = prjMapLock.lockForWrite()) { TableMetadataManager metaMgr = getTableManager(); ProjectInstance projectInstance = getProject(projectName); ExternalFilterDesc filter = metaMgr.getExtFilterDesc(filterName); if (filter == null) { throw new IllegalStateException("Cannot find external filter '" + filterName + "' in metadata manager"); } projectInstance.removeExtFilter(filterName); save(projectInstance); } }
public ProjectInstance addExtFilterToProject(String[] filters, String projectName) throws IOException { try (AutoLock lock = prjMapLock.lockForWrite()) { TableMetadataManager metaMgr = getTableManager(); ProjectInstance projectInstance = getProject(projectName); for (String filterName : filters) { ExternalFilterDesc extFilter = metaMgr.getExtFilterDesc(filterName); if (extFilter == null) { throw new IllegalStateException( "Cannot find external filter '" + filterName + "' in metadata manager"); } projectInstance.addExtFilter(filterName); } return save(projectInstance); } }
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN) public void updateExternalFilter(ExternalFilterDesc desc) throws IOException { Message msg = MsgPicker.getMsg(); if (getTableManager().getExtFilterDesc(desc.getName()) == null) { throw new BadRequestException(String.format(Locale.ROOT, msg.getFILTER_NOT_FOUND(), desc.getName())); } getTableManager().saveExternalFilter(desc); }
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN) public void saveExternalFilter(ExternalFilterDesc desc) throws IOException { Message msg = MsgPicker.getMsg(); if (getTableManager().getExtFilterDesc(desc.getName()) != null) { throw new BadRequestException(String.format(Locale.ROOT, msg.getFILTER_ALREADY_EXIST(), desc.getName())); } getTableManager().saveExternalFilter(desc); }
@Override public void addChild(TupleFilter child) { if (child instanceof ColumnTupleFilter) { super.addChild(child); ColumnTupleFilter columnFilter = (ColumnTupleFilter) child; if (this.column != null) { throw new IllegalStateException("Duplicate columns! old is " + column.getName() + " and new is " + columnFilter.getColumn().getName()); } this.column = columnFilter.getColumn(); } else if (child instanceof ConstantTupleFilter) { // super.addChild(child) is omitted because the filter table name is useless at storage side, // we'll extract the useful filterTableResourceIdentifier,filterTableType etc and save it at the MassInTupleFilter itself if (filterTableName == null) { filterTableName = (String) child.getValues().iterator().next(); ExternalFilterDesc externalFilterDesc = TableMetadataManager.getInstance(KylinConfig.getInstanceFromEnv()).getExtFilterDesc(filterTableName); if (externalFilterDesc == null) { throw new IllegalArgumentException("External filter named " + filterTableName + " is not found"); } filterTableType = externalFilterDesc.getFilterTableType(); filterTableResourceIdentifier = externalFilterDesc.getFilterResourceIdentifier(); } } else { throw new IllegalStateException("MassInTupleFilter only has two children: one ColumnTupleFilter and one ConstantTupleFilter"); } }
ExternalFilterDesc filterDesc = metaMgr.getExtFilterDesc(extFilterName); if (filterDesc != null) { projectCache.extFilters.put(extFilterName, filterDesc);
public void removeExtFilterFromProject(String filterName, String projectName) throws IOException { try (AutoLock lock = prjMapLock.lockForWrite()) { TableMetadataManager metaMgr = getTableManager(); ProjectInstance projectInstance = getProject(projectName); ExternalFilterDesc filter = metaMgr.getExtFilterDesc(filterName); if (filter == null) { throw new IllegalStateException("Cannot find external filter '" + filterName + "' in metadata manager"); } projectInstance.removeExtFilter(filterName); save(projectInstance); } }
public ProjectInstance addExtFilterToProject(String[] filters, String projectName) throws IOException { try (AutoLock lock = prjMapLock.lockForWrite()) { TableMetadataManager metaMgr = getTableManager(); ProjectInstance projectInstance = getProject(projectName); for (String filterName : filters) { ExternalFilterDesc extFilter = metaMgr.getExtFilterDesc(filterName); if (extFilter == null) { throw new IllegalStateException( "Cannot find external filter '" + filterName + "' in metadata manager"); } projectInstance.addExtFilter(filterName); } return save(projectInstance); } }
@Override public void addChild(TupleFilter child) { if (child instanceof ColumnTupleFilter) { super.addChild(child); ColumnTupleFilter columnFilter = (ColumnTupleFilter) child; if (this.column != null) { throw new IllegalStateException("Duplicate columns! old is " + column.getName() + " and new is " + columnFilter.getColumn().getName()); } this.column = columnFilter.getColumn(); } else if (child instanceof ConstantTupleFilter) { // super.addChild(child) is omitted because the filter table name is useless at storage side, // we'll extract the useful filterTableResourceIdentifier,filterTableType etc and save it at the MassInTupleFilter itself if (filterTableName == null) { filterTableName = (String) child.getValues().iterator().next(); ExternalFilterDesc externalFilterDesc = TableMetadataManager.getInstance(KylinConfig.getInstanceFromEnv()).getExtFilterDesc(filterTableName); if (externalFilterDesc == null) { throw new IllegalArgumentException("External filter named " + filterTableName + " is not found"); } filterTableType = externalFilterDesc.getFilterTableType(); filterTableResourceIdentifier = externalFilterDesc.getFilterResourceIdentifier(); } } else { throw new IllegalStateException("MassInTupleFilter only has two children: one ColumnTupleFilter and one ConstantTupleFilter"); } }
ExternalFilterDesc filterDesc = metaMgr.getExtFilterDesc(extFilterName); if (filterDesc != null) { projectCache.extFilters.put(extFilterName, filterDesc);