def METHOD_NAME(
    cls,
    cmd: sd.Command,
    schema: s_schema.Schema,
    astnode: qlast.DDLOperation,
    context: sd.CommandContext,
) -> None:
    password = cmd.get_attribute_value('password')
    if password is not None:
        if cmd.get_attribute_value('password_hash') is not None:
            raise errors.EdgeQLSyntaxError(
                'cannot specify both `password` and `password_hash` in'
                ' the same statement',
                context=astnode.context,
            )
        salted_password = scram.build_verifier(password)
        cmd.set_attribute_value('password', salted_password)
    password_hash = cmd.get_attribute_value('password_hash')
    if password_hash is not None:
        try:
            scram.parse_verifier(password_hash)
        except ValueError as e:
            raise errors.InvalidValueError(
                e.args[0],
                context=astnode.context)
        cmd.set_attribute_value('password', password_hash)