diff --git a/api/chalicelib/core/sessions.py b/api/chalicelib/core/sessions.py index f7cfbac37..d230e8810 100644 --- a/api/chalicelib/core/sessions.py +++ b/api/chalicelib/core/sessions.py @@ -359,12 +359,12 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de distinct_on += ",path" if metric_format == schemas.MetricExtendedFormatType.session_count: main_query = f"""SELECT COUNT(*) AS count, - COALESCE(SUM(users_sessions.session_count),0) AS total_sessions, + COALESCE(SUM(users_sessions.session_count),0) AS count, COALESCE(JSONB_AGG(users_sessions) FILTER ( WHERE rn > %(limit_s)s AND rn <= %(limit_e)s ), '[]'::JSONB) AS values FROM (SELECT {main_col} AS name, - count(DISTINCT session_id) AS session_count, + count(DISTINCT session_id) AS total, ROW_NUMBER() OVER (ORDER BY count(full_sessions) DESC) AS rn FROM (SELECT * FROM (SELECT DISTINCT ON({distinct_on}) s.session_id, s.user_uuid, @@ -379,7 +379,7 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de ORDER BY session_count DESC) AS users_sessions;""" else: main_query = f"""SELECT COUNT(*) AS count, - COALESCE(SUM(users_sessions.user_count),0) AS total_users, + COALESCE(SUM(users_sessions.user_count),0) AS count, COALESCE(JSONB_AGG(users_sessions) FILTER ( WHERE rn <= 200 ), '[]'::JSONB) AS values FROM (SELECT {main_col} AS name, count(DISTINCT user_id) AS user_count, @@ -420,12 +420,12 @@ def search_table_of_individual_issues(data: schemas.SessionsSearchPayloadSchema, full_args["issues_limit_s"] = (data.page - 1) * data.limit full_args["issues_limit_e"] = data.page * data.limit main_query = cur.mogrify(f"""SELECT COUNT(1) AS count, - COALESCE(SUM(session_count), 0) AS total_sessions, + COALESCE(SUM(session_count), 0) AS count, COALESCE(JSONB_AGG(ranked_issues) FILTER ( WHERE rn > %(issues_limit_s)s AND rn <= %(issues_limit_e)s ), '[]'::JSONB) AS values FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY session_count DESC) AS rn - FROM (SELECT type AS name, context_string AS value, COUNT(DISTINCT session_id) AS session_count + FROM (SELECT type AS name, context_string AS value, COUNT(DISTINCT session_id) AS total FROM (SELECT session_id {query_part}) AS filtered_sessions INNER JOIN events_common.issues USING (session_id) diff --git a/ee/api/chalicelib/core/sessions_exp.py b/ee/api/chalicelib/core/sessions_exp.py index 804acf5b2..da9b3bdc8 100644 --- a/ee/api/chalicelib/core/sessions_exp.py +++ b/ee/api/chalicelib/core/sessions_exp.py @@ -478,7 +478,7 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de for s in sessions: s.pop("main_count") s.pop("total_sessions") - sessions = {"count": count, "totalSessions": total_sessions, "values": helper.list_to_camel_case(sessions)} + sessions = {"total": count, "count": total_sessions, "values": helper.list_to_camel_case(sessions)} return sessions @@ -524,7 +524,7 @@ def search_table_of_individual_issues(data: schemas.SessionsSearchPayloadSchema, total_sessions = 0 issues_count = 0 - return {"count": issues_count, "totalSessions": total_sessions, "values": issues} + return {"total": issues_count, "count": total_sessions, "values": issues} def __is_valid_event(is_any: bool, event: schemas.SessionSearchEventSchema2): diff --git a/ee/scripts/schema/db/init_dbs/clickhouse/1.19.0/1.19.0.sql b/ee/scripts/schema/db/init_dbs/clickhouse/1.19.0/1.19.0.sql index 73132dcc1..e2478a973 100644 --- a/ee/scripts/schema/db/init_dbs/clickhouse/1.19.0/1.19.0.sql +++ b/ee/scripts/schema/db/init_dbs/clickhouse/1.19.0/1.19.0.sql @@ -3,8 +3,8 @@ CREATE OR REPLACE FUNCTION openreplay_version AS() -> 'v1.19.0-ee'; DROP TABLE IF EXISTS experimental.events_l7d_mv; ALTER TABLE experimental.events - ADD COLUMN IF NOT EXISTS normalized_x Nullable(UInt8), - ADD COLUMN IF NOT EXISTS normalized_y Nullable(UInt8), + ADD COLUMN IF NOT EXISTS normalized_x Nullable(Float32), + ADD COLUMN IF NOT EXISTS normalized_y Nullable(Float32), DROP COLUMN IF EXISTS coordinate; CREATE MATERIALIZED VIEW IF NOT EXISTS experimental.events_l7d_mv diff --git a/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql b/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql index 57ddbad11..6f0dc684a 100644 --- a/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql +++ b/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql @@ -81,8 +81,8 @@ CREATE TABLE IF NOT EXISTS experimental.events error_tags_values Array(Nullable(String)), transfer_size Nullable(UInt32), selector Nullable(String), - normalized_x Nullable(UInt8), - normalized_y Nullable(UInt8), + normalized_x Nullable(Float32), + normalized_y Nullable(Float32), message_id UInt64 DEFAULT 0, _timestamp DateTime DEFAULT now() ) ENGINE = ReplacingMergeTree(_timestamp) diff --git a/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql b/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql index c52262b6b..a03628954 100644 --- a/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql +++ b/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql @@ -19,8 +19,8 @@ $fn_def$, :'next_version') -- ALTER TABLE IF EXISTS events.clicks - ADD COLUMN IF NOT EXISTS normalized_x smallint NULL, - ADD COLUMN IF NOT EXISTS normalized_y smallint NULL, + ADD COLUMN IF NOT EXISTS normalized_x decimal NULL, + ADD COLUMN IF NOT EXISTS normalized_y decimal NULL, DROP COLUMN IF EXISTS x, DROP COLUMN IF EXISTS y; diff --git a/ee/scripts/schema/db/init_dbs/postgresql/init_schema.sql b/ee/scripts/schema/db/init_dbs/postgresql/init_schema.sql index 9e155835d..b1f9afb74 100644 --- a/ee/scripts/schema/db/init_dbs/postgresql/init_schema.sql +++ b/ee/scripts/schema/db/init_dbs/postgresql/init_schema.sql @@ -659,16 +659,16 @@ CREATE INDEX pages_query_nn_gin_idx ON events.pages USING GIN (query gin_trgm_op CREATE TABLE events.clicks ( - session_id bigint NOT NULL REFERENCES public.sessions (session_id) ON DELETE CASCADE, - message_id bigint NOT NULL, - timestamp bigint NOT NULL, - label text DEFAULT NULL, - url text DEFAULT '' NOT NULL, + session_id bigint NOT NULL REFERENCES public.sessions (session_id) ON DELETE CASCADE, + message_id bigint NOT NULL, + timestamp bigint NOT NULL, + label text DEFAULT NULL, + url text DEFAULT '' NOT NULL, path text, - selector text DEFAULT '' NOT NULL, - hesitation integer DEFAULT NULL, - normalized_x smallint DEFAULT NULL, - normalized_y smallint DEFAULT NULL, + selector text DEFAULT '' NOT NULL, + hesitation integer DEFAULT NULL, + normalized_x decimal DEFAULT NULL, + normalized_y decimal DEFAULT NULL, PRIMARY KEY (session_id, message_id) ); CREATE INDEX clicks_session_id_idx ON events.clicks (session_id); diff --git a/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql b/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql index 9cd060a95..865e87f71 100644 --- a/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql +++ b/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql @@ -19,8 +19,8 @@ $fn_def$, :'next_version') -- ALTER TABLE IF EXISTS events.clicks - ADD COLUMN IF NOT EXISTS normalized_x smallint NULL, - ADD COLUMN IF NOT EXISTS normalized_y smallint NULL, + ADD COLUMN IF NOT EXISTS normalized_x decimal NULL, + ADD COLUMN IF NOT EXISTS normalized_y decimal NULL, DROP COLUMN IF EXISTS x, DROP COLUMN IF EXISTS y; diff --git a/scripts/schema/db/init_dbs/postgresql/init_schema.sql b/scripts/schema/db/init_dbs/postgresql/init_schema.sql index d8c7df58a..ec1bb4730 100644 --- a/scripts/schema/db/init_dbs/postgresql/init_schema.sql +++ b/scripts/schema/db/init_dbs/postgresql/init_schema.sql @@ -620,16 +620,16 @@ CREATE INDEX pages_query_nn_gin_idx ON events.pages USING GIN (query gin_trgm_op CREATE TABLE events.clicks ( - session_id bigint NOT NULL REFERENCES public.sessions (session_id) ON DELETE CASCADE, - message_id bigint NOT NULL, - timestamp bigint NOT NULL, - label text DEFAULT NULL, - url text DEFAULT '' NOT NULL, + session_id bigint NOT NULL REFERENCES public.sessions (session_id) ON DELETE CASCADE, + message_id bigint NOT NULL, + timestamp bigint NOT NULL, + label text DEFAULT NULL, + url text DEFAULT '' NOT NULL, path text, - selector text DEFAULT '' NOT NULL, - hesitation integer DEFAULT NULL, - normalized_x smallint DEFAULT NULL, - normalized_y smallint DEFAULT NULL, + selector text DEFAULT '' NOT NULL, + hesitation integer DEFAULT NULL, + normalized_x decimal DEFAULT NULL, + normalized_y decimal DEFAULT NULL, PRIMARY KEY (session_id, message_id) ); CREATE INDEX clicks_session_id_idx ON events.clicks (session_id);