diff --git a/connector/perl/lib/MR/Tarantool/Box.pm b/connector/perl/lib/MR/Tarantool/Box.pm index 7bb67ac23dabb2a9e8dc3abef6de1ba5d5008f24..f60599359955dec257184bbce8854c7e06a51083 100644 --- a/connector/perl/lib/MR/Tarantool/Box.pm +++ b/connector/perl/lib/MR/Tarantool/Box.pm @@ -79,7 +79,7 @@ use constant { sub IPROTOCLASS () { 'MR::IProto' } use vars qw/$VERSION %ERRORS/; -$VERSION = 0.0.14; +$VERSION = 0.0.15; BEGIN { *confess = \&MR::IProto::confess } @@ -331,6 +331,7 @@ sub new { $ns->{default_index} ||= 0; $ns->{primary_key_index} ||= 0; } + $ns->{fields} ||= $arg->{default_fields}; if($ns->{fields}) { confess "space[$namespace] fields must be ARRAYREF" unless ref $ns->{fields} eq 'ARRAY'; confess "space[$namespace] fields number must match format" if @{$ns->{fields}} != @f; diff --git a/connector/perl/lib/MR/Tarantool/Box/Singleton.pm b/connector/perl/lib/MR/Tarantool/Box/Singleton.pm index 3d106a1f800efd2c6ea7a805c9b071638d32ad72..9d4f72d42962b963cb0961deae135c1e7d4d45ba 100644 --- a/connector/perl/lib/MR/Tarantool/Box/Singleton.pm +++ b/connector/perl/lib/MR/Tarantool/Box/Singleton.pm @@ -322,17 +322,12 @@ sub _new_instance { $config->{servers} ||= $class->SERVER; $config->{param}->{name} ||= $class; - - $config->{param}->{spaces} ||= my $sp = $class->SPACES; - $config->{param}->{default_space} ||= my $defsp = @$sp == 1 ? 0 : $class->DEFAULT_SPACE; - - $sp->[$defsp]->{fields} ||= [ $class->FIELDS ] if $class->can('FIELDS'); + $config->{param}->{spaces} ||= $class->SPACES; + $config->{param}->{default_fields} ||= [ $class->FIELDS ] if $class->can('FIELDS'); $config->{param}->{raise} = $class->RAISE unless defined $config->{param}->{raise}; - $config->{param}->{timeout} ||= $class->TIMEOUT; $config->{param}->{select_timeout} ||= $class->SELECT_TIMEOUT; - $config->{param}->{debug} ||= $class->DEBUG; $config->{param}->{ipdebug} ||= $class->IPDEBUG; @@ -341,17 +336,19 @@ sub _new_instance { $config->{param}->{softretry} ||= $class->SOFT_RETRY; $config->{param}->{retry_delay} ||= $class->RETRY_DELAY; - $config->{param}->{fields} ||= [ $class->FIELDS ]; - my $replicas = delete $config->{replicas} || $class->REPLICAS || []; $replicas = [ split /,/, $replicas ] unless ref $replicas eq 'ARRAY'; + $class->CheckConfig($config); + return bless { box => $class->MR_TARANTOOL_BOX_CLASS->new({ servers => $config->{servers}, %{$config->{param}} }), replicas => [ map { $class->MR_TARANTOOL_BOX_CLASS->new({ servers => $_, %{$config->{param}} }) } shuffle @$replicas ], }, $class; } +sub CheckConfig {} + =pod =head3 Add, Insert, Replace, UpdateMulti, Delete