@Override public ReturnState dropTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String dbName = request.getDatabaseName(); String tbName = request.getTableName(); if (linkedMetadataManager.existsDatabase(dbName)) { return errInsufficientPrivilege("drop a table in database '" + dbName + "'"); } if (metaDictionary.isSystemDatabase(dbName)) { return errInsufficientPrivilege("drop a table in database '" + dbName + "'"); } wlock.lock(); try { store.dropTable(dbName, tbName); LOG.info(String.format("relation \"%s\" is deleted from the catalog (%s)", CatalogUtil.getCanonicalTableName(dbName, tbName), bindAddressStr)); return OK; } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { wlock.unlock(); } }
@Override public ReturnState dropTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String dbName = request.getDatabaseName(); String tbName = request.getTableName(); if (linkedMetadataManager.existsDatabase(dbName)) { return errInsufficientPrivilege("drop a table in database '" + dbName + "'"); } if (metaDictionary.isSystemDatabase(dbName)) { return errInsufficientPrivilege("drop a table in database '" + dbName + "'"); } wlock.lock(); try { store.dropTable(dbName, tbName); LOG.info(String.format("relation \"%s\" is deleted from the catalog (%s)", IdentifierUtil.getCanonicalTableName(dbName, tbName), bindAddress)); return OK; } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { wlock.unlock(); } }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptorForType().hashCode(); if (hasDatabaseName()) { hash = (37 * hash) + DATABASE_NAME_FIELD_NUMBER; hash = (53 * hash) + getDatabaseName().hashCode(); } if (hasTableName()) { hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER; hash = (53 * hash) + getTableName().hashCode(); } if (hasDbId()) { hash = (37 * hash) + DBID_FIELD_NUMBER; hash = (53 * hash) + getDbId(); } if (hasTid()) { hash = (37 * hash) + TID_FIELD_NUMBER; hash = (53 * hash) + getTid(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; }
@Override public IndexResponse getIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNamesList = request.getColumnNamesList(); String[] columnNames = new String[columnNamesList.size()]; columnNames = columnNamesList.toArray(columnNames); rlock.lock(); try { if (!store.existIndexByColumns(databaseName, tableName, columnNames)) { return IndexResponse.newBuilder() .setState(errUndefinedIndex(tableName, columnNamesList)) .build(); } return IndexResponse.newBuilder() .setState(OK) .setIndexDesc(store.getIndexByColumns(databaseName, tableName, columnNames)) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return IndexResponse.newBuilder() .setState(returnError(t)) .build(); } finally { rlock.unlock(); } }
@Override public ReturnState existsPartitions(RpcController controller, TableIdentifierProto request) throws ServiceException { String dbName = request.getDatabaseName(); String tbName = request.getTableName(); // linked meta data do not support partition. // So, the request that wants to get partitions in this db will be failed. if (linkedMetadataManager.existsDatabase(dbName)) { return errUndefinedPartitionMethod(tbName); } if (metaDictionary.isSystemDatabase(dbName)) { return errUndefinedPartitionMethod(tbName); } else { rlock.lock(); try { if (store.existPartitions(dbName, tbName)) { return OK; } else { return errUndefinedPartitions(tbName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } } }
@Override public ReturnState existIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNames = request.getColumnNamesList(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexByColumns(databaseName, tableName, columnNames.toArray(new String[columnNames.size()])) ? OK : errUndefinedIndex(tableName, columnNames); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
result = result && getTableName() .equals(other.getTableName());
@Override public ReturnState existIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNames = request.getColumnNamesList(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexByColumns(databaseName, tableName, columnNames.toArray(new String[columnNames.size()])) ? OK : errUndefinedIndex(tableName, columnNames); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public IndexResponse getIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNamesList = request.getColumnNamesList(); String[] columnNames = new String[columnNamesList.size()]; columnNames = columnNamesList.toArray(columnNames); rlock.lock(); try { if (!store.existIndexByColumns(databaseName, tableName, columnNames)) { return IndexResponse.newBuilder() .setState(errUndefinedIndex(tableName, columnNamesList)) .build(); } return IndexResponse.newBuilder() .setState(OK) .setIndexDesc(store.getIndexByColumns(databaseName, tableName, columnNames)) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return IndexResponse.newBuilder() .setState(returnError(t)) .build(); } finally { rlock.unlock(); } }
@Override public ReturnState existsTable(RpcController controller, TableIdentifierProto request) { String dbName = request.getDatabaseName(); String tbName = request.getTableName(); if (linkedMetadataManager.existsDatabase(dbName)) { return linkedMetadataManager.existsTable(dbName, "", tbName) ? OK : errUndefinedTable(tbName); } if (metaDictionary.isSystemDatabase(dbName)) { return metaDictionary.existTable(tbName) ? OK : errUndefinedTable(tbName); } else { rlock.lock(); try { if (store.existTable(dbName, tbName)) { return OK; } else { return errUndefinedTable(tbName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } } }
@Override public ReturnState existIndexesByTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String databaseName = request.getDatabaseName(); String tableName = request.getTableName(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexesByTable(databaseName, tableName) ? OK : errUndefinedIndex(tableName); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState existIndexesByTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String databaseName = request.getDatabaseName(); String tableName = request.getTableName(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexesByTable(databaseName, tableName) ? OK : errUndefinedIndex(tableName); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState existsTable(RpcController controller, TableIdentifierProto request) { String dbName = request.getDatabaseName(); String tbName = request.getTableName(); if (linkedMetadataManager.existsDatabase(dbName)) { return linkedMetadataManager.existsTable(dbName, "", tbName) ? OK : errUndefinedTable(tbName); } if (metaDictionary.isSystemDatabase(dbName)) { return metaDictionary.existTable(tbName) ? OK : errUndefinedTable(tbName); } else { rlock.lock(); try { if (store.existTable(dbName, tbName)) { return OK; } else { return errUndefinedTable(tbName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } } }
public IndexDesc(IndexDescProto proto) { this(); SortSpec[] keySortSpecs = new SortSpec[proto.getKeySortSpecsCount()]; for (int i = 0; i < keySortSpecs.length; i++) { keySortSpecs[i] = new SortSpec(proto.getKeySortSpecs(i)); } try { this.set(proto.getTableIdentifier().getDatabaseName(), proto.getTableIdentifier().getTableName(), proto.getIndexName(), new URI(proto.getIndexPath()), keySortSpecs, proto.getIndexMethod(), proto.getIsUnique(), proto.getIsClustered(), new Schema(proto.getTargetRelationSchema())); } catch (URISyntaxException e) { e.printStackTrace(); } }
public IndexDesc(IndexDescProto proto) { this(); SortSpec[] keySortSpecs = new SortSpec[proto.getKeySortSpecsCount()]; for (int i = 0; i < keySortSpecs.length; i++) { keySortSpecs[i] = new SortSpec(proto.getKeySortSpecs(i)); } try { this.set(proto.getTableIdentifier().getDatabaseName(), proto.getTableIdentifier().getTableName(), proto.getIndexName(), new URI(proto.getIndexPath()), keySortSpecs, proto.getIndexMethod(), proto.getIsUnique(), proto.getIsClustered(), SchemaFactory.newV1(proto.getTargetRelationSchema())); } catch (URISyntaxException e) { e.printStackTrace(); } }
@Override public ReturnState addPartitions(RpcController controller, AddPartitionsProto request) { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); rlock.lock(); try { store.addPartitions(databaseName, tableName, request.getPartitionDescList(), request.getIfNotExists()); return OK; } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState addPartitions(RpcController controller, AddPartitionsProto request) { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); rlock.lock(); try { store.addPartitions(databaseName, tableName, request.getPartitionDescList(), request.getIfNotExists()); return OK; } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
public PartitionMethodDesc(CatalogProtos.PartitionMethodProto proto) { this(proto.getTableIdentifier().getDatabaseName(), proto.getTableIdentifier().getTableName(), proto.getPartitionType(), proto.getExpression(), SchemaFactory.newV1(proto.getExpressionSchema())); }
/** * <code>required string table_name = 2;</code> */ public Builder clearTableName() { bitField0_ = (bitField0_ & ~0x00000002); tableName_ = getDefaultInstance().getTableName(); onChanged(); return this; } /**
public PartitionMethodDesc(CatalogProtos.PartitionMethodProto proto) { this(proto.getTableIdentifier().getDatabaseName(), proto.getTableIdentifier().getTableName(), proto.getPartitionType(), proto.getExpression(), new Schema(proto.getExpressionSchema())); }