BenchmarkAnything-Storage-Backend-SQL
view release on metacpan or search on metacpan
lib/BenchmarkAnything/Storage/Backend/SQL/Query/common.pm view on Meta::CPAN
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
INSERT INTO raw_bench_bundles
(raw_bench_bundle_serialized)
VALUES ( ? )
", @a_vals );
}
sub copy_benchmark_backup_value {
my ( $or_self, $hr_vals ) = @_;
for my $s_param (qw/ new_bench_value_id old_bench_value_id /) {
if (! $hr_vals->{$s_param} ) {
require Carp;
Carp::confess("missing parameter '$s_param'");
return;
}
}
return $or_self->execute_query( "
INSERT INTO $or_self->{config}{tables}{benchmark_backup_value_table}
( bench_value_id, bench_id, bench_subsume_type_id, bench_value, active, created_at )
SELECT
?, bench_id, bench_subsume_type_id, bench_value, active, created_at
FROM
$or_self->{config}{tables}{benchmark_value_table}
WHERE
bench_value_id = ?
", @{$hr_vals}{qw/ new_bench_value_id old_bench_value_id /} );
}
sub copy_benchmark_backup_additional_relations {
my ( $or_self, $hr_vals ) = @_;
for my $s_param (qw/ new_bench_value_id old_bench_value_id /) {
if (! $hr_vals->{$s_param} ) {
require Carp;
Carp::confess("missing parameter '$s_param'");
return;
}
}
return $or_self->execute_query( "
INSERT INTO $or_self->{config}{tables}{backup_additional_relation_table}
( bench_backup_value_id, bench_additional_value_id, active, created_at )
SELECT
?, bench_additional_value_id, active, created_at
FROM
$or_self->{config}{tables}{additional_relation_table}
WHERE
bench_value_id = ?
", @{$hr_vals}{qw/ new_bench_value_id old_bench_value_id /} );
}
sub update_benchmark_backup_value {
my ( $or_self, $hr_vals ) = @_;
return $or_self->execute_query( "
UPDATE $or_self->{config}{tables}{benchmark_backup_value_table}
SET bench_value_id = ?
WHERE bench_value_id = ?
", @{$hr_vals}{qw/
new_bench_value_id
old_bench_value_id
/} );
}
sub start_processing_raw_bench_bundle {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
UPDATE raw_bench_bundles
SET processing = 1
WHERE raw_bench_bundle_id = ?
", @a_vals );
}
sub start_processing_raw_bench_bundle2 {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
UPDATE raw_bench_bundles
SET processing = 1
WHERE raw_bench_bundle_id IN (".join(',', ('?') x @a_vals).")
", @a_vals );
}
sub update_raw_bench_bundle_set_processed {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
UPDATE raw_bench_bundles
SET processed=1,
processing=0
WHERE processed=0 AND
processing=1 AND
raw_bench_bundle_id = ?
", @a_vals );
}
sub update_raw_bench_bundle_set_processed2 {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
UPDATE raw_bench_bundles
SET processed=1,
processing=0
WHERE processed=0 AND
processing=1 AND
raw_bench_bundle_id IN (".join(',', ('?') x @a_vals).")
", @a_vals );
}
sub update_raw_bench_bundle_set_processed3 {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
UPDATE raw_bench_bundles
SET processed=1,
processing=0
WHERE raw_bench_bundle_id IN (".join(',', ('?') x @a_vals).")
", @a_vals );
}
# sub unlock_raw_bench_bundle {
# my ( $or_self, @a_vals ) = @_;
# return $or_self->execute_query( "
# UPDATE raw_bench_bundles
# SET processing = 0
# WHERE processed = 0 AND
# processing = 1 AND
# raw_bench_bundle_id = ?
# ", @a_vals );
# }
sub delete_benchmark_additional_relations {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
DELETE FROM $or_self->{config}{tables}{additional_relation_table}
WHERE bench_value_id = ?
", @a_vals );
}
sub delete_benchmark_value {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
DELETE FROM $or_self->{config}{tables}{benchmark_value_table}
WHERE bench_value_id = ?
", @a_vals );
}
# Garbage Collection
sub delete_processed_raw_bench_bundles {
my ( $or_self, @a_vals ) = @_;
return $or_self->execute_query( "
DELETE FROM raw_bench_bundles
WHERE processed=1 AND
processing=0
", @a_vals );
}
( run in 1.548 second using v1.01-cache-2.11-cpan-d8267643d1d )