diff --git a/fhem/CHANGED b/fhem/CHANGED index d62f280f8..b7a0a3842 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - bugfix: 93_DbRep: SQL syntax for Postgre maxValue deleteOther Forum:#134170 - bugfix: 93_DbRep: fix check of DbRep_afterproc, DbRep_beforeproc if should exec PERL code - bugfix : 74_AutomowerConnect: Common.pm fixed bug in WS filter diff --git a/fhem/FHEM/93_DbRep.pm b/fhem/FHEM/93_DbRep.pm index 313c7f25f..c9971a23c 100644 --- a/fhem/FHEM/93_DbRep.pm +++ b/fhem/FHEM/93_DbRep.pm @@ -59,6 +59,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch'; # Version History intern my %DbRep_vNotesIntern = ( + "8.52.9" => "05.07.2023 fix wrong SQL syntax for PostgreSQL -> maxValue deleteOther, Forum:#134170 ", "8.52.8" => "28.06.2023 fix check of DbRep_afterproc, DbRep_beforeproc if should exec PERL code ", "8.52.7" => "16.05.2023 DbRep_afterproc, DbRep_beforeproc can execute FHEM commands as well as PERL code ", "8.52.6" => "11.04.2023 change diffValue for aggr month ", @@ -13700,11 +13701,11 @@ sub DbRep_deleteOtherFromDB { my ($dbh,$sth,$timestamp,$value,$addon,$row_extreme_time,$runtime_string_first,$runtime_string_next); my @row_array; - my %rh = split("§", $rows); + my %rh = split "§", $rows; for my $key (sort(keys(%rh))) { # Inhalt $rh{$key} -> $runtime_string."|".$max_value."|".$row_max_time."|".$runtime_string_first."|".$runtime_string_next - my @k = split("\\|",$rh{$key}); + my @k = split "\\|", $rh{$key}; $value = $k[1] // undef; $row_extreme_time = $k[2]; $runtime_string_first = $k[3]; @@ -13728,7 +13729,7 @@ sub DbRep_deleteOtherFromDB { my $dlines = 0; for my $row (@row_array) { - my @a = split("\\|",$row); + my @a = split "\\|", $row; $device = $a[0]; $reading = $a[1]; $value = $a[2]; @@ -13738,8 +13739,8 @@ sub DbRep_deleteOtherFromDB { my($date, $time) = split "_", $row_extreme_time; $time =~ s/-/:/gxs; - $addon = qq{AND (TIMESTAMP,VALUE) != ("$date $time","$value")}; - my $sql = DbRep_createDeleteSql($hash,$table,$device,$reading,$runtime_string_first,$runtime_string_next,$addon); + $addon = qq{AND (TIMESTAMP,VALUE) != ('$date $time','$value')}; + my $sql = DbRep_createDeleteSql($hash, $table, $device, $reading, $runtime_string_first, $runtime_string_next, $addon); ($err, $sth) = DbRep_prepareExecuteQuery ($name, $dbh, $sql); return $err if ($err); diff --git a/fhem/contrib/DS_Starter/93_DbRep.pm b/fhem/contrib/DS_Starter/93_DbRep.pm index 278137317..65257455b 100644 --- a/fhem/contrib/DS_Starter/93_DbRep.pm +++ b/fhem/contrib/DS_Starter/93_DbRep.pm @@ -1,5 +1,5 @@ ########################################################################################################## -# $Id: 93_DbRep.pm 27577 2023-05-16 19:56:58Z DS_Starter $ +# $Id: 93_DbRep.pm 27720 2023-07-02 08:57:40Z DS_Starter $ ########################################################################################################## # 93_DbRep.pm # @@ -59,6 +59,7 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch'; # Version History intern my %DbRep_vNotesIntern = ( + "8.52.9" => "05.07.2023 fix wrong SQL syntax for PostgreSQL -> maxValue deleteOther, Forum:#134170 ", "8.52.8" => "28.06.2023 fix check of DbRep_afterproc, DbRep_beforeproc if should exec PERL code ", "8.52.7" => "16.05.2023 DbRep_afterproc, DbRep_beforeproc can execute FHEM commands as well as PERL code ", "8.52.6" => "11.04.2023 change diffValue for aggr month ", @@ -13700,11 +13701,11 @@ sub DbRep_deleteOtherFromDB { my ($dbh,$sth,$timestamp,$value,$addon,$row_extreme_time,$runtime_string_first,$runtime_string_next); my @row_array; - my %rh = split("§", $rows); + my %rh = split "§", $rows; for my $key (sort(keys(%rh))) { # Inhalt $rh{$key} -> $runtime_string."|".$max_value."|".$row_max_time."|".$runtime_string_first."|".$runtime_string_next - my @k = split("\\|",$rh{$key}); + my @k = split "\\|", $rh{$key}; $value = $k[1] // undef; $row_extreme_time = $k[2]; $runtime_string_first = $k[3]; @@ -13728,7 +13729,7 @@ sub DbRep_deleteOtherFromDB { my $dlines = 0; for my $row (@row_array) { - my @a = split("\\|",$row); + my @a = split "\\|", $row; $device = $a[0]; $reading = $a[1]; $value = $a[2]; @@ -13738,8 +13739,8 @@ sub DbRep_deleteOtherFromDB { my($date, $time) = split "_", $row_extreme_time; $time =~ s/-/:/gxs; - $addon = qq{AND (TIMESTAMP,VALUE) != ("$date $time","$value")}; - my $sql = DbRep_createDeleteSql($hash,$table,$device,$reading,$runtime_string_first,$runtime_string_next,$addon); + $addon = qq{AND (TIMESTAMP,VALUE) != ('$date $time','$value')}; + my $sql = DbRep_createDeleteSql($hash, $table, $device, $reading, $runtime_string_first, $runtime_string_next, $addon); ($err, $sth) = DbRep_prepareExecuteQuery ($name, $dbh, $sql); return $err if ($err); @@ -14145,12 +14146,12 @@ sub DbRep_setVersionInfo { if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) { # META-Daten sind vorhanden $modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}} - if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 93_DbRep.pm 27577 2023-05-16 19:56:58Z DS_Starter $ im Kopf komplett! vorhanden ) + if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 93_DbRep.pm 27720 2023-07-02 08:57:40Z DS_Starter $ im Kopf komplett! vorhanden ) $modules{$type}{META}{x_version} =~ s/1.1.1/$v/g; } else { $modules{$type}{META}{x_version} = $v; } - return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 93_DbRep.pm 27577 2023-05-16 19:56:58Z DS_Starter $ im Kopf komplett! vorhanden ) + return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 93_DbRep.pm 27720 2023-07-02 08:57:40Z DS_Starter $ im Kopf komplett! vorhanden ) if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) { # es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen # mit {->VERSION()} im FHEMWEB kann Modulversion abgefragt werden