ClickHouse
view release on metacpan or search on metacpan
lib/ClickHouse.pm view on Meta::CPAN
return $self;
}
{
my %_attrs = (
'_host' => 'localhost',
'_port' => 8123,
'_database' => 'default',
'_user' => '',
'_password' => '',
'_keep_alive' => 1,
'_format' => 'TabSeparated',
'_socket' => undef,
'_uri' => undef,
'_timeout' => 30,
);
#
# CLASS METHODS
#
# Returns a copy of the instance.
lib/ClickHouse.pm view on Meta::CPAN
sub _builder {
my ($self) = @_;
delete $self->{'_socket'};
delete $self->{'_uri'};
# create Net::HTTP object
my $socket = Net::HTTP->new(
'Host' => $self->{'_host'},
'PeerPort' => $self->{'_port'},
'HTTPVersion' => '1.1',
'KeepAlive' => $self->{'_keep_alive'},
'Timeout' => $self->{'_timeout'},
) or die "Can't connect: $@";
# create URI object
my $uri = URI->new(sprintf ("/?database=%s", $self->{'_database'}));
$uri->query_param('user' => $self->{'_user'}) if $self->{'_user'};
$uri->query_param('password' => $self->{'_password'}) if $self->{'_password'};
$self->{'_socket'} = $socket;
lib/ClickHouse.pm view on Meta::CPAN
return;
}
croak "No such method: $AUTOLOAD";
}
sub DESTROY {}
sub disconnect {
my ($self) = @_;
if (my $socket = $self->_get_socket()) {
$socket->keep_alive(0);
$self->ping();
}
return 1;
}
sub select {
my ($self, $query) = @_;
return $self->_query(sub {
( run in 1.105 second using v1.01-cache-2.11-cpan-39bf76dae61 )