DR-Tarantool
view release on metacpan or search on metacpan
lib/DR/Tarantool/RealSyncClient.pm view on Meta::CPAN
0 =>
{
name => 'temp_space',
fields => [],
indexes => {}
},
);
}
if ($opts{args}) {
my $sa = DR::Tarantool::Space->new(
0 =>
{
name => 'temp_space_args',
fields => $opts{args},
indexes => {}
},
);
$args = $sa->pack_tuple( $args );
}
my $res = $self->_llc->call_lua( $lua_name, $args, $flags );
return $unpack->($self, $res, $s);
}
sub select {
my $self = shift;
my $space = shift;
my $keys = shift;
my ($index, $limit, $offset);
if (@_ == 1) {
$index = shift;
} elsif (@_ == 3) {
($index, $limit, $offset) = @_;
} elsif (@_) {
my %opts = @_;
$index = $opts{index};
$limit = $opts{limit};
$offset = $opts{offset};
}
$index ||= 0;
my $s = $self->space($space);
my $res = $self->_llc->select(
$s->number,
$s->_index( $index )->{no},
$s->pack_keys( $keys, $index ),
$limit,
$offset
);
return $unpack->($self, $res, $s);
}
sub update {
my $self = shift;
my $space = shift;
my $key = shift;
my $op = shift;
my $flags = shift || 0;
my $s = $self->space($space);
my $res = $self->_llc->update(
$s->number,
$s->pack_primary_key( $key ),
$s->pack_operations( $op ),
$flags,
);
return $unpack->($self, $res, $s);
}
sub delete :method {
my $self = shift;
my $space = shift;
my $key = shift;
my $flags = shift || 0;
my $s = $self->space($space);
my $res = $self->_llc->delete(
$s->number,
$s->pack_primary_key( $key ),
$flags,
);
return $unpack->($self, $res, $s);
}
sub last_code { $_[0]->{llc}->last_code }
sub last_error_string { $_[0]->{llc}->last_error_string }
sub raise_error { $_[0]->raise_error };
sub _llc { $_[0]{llc} }
1;
( run in 1.016 second using v1.01-cache-2.11-cpan-39bf76dae61 )