Compare commits

...

2 Commits

Author SHA1 Message Date
pufit
c1f843c713
Merge cf86df9966 into 0fd196771e 2024-11-20 01:45:20 -05:00
pufit
cf86df9966 Make use of ALTER_MOVE_PARTITION privilege. 2024-11-08 01:47:11 -05:00
2 changed files with 8 additions and 2 deletions

View File

@ -168,6 +168,12 @@ AccessRights ContextAccess::addImplicitAccessRights(const AccessRights & access,
res |= show_databases;
}
static const AccessFlags alter_delete = AccessType::ALTER_DELETE;
static const AccessFlags select = AccessType::SELECT;
static const AccessFlags move_partition = AccessType::ALTER_MOVE_PARTITION;
if ((res & alter_delete) && (res & select) && level <= 2)
res |= move_partition;
max_flags |= res;
return res;

View File

@ -467,11 +467,11 @@ AccessRightsElements InterpreterAlterQuery::getRequiredAccessForCommand(const AS
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
break;
case DataDestinationType::TABLE:
required_access.emplace_back(AccessType::SELECT | AccessType::ALTER_DELETE, database, table);
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
required_access.emplace_back(AccessType::INSERT, command.to_database, command.to_table);
break;
case DataDestinationType::SHARD:
required_access.emplace_back(AccessType::SELECT | AccessType::ALTER_DELETE, database, table);
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
required_access.emplace_back(AccessType::MOVE_PARTITION_BETWEEN_SHARDS);
break;
case DataDestinationType::DELETE: