Почему я получаю ошибку при вставке строк с net :: cassandra :: easy и cassandra 0,5x?

StackOverflow https://stackoverflow.com/questions/2488783

  •  21-09-2019
  •  | 
  •  

Вопрос

При использовании модуля Perl Net :: cassandra :: easy Для взаимодействия с Cassandra я использую следующий код для чтения Colums col[123] из рядов row[123] В семье колонны Standard1:

my $cassandra = Net::Cassandra::Easy->new(keyspace => 'Keyspace1', server => 'localhost');
$cassandra->connect();
my $result = $cassandra->get(['row1', 'row2', 'row3'], family => 'Standard1', byname => ['col1', 'col2', 'col3']);

Это работает, как и ожидалось.

Однако при попытке вставить ряд row1 с ..

$result = $cassandra->mutate(['row1'], family => 'Standard1', insertions => { "col1" => "Value to set." });

.. Я получаю сообщение об ошибке Can't use string ("0") as a SCALAR ref while "strict refs" in use at .../Net/GenThrift/Thrift/BinaryProtocol.pm line 376.

Что я делаю не так?

Это было полезно?

Решение 2

Кодекс работает, как и ожидалось в соответствии с Cassandra 0.6.x, но не работает при Cassandra 0.5.x.

Кажется, как будто Net::Cassandra::Easy Нацеливается только на Cassandra 0,6.x.

Обновление до Cassandra 0.6.x решает проблему.

Другие советы

Это похоже на ошибку в библиотеке:

sub readByte
{
    my $self  = shift;
    my $value = shift;

    my $data = $self->{trans}->readAll(1);
    my @arr = unpack('c', $data);
    $$value = $arr[0];    # <~ line 376
    return 1;
}

(из Net :: Genthrift :: Thrift :: BinaryProtocol)

Очевидно, что сабвуар называется откуда -то в библиотеке, где $value не переменная, а постоянный скаляр. Я бы сообщил об ошибке авторам.

Хм, это больше похоже на ошибку привязки Perl при обработке исключения со мной.

Я полагаю, что 0,6 исправляет его для вас, потому что интерфейс действительно изменился, поэтому 0,6 больше не поднимает благотворительное исключение, но ошибка в благотворительстве остается. Я открыл дело JIRA, мы увидим, что команда благотворительности говорит об этом:

https://issues.apache.org/jira/browse/thrift-758

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top