Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: plausible/analytics
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ad1bf069024b701303b84bf1bdd63a867293ddbe
Choose a base ref
..
head repository: plausible/analytics
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 5947e73155590cd478a3e7d1919c7f936f46ff33
Choose a head ref
Showing with 4 additions and 7 deletions.
  1. +3 −6 lib/plausible/stats/filters/segments.ex
  2. +1 −1 lib/plausible/stats/query_optimizer.ex
9 changes: 3 additions & 6 deletions lib/plausible/stats/filters/segments.ex
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ defmodule Plausible.Stats.Filters.Segments do
do: Filters.filtering_on_dimension?(filters, FiltersParser.segment_filter_key())

@spec expand_segments_to_constituent_filters(list(), list()) ::
{:ok, list()} | {:error, any()}
list()
def expand_segments_to_constituent_filters(filters, segments) do
case segment_filter_index = find_top_level_segment_filter_index(filters) do
nil ->
@@ -33,9 +33,6 @@ defmodule Plausible.Stats.Filters.Segments do

{:error, :segment_invalid} ->
raise "Segment invalid with id #{inspect(segment_id)}."

_ ->
raise "Failed to expand segment to filters"
end
end)
)
@@ -54,15 +51,15 @@ defmodule Plausible.Stats.Filters.Segments do
end)
end

@spec get_segment_data(list(), integer()) :: {:ok, list()} | {:error, :segment_not_found}
@spec get_segment_data(list(), integer()) :: {:ok, map()} | {:error, :segment_not_found}
defp get_segment_data(segments, segment_id) do
case Enum.find(segments, fn segment -> segment.id == segment_id end) do
nil -> {:error, :segment_not_found}
%Plausible.Segment{segment_data: segment_data} -> {:ok, segment_data}
end
end

@spec validate_segment_data(list()) :: {:ok, list()} | {:error, :segment_invalid}
@spec validate_segment_data(map()) :: {:ok, list()} | {:error, :segment_invalid}
def validate_segment_data(segment_data) do
with {:ok, filters} <- FiltersParser.parse_filters(segment_data["filters"]),
# segments are not permitted within segments
2 changes: 1 addition & 1 deletion lib/plausible/stats/query_optimizer.ex
Original file line number Diff line number Diff line change
@@ -178,7 +178,7 @@ defmodule Plausible.Stats.QueryOptimizer do
end

defp expand_segments_to_filters(query) do
if length(query.preloaded_segments) do
if length(query.preloaded_segments) > 0 do
filters =
Filters.Segments.expand_segments_to_constituent_filters(
query.filters,