private function update(
        Str $variable,
        MapInterface $changeset,
        Query $query
    ): Query {
        return $query
            ->set(sprintf(
                '%s += {%s_props}',
                $variable,
                $variable
            ))
            ->withParameter(
                (string) $variable->append('_props'),
                $changeset->reduce(
                    [],
                    static function(array $carry, string $key, $value): array {
                        $carry[$key] = $value;

                        return $carry;
                    }
                )
            );
    }
private function update(
        Str $variable,
        MapInterface $changeset,
        Query $query
    ): Query {
        return $query
            ->set(sprintf(
                '%s += {%s_props}',
                $variable,
                $variable
            ))
            ->withParameter(
                (string) $variable->append('_props'),
                $changeset->reduce(
                    [],
                    static function(array $carry, string $key, $value): array {
                        $carry[$key] = $value;

                        return $carry;
                    }
                )
            );
    }
private function update ( Str $ variable , MapInterface $ changeset , Query $ query ) : Query { return $ query -> set ( sprintf ( '%s += {%s_props}' , $ variable , $ variable ) ) -> withParameter ( ( string ) $ variable -> append ( '_props' ) , $ changeset -> reduce ( [ ] , static function ( array $ carry , string $ key , $ value ) : array { $ carry [ $ key ] = $ value ; return $ carry ; } ) ) ; }
Add a clause to set all properties to be updated on the wished variable

@param Str $variable
@param MapInterface<string, mixed> $changeset
@param Query $query

@return Query
Add a clause to set all properties to be updated on the wished variable