Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 815676c

Browse files
Dan Leedataform.co
authored andcommitted
fix references to custom fields
1 parent 93c4d36 commit 815676c

6 files changed

Lines changed: 29 additions & 15 deletions

File tree

includes/page_events.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ const segmentCommon = require("./common");
22

33
module.exports = (params) => {
44

5-
6-
75
const customPageFieldsObj = params.customPageFields.reduce((acc, item) => ({...acc, [item]: item }), {});
86

97
const customTrackFieldsObj = params.customTrackFields.reduce((acc, item) => ({...acc, [item]: item }), {});
@@ -18,7 +16,7 @@ select
1816
user_id,
1917
anonymous_id,
2018
id as page_id,
21-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
19+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
2220
([key, value]) => `${key} as ${value}`).join(",\n ")}
2321
from
2422
${ctx.ref(params.segmentSchema, "pages")} as pages

includes/sessionized_events.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const crossdb = require("./crossdb");
22

33
module.exports = (params) => {
4+
45
return publish("segment_sessionized_events", {
56
...params.defaultConfig
67
}).query(ctx => `

includes/sessionized_pages.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
const segmentCommon = require("./common");
22

33
module.exports = (params) => {
4+
5+
const customPageFieldsObj = params.customPageFields.reduce((acc, item) => ({...acc, [item]: item }), {});
6+
7+
const customTrackFieldsObj = params.customTrackFields.reduce((acc, item) => ({...acc, [item]: item }), {});
8+
49
return publish("segment_sessionized_pages", {
510
...params.defaultConfig
611
}).query(ctx => `
@@ -12,7 +17,7 @@ select
1217
segment_sessionized_events.page_id,
1318
segment_sessionized_events.session_index,
1419
segment_sessionized_events.session_id,
15-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
20+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
1621
([key, value]) => `segment_page_events.${value}`).join(",\n ")}
1722
from
1823
${params.segmentSchema, ctx.ref("segment_sessionized_events")} as segment_sessionized_events

includes/sessionized_tracks.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
const segmentCommon = require("./common");
22

33
module.exports = (params) => {
4+
5+
const customPageFieldsObj = params.customPageFields.reduce((acc, item) => ({...acc, [item]: item }), {});
6+
7+
const customTrackFieldsObj = params.customTrackFields.reduce((acc, item) => ({...acc, [item]: item }), {});
8+
49
return publish("segment_sessionized_tracks", {
510
...params.defaultConfig
611
}).query(ctx => `
@@ -12,7 +17,7 @@ select
1217
segment_sessionized_events.track_id,
1318
segment_sessionized_events.session_index,
1419
segment_sessionized_events.session_id,
15-
${Object.entries({...segmentCommon.TRACK_FIELDS, ...segmentCommon.customTrackFieldsObj}).map(
20+
${Object.entries({...segmentCommon.TRACK_FIELDS, ...customTrackFieldsObj}).map(
1621
([key, value]) => `segment_track_events.${value}`).join(",\n ")}
1722
from
1823
${params.segmentSchema, ctx.ref("segment_sessionized_events")} as segment_sessionized_events

includes/sessions.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ const segmentCommon = require("./common");
22
const crossdb = require("./crossdb");
33

44
module.exports = (params) => {
5+
6+
const customPageFieldsObj = params.customPageFields.reduce((acc, item) => ({...acc, [item]: item }), {});
7+
8+
const customTrackFieldsObj = params.customTrackFields.reduce((acc, item) => ({...acc, [item]: item }), {});
9+
510
return publish("segment_sessions", {
611
description: "Sessions contain a combined view of tracks and pages from segment. Each session is a period of sustained activity, with a new session starting after a 30min+ period of inactivity. Each session contains a repeated field of records which are either tracks or pages. Common fields are extracted out into the top level and type specific fields are kept within two structs: records.track and records.page",
712
columns: {
@@ -16,15 +21,15 @@ module.exports = (params) => {
1621
with first_and_last_page_values as (
1722
select distinct
1823
session_id,
19-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
24+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
2025
([key, value]) => `${crossdb.windowFunction({
2126
func: "first_value",
2227
value: value,
2328
ignore_nulls: true,
2429
partition_fields: "session_id",
2530
order_fields: 'sessionized_pages.timestamp asc',
2631
})} as first_${value}`).join(",\n ")},
27-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
32+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
2833
([key, value]) => `${crossdb.windowFunction({
2934
func: "last_value",
3035
value: value,
@@ -52,13 +57,13 @@ select
5257
5358
-- first values in the session for page fields
5459
${ctx.when(global.session.config.warehouse == "bigquery", `struct(\n `)}
55-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
60+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
5661
([key, value]) => `first_and_last_page_values.first_${value}`).join(",\n ")}
5762
${ctx.when(global.session.config.warehouse == "bigquery", `) as first_page_values`)},
5863
5964
-- last values in the session for page fields
6065
${ctx.when(global.session.config.warehouse == "bigquery", `struct(\n `)}
61-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
66+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
6267
([key, value]) => `first_and_last_page_values.last_${value}`).join(",\n ")}
6368
${ctx.when(global.session.config.warehouse == "bigquery", `) as last_page_values`)}
6469
@@ -69,13 +74,13 @@ select
6974
struct(
7075
segment_sessionized_tracks.timestamp,
7176
segment_sessionized_tracks.track_id,
72-
${Object.entries({...segmentCommon.TRACK_FIELDS, ...segmentCommon.customTrackFieldsObj}).map(
77+
${Object.entries({...segmentCommon.TRACK_FIELDS, ...customTrackFieldsObj}).map(
7378
([key, value]) => `segment_sessionized_tracks.${value}`).join(",\n ")}
7479
) as track,
7580
struct(
7681
segment_sessionized_pages.timestamp,
7782
segment_sessionized_pages.page_id,
78-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
83+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
7984
([key, value]) => `segment_sessionized_pages.${value}`).join(",\n ")}
8085
) as page
8186
) order by segment_sessionized_events.timestamp asc
@@ -90,9 +95,9 @@ from
9095
left join ${ctx.ref(params.defaultConfig.schema, "segment_sessionized_tracks")} as segment_sessionized_tracks
9196
using(track_id)`)}
9297
group by
93-
session_id, session_index, user_id ${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
98+
session_id, session_index, user_id ${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
9499
([key, value]) => `, first_${value}`).join(" ")}
95-
${Object.entries({...segmentCommon.PAGE_FIELDS, ...segmentCommon.customPageFieldsObj}).map(
100+
${Object.entries({...segmentCommon.PAGE_FIELDS, ...customPageFieldsObj}).map(
96101
([key, value]) => `, last_${value}`).join(" ")}
97102
`)
98103
}

includes/track_events.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module.exports = (params) => {
55
const customPageFieldsObj = params.customPageFields.reduce((acc, item) => ({...acc, [item]: item }), {});
66

77
const customTrackFieldsObj = params.customTrackFields.reduce((acc, item) => ({...acc, [item]: item }), {});
8-
8+
99
return publish("segment_track_events", {
1010
...params.defaultConfig
1111
}).query(ctx => `
@@ -16,7 +16,7 @@ select
1616
user_id,
1717
anonymous_id,
1818
id as track_id,
19-
${Object.entries({...segmentCommon.TRACK_FIELDS, ...segmentCommon.customTrackFieldsObj}).map(
19+
${Object.entries({...segmentCommon.TRACK_FIELDS, ...customTrackFieldsObj}).map(
2020
([key, value]) => `${key} as ${value}`).join(",\n ")}
2121
from
2222
${ctx.ref(params.segmentSchema, "tracks")} as tracks

0 commit comments

Comments
 (0)