kevinrr888 commented on code in PR #5433:
URL: https://github.com/apache/accumulo/pull/5433#discussion_r2021630112
##########
core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java:
##########
@@ -1511,15 +1511,13 @@ private void changeTableState(String tableName, boolean
wait, TableState newStat
switch (newState) {
case OFFLINE:
op = TFateOperation.TABLE_OFFLINE;
- if (tableName.equals(AccumuloTable.METADATA.tableName())
- || tableName.equals(AccumuloTable.ROOT.tableName())) {
- throw new AccumuloException("Cannot set table to offline state");
- }
+ NOT_BUILTIN_TABLE.validate(tableName);
Review Comment:
Ah I see. Yeah the concern is with the public API.
I'm still not entirely sure what should be done for this. Should probably
make changes to both 2.1 and 4.0. The main concerns are:
1) What ops are/aren't acceptable on system tables.
> in 2.1, can online/offline any table that's not the ROOT table, can
deleteRows of any table that's not the METADATA table, and can bulkImportv2 any
table that's not the ROOT table... Seems like these should be all system
tables, not just META or ROOT.
2)
> I'm wondering if it would be better to move all validation for the table
names (e.g., ensuring it's not a system table, ensuring the table exists,
doesn't exists, etc.) into TableOperationsImpl. Seems like some things are
validated in TableOperationsImpl and some are validated in FateServiceHandler
or both, which is a bit confusing. If we always validate in TableOperationsImpl
we can avoid the RPC.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]