diff --git a/.dockerignore b/.dockerignore index d06d990240339..0f6a1fdbbea28 100644 --- a/.dockerignore +++ b/.dockerignore @@ -12,8 +12,8 @@ !package.json !pnpm-lock.yaml !webpack.config.js -!postcss.config.js !playwright.config.ts +!tailwind.config.js !.kearc !.storybook !tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index a9eaca7209d46..02f97dbd46ce3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -51,6 +51,11 @@ module.exports = { 'import', ], rules: { + // PyCharm always adds curly braces, I guess vscode doesn't, PR reviewers often complain they are present on props that don't need them + // let's save the humans time and let the machines do the work + // "never" means if the prop does not need the curly braces, they will be removed/errored + // see https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-brace-presence.md + "react/jsx-curly-brace-presence": ['error', { "props": "never", "children": "never", "propElementValues": "always" }], 'no-console': ['error', { allow: ['warn', 'error'] }], 'no-debugger': 'error', 'no-only-tests/no-only-tests': 'error', diff --git a/.github/workflows/build-hogql-parser.yml b/.github/workflows/build-hogql-parser.yml index 90395eaa52180..fad81d60e1495 100644 --- a/.github/workflows/build-hogql-parser.yml +++ b/.github/workflows/build-hogql-parser.yml @@ -52,7 +52,7 @@ jobs: curl -s -u posthog-bot:${{ secrets.POSTHOG_BOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} -X POST -d "{ \"body\": \"$message_body\" }" "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" fi fi - echo "::set-output name=parser-release-needed::$parser_release_needed" + echo "parser-release-needed=$parser_release_needed" >> $GITHUB_OUTPUT build-wheels: name: Build wheels on ${{ matrix.os }} diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index fb9d747af9968..f62f587935372 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -61,8 +61,10 @@ jobs: # the dependencies more clear if we separated the backend/frontend # code completely # really we should ignore ee/frontend/** but dorny doesn't support that + # - '!ee/frontend/**' + # including the negated rule appears to work + # but makes it always match because the checked file always isn't `ee/frontend/**` 🙈 - 'ee/**/*' - - '!ee/frontend/**' - 'posthog/**/*' - 'bin/*.py' - requirements.txt @@ -135,7 +137,7 @@ jobs: - name: Check static typing run: | - mypy -p posthog --exclude bin/migrate_kafka_data.py --exclude posthog/hogql/grammar/HogQLParser.py --exclude gunicorn.config.py --enable-recursive-aliases + mypy -p posthog | mypy-baseline filter - name: Check if "schema.py" is up to date run: | diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml index 270abfd771946..acce49f14bdf1 100644 --- a/.github/workflows/ci-frontend.yml +++ b/.github/workflows/ci-frontend.yml @@ -46,7 +46,6 @@ jobs: - tsconfig.json - tsconfig.*.json - webpack.config.js - - postcss.config.js - stylelint* frontend-code-quality: diff --git a/.github/workflows/codespaces.yml b/.github/workflows/codespaces.yml index cf6a8c9503ca4..3b562b576146a 100644 --- a/.github/workflows/codespaces.yml +++ b/.github/workflows/codespaces.yml @@ -42,7 +42,7 @@ jobs: # for more details - name: Docker image metadata id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ghcr.io/${{ steps.lowercase.outputs.repository }}/codespaces tags: | @@ -54,7 +54,7 @@ jobs: # This creates a scope similar to the github cache action scoping - name: Docker cache-from/cache-to metadata id: meta-for-cache - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ghcr.io/${{ steps.lowercase.outputs.repository }}/codespaces tags: | diff --git a/.github/workflows/container-images-cd.yml b/.github/workflows/container-images-cd.yml index 286dc81133570..9f9c05dfcbbda 100644 --- a/.github/workflows/container-images-cd.yml +++ b/.github/workflows/container-images-cd.yml @@ -98,7 +98,7 @@ jobs: - name: Check for changes in plugins directory id: check_changes_plugins run: | - echo "::set-output name=changed::$(git diff --name-only HEAD^ HEAD | grep '^plugin-server/' || true)" + echo "changed=$(git diff --name-only HEAD^ HEAD | grep '^plugin-server/' || true)" >> $GITHUB_OUTPUT - name: Trigger Ingestion Cloud deployment if: steps.check_changes_plugins.outputs.changed != '' @@ -116,7 +116,7 @@ jobs: - name: Check for changes that affect batch exports temporal worker id: check_changes_batch_exports_temporal_worker run: | - echo "::set-output name=changed::$(git diff --name-only HEAD^ HEAD | grep -E '^posthog/temporal/common|^posthog/temporal/batch_exports|^posthog/batch_exports/|^posthog/management/commands/start_temporal_worker.py$' || true)" + echo "changed=$(git diff --name-only HEAD^ HEAD | grep -E '^posthog/temporal/common|^posthog/temporal/batch_exports|^posthog/batch_exports/|^posthog/management/commands/start_temporal_worker.py$' || true)" >> $GITHUB_OUTPUT - name: Trigger Batch Exports Temporal Worker Cloud deployment if: steps.check_changes_batch_exports_temporal_worker.outputs.changed != '' @@ -135,7 +135,7 @@ jobs: - name: Check for changes that affect data warehouse temporal worker id: check_changes_data_warehouse_temporal_worker run: | - echo "::set-output name=changed::$(git diff --name-only HEAD^ HEAD | grep -E '^posthog/temporal/common|^posthog/temporal/data_imports|^posthog/warehouse/|^posthog/management/commands/start_temporal_worker.py$' || true)" + echo "changed=$(git diff --name-only HEAD^ HEAD | grep -E '^posthog/temporal/common|^posthog/temporal/data_imports|^posthog/warehouse/|^posthog/management/commands/start_temporal_worker.py$' || true)" >> $GITHUB_OUTPUT - name: Trigger Data Warehouse Temporal Worker Cloud deployment if: steps.check_changes_data_warehouse_temporal_worker.outputs.changed != '' diff --git a/.github/workflows/customer-data-pipeline.yml b/.github/workflows/customer-data-pipeline.yml index ff60596f2193a..b00e74149718d 100644 --- a/.github/workflows/customer-data-pipeline.yml +++ b/.github/workflows/customer-data-pipeline.yml @@ -40,7 +40,7 @@ jobs: run: | echo "repository=${GITHUB_REPOSITORY,,}" >> "$GITHUB_OUTPUT" - - uses: docker/metadata-action@v4 + - uses: docker/metadata-action@v5 id: meta with: images: ghcr.io/${{ steps.lowercase.outputs.repository }}/cdp @@ -49,7 +49,7 @@ jobs: # ${{ github.repository }} directly because the repository # organization name is has upper case characters, which are not # allowed in docker image names. - - uses: docker/metadata-action@v4 + - uses: docker/metadata-action@v5 id: meta-cache with: images: ghcr.io/${{ steps.lowercase.outputs.repository }}/cdp @@ -140,7 +140,7 @@ jobs: - name: Generate docker latest tag if: github.ref == 'refs/heads/master' - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 id: meta with: images: ghcr.io/${{ steps.lowercase.outputs.repository }}/cdp diff --git a/.github/workflows/storybook-chromatic.yml b/.github/workflows/storybook-chromatic.yml index 43b15131affa0..8d12c36b9e76c 100644 --- a/.github/workflows/storybook-chromatic.yml +++ b/.github/workflows/storybook-chromatic.yml @@ -146,15 +146,7 @@ jobs: VARIANT: ${{ github.event.pull_request.head.repo.full_name == github.repository && 'update' || 'verify' }} STORYBOOK_SKIP_TAGS: 'test-skip,test-skip-${{ matrix.browser }}' run: | - pnpm test:visual-regression:stories:ci:$VARIANT --browsers ${{ matrix.browser }} --shard ${{ matrix.shard }}/$SHARD_COUNT - - - name: Run @playwright/test (legacy, Chromium-only) - if: matrix.browser == 'chromium' && matrix.shard == 1 - env: - # Update snapshots for PRs on the main repo, verify on forks, which don't have access to PostHog Bot - VARIANT: ${{ github.event.pull_request.head.repo.full_name == github.repository && 'update' || 'verify' }} - run: | - pnpm test:visual-regression:legacy:ci:$VARIANT + pnpm test:visual-regression:ci:$VARIANT --browsers ${{ matrix.browser }} --shard ${{ matrix.shard }}/$SHARD_COUNT - name: Archive failure screenshots if: ${{ failure() }} diff --git a/.stylelintrc.js b/.stylelintrc.js index e41cb17d84111..3b41343e308aa 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -40,6 +40,12 @@ module.exports = { message: 'Expected variable to match kebab-case or snake_case', }, ], + 'scss/at-rule-no-unknown': [ + true, + { + 'ignoreAtRules': ['tailwind'] + } + ], 'scss/operator-no-newline-after': null, // Doesn't always play well with prettier 'scss/at-extend-no-missing-placeholder': null, 'scss/comment-no-empty': null, diff --git a/bin/build-schema.mjs b/bin/build-schema.mjs new file mode 100644 index 0000000000000..de14126b9eb34 --- /dev/null +++ b/bin/build-schema.mjs @@ -0,0 +1,28 @@ +#!/usr/bin/env node + +// replaces ts-json-schema-generator -f tsconfig.json --path 'frontend/src/queries/schema.ts' --no-type-check > frontend/src/queries/schema.json + +import fs from "fs"; +import stableStringify from "safe-stable-stringify"; +import tsj from "ts-json-schema-generator"; + +/** @type {import('ts-json-schema-generator/dist/src/Config').Config} */ +const config = { + ...tsj.DEFAULT_CONFIG, + path: "frontend/src/queries/schema.ts", + tsconfig: "tsconfig.json", + discriminatorType: "open-api", + skipTypeCheck: true, +}; + +const output_path = "frontend/src/queries/schema.json"; + +const schema = tsj.createGenerator(config).createSchema(config.type); +const stringify = config.sortProps ? stableStringify : JSON.stringify; +const schemaString = (config.minify ? stringify(schema) : stringify(schema, null, 2)); + +fs.writeFile(output_path, schemaString, (err) => { + if (err) { + throw err; + } +}); diff --git a/bin/start-frontend b/bin/start-frontend index 8e5ba74fc9121..f71a8c35936a7 100755 --- a/bin/start-frontend +++ b/bin/start-frontend @@ -4,5 +4,9 @@ set -e # pass first argument to WEBPACK_HOT_RELOAD_HOST [ $# -ge 1 ] && export WEBPACK_HOT_RELOAD_HOST=$1 +# DEBUG=1 might be exported to this script from a parent, but we don't want it in the frontend build process +# In particular, DEBUG=1 enables a lot of Tailwind logging we don't need, so let's set 0 instead +export DEBUG=0 + pnpm install pnpm start diff --git a/bin/tests b/bin/tests index 13827ec05295a..dfcd5e2b12f9f 100755 --- a/bin/tests +++ b/bin/tests @@ -30,4 +30,4 @@ PG_PASSWORD="${PGPASSWORD:=posthog}" PG_PORT="${PGPORT:=5432}" PGOPTIONS='--client-min-messages=warning' psql posthog -d "postgres://${PG_USER}:${PG_PASSWORD}@${PG_HOST}:${PG_PORT}" -c "drop database if exists test_posthog" 1> /dev/null -nodemon -w ./posthog -w ./ee --ext py --exec "OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES pytest --reuse-db --durations-min=2.0 ${MIGRATIONS} -s $* --snapshot-update; mypy -p posthog --exclude bin/migrate_kafka_data.py --exclude posthog/hogql/grammar/HogQLParser.py --exclude gunicorn.config.py --exclude posthog/batch_exports/models.py" +nodemon -w ./posthog -w ./ee --ext py --exec "OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES pytest --reuse-db --durations-min=2.0 ${MIGRATIONS} -s $* --snapshot-update; mypy -p posthog | mypy-baseline filter" diff --git a/cypress/e2e/actions.cy.ts b/cypress/e2e/actions.cy.ts index 525b98e7c9c0c..591335c842585 100644 --- a/cypress/e2e/actions.cy.ts +++ b/cypress/e2e/actions.cy.ts @@ -5,7 +5,7 @@ const createAction = (actionName: string): void => { cy.get('input[name="item-name-large"]').should('exist') cy.get('input[name="item-name-large"]').type(actionName) - cy.get('.LemonSegmentedButton > ul > :nth-child(3)').click() + cy.get('.LemonSegmentedButton > ul > :nth-child(2)').click() // Click "Pageview" cy.get('[data-attr=edit-action-url-input]').click().type(Cypress.config().baseUrl) cy.get('[data-attr=save-action-button]').first().click() diff --git a/cypress/e2e/auth.cy.ts b/cypress/e2e/auth.cy.ts index a4607202dd040..060fd528aeaeb 100644 --- a/cypress/e2e/auth.cy.ts +++ b/cypress/e2e/auth.cy.ts @@ -1,5 +1,3 @@ -import { urls } from 'scenes/urls' - describe('Auth', () => { beforeEach(() => { cy.get('[data-attr=menu-item-me]').click() @@ -20,7 +18,7 @@ describe('Auth', () => { cy.get('[type=submit]').click() // Login should have succeeded - cy.location('pathname').should('eq', '/home') + cy.location('pathname').should('eq', '/') }) it('Logout and verify that Google login button has correct link', () => { @@ -48,7 +46,7 @@ describe('Auth', () => { cy.get('[data-attr=password]').clear().type('12345678') cy.get('[type=submit]').click() // Login should have succeeded - cy.location('pathname').should('eq', '/home') + cy.location('pathname').should('eq', '/') }) it('Redirect to appropriate place after login', () => { @@ -84,6 +82,6 @@ describe('Auth', () => { it('Cannot access signup page if authenticated', () => { cy.visit('/signup') - cy.location('pathname').should('eq', urls.projectHomepage()) + cy.location('pathname').should('eq', '/project/1') }) }) diff --git a/cypress/e2e/cohorts.cy.ts b/cypress/e2e/cohorts.cy.ts index 06092f105656a..4029cff5954b9 100644 --- a/cypress/e2e/cohorts.cy.ts +++ b/cypress/e2e/cohorts.cy.ts @@ -42,21 +42,6 @@ describe('Cohorts', () => { cy.get('tbody').contains('Test Cohort') cy.contains('Create your first cohort').should('not.exist') - it('Cohorts new and list', () => { - cy.get('[data-row-key]').first().click() - cy.get('[data-test-goto-person]').first().click() - cy.url().should('include', '/person/') - - cy.get('[data-attr="persons-cohorts-tab"]').click() - cy.get('[data-row-key]').first().click() - - cy.get('div:not(disabled) > [data-attr="persons-cohorts-tab"]').click() - cy.get('[data-row-key]').first().click() - - cy.url().should('include', '/cohorts/') - cy.get('[data-attr="cohort-name"]').should('have.value', 'Test Cohort') - }) - // back into cohort cy.get('tbody').contains('Test Cohort').click() diff --git a/cypress/e2e/insights.cy.ts b/cypress/e2e/insights.cy.ts index d75c80cdbc59e..b4c9e6642ff7a 100644 --- a/cypress/e2e/insights.cy.ts +++ b/cypress/e2e/insights.cy.ts @@ -91,7 +91,7 @@ describe('Insights', () => { it('Shows not found error with invalid short URL', () => { cy.visit('/i/i_dont_exist') - cy.location('pathname').should('eq', '/insights/i_dont_exist') + cy.location('pathname').should('contain', '/insights/i_dont_exist') cy.get('.LemonSkeleton').should('exist') }) diff --git a/cypress/e2e/invites.cy.ts b/cypress/e2e/invites.cy.ts index 884ebd8f95641..07c437b3bebf6 100644 --- a/cypress/e2e/invites.cy.ts +++ b/cypress/e2e/invites.cy.ts @@ -8,7 +8,7 @@ describe('Invite Signup', () => { cy.get('[data-attr=menu-item-me]').click() cy.get('[data-attr=top-menu-item-org-settings]').click() - cy.location('pathname').should('eq', '/settings/organization') + cy.location('pathname').should('contain', '/settings/organization') cy.get('[id="invites"]').should('exist') cy.contains('Pending Invites').should('exist') diff --git a/cypress/e2e/person.cy.ts b/cypress/e2e/person.cy.ts index 5a5b1d2856e32..8a6cdd4cb0385 100644 --- a/cypress/e2e/person.cy.ts +++ b/cypress/e2e/person.cy.ts @@ -1,7 +1,7 @@ describe('Person Visualization Check', () => { beforeEach(() => { cy.clickNavMenu('personsmanagement') - cy.location('pathname').should('eq', '/persons') + cy.location('pathname').should('contain', '/persons') cy.wait(1000) cy.get('[data-attr=persons-search]').type('deb').should('have.value', 'deb') cy.contains('deborah.fernandez@gmail.com').should('not.exist') diff --git a/cypress/e2e/systemStatus.cy.ts b/cypress/e2e/systemStatus.cy.ts index 61a0d17acada8..e3e49b6768dc0 100644 --- a/cypress/e2e/systemStatus.cy.ts +++ b/cypress/e2e/systemStatus.cy.ts @@ -2,7 +2,7 @@ import { urls } from 'scenes/urls' describe('System Status', () => { it('System Status loaded', () => { - cy.location('pathname').should('eq', urls.savedInsights()) + cy.location('pathname').should('eq', '/project/1/insights') cy.wait(500) cy.get('[data-attr=menu-item-me]').click() cy.get('[data-attr=system-status-badge]').click() diff --git a/cypress/e2e/trends.cy.ts b/cypress/e2e/trends.cy.ts index 4db6c8ee95a2e..a1aa9d31a5594 100644 --- a/cypress/e2e/trends.cy.ts +++ b/cypress/e2e/trends.cy.ts @@ -43,8 +43,7 @@ describe('Trends', () => { cy.get('[data-attr=math-selector-0]').click() cy.get('[data-attr=math-total-0]').should('be.visible') - cy.get('[data-attr=math-node-property-value-0]').click() - cy.get('[data-attr=math-avg-0]').click() + cy.get('[data-attr=math-node-property-value-0]').click('left') cy.get('[data-attr=math-property-select]').should('exist') }) diff --git a/ee/api/ee_event_definition.py b/ee/api/ee_event_definition.py index e83b293b8caaa..325a845aaa804 100644 --- a/ee/api/ee_event_definition.py +++ b/ee/api/ee_event_definition.py @@ -10,6 +10,8 @@ Detail, ) +from loginas.utils import is_impersonated_session + class EnterpriseEventDefinitionSerializer(TaggedItemSerializerMixin, serializers.ModelSerializer): updated_by = UserBasicSerializer(read_only=True) @@ -98,6 +100,7 @@ def update(self, event_definition: EnterpriseEventDefinition, validated_data): item_id=str(event_definition.id), scope="EventDefinition", activity="changed", + was_impersonated=is_impersonated_session(self.context["request"]), detail=Detail(name=str(event_definition.name), changes=changes), ) diff --git a/ee/api/ee_property_definition.py b/ee/api/ee_property_definition.py index aa190bbd7c72d..308e7461942ca 100644 --- a/ee/api/ee_property_definition.py +++ b/ee/api/ee_property_definition.py @@ -9,6 +9,7 @@ log_activity, Detail, ) +from loginas.utils import is_impersonated_session class EnterprisePropertyDefinitionSerializer(TaggedItemSerializerMixin, serializers.ModelSerializer): @@ -77,6 +78,7 @@ def update(self, property_definition: EnterprisePropertyDefinition, validated_da organization_id=None, team_id=self.context["team_id"], user=self.context["request"].user, + was_impersonated=is_impersonated_session(self.context["request"]), item_id=str(property_definition.id), scope="PropertyDefinition", activity="changed", diff --git a/ee/api/integration.py b/ee/api/integration.py index d7da62a31a2ee..8386e4271a126 100644 --- a/ee/api/integration.py +++ b/ee/api/integration.py @@ -19,8 +19,8 @@ class PublicIntegrationViewSet(viewsets.GenericViewSet): queryset = Integration.objects.all() serializer_class = IntegrationSerializer - authentication_classes = [] # type: ignore - permission_classes = [] # type: ignore + authentication_classes = [] + permission_classes = [] @action(methods=["POST"], detail=False, url_path="slack/events") def slack_events(self, request: Request, *args: Any, **kwargs: Any) -> Response: diff --git a/ee/api/test/__snapshots__/test_instance_settings.ambr b/ee/api/test/__snapshots__/test_instance_settings.ambr index 989d41b9e763c..020447634a620 100644 --- a/ee/api/test/__snapshots__/test_instance_settings.ambr +++ b/ee/api/test/__snapshots__/test_instance_settings.ambr @@ -1,12 +1,13 @@ +# serializer version: 1 # name: TestInstanceSettings.test_update_recordings_performance_events_ttl_setting - ' + ''' /* user_id:0 request:_snapshot_ */ ALTER TABLE sharded_performance_events ON CLUSTER 'posthog' MODIFY TTL toDate(timestamp) + toIntervalWeek(5) - ' ---- + ''' +# --- # name: TestInstanceSettings.test_update_recordings_ttl_setting - ' + ''' /* user_id:0 request:_snapshot_ */ ALTER TABLE sharded_session_recording_events ON CLUSTER 'posthog' MODIFY TTL toDate(created_at) + toIntervalWeek(5) - ' ---- + ''' +# --- diff --git a/ee/api/test/__snapshots__/test_organization_resource_access.ambr b/ee/api/test/__snapshots__/test_organization_resource_access.ambr index 98e6953f9694f..2343cbbee5f06 100644 --- a/ee/api/test/__snapshots__/test_organization_resource_access.ambr +++ b/ee/api/test/__snapshots__/test_organization_resource_access.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1 - ' + ''' SELECT "posthog_user"."id", "posthog_user"."password", "posthog_user"."last_login", @@ -17,6 +18,7 @@ "posthog_user"."distinct_id", "posthog_user"."is_email_verified", "posthog_user"."has_seen_product_intro_for", + "posthog_user"."strapi_id", "posthog_user"."email_opt_in", "posthog_user"."theme_mode", "posthog_user"."partial_notification_settings", @@ -26,10 +28,10 @@ FROM "posthog_user" WHERE "posthog_user"."id" = 2 LIMIT 21 /**/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.1 - ' + ''' SELECT "posthog_organization"."id", "posthog_organization"."name", "posthog_organization"."slug", @@ -50,10 +52,10 @@ FROM "posthog_organization" WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.10 - ' + ''' SELECT "posthog_organization"."id", "posthog_organization"."name", "posthog_organization"."slug", @@ -74,19 +76,19 @@ FROM "posthog_organization" WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.11 - ' + ''' SELECT (1) AS "a" FROM "posthog_organizationmembership" WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid AND "posthog_organizationmembership"."user_id" = 2) LIMIT 1 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.12 - ' + ''' SELECT "posthog_organizationmembership"."id", "posthog_organizationmembership"."organization_id", "posthog_organizationmembership"."user_id", @@ -97,17 +99,17 @@ WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid AND "posthog_organizationmembership"."user_id" = 2) LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.13 - ' + ''' SELECT COUNT(*) AS "__count" FROM "ee_organizationresourceaccess" WHERE "ee_organizationresourceaccess"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.14 - ' + ''' SELECT "ee_organizationresourceaccess"."id", "ee_organizationresourceaccess"."resource", "ee_organizationresourceaccess"."access_level", @@ -118,24 +120,10 @@ FROM "ee_organizationresourceaccess" WHERE "ee_organizationresourceaccess"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 100 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- -# name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.15 - ' - SELECT "ee_organizationresourceaccess"."id", - "ee_organizationresourceaccess"."resource", - "ee_organizationresourceaccess"."access_level", - "ee_organizationresourceaccess"."organization_id", - "ee_organizationresourceaccess"."created_by_id", - "ee_organizationresourceaccess"."created_at", - "ee_organizationresourceaccess"."updated_at" - FROM "ee_organizationresourceaccess" - WHERE "ee_organizationresourceaccess"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid - LIMIT 100 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.2 - ' + ''' SELECT "posthog_organization"."id", "posthog_organization"."name", "posthog_organization"."slug", @@ -156,19 +144,19 @@ FROM "posthog_organization" WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.3 - ' + ''' SELECT (1) AS "a" FROM "posthog_organizationmembership" WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid AND "posthog_organizationmembership"."user_id" = 2) LIMIT 1 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.4 - ' + ''' SELECT "posthog_organizationmembership"."id", "posthog_organizationmembership"."organization_id", "posthog_organizationmembership"."user_id", @@ -179,10 +167,10 @@ WHERE ("posthog_organizationmembership"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid AND "posthog_organizationmembership"."user_id" = 2) LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.5 - ' + ''' SELECT "posthog_instancesetting"."id", "posthog_instancesetting"."key", "posthog_instancesetting"."raw_value" @@ -190,17 +178,17 @@ WHERE "posthog_instancesetting"."key" = 'constance:posthog:RATE_LIMIT_ENABLED' ORDER BY "posthog_instancesetting"."id" ASC LIMIT 1 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.6 - ' + ''' SELECT COUNT(*) AS "__count" FROM "ee_organizationresourceaccess" WHERE "ee_organizationresourceaccess"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.7 - ' + ''' SELECT "ee_organizationresourceaccess"."id", "ee_organizationresourceaccess"."resource", "ee_organizationresourceaccess"."access_level", @@ -211,10 +199,10 @@ FROM "ee_organizationresourceaccess" WHERE "ee_organizationresourceaccess"."organization_id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 100 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.8 - ' + ''' SELECT "posthog_user"."id", "posthog_user"."password", "posthog_user"."last_login", @@ -232,6 +220,7 @@ "posthog_user"."distinct_id", "posthog_user"."is_email_verified", "posthog_user"."has_seen_product_intro_for", + "posthog_user"."strapi_id", "posthog_user"."email_opt_in", "posthog_user"."theme_mode", "posthog_user"."partial_notification_settings", @@ -241,10 +230,10 @@ FROM "posthog_user" WHERE "posthog_user"."id" = 2 LIMIT 21 /**/ - ' ---- + ''' +# --- # name: TestOrganizationResourceAccessAPI.test_list_organization_resource_access_is_not_nplus1.9 - ' + ''' SELECT "posthog_organization"."id", "posthog_organization"."name", "posthog_organization"."slug", @@ -265,5 +254,5 @@ FROM "posthog_organization" WHERE "posthog_organization"."id" = '00000000-0000-0000-0000-000000000000'::uuid LIMIT 21 /*controller='organization_resource_access-list',route='api/organizations/%28%3FP%3Cparent_lookup_organization_id%3E%5B%5E/.%5D%2B%29/resource_access/%3F%24'*/ - ' ---- + ''' +# --- diff --git a/ee/api/test/__snapshots__/test_time_to_see_data.ambr b/ee/api/test/__snapshots__/test_time_to_see_data.ambr index 48bec559c2d19..2d93af68cee82 100644 --- a/ee/api/test/__snapshots__/test_time_to_see_data.ambr +++ b/ee/api/test/__snapshots__/test_time_to_see_data.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestTimeToSeeDataApi.test_session_events_api - ' + ''' { "type": "session", "data": { @@ -194,5 +195,5 @@ } ] } - ' ---- + ''' +# --- diff --git a/ee/api/test/base.py b/ee/api/test/base.py index 1fb46cceae1cd..55e7930bfadf1 100644 --- a/ee/api/test/base.py +++ b/ee/api/test/base.py @@ -15,7 +15,7 @@ class LicensedTestMixin: CONFIG_LICENSE_KEY: Optional[str] = "12345::67890" CONFIG_LICENSE_PLAN: Optional[str] = "enterprise" - license: License = None # type: ignore + license: License = None def license_required_response( self, @@ -30,17 +30,17 @@ def license_required_response( @classmethod def setUpTestData(cls): - super().setUpTestData() # type: ignore + super().setUpTestData() if cls.CONFIG_LICENSE_PLAN: cls.license = super(LicenseManager, cast(LicenseManager, License.objects)).create( key=cls.CONFIG_LICENSE_KEY, plan=cls.CONFIG_LICENSE_PLAN, valid_until=datetime.datetime(2038, 1, 19, 3, 14, 7, tzinfo=ZoneInfo("UTC")), ) - if hasattr(cls, "organization") and cls.organization: # type: ignore - cls.organization.available_product_features = AVAILABLE_PRODUCT_FEATURES # type: ignore - cls.organization.update_available_features() # type: ignore - cls.organization.save() # type: ignore + if hasattr(cls, "organization") and cls.organization: + cls.organization.available_product_features = AVAILABLE_PRODUCT_FEATURES + cls.organization.update_available_features() + cls.organization.save() class APILicensedTest(LicensedTestMixin, APIBaseTest): diff --git a/ee/clickhouse/models/test/__snapshots__/test_cohort.ambr b/ee/clickhouse/models/test/__snapshots__/test_cohort.ambr index 0f20bdd0e8a2f..fa58924aa8343 100644 --- a/ee/clickhouse/models/test/__snapshots__/test_cohort.ambr +++ b/ee/clickhouse/models/test/__snapshots__/test_cohort.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestCohort.test_cohortpeople_basic - ' + ''' INSERT INTO cohortpeople SELECT id, @@ -32,10 +33,10 @@ AND cohort_id = 2 AND version < 0 AND sign = 1 - ' ---- + ''' +# --- # name: TestCohort.test_cohortpeople_with_not_in_cohort_operator - ' + ''' INSERT INTO cohortpeople SELECT id, @@ -66,10 +67,10 @@ AND cohort_id = 2 AND version < 0 AND sign = 1 - ' ---- + ''' +# --- # name: TestCohort.test_cohortpeople_with_not_in_cohort_operator.1 - ' + ''' INSERT INTO cohortpeople SELECT id, @@ -125,10 +126,10 @@ AND cohort_id = 2 AND version < 0 AND sign = 1 - ' ---- + ''' +# --- # name: TestCohort.test_cohortpeople_with_not_in_cohort_operator_and_no_precalculation - ' + ''' SELECT uuid, distinct_id FROM events @@ -179,10 +180,10 @@ AND (((((NOT has(['something1'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), '$some_prop'), '^"|"$', ''))))))) SETTINGS optimize_aggregation_in_order = 1)) person ON person.person_id = behavior_query.person_id WHERE 1 = 1 AND ((((performed_event_condition_17_level_level_0_level_0_level_0_0)))) ) )) - ' ---- + ''' +# --- # name: TestCohort.test_cohortpeople_with_not_in_cohort_operator_for_behavioural_cohorts - ' + ''' INSERT INTO cohortpeople SELECT id, @@ -220,10 +221,10 @@ AND cohort_id = 2 AND version < 0 AND sign = 1 - ' ---- + ''' +# --- # name: TestCohort.test_cohortpeople_with_not_in_cohort_operator_for_behavioural_cohorts.1 - ' + ''' INSERT INTO cohortpeople SELECT id, @@ -265,10 +266,10 @@ AND cohort_id = 2 AND version < 0 AND sign = 1 - ' ---- + ''' +# --- # name: TestCohort.test_static_cohort_precalculated - ' + ''' SELECT distinct_id FROM @@ -283,5 +284,5 @@ FROM person_static_cohort WHERE cohort_id = %(_cohort_id_0)s AND team_id = %(team_id)s) - ' ---- + ''' +# --- diff --git a/ee/clickhouse/models/test/__snapshots__/test_property.ambr b/ee/clickhouse/models/test/__snapshots__/test_property.ambr index cc8e77f83a0dc..084d684e685af 100644 --- a/ee/clickhouse/models/test/__snapshots__/test_property.ambr +++ b/ee/clickhouse/models/test/__snapshots__/test_property.ambr @@ -1,15 +1,16 @@ +# serializer version: 1 # name: TestPropFormat.test_parse_groups - ' + ''' SELECT uuid FROM events WHERE team_id = 2 AND ((has(['val_1'], replaceRegexpAll(JSONExtractRaw(properties, 'attr_1'), '^"|"$', '')) AND has(['val_2'], replaceRegexpAll(JSONExtractRaw(properties, 'attr_2'), '^"|"$', ''))) OR (has(['val_2'], replaceRegexpAll(JSONExtractRaw(properties, 'attr_1'), '^"|"$', '')))) - ' ---- + ''' +# --- # name: TestPropFormat.test_parse_groups_persons - ' + ''' SELECT uuid FROM events WHERE team_id = 2 @@ -53,22 +54,22 @@ GROUP BY id HAVING is_deleted = 0) WHERE has(['2@posthog.com'], replaceRegexpAll(JSONExtractRaw(properties, 'email'), '^"|"$', '')) ) ))) - ' ---- + ''' +# --- # name: test_parse_groups_persons_edge_case_with_single_filter - ( + tuple( 'AND ( has(%(vglobalperson_0)s, replaceRegexpAll(JSONExtractRaw(person_props, %(kglobalperson_0)s), \'^"|"$\', \'\')))', - { + dict({ 'kglobalperson_0': 'email', - 'vglobalperson_0': [ + 'vglobalperson_0': list([ '1@posthog.com', - ], - }, + ]), + }), ) ---- +# --- # name: test_parse_prop_clauses_defaults - ( - ' + tuple( + ''' AND ( has(%(vglobal_0)s, replaceRegexpAll(JSONExtractRaw(properties, %(kglobal_0)s), '^"|"$', '')) AND distinct_id IN ( SELECT distinct_id FROM ( @@ -93,61 +94,61 @@ WHERE replaceRegexpAll(JSONExtractRaw(properties, %(kglobalperson_1)s), '^"|"$', '') ILIKE %(vglobalperson_1)s ) )) - ', - { + ''', + dict({ 'kglobal_0': 'event_prop', 'kglobalperson_1': 'email', - 'vglobal_0': [ + 'vglobal_0': list([ 'value', - ], + ]), 'vglobalperson_1': '%posthog%', - }, + }), ) ---- +# --- # name: test_parse_prop_clauses_defaults.1 - ( + tuple( 'AND ( has(%(vglobal_0)s, replaceRegexpAll(JSONExtractRaw(properties, %(kglobal_0)s), \'^"|"$\', \'\')) AND replaceRegexpAll(JSONExtractRaw(person_props, %(kglobalperson_1)s), \'^"|"$\', \'\') ILIKE %(vglobalperson_1)s)', - { + dict({ 'kglobal_0': 'event_prop', 'kglobalperson_1': 'email', - 'vglobal_0': [ + 'vglobal_0': list([ 'value', - ], + ]), 'vglobalperson_1': '%posthog%', - }, + }), ) ---- +# --- # name: test_parse_prop_clauses_defaults.2 - ( + tuple( 'AND ( has(%(vglobal_0)s, replaceRegexpAll(JSONExtractRaw(properties, %(kglobal_0)s), \'^"|"$\', \'\')) AND argMax(person."pmat_email", version) ILIKE %(vpersonquery_global_1)s)', - { + dict({ 'kglobal_0': 'event_prop', 'kpersonquery_global_1': 'email', - 'vglobal_0': [ + 'vglobal_0': list([ 'value', - ], + ]), 'vpersonquery_global_1': '%posthog%', - }, + }), ) ---- +# --- # name: test_parse_prop_clauses_funnel_step_element_prepend_regression - ( + tuple( 'AND ( (match(elements_chain, %(PREPEND__text_0_attributes_regex)s)))', - { + dict({ 'PREPEND__text_0_attributes_regex': '(text="Insights1")', - }, + }), ) ---- +# --- # name: test_parse_prop_clauses_precalculated_cohort - ( - ' + tuple( + ''' AND ( pdi.person_id IN ( SELECT DISTINCT person_id FROM cohortpeople WHERE team_id = %(team_id)s AND cohort_id = %(global_cohort_id_0)s AND version = %(global_version_0)s )) - ', - { + ''', + dict({ 'global_cohort_id_0': 47, 'global_version_0': None, - }, + }), ) ---- +# --- diff --git a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel.ambr b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel.ambr index 7786b0efe8d69..a0bbfdd0f2f05 100644 --- a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel.ambr +++ b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -21,10 +22,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -131,10 +132,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -162,10 +163,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -278,10 +279,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -301,10 +302,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -416,10 +417,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -439,10 +440,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.3 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -550,11 +551,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.4 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -574,10 +576,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.5 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -685,11 +687,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.6 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -709,10 +712,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.7 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -820,11 +823,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.8 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -844,10 +848,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestFunnelGroupBreakdown.test_funnel_breakdown_group.9 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -955,11 +959,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -981,10 +986,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -1091,10 +1096,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1122,10 +1127,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -1238,10 +1243,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1261,10 +1266,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -1376,10 +1381,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1399,10 +1404,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.3 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -1488,11 +1493,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.4 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1512,10 +1518,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.5 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -1601,11 +1607,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.6 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1625,10 +1632,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.7 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -1714,11 +1721,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.8 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1738,10 +1746,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestStrictFunnelGroupBreakdown.test_funnel_breakdown_group.9 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -1827,11 +1835,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1853,10 +1862,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -1963,10 +1972,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group0_properties, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -1994,10 +2003,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_aggregate_by_groups_breakdown_group_person_on_events_poe_v2.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -2110,10 +2119,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2133,10 +2142,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.1 - ' + ''' SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -2248,10 +2257,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.10 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2271,10 +2280,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.11 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2294,10 +2303,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.12 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2317,10 +2326,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.13 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -2525,11 +2534,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.14 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2549,10 +2559,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.15 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2572,10 +2582,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.16 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2595,10 +2605,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.17 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -2803,11 +2813,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('technology')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.2 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2827,10 +2838,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.3 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2850,10 +2861,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.4 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -2873,10 +2884,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.5 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -3081,11 +3092,12 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.6 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -3105,10 +3117,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.7 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -3128,10 +3140,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.8 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -3151,10 +3163,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestUnorderedFunnelGroupBreakdown.test_funnel_breakdown_group.9 - ' + ''' SELECT aggregation_target AS actor_id FROM @@ -3359,6 +3371,7 @@ AND arrayFlatten(array(prop)) = arrayFlatten(array('finance')) ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- diff --git a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlation.ambr b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlation.ambr index 39fe31f7a59cc..54a7a726449d2 100644 --- a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlation.ambr +++ b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlation.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhouseFunnelCorrelation.test_action_events_are_excluded_from_correlations - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -61,7 +62,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -91,10 +93,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -154,7 +156,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -179,10 +182,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -254,7 +257,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -263,10 +267,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -338,7 +342,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -347,10 +352,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -422,7 +427,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -431,10 +437,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -506,7 +512,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -515,10 +522,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties_materialized - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -578,7 +585,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -603,10 +611,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties_materialized.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -678,7 +686,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -687,10 +696,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties_materialized.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -762,7 +771,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -771,10 +781,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties_materialized.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -846,7 +856,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -855,10 +866,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_basic_funnel_correlation_with_properties_materialized.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -930,7 +941,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -939,10 +951,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_event_properties_and_groups - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -994,7 +1006,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1024,10 +1037,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_event_properties_and_groups_materialized - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1079,7 +1092,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1109,10 +1123,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1164,7 +1178,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1187,10 +1202,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.1 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1242,7 +1257,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1262,10 +1278,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.2 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1317,7 +1333,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1337,10 +1354,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.3 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1392,7 +1409,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1412,10 +1430,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.4 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1467,7 +1485,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1487,10 +1506,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1550,7 +1569,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1573,10 +1593,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.6 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1636,7 +1656,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1656,10 +1677,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups.7 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1719,7 +1740,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1739,10 +1761,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1802,7 +1824,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1825,10 +1848,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.1 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1888,7 +1911,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1908,10 +1932,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.2 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -1971,7 +1995,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -1991,10 +2016,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.3 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2054,7 +2079,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -2074,10 +2100,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.4 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2137,7 +2163,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -2157,10 +2184,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2228,7 +2255,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -2251,10 +2279,10 @@ countDistinctIf(actors.actor_id, actors.steps = target_step) AS success_count, countDistinctIf(actors.actor_id, actors.steps <> target_step) AS failure_count FROM funnel_actors AS actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.6 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2322,7 +2350,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -2342,10 +2371,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_events_and_groups_poe_v2.7 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2413,7 +2442,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2020-01-14 23:59:59', 'UTC') AS date_to, toDateTime('2020-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -2433,10 +2463,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2488,7 +2518,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -2513,10 +2544,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2576,7 +2607,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -2585,10 +2617,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2648,7 +2680,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -2657,10 +2690,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2720,7 +2753,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -2729,10 +2763,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2792,7 +2826,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -2801,10 +2836,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2856,7 +2891,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -2881,10 +2917,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -2936,7 +2972,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -2961,10 +2998,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3024,7 +3061,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3033,10 +3071,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3096,7 +3134,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3105,10 +3144,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3168,7 +3207,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3177,10 +3217,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3240,7 +3280,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3249,10 +3290,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_materialized.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3304,7 +3345,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -3329,10 +3371,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3386,7 +3428,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -3411,10 +3454,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3476,7 +3519,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3485,10 +3529,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3550,7 +3594,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3559,10 +3604,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3624,7 +3669,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3633,10 +3679,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3698,7 +3744,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3707,10 +3754,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3764,7 +3811,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -3789,10 +3837,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3846,7 +3894,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -3871,10 +3920,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -3936,7 +3985,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -3945,10 +3995,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4010,7 +4060,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4019,10 +4070,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4084,7 +4135,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4093,10 +4145,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4158,7 +4210,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4167,10 +4220,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_materialized.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4224,7 +4277,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -4249,10 +4303,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4312,7 +4366,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -4337,10 +4392,10 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4408,7 +4463,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4417,10 +4473,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4488,7 +4544,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4497,10 +4554,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4568,7 +4625,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4577,10 +4635,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4648,7 +4706,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id FROM funnel_actors @@ -4657,10 +4716,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelation.test_funnel_correlation_with_properties_and_groups_person_on_events_poe_v2.5 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id , timestamp, steps, final_timestamp, @@ -4720,7 +4779,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT concat(prop.1, '::', prop.2) as name, countDistinctIf(actor_id, steps = target_step) AS success_count, @@ -4745,5 +4805,5 @@ countDistinctIf(actor_id, steps = target_step) AS success_count, countDistinctIf(actor_id, steps <> target_step) AS failure_count FROM funnel_actors - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlations_persons.ambr b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlations_persons.ambr index ac9fb01cf79fb..c861f37a3a7c5 100644 --- a/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlations_persons.ambr +++ b/ee/clickhouse/queries/funnels/test/__snapshots__/test_funnel_correlations_persons.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_event_with_recordings - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id, final_matching_events as matching_events , timestamp, steps, @@ -97,7 +98,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2021-01-08 23:59:59', 'UTC') AS date_to, toDateTime('2021-01-01 00:00:00', 'UTC') AS date_from, 2 AS target_step, @@ -125,10 +127,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_event_with_recordings.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -136,10 +138,10 @@ and session_id in ['s2'] AND min_first_timestamp >= '2020-12-31 00:00:00' AND max_last_timestamp <= '2021-01-09 23:59:59' - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_event_with_recordings.2 - ' + ''' WITH funnel_actors as (SELECT aggregation_target AS actor_id, final_matching_events as matching_events , timestamp, steps, @@ -305,7 +307,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2, 3] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), toDateTime('2021-01-08 23:59:59', 'UTC') AS date_to, toDateTime('2021-01-01 00:00:00', 'UTC') AS date_from, 3 AS target_step, @@ -333,10 +336,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_event_with_recordings.3 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -344,10 +347,10 @@ and session_id in ['s2'] AND min_first_timestamp >= '2020-12-31 00:00:00' AND max_last_timestamp <= '2021-01-09 23:59:59' - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_properties_with_recordings - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, final_matching_events as matching_events , timestamp, steps, @@ -457,7 +460,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id , any(funnel_actors.matching_events) AS matching_events @@ -467,10 +471,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_funnel_correlation_on_properties_with_recordings.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -478,10 +482,10 @@ and session_id in ['s2'] AND min_first_timestamp >= '2020-12-31 00:00:00' AND max_last_timestamp <= '2021-01-09 23:59:59' - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_strict_funnel_correlation_with_recordings - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, final_matching_events as matching_events , timestamp, steps, @@ -589,7 +593,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id , any(funnel_actors.matching_events) AS matching_events @@ -599,10 +604,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_strict_funnel_correlation_with_recordings.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -610,10 +615,10 @@ and session_id in ['s2'] AND min_first_timestamp >= '2020-12-31 00:00:00' AND max_last_timestamp <= '2021-01-09 23:59:59' - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_strict_funnel_correlation_with_recordings.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, final_matching_events as matching_events , timestamp, steps, @@ -721,7 +726,8 @@ steps HAVING steps = max_steps) WHERE steps IN [1, 2] - ORDER BY aggregation_target), + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000), 2 AS target_step SELECT funnel_actors.actor_id AS actor_id , any(funnel_actors.matching_events) AS matching_events @@ -731,10 +737,10 @@ ORDER BY actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseFunnelCorrelationsActors.test_strict_funnel_correlation_with_recordings.3 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -742,5 +748,5 @@ and session_id in ['s3'] AND min_first_timestamp >= '2020-12-31 00:00:00' AND max_last_timestamp <= '2021-01-09 23:59:59' - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_breakdown_props.ambr b/ee/clickhouse/queries/test/__snapshots__/test_breakdown_props.ambr index 0111a16581c61..0b209648161f3 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_breakdown_props.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_breakdown_props.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestBreakdownProps.test_breakdown_group_props - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -21,10 +22,10 @@ ORDER BY count DESC, value DESC LIMIT 6 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_group_props.1 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '') AS value, count(*) as count @@ -46,10 +47,10 @@ ORDER BY count DESC, value DESC LIMIT 6 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_person_props - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(person_props, '$browser'), '^"|"$', '') AS value, count(*) as count @@ -76,10 +77,10 @@ ORDER BY count DESC, value DESC LIMIT 6 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_person_props_materialized - ' + ''' SELECT "pmat_$browser" AS value, count(*) as count @@ -106,10 +107,10 @@ ORDER BY count DESC, value DESC LIMIT 6 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_person_props_with_entity_filter_and_or_props_with_partial_pushdown - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(person_props, '$browser'), '^"|"$', '') AS value, count(*) as count @@ -144,10 +145,10 @@ ORDER BY count DESC, value DESC LIMIT 6 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_session_props - ' + ''' SELECT sessions.session_duration AS value, count(*) as count @@ -169,10 +170,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_with_math_property_session - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(person_props, '$browser'), '^"|"$', '') AS value, sum(session_duration) as count @@ -208,10 +209,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: TestBreakdownProps.test_breakdown_with_math_property_session.1 - ' + ''' SELECT replaceRegexpAll(JSONExtractRaw(person_props, '$browser'), '^"|"$', '') AS value, count(*) as count @@ -247,5 +248,5 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr b/ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr index 5ad0d10339d05..2cf8afef5e735 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestCohortQuery.test_basic_query - ' + ''' SELECT person.person_id AS id FROM @@ -44,10 +45,10 @@ AND ((((performed_event_condition_None_level_level_0_level_0_level_0_0) OR (performed_event_condition_None_level_level_0_level_0_level_1_0)) AND ((first_time_condition_None_level_level_0_level_1_level_0_0)))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_cohort_filter_with_another_cohort_with_event_sequence - ' + ''' SELECT person.person_id AS id FROM @@ -115,10 +116,10 @@ WHERE 1 = 1 AND ((((steps_0)) AND (steps_1))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_cohort_filter_with_extra - ' + ''' SELECT person.person_id AS id FROM @@ -156,10 +157,10 @@ AND ((((has(['test'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', '')))))) SETTINGS optimize_aggregation_in_order = 1)) person ON person.person_id = behavior_query.person_id WHERE 1 = 1 AND (((performed_event_condition_None_level_level_0_level_0_0))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_cohort_filter_with_extra.1 - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -193,10 +194,10 @@ WHERE 1 = 1 AND ((((has(['test'], replaceRegexpAll(JSONExtractRaw(person_props, 'name'), '^"|"$', '')))) OR ((performed_event_condition_None_level_level_0_level_1_level_0_0)))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_performed_event_sequence - ' + ''' SELECT funnel_query.person_id AS id FROM @@ -236,10 +237,10 @@ GROUP BY person_id) funnel_query WHERE 1 = 1 AND (((steps_0))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_performed_event_sequence_and_clause_with_additional_event - ' + ''' SELECT funnel_query.person_id AS id FROM @@ -283,10 +284,10 @@ WHERE 1 = 1 AND (((steps_0) OR (performed_event_multiple_condition_None_level_level_0_level_1_0))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_performed_event_sequence_with_person_properties - ' + ''' SELECT person.person_id AS id FROM @@ -345,10 +346,10 @@ WHERE 1 = 1 AND (((steps_0) AND (performed_event_multiple_condition_None_level_level_0_level_1_0))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_person - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -382,10 +383,10 @@ WHERE 1 = 1 AND (((performed_event_condition_None_level_level_0_level_0_0) OR (has(['test@posthog.com'], replaceRegexpAll(JSONExtractRaw(person_props, '$sample_field'), '^"|"$', ''))))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_person_materialized - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -419,10 +420,10 @@ WHERE 1 = 1 AND (((performed_event_condition_None_level_level_0_level_0_0) OR (has(['test@posthog.com'], "pmat_$sample_field")))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_person_properties_with_pushdowns - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -469,10 +470,10 @@ OR (performed_event_condition_None_level_level_0_level_0_level_1_0) OR (has(['special'], replaceRegexpAll(JSONExtractRaw(person_props, 'name'), '^"|"$', '')))) AND ((first_time_condition_None_level_level_0_level_1_level_0_0)))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_person_props_only - ' + ''' SELECT id FROM person @@ -491,30 +492,30 @@ OR (has(['test2@posthog.com'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'email'), '^"|"$', '')))) OR ((has(['test3'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', ''))) AND (has(['test3@posthog.com'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'email'), '^"|"$', ''))))) SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: TestCohortQuery.test_precalculated_cohort_filter_with_extra_filters - ' + ''' SELECT count(DISTINCT person_id) FROM cohortpeople WHERE team_id = 2 AND cohort_id = 2 AND version = NULL - ' ---- + ''' +# --- # name: TestCohortQuery.test_precalculated_cohort_filter_with_extra_filters.1 - ' + ''' SELECT count(DISTINCT person_id) FROM cohortpeople WHERE team_id = 2 AND cohort_id = 2 AND version = 0 - ' ---- + ''' +# --- # name: TestCohortQuery.test_precalculated_cohort_filter_with_extra_filters.2 - ' + ''' SELECT id FROM person @@ -529,19 +530,19 @@ HAVING max(is_deleted) = 0 AND ((((has(['test'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', ''))))) OR (has(['test2'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', '')))) SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: TestCohortQuery.test_static_cohort_filter - ' + ''' SELECT count(DISTINCT person_id) FROM person_static_cohort WHERE team_id = 2 AND cohort_id = 2 - ' ---- + ''' +# --- # name: TestCohortQuery.test_static_cohort_filter.1 - ' + ''' SELECT person.person_id AS id FROM @@ -559,19 +560,19 @@ FROM person_static_cohort WHERE cohort_id = 2 AND team_id = 2)))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_static_cohort_filter_with_extra - ' + ''' SELECT count(DISTINCT person_id) FROM person_static_cohort WHERE team_id = 2 AND cohort_id = 2 - ' ---- + ''' +# --- # name: TestCohortQuery.test_static_cohort_filter_with_extra.1 - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -608,10 +609,10 @@ WHERE cohort_id = 2 AND team_id = 2)) AND (performed_event_condition_None_level_level_0_level_1_0))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_static_cohort_filter_with_extra.2 - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -648,19 +649,19 @@ WHERE cohort_id = 2 AND team_id = 2))) OR ((performed_event_condition_None_level_level_0_level_1_level_0_0)))) - ' ---- + ''' +# --- # name: TestCohortQuery.test_unwrapping_static_cohort_filter_hidden_in_layers_of_cohorts - ' + ''' SELECT count(DISTINCT person_id) FROM person_static_cohort WHERE team_id = 2 AND cohort_id = 2 - ' ---- + ''' +# --- # name: TestCohortQuery.test_unwrapping_static_cohort_filter_hidden_in_layers_of_cohorts.1 - ' + ''' SELECT if(behavior_query.person_id = '00000000-0000-0000-0000-000000000000', person.person_id, behavior_query.person_id) AS id FROM @@ -701,5 +702,5 @@ WHERE cohort_id = 2 AND team_id = 2))) OR (performed_event_condition_None_level_level_0_level_1_0))) - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_event_query.ambr b/ee/clickhouse/queries/test/__snapshots__/test_event_query.ambr index 54c9cd5db8ca5..b0fe5fcc7f116 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_event_query.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_event_query.ambr @@ -1,25 +1,26 @@ +# serializer version: 1 # name: TestEventQuery.test_account_filters - ' + ''' SELECT count(DISTINCT person_id) FROM cohortpeople WHERE team_id = 2 AND cohort_id = 2 AND version = NULL - ' ---- + ''' +# --- # name: TestEventQuery.test_account_filters.1 - ' + ''' SELECT count(DISTINCT person_id) FROM cohortpeople WHERE team_id = 2 AND cohort_id = 2 AND version = 0 - ' ---- + ''' +# --- # name: TestEventQuery.test_account_filters.2 - ' + ''' SELECT e.timestamp as timestamp, pdi.person_id as person_id FROM events e @@ -46,20 +47,20 @@ AND event = 'event_name' AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-01-14 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-01-21 23:59:59', 'UTC') - ' ---- + ''' +# --- # name: TestEventQuery.test_basic_event_filter - ' + ''' SELECT e.timestamp as timestamp FROM events e WHERE team_id = 2 AND event = 'viewed' AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-05-01 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-07 23:59:59', 'UTC') - ' ---- + ''' +# --- # name: TestEventQuery.test_cohort_filter - ' + ''' SELECT e.timestamp as timestamp, pdi.person_id as person_id FROM events e @@ -92,10 +93,10 @@ GROUP BY id HAVING max(is_deleted) = 0 AND ((has(['test'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', '')))) SETTINGS optimize_aggregation_in_order = 1)) - ' ---- + ''' +# --- # name: TestEventQuery.test_denormalised_props - ' + ''' SELECT e.timestamp as timestamp, e."mat_test_prop" as "mat_test_prop" FROM events e @@ -105,10 +106,10 @@ AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-14 23:59:59', 'UTC') AND ((has(['hi'], "mat_test_prop")) AND (has(['hi'], "mat_test_prop"))) - ' ---- + ''' +# --- # name: TestEventQuery.test_element - ' + ''' SELECT e.timestamp as timestamp FROM events e WHERE team_id = 2 @@ -116,10 +117,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-01-14 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-01-21 23:59:59', 'UTC') AND ((match(elements_chain, '(^|;)label(\\.|$|;|:)'))) - ' ---- + ''' +# --- # name: TestEventQuery.test_element.1 - ' + ''' SELECT e.timestamp as timestamp FROM events e WHERE team_id = 2 @@ -127,10 +128,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-01-14 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-01-21 23:59:59', 'UTC') AND (0 = 191) - ' ---- + ''' +# --- # name: TestEventQuery.test_entity_filtered_by_cohort - ' + ''' SELECT e.timestamp as timestamp, pdi.person_id as person_id FROM events e @@ -163,10 +164,10 @@ GROUP BY id HAVING max(is_deleted) = 0 AND ((has(['test'], replaceRegexpAll(JSONExtractRaw(argMax(person.properties, version), 'name'), '^"|"$', '')))) SETTINGS optimize_aggregation_in_order = 1)) - ' ---- + ''' +# --- # name: TestEventQuery.test_entity_filtered_by_multiple_session_duration_filters - ' + ''' SELECT e.timestamp as timestamp, sessions.session_duration as session_duration, sessions.$session_id as $session_id @@ -186,10 +187,10 @@ AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-03 23:59:59', 'UTC') AND (sessions.session_duration > 90.0 AND sessions.session_duration < 150.0) - ' ---- + ''' +# --- # name: TestEventQuery.test_entity_filtered_by_session_duration - ' + ''' SELECT e.timestamp as timestamp, sessions.session_duration as session_duration, sessions.$session_id as $session_id @@ -208,10 +209,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime('2021-05-02 00:00:00', 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-03 23:59:59', 'UTC') AND (sessions.session_duration > 90.0) - ' ---- + ''' +# --- # name: TestEventQuery.test_event_properties_filter - ' + ''' SELECT e.timestamp as timestamp, e."properties" as "properties" FROM events e @@ -220,10 +221,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-05-01 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-07 23:59:59', 'UTC') AND (has(['test_val'], replaceRegexpAll(JSONExtractRaw(e.properties, 'some_key'), '^"|"$', ''))) - ' ---- + ''' +# --- # name: TestEventQuery.test_event_properties_filter.1 - ' + ''' SELECT e.timestamp as timestamp FROM events e WHERE team_id = 2 @@ -231,10 +232,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2021-05-01 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-07 23:59:59', 'UTC') AND (has(['test_val'], replaceRegexpAll(JSONExtractRaw(e.properties, 'some_key'), '^"|"$', ''))) - ' ---- + ''' +# --- # name: TestEventQuery.test_groups_filters - ' + ''' SELECT e.timestamp as timestamp FROM events e LEFT JOIN @@ -257,10 +258,10 @@ AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-12 23:59:59', 'UTC') AND ((has(['finance'], replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', ''))) AND (has(['value'], replaceRegexpAll(JSONExtractRaw(group_properties_1, 'another'), '^"|"$', '')))) - ' ---- + ''' +# --- # name: TestEventQuery.test_groups_filters_mixed - ' + ''' SELECT e.timestamp as timestamp, pdi.person_id as person_id FROM events e @@ -295,10 +296,10 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-12 23:59:59', 'UTC') AND ((has(['finance'], replaceRegexpAll(JSONExtractRaw(group_properties_0, 'industry'), '^"|"$', '')))) - ' ---- + ''' +# --- # name: TestEventQuery.test_static_cohort_filter - ' + ''' SELECT e.timestamp as timestamp, pdi.person_id as person_id FROM events e @@ -324,10 +325,10 @@ FROM person_static_cohort WHERE cohort_id = 2 AND team_id = 2)) - ' ---- + ''' +# --- # name: TestEventQuery.test_unique_session_math_filtered_by_session_duration - ' + ''' SELECT e.timestamp as timestamp, e."$session_id" as "$session_id", sessions.session_duration as session_duration @@ -346,5 +347,5 @@ AND toTimeZone(timestamp, 'UTC') >= toDateTime('2021-05-02 00:00:00', 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2021-05-03 23:59:59', 'UTC') AND (sessions.session_duration > 30.0) - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_groups_join_query.ambr b/ee/clickhouse/queries/test/__snapshots__/test_groups_join_query.ambr index cab6a0a76a5bb..85b77e616249e 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_groups_join_query.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_groups_join_query.ambr @@ -1,6 +1,7 @@ +# serializer version: 1 # name: test_groups_join_query_filtering - ( - ' + tuple( + ''' LEFT JOIN ( SELECT @@ -12,16 +13,16 @@ ) groups_0 ON "$group_0" == groups_0.group_key - ', - { + ''', + dict({ 'group_index_0': 0, 'team_id': 2, - }, + }), ) ---- +# --- # name: test_groups_join_query_filtering_with_custom_key_names - ( - ' + tuple( + ''' LEFT JOIN ( SELECT @@ -44,11 +45,11 @@ ) groups_2 ON call_me_industry == groups_2.group_key - ', - { + ''', + dict({ 'group_index_0': 0, 'group_index_2': 2, 'team_id': 2, - }, + }), ) ---- +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_lifecycle.ambr b/ee/clickhouse/queries/test/__snapshots__/test_lifecycle.ambr index 5acb951590251..4a1fa4a377eba 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_lifecycle.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_lifecycle.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhouseLifecycle.test_interval_dates_days - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -69,10 +70,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_interval_dates_months - ' + ''' WITH 'month' AS selected_period, periods AS (SELECT dateSub(month, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -142,10 +143,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_interval_dates_weeks - ' + ''' WITH 'week' AS selected_period, periods AS (SELECT dateSub(week, number, dateTrunc(selected_period, toDateTime('2021-05-06 23:59:59', 'UTC'))) AS start_of_period @@ -215,10 +216,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_lifecycle_edge_cases - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2020-01-18 23:59:59', 'UTC'))) AS start_of_period @@ -288,10 +289,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_lifecycle_hogql_event_properties - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -362,10 +363,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_lifecycle_hogql_event_properties_materialized - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -436,10 +437,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_lifecycle_hogql_person_properties - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -511,10 +512,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_lifecycle_hogql_person_properties_materialized - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2021-05-05 23:59:59', 'UTC'))) AS start_of_period @@ -586,10 +587,10 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- # name: TestClickhouseLifecycle.test_test_account_filters_with_groups - ' + ''' WITH 'day' AS selected_period, periods AS (SELECT dateSub(day, number, dateTrunc(selected_period, toDateTime('2020-01-19 23:59:59', 'UTC'))) AS start_of_period @@ -667,5 +668,5 @@ status ORDER BY start_of_period ASC) GROUP BY status - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_paths.ambr b/ee/clickhouse/queries/test/__snapshots__/test_paths.ambr index 89c25250fb555..21af96dfff353 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_paths.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_paths.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhousePaths.test_by_funnel_after_dropoff - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -86,7 +87,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -163,10 +165,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -253,7 +255,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -325,10 +328,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -415,7 +418,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -487,10 +491,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -577,7 +581,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -649,10 +654,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -739,7 +744,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -811,10 +817,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff_with_group_filter - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -901,7 +907,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -986,10 +993,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff_with_group_filter.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1076,7 +1083,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -1156,10 +1164,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff_with_group_filter.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1246,7 +1254,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -1326,10 +1335,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff_with_group_filter.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1416,7 +1425,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -1496,10 +1506,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_dropoff_with_group_filter.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1586,7 +1596,8 @@ steps HAVING steps = max_steps) WHERE steps = 1 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -1666,10 +1677,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_step - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1756,7 +1767,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -1833,10 +1845,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_after_step_limit - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -1923,7 +1935,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -2000,10 +2013,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_before_dropoff - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -2090,7 +2103,8 @@ steps HAVING steps = max_steps) WHERE steps = 2 - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -2167,10 +2181,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_before_step - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id , timestamp FROM @@ -2257,7 +2271,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -2334,10 +2349,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -2424,7 +2439,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT last_path_key as source_event, path_key as target_event, COUNT(*) AS event_count, @@ -2503,10 +2519,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step.1 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -2593,7 +2609,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -2667,10 +2684,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step.2 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -2757,7 +2774,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -2831,10 +2849,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step.3 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -2921,7 +2939,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -2995,10 +3014,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step.4 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -3085,7 +3104,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -3159,10 +3179,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_by_funnel_between_step.5 - ' + ''' WITH funnel_actors AS (SELECT aggregation_target AS actor_id, max_timestamp, @@ -3249,7 +3269,8 @@ steps HAVING steps = max_steps) WHERE steps IN [2, 3] - ORDER BY aggregation_target) + ORDER BY aggregation_target SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000) SELECT DISTINCT person_id AS actor_id FROM (SELECT person_id, @@ -3323,10 +3344,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_end - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3402,10 +3423,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_end.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3481,10 +3502,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_end_materialized - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3560,10 +3581,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_end_materialized.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3639,10 +3660,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_exclusion_filters_with_wildcard_groups - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3719,10 +3740,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_exclusion_filters_with_wildcard_groups.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3799,10 +3820,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3878,10 +3899,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -3957,10 +3978,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4036,10 +4057,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.3 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4115,10 +4136,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.4 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4194,10 +4215,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.5 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4275,10 +4296,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_inclusion_exclusion_filters.6 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4357,10 +4378,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_event_ordering - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4436,10 +4457,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_groups_filtering_person_on_events - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4519,10 +4540,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_groups_filtering_person_on_events.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4602,10 +4623,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_groups_filtering_person_on_events.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4685,10 +4706,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_path_cleaning_rules_with_wildcard_groups - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -4766,10 +4787,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -4840,10 +4861,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.1 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -4913,10 +4934,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.2 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -4986,10 +5007,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.3 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5060,10 +5081,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.4 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5133,10 +5154,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.5 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5206,10 +5227,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.6 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5280,10 +5301,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.7 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5353,10 +5374,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_dropoffs.8 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -5426,10 +5447,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_on_events_v2 - ' + ''' SELECT distinct_id, person_id @@ -5440,10 +5461,10 @@ GROUP BY distinct_id, person_id ORDER BY if(distinct_id = 'poev2_p1', -1, 0) - ' ---- + ''' +# --- # name: TestClickhousePaths.test_person_on_events_v2.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -5521,10 +5542,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording - ' + ''' SELECT person_id AS actor_id , groupUniqArray(100)((timestamp, uuid, @@ -5630,10 +5651,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -5641,10 +5662,10 @@ and session_id in ['s1', 's3', 's5'] AND min_first_timestamp >= '2011-12-31 00:00:00' AND max_last_timestamp <= '2012-01-03 00:00:00' - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_for_dropoff - ' + ''' SELECT person_id AS actor_id , groupUniqArray(100)((timestamp, uuid, @@ -5751,10 +5772,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_for_dropoff.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -5762,10 +5783,10 @@ and session_id in [] AND min_first_timestamp >= '2011-12-31 00:00:00' AND max_last_timestamp <= '2012-01-03 00:00:00' - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_for_dropoff.2 - ' + ''' SELECT person_id AS actor_id , groupUniqArray(100)((timestamp, uuid, @@ -5872,10 +5893,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_for_dropoff.3 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -5883,10 +5904,10 @@ and session_id in ['s1'] AND min_first_timestamp >= '2011-12-31 00:00:00' AND max_last_timestamp <= '2012-01-03 00:00:00' - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_with_no_window_or_session_id - ' + ''' SELECT person_id AS actor_id , groupUniqArray(100)((timestamp, uuid, @@ -5992,10 +6013,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_with_no_window_or_session_id.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -6003,10 +6024,10 @@ and session_id in [] AND min_first_timestamp >= '2011-12-31 00:00:00' AND max_last_timestamp <= '2012-01-03 00:00:00' - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_with_start_and_end - ' + ''' SELECT person_id AS actor_id , groupUniqArray(100)((timestamp, uuid, @@ -6121,10 +6142,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_recording_with_start_and_end.1 - ' + ''' SELECT DISTINCT session_id FROM session_replay_events @@ -6132,10 +6153,10 @@ and session_id in ['s1'] AND min_first_timestamp >= '2011-12-31 00:00:00' AND max_last_timestamp <= '2012-01-03 00:00:00' - ' ---- + ''' +# --- # name: TestClickhousePaths.test_respect_session_limits - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6210,10 +6231,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6292,10 +6313,10 @@ ORDER BY event_count DESC, source_event, target_event - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end.1 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -6370,10 +6391,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6452,10 +6473,10 @@ ORDER BY event_count DESC, source_event, target_event - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end.3 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -6530,10 +6551,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end_materialized - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6612,10 +6633,10 @@ ORDER BY event_count DESC, source_event, target_event - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end_materialized.1 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -6690,10 +6711,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end_materialized.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6772,10 +6793,10 @@ ORDER BY event_count DESC, source_event, target_event - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_and_end_materialized.3 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -6850,10 +6871,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_start_dropping_orphaned_edges - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -6929,10 +6950,10 @@ source_event, target_event LIMIT 6 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_conversion_times - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7008,10 +7029,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7086,10 +7107,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.1 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7159,10 +7180,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.2 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7232,10 +7253,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.3 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7310,10 +7331,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.4 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7383,10 +7404,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.5 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7461,10 +7482,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.6 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7534,10 +7555,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.7 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7607,10 +7628,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_step_limit.8 - ' + ''' SELECT DISTINCT person_id AS actor_id FROM @@ -7680,10 +7701,10 @@ ORDER BY person_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_team_and_local_path_cleaning_rules - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7761,10 +7782,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_team_and_local_path_cleaning_rules.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7842,10 +7863,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_team_and_local_path_cleaning_rules.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -7923,10 +7944,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_team_path_cleaning_rules - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8002,10 +8023,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_team_path_cleaning_rules.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8082,10 +8103,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8160,10 +8181,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_across_people - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8239,10 +8260,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_and_min_edge_weight - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8318,10 +8339,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_and_min_edge_weight.1 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8397,10 +8418,10 @@ source_event, target_event LIMIT 2 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_and_min_edge_weight.2 - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8477,10 +8498,10 @@ source_event, target_event LIMIT 20 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_evil_input - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8556,10 +8577,10 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- # name: TestClickhousePaths.test_wildcard_groups_with_sampling - ' + ''' SELECT last_path_key as source_event, path_key as target_event, @@ -8634,5 +8655,5 @@ source_event, target_event LIMIT 50 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_person_distinct_id_query.ambr b/ee/clickhouse/queries/test/__snapshots__/test_person_distinct_id_query.ambr index e1567e1648c3e..31d46237934a6 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_person_distinct_id_query.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_person_distinct_id_query.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: test_person_distinct_id_query - ' + ''' SELECT distinct_id, argMax(person_id, version) as person_id FROM person_distinct_id2 @@ -7,5 +8,5 @@ GROUP BY distinct_id HAVING argMax(is_deleted, version) = 0 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_person_query.ambr b/ee/clickhouse/queries/test/__snapshots__/test_person_query.ambr index b45e3567dac30..5f46bd1a81461 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_person_query.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_person_query.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: test_person_query - ' + ''' SELECT id FROM person @@ -16,10 +17,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query.1 - ' + ''' SELECT id FROM person @@ -43,10 +44,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_and_and_or_property_groups - ' + ''' SELECT id, argMax(properties, version) as person_props FROM person @@ -70,10 +71,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_anded_property_groups - ' + ''' SELECT id FROM person @@ -97,10 +98,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_entity_filters - ' + ''' SELECT id, argMax(pmat_email, version) as pmat_email FROM person @@ -117,10 +118,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_entity_filters.1 - ' + ''' SELECT id FROM person @@ -144,10 +145,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_entity_filters_and_property_group_filters - ' + ''' SELECT id, argMax(pmat_email, version) as pmat_email , argMax(properties, version) as person_props FROM person @@ -171,10 +172,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_entity_filters_and_property_group_filters.1 - ' + ''' SELECT id, argMax(properties, version) as person_props FROM person @@ -198,10 +199,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_extra_fields - ' + ''' SELECT id, argMax(pmat_email, version) as pmat_email , argMax(properties, version) as person_props FROM person @@ -225,10 +226,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_extra_requested_fields - ' + ''' SELECT id, argMax(properties, version) as person_props FROM person @@ -252,10 +253,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_extra_requested_fields.1 - ' + ''' SELECT id, argMax(pmat_email, version) as pmat_email FROM person @@ -279,10 +280,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_multiple_cohorts - ' + ''' SELECT id FROM person @@ -310,10 +311,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_updated_after - ' + ''' SELECT id FROM person @@ -330,10 +331,10 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- # name: test_person_query_with_updated_after.1 - ' + ''' SELECT id FROM person @@ -350,5 +351,5 @@ SETTINGS optimize_aggregation_in_order = 1 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/queries/test/__snapshots__/test_retention.ambr b/ee/clickhouse/queries/test/__snapshots__/test_retention.ambr index 10cc23278229d..3c4f96a3602cc 100644 --- a/ee/clickhouse/queries/test/__snapshots__/test_retention.ambr +++ b/ee/clickhouse/queries/test/__snapshots__/test_retention.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhouseRetention.test_groups_aggregating_person_on_events - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -58,10 +59,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_aggregating_person_on_events.1 - ' + ''' SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -119,10 +120,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_aggregating_person_on_events.2 - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -181,10 +182,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_aggregating_person_on_events_materialized - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -243,10 +244,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_aggregating_person_on_events_materialized.1 - ' + ''' SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -304,10 +305,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_aggregating_person_on_events_materialized.2 - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -366,10 +367,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_filtering_person_on_events - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -442,10 +443,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_filtering_person_on_events.1 - ' + ''' WITH actor_query AS (WITH 'Week' as period, NULL as breakdown_values_filter, @@ -518,10 +519,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_filtering_person_on_events_v2 - ' + ''' SELECT distinct_id, person_id @@ -532,10 +533,10 @@ GROUP BY distinct_id, person_id ORDER BY if(distinct_id = 'person1', -1, 0) - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_filtering_person_on_events_v2.1 - ' + ''' WITH actor_query AS (WITH 'Day' as period, NULL as breakdown_values_filter, @@ -620,10 +621,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_in_period_person_on_events - ' + ''' SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -681,10 +682,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseRetention.test_groups_in_period_person_on_events_materialized - ' + ''' SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -742,5 +743,5 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr index 0e07c15554bae..018b6c25fd395 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiment_secondary_results.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results - ' + ''' /* user_id:132 celery:posthog.celery.sync_insight_caching_state */ SELECT team_id, date_diff('second', max(timestamp), now()) AS age @@ -8,10 +9,10 @@ AND timestamp < now() GROUP BY team_id ORDER BY age; - ' ---- + ''' +# --- # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, count(*) as count @@ -24,10 +25,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -69,10 +70,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, count(*) as count @@ -85,10 +86,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.4 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -157,141 +158,5 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- -# name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['control', 'test', 'ablahebf', ''] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(*) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') as breakdown_value - FROM events e - WHERE e.team_id = 2 - AND event = '$pageview' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') in (['control', 'test', 'ablahebf', '']) - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.6 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event IN ['$pageleave_funnel', '$pageview_funnel'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestExperimentSecondaryResults.test_basic_secondary_metric_results.7 - ' - /* user_id:0 request:_snapshot_ */ - SELECT countIf(steps = 1) step_1, - countIf(steps = 2) step_2, - avg(step_1_average_conversion_time_inner) step_1_average_conversion_time, - median(step_1_median_conversion_time_inner) step_1_median_conversion_time, - prop - FROM - (SELECT aggregation_target, - steps, - avg(step_1_conversion_time) step_1_average_conversion_time_inner, - median(step_1_conversion_time) step_1_median_conversion_time_inner , - prop - FROM - (SELECT aggregation_target, - steps, - max(steps) over (PARTITION BY aggregation_target, - prop) as max_steps, - step_1_conversion_time , - prop - FROM - (SELECT *, - if(latest_0 <= latest_1 - AND latest_1 <= latest_0 + INTERVAL 14 DAY, 2, 1) AS steps , - if(isNotNull(latest_1) - AND latest_1 <= latest_0 + INTERVAL 14 DAY, dateDiff('second', toDateTime(latest_0), toDateTime(latest_1)), NULL) step_1_conversion_time, - prop - FROM - (SELECT aggregation_target, timestamp, step_0, - latest_0, - step_1, - min(latest_1) over (PARTITION by aggregation_target, - prop - ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) latest_1 , - if(has([['test'], ['control'], ['']], prop), prop, ['Other']) as prop - FROM - (SELECT *, - if(notEmpty(arrayFilter(x -> notEmpty(x), prop_vals)), prop_vals, ['']) as prop - FROM - (SELECT e.timestamp as timestamp, - pdi.person_id as aggregation_target, - pdi.person_id as person_id , - if(event = '$pageview_funnel', 1, 0) as step_0, - if(step_0 = 1, timestamp, null) as latest_0, - if(event = '$pageleave_funnel', 1, 0) as step_1, - if(step_1 = 1, timestamp, null) as latest_1, - array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS prop_basic, - prop_basic as prop, - argMinIf(prop, timestamp, notEmpty(arrayFilter(x -> notEmpty(x), prop))) over (PARTITION by aggregation_target) as prop_vals - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) AS pdi ON e.distinct_id = pdi.distinct_id - WHERE team_id = 2 - AND event IN ['$pageleave_funnel', '$pageview_funnel'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (step_0 = 1 - OR step_1 = 1) ))) - WHERE step_0 = 1 )) - GROUP BY aggregation_target, - steps, - prop - HAVING steps = max_steps) - GROUP BY prop - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiments.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiments.ambr index 72883735513ab..975bc7ad2b0d2 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiments.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_experiments.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, count(*) as count @@ -12,10 +13,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -84,124 +85,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results.2 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results.3 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT countIf(steps = 1) step_1, - countIf(steps = 2) step_2, - avg(step_1_average_conversion_time_inner) step_1_average_conversion_time, - median(step_1_median_conversion_time_inner) step_1_median_conversion_time, - prop - FROM - (SELECT aggregation_target, - steps, - avg(step_1_conversion_time) step_1_average_conversion_time_inner, - median(step_1_conversion_time) step_1_median_conversion_time_inner , - prop - FROM - (SELECT aggregation_target, - steps, - max(steps) over (PARTITION BY aggregation_target, - prop) as max_steps, - step_1_conversion_time , - prop - FROM - (SELECT *, - if(latest_0 <= latest_1 - AND latest_1 <= latest_0 + INTERVAL 14 DAY, 2, 1) AS steps , - if(isNotNull(latest_1) - AND latest_1 <= latest_0 + INTERVAL 14 DAY, dateDiff('second', toDateTime(latest_0), toDateTime(latest_1)), NULL) step_1_conversion_time, - prop - FROM - (SELECT aggregation_target, timestamp, step_0, - latest_0, - step_1, - min(latest_1) over (PARTITION by aggregation_target, - prop - ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) latest_1 , - if(has([['test'], ['control'], ['']], prop), prop, ['Other']) as prop - FROM - (SELECT *, - if(notEmpty(arrayFilter(x -> notEmpty(x), prop_vals)), prop_vals, ['']) as prop - FROM - (SELECT e.timestamp as timestamp, - pdi.person_id as aggregation_target, - pdi.person_id as person_id , - if(event = '$pageview', 1, 0) as step_0, - if(step_0 = 1, timestamp, null) as latest_0, - if(event = '$pageleave', 1, 0) as step_1, - if(step_1 = 1, timestamp, null) as latest_1, - array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS prop_basic, - prop_basic as prop, - argMinIf(prop, timestamp, notEmpty(arrayFilter(x -> notEmpty(x), prop))) over (PARTITION by aggregation_target) as prop_vals - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) AS pdi ON e.distinct_id = pdi.distinct_id - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (step_0 = 1 - OR step_1 = 1) ))) - WHERE step_0 = 1 )) - GROUP BY aggregation_target, - steps, - prop - HAVING steps = max_steps) - GROUP BY prop - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, count(*) as count @@ -214,10 +101,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -286,124 +173,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones.2 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones.3 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'Europe/Amsterdam') >= toDateTime('2020-01-01 14:20:21', 'Europe/Amsterdam') - AND toTimeZone(timestamp, 'Europe/Amsterdam') <= toDateTime('2020-01-06 10:00:00', 'Europe/Amsterdam') - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_and_events_out_of_time_range_timezones.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT countIf(steps = 1) step_1, - countIf(steps = 2) step_2, - avg(step_1_average_conversion_time_inner) step_1_average_conversion_time, - median(step_1_median_conversion_time_inner) step_1_median_conversion_time, - prop - FROM - (SELECT aggregation_target, - steps, - avg(step_1_conversion_time) step_1_average_conversion_time_inner, - median(step_1_conversion_time) step_1_median_conversion_time_inner , - prop - FROM - (SELECT aggregation_target, - steps, - max(steps) over (PARTITION BY aggregation_target, - prop) as max_steps, - step_1_conversion_time , - prop - FROM - (SELECT *, - if(latest_0 <= latest_1 - AND latest_1 <= latest_0 + INTERVAL 14 DAY, 2, 1) AS steps , - if(isNotNull(latest_1) - AND latest_1 <= latest_0 + INTERVAL 14 DAY, dateDiff('second', toDateTime(latest_0), toDateTime(latest_1)), NULL) step_1_conversion_time, - prop - FROM - (SELECT aggregation_target, timestamp, step_0, - latest_0, - step_1, - min(latest_1) over (PARTITION by aggregation_target, - prop - ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) latest_1 , - if(has([['test'], ['control']], prop), prop, ['Other']) as prop - FROM - (SELECT *, - if(notEmpty(arrayFilter(x -> notEmpty(x), prop_vals)), prop_vals, ['']) as prop - FROM - (SELECT e.timestamp as timestamp, - pdi.person_id as aggregation_target, - pdi.person_id as person_id , - if(event = '$pageview', 1, 0) as step_0, - if(step_0 = 1, timestamp, null) as latest_0, - if(event = '$pageleave', 1, 0) as step_1, - if(step_1 = 1, timestamp, null) as latest_1, - array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS prop_basic, - prop_basic as prop, - argMinIf(prop, timestamp, notEmpty(arrayFilter(x -> notEmpty(x), prop))) over (PARTITION by aggregation_target) as prop_vals - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) AS pdi ON e.distinct_id = pdi.distinct_id - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'Europe/Amsterdam') >= toDateTime('2020-01-01 14:20:21', 'Europe/Amsterdam') - AND toTimeZone(timestamp, 'Europe/Amsterdam') <= toDateTime('2020-01-06 10:00:00', 'Europe/Amsterdam') - AND (step_0 = 1 - OR step_1 = 1) ))) - WHERE step_0 = 1 )) - GROUP BY aggregation_target, - steps, - prop - HAVING steps = max_steps) - GROUP BY prop - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, count(*) as count @@ -416,10 +189,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -488,124 +261,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.2 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.3 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT countIf(steps = 1) step_1, - countIf(steps = 2) step_2, - avg(step_1_average_conversion_time_inner) step_1_average_conversion_time, - median(step_1_median_conversion_time_inner) step_1_median_conversion_time, - prop - FROM - (SELECT aggregation_target, - steps, - avg(step_1_conversion_time) step_1_average_conversion_time_inner, - median(step_1_conversion_time) step_1_median_conversion_time_inner , - prop - FROM - (SELECT aggregation_target, - steps, - max(steps) over (PARTITION BY aggregation_target, - prop) as max_steps, - step_1_conversion_time , - prop - FROM - (SELECT *, - if(latest_0 <= latest_1 - AND latest_1 <= latest_0 + INTERVAL 14 DAY, 2, 1) AS steps , - if(isNotNull(latest_1) - AND latest_1 <= latest_0 + INTERVAL 14 DAY, dateDiff('second', toDateTime(latest_0), toDateTime(latest_1)), NULL) step_1_conversion_time, - prop - FROM - (SELECT aggregation_target, timestamp, step_0, - latest_0, - step_1, - min(latest_1) over (PARTITION by aggregation_target, - prop - ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) latest_1 , - if(has([[''], ['test_1'], ['test'], ['control'], ['unknown_3'], ['unknown_2'], ['unknown_1'], ['test_2']], prop), prop, ['Other']) as prop - FROM - (SELECT *, - if(notEmpty(arrayFilter(x -> notEmpty(x), prop_vals)), prop_vals, ['']) as prop - FROM - (SELECT e.timestamp as timestamp, - pdi.person_id as aggregation_target, - pdi.person_id as person_id , - if(event = '$pageview', 1, 0) as step_0, - if(step_0 = 1, timestamp, null) as latest_0, - if(event = '$pageleave', 1, 0) as step_1, - if(step_1 = 1, timestamp, null) as latest_1, - array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS prop_basic, - prop_basic as prop, - argMinIf(prop, timestamp, notEmpty(arrayFilter(x -> notEmpty(x), prop))) over (PARTITION by aggregation_target) as prop_vals - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) AS pdi ON e.distinct_id = pdi.distinct_id - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (step_0 = 1 - OR step_1 = 1) ))) - WHERE step_0 = 1 )) - GROUP BY aggregation_target, - steps, - prop - HAVING steps = max_steps) - GROUP BY prop - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, count(*) as count @@ -618,124 +277,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation.1 - ' - /* user_id:0 request:_snapshot_ */ - SELECT countIf(steps = 1) step_1, - countIf(steps = 2) step_2, - avg(step_1_average_conversion_time_inner) step_1_average_conversion_time, - median(step_1_median_conversion_time_inner) step_1_median_conversion_time, - prop - FROM - (SELECT aggregation_target, - steps, - avg(step_1_conversion_time) step_1_average_conversion_time_inner, - median(step_1_conversion_time) step_1_median_conversion_time_inner , - prop - FROM - (SELECT aggregation_target, - steps, - max(steps) over (PARTITION BY aggregation_target, - prop) as max_steps, - step_1_conversion_time , - prop - FROM - (SELECT *, - if(latest_0 <= latest_1 - AND latest_1 <= latest_0 + INTERVAL 14 DAY, 2, 1) AS steps , - if(isNotNull(latest_1) - AND latest_1 <= latest_0 + INTERVAL 14 DAY, dateDiff('second', toDateTime(latest_0), toDateTime(latest_1)), NULL) step_1_conversion_time, - prop - FROM - (SELECT aggregation_target, timestamp, step_0, - latest_0, - step_1, - min(latest_1) over (PARTITION by aggregation_target, - prop - ORDER BY timestamp DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) latest_1 , - if(has([['test'], ['control'], ['']], prop), prop, ['Other']) as prop - FROM - (SELECT *, - if(notEmpty(arrayFilter(x -> notEmpty(x), prop_vals)), prop_vals, ['']) as prop - FROM - (SELECT e.timestamp as timestamp, - replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(properties, '$account_id'), ''), 'null'), '^"|"$', '') as aggregation_target, - pdi.person_id as person_id , - if(event = '$pageview', 1, 0) as step_0, - if(step_0 = 1, timestamp, null) as latest_0, - if(event = '$pageleave', 1, 0) as step_1, - if(step_1 = 1, timestamp, null) as latest_1, - array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS prop_basic, - prop_basic as prop, - argMinIf(prop, timestamp, notEmpty(arrayFilter(x -> notEmpty(x), prop))) over (PARTITION by aggregation_target) as prop_vals - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) AS pdi ON e.distinct_id = pdi.distinct_id - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (step_0 = 1 - OR step_1 = 1) ))) - WHERE step_0 = 1 )) - GROUP BY aggregation_target, - steps, - prop - HAVING steps = max_steps) - GROUP BY prop - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation.2 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation.3 - ' - /* celery:posthog.celery.sync_insight_caching_state */ - SELECT team_id, - date_diff('second', max(timestamp), now()) AS age - FROM events - WHERE timestamp > date_sub(DAY, 3, now()) - AND timestamp < now() - GROUP BY team_id - ORDER BY age; - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT array(replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '')) AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event IN ['$pageleave', '$pageview'] - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestFunnelExperimentResults.test_experiment_flow_with_event_results_with_hogql_aggregation.5 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -804,10 +349,10 @@ prop HAVING steps = max_steps) GROUP BY prop - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, count(*) as count @@ -821,10 +366,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -867,10 +412,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, count(*) as count @@ -884,159 +429,11 @@ GROUP BY value ORDER BY count DESC, value DESC LIMIT 26 - OFFSET 0 - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.3 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['control', 'test'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(DISTINCT person_id) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - breakdown_value - FROM - (SELECT person_id, - min(timestamp) as timestamp, - breakdown_value - FROM - (SELECT pdi.person_id as person_id, timestamp, transform(ifNull(nullIf(replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', ''), ''), '$$_posthog_breakdown_null_$$'), (['control', 'test']), (['control', 'test']), '$$_posthog_breakdown_other_$$') as breakdown_value - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) as pdi ON events.distinct_id = pdi.distinct_id - WHERE e.team_id = 2 - AND event = '$feature_flag_called' - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') ) - GROUP BY person_id, - breakdown_value) AS pdi - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$pageview' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['test', 'control'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(*) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') as breakdown_value - FROM events e - WHERE e.team_id = 2 - AND event = '$pageview' - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') in (['test', 'control']) - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.6 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$feature_flag_called' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.7 - ' + OFFSET 0 + ''' +# --- +# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results.3 + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1070,7 +467,7 @@ min(timestamp) as timestamp, breakdown_value FROM - (SELECT pdi.person_id as person_id, timestamp, replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') as breakdown_value + (SELECT pdi.person_id as person_id, timestamp, transform(ifNull(nullIf(replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', ''), ''), '$$_posthog_breakdown_null_$$'), (['control', 'test']), (['control', 'test']), '$$_posthog_breakdown_other_$$') as breakdown_value FROM events e INNER JOIN (SELECT distinct_id, @@ -1084,8 +481,7 @@ AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') in (['control', 'test']) ) + AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') ) GROUP BY person_id, breakdown_value) AS pdi GROUP BY day_start, @@ -1096,10 +492,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, count(*) as count @@ -1113,10 +509,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1159,10 +555,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, count(*) as count @@ -1177,114 +573,19 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.3 - ' - /* user_id:0 request:_snapshot_ */ - SELECT [now()] AS date, - [0] AS total, - '' AS breakdown_value - LIMIT 0 - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$pageview1' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (has(['control', 'test_1', 'test_2', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['control', 'test_1', 'test_2'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(*) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') as breakdown_value - FROM events e - WHERE e.team_id = 2 - AND event = '$pageview1' - AND (has(['control', 'test_1', 'test_2', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') in (['control', 'test_1', 'test_2']) - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.6 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$feature_flag_called' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (has(['control', 'test_1', 'test_2', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_for_three_test_variants.7 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT [now()] AS date, [0] AS total, '' AS breakdown_value LIMIT 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, count(*) as count @@ -1298,10 +599,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1344,10 +645,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, count(*) as count @@ -1362,10 +663,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1424,159 +725,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$pageview' - AND toTimeZone(timestamp, 'US/Pacific') >= toDateTime('2020-01-01 02:10:00', 'US/Pacific') - AND toTimeZone(timestamp, 'US/Pacific') <= toDateTime('2020-01-06 07:00:00', 'US/Pacific') - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 07:00:00', 'US/Pacific')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 02:10:00', 'US/Pacific')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['test', 'control'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(*) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'US/Pacific')) as day_start, - replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') as breakdown_value - FROM events e - WHERE e.team_id = 2 - AND event = '$pageview' - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'US/Pacific') >= toDateTime('2020-01-01 02:10:00', 'US/Pacific') - AND toTimeZone(timestamp, 'US/Pacific') <= toDateTime('2020-01-06 07:00:00', 'US/Pacific') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') in (['test', 'control']) - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.6 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$feature_flag_called' - AND toTimeZone(timestamp, 'US/Pacific') >= toDateTime('2020-01-01 02:10:00', 'US/Pacific') - AND toTimeZone(timestamp, 'US/Pacific') <= toDateTime('2020-01-06 07:00:00', 'US/Pacific') - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_out_of_timerange_timezone.7 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 07:00:00', 'US/Pacific')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 02:10:00', 'US/Pacific')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['control', 'test'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(DISTINCT person_id) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'US/Pacific')) as day_start, - breakdown_value - FROM - (SELECT person_id, - min(timestamp) as timestamp, - breakdown_value - FROM - (SELECT pdi.person_id as person_id, timestamp, replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') as breakdown_value - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) as pdi ON events.distinct_id = pdi.distinct_id - WHERE e.team_id = 2 - AND event = '$feature_flag_called' - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'US/Pacific') >= toDateTime('2020-01-01 02:10:00', 'US/Pacific') - AND toTimeZone(timestamp, 'US/Pacific') <= toDateTime('2020-01-06 07:00:00', 'US/Pacific') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') in (['control', 'test']) ) - GROUP BY person_id, - breakdown_value) AS pdi - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, count(*) as count @@ -1591,10 +743,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1638,10 +790,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, count(*) as count @@ -1656,10 +808,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -1718,158 +870,5 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.4 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$pageview' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND ((has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - AND (ifNull(ilike(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(properties, 'hogql'), ''), 'null'), '^"|"$', ''), 'true'), isNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(properties, 'hogql'), ''), 'null'), '^"|"$', '')) - and isNull('true')))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.5 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['test', 'control'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(*) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') as breakdown_value - FROM events e - WHERE e.team_id = 2 - AND event = '$pageview' - AND ((has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature/a-b-test'), '^"|"$', ''))) - AND (ifNull(ilike(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(properties, 'hogql'), ''), 'null'), '^"|"$', ''), 'true'), isNull(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(properties, 'hogql'), ''), 'null'), '^"|"$', '')) - and isNull('true')))) - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature/a-b-test'), '^"|"$', '') in (['test', 'control']) - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.6 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(value) - FROM - (SELECT replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') AS value, - count(*) as count - FROM events e - WHERE team_id = 2 - AND event = '$feature_flag_called' - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - GROUP BY value - ORDER BY count DESC, value DESC - LIMIT 25 - OFFSET 0) - ' ---- -# name: ClickhouseTestTrendExperimentResults.test_experiment_flow_with_event_results_with_hogql_filter.7 - ' - /* user_id:0 request:_snapshot_ */ - SELECT groupArray(day_start) as date, - groupArray(count) AS total, - breakdown_value - FROM - (SELECT SUM(total) as count, - day_start, - breakdown_value - FROM - (SELECT * - FROM - (SELECT toUInt16(0) AS total, - ticks.day_start as day_start, - breakdown_value - FROM - (SELECT toStartOfDay(toDateTime('2020-01-06 00:00:00', 'UTC')) - toIntervalDay(number) as day_start - FROM numbers(6) - UNION ALL SELECT toStartOfDay(toDateTime('2020-01-01 00:00:00', 'UTC')) as day_start) as ticks - CROSS JOIN - (SELECT breakdown_value - FROM - (SELECT ['control', 'test'] as breakdown_value) ARRAY - JOIN breakdown_value) as sec - ORDER BY breakdown_value, - day_start - UNION ALL SELECT count(DISTINCT person_id) as total, - toStartOfDay(toTimeZone(toDateTime(timestamp, 'UTC'), 'UTC')) as day_start, - breakdown_value - FROM - (SELECT person_id, - min(timestamp) as timestamp, - breakdown_value - FROM - (SELECT pdi.person_id as person_id, timestamp, replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') as breakdown_value - FROM events e - INNER JOIN - (SELECT distinct_id, - argMax(person_id, version) as person_id - FROM person_distinct_id2 - WHERE team_id = 2 - GROUP BY distinct_id - HAVING argMax(is_deleted, version) = 0) as pdi ON events.distinct_id = pdi.distinct_id - WHERE e.team_id = 2 - AND event = '$feature_flag_called' - AND (has(['control', 'test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag_response'), '^"|"$', '')) - AND has(['a-b-test'], replaceRegexpAll(JSONExtractRaw(e.properties, '$feature_flag'), '^"|"$', ''))) - AND toTimeZone(timestamp, 'UTC') >= toDateTime('2020-01-01 00:00:00', 'UTC') - AND toTimeZone(timestamp, 'UTC') <= toDateTime('2020-01-06 00:00:00', 'UTC') - AND replaceRegexpAll(JSONExtractRaw(properties, '$feature_flag_response'), '^"|"$', '') in (['control', 'test']) ) - GROUP BY person_id, - breakdown_value) AS pdi - GROUP BY day_start, - breakdown_value)) - GROUP BY day_start, - breakdown_value - ORDER BY breakdown_value, - day_start) - GROUP BY breakdown_value - ORDER BY breakdown_value - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_groups.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_groups.ambr index b37b7d7786541..6518393db2058 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_groups.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_groups.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestGroupsApi.test_related_groups - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT pdi.person_id FROM events e @@ -14,10 +15,10 @@ AND timestamp > '2021-02-09T00:00:00.000000' AND timestamp < '2021-05-10T00:00:00.000000' AND $group_0 = '0::0' - ' ---- + ''' +# --- # name: ClickhouseTestGroupsApi.test_related_groups.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT $group_1 AS group_key FROM events e @@ -33,10 +34,10 @@ AND group_key != '' AND $group_0 = '0::0' ORDER BY group_key - ' ---- + ''' +# --- # name: ClickhouseTestGroupsApi.test_related_groups_person - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT $group_0 AS group_key FROM events e @@ -59,10 +60,10 @@ AND group_key != '' AND pdi.person_id = '01795392-cc00-0003-7dc7-67a694604d72' ORDER BY group_key - ' ---- + ''' +# --- # name: ClickhouseTestGroupsApi.test_related_groups_person.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT $group_1 AS group_key FROM events e @@ -85,5 +86,5 @@ AND group_key != '' AND pdi.person_id = '01795392-cc00-0003-7dc7-67a694604d72' ORDER BY group_key - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_retention.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_retention.ambr index 1c64b1d72a4b4..4a0e871b022e5 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_retention.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_retention.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: RetentionTests.test_retention_aggregation_by_distinct_id_and_retrieve_people - ' + ''' /* user_id:0 request:_snapshot_ */ WITH actor_query AS (WITH 'Day' as period, NULL as breakdown_values_filter, @@ -55,10 +56,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: RetentionTests.test_retention_aggregation_by_distinct_id_and_retrieve_people.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -127,10 +128,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: RetentionTests.test_retention_aggregation_by_distinct_id_and_retrieve_people.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -199,10 +200,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: RetentionTests.test_retention_test_account_filters - ' + ''' /* user_id:0 request:_snapshot_ */ WITH actor_query AS (WITH 'Day' as period, NULL as breakdown_values_filter, @@ -296,10 +297,10 @@ intervals_from_base ORDER BY breakdown_values, intervals_from_base - ' ---- + ''' +# --- # name: RetentionTests.test_retention_test_account_filters.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -392,10 +393,10 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: RetentionTests.test_retention_test_account_filters.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT actor_id, groupArray(actor_activity.intervals_from_base) AS appearances @@ -488,5 +489,5 @@ ORDER BY length(appearances) DESC, actor_id LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_stickiness.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_stickiness.ambr index edf95a37ab4b7..97d88c989a80d 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_stickiness.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_stickiness.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestClickhouseStickiness.test_aggregate_by_groups - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -23,10 +24,10 @@ WHERE num_intervals <= 8 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_aggregate_by_groups.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -50,10 +51,10 @@ WHERE num_intervals = 1 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_aggregate_by_groups.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -77,10 +78,10 @@ WHERE num_intervals = 2 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_aggregate_by_groups.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -104,10 +105,10 @@ WHERE num_intervals = 3 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_compare - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -130,10 +131,10 @@ WHERE num_intervals <= 9 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_compare.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -156,10 +157,10 @@ WHERE num_intervals <= 9 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_filter_by_group_properties - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -190,10 +191,10 @@ WHERE num_intervals <= 8 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_filter_by_group_properties.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -223,10 +224,10 @@ WHERE num_intervals = 1 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_filter_by_group_properties.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -256,10 +257,10 @@ WHERE num_intervals = 2 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_filter_by_group_properties.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -289,10 +290,10 @@ WHERE num_intervals = 3 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_all_time - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT timestamp from events @@ -300,10 +301,10 @@ AND timestamp > '2015-01-01' order by timestamp limit 1 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_all_time.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -326,10 +327,10 @@ WHERE num_intervals <= 9 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_all_time_with_sampling - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT timestamp from events @@ -337,10 +338,10 @@ AND timestamp > '2015-01-01' order by timestamp limit 1 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_all_time_with_sampling.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -363,10 +364,10 @@ WHERE num_intervals <= 9 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_hours - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -389,10 +390,10 @@ WHERE num_intervals <= 10 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_people_endpoint - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -414,10 +415,10 @@ WHERE num_intervals = 1 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_people_paginated - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -439,10 +440,10 @@ WHERE num_intervals = 1 LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_people_paginated.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT DISTINCT aggregation_target AS actor_id FROM @@ -464,10 +465,10 @@ WHERE num_intervals = 1 LIMIT 100 OFFSET 100 - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_with_person_on_events_v2 - ' + ''' SELECT distinct_id, person_id @@ -478,10 +479,10 @@ GROUP BY distinct_id, person_id ORDER BY if(distinct_id = 'person1', -1, 0) - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_stickiness_with_person_on_events_v2.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countDistinct(aggregation_target), num_intervals @@ -504,10 +505,10 @@ WHERE num_intervals <= 9 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_timezones - ' + ''' SELECT countDistinct(aggregation_target), num_intervals @@ -530,10 +531,10 @@ WHERE num_intervals <= 16 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- # name: TestClickhouseStickiness.test_timezones.1 - ' + ''' SELECT countDistinct(aggregation_target), num_intervals @@ -556,5 +557,5 @@ WHERE num_intervals <= 16 GROUP BY num_intervals ORDER BY num_intervals - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_trends.ambr b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_trends.ambr index 5bdb57e5693ef..ab2848e1dbb01 100644 --- a/ee/clickhouse/views/test/__snapshots__/test_clickhouse_trends.ambr +++ b/ee/clickhouse/views/test/__snapshots__/test_clickhouse_trends.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestTrends.test_insight_trends_aggregate - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT count(*) AS total FROM events e @@ -7,10 +8,10 @@ AND event = '$pageview' AND toTimeZone(timestamp, 'UTC') >= toDateTime(toStartOfDay(toDateTime('2012-01-01 00:00:00', 'UTC')), 'UTC') AND toTimeZone(timestamp, 'UTC') <= toDateTime('2012-01-15 23:59:59', 'UTC') - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_aggregate.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -36,10 +37,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_basic - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -69,10 +70,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_basic.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -98,10 +99,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_clean_arg - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -125,10 +126,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_clean_arg.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -156,10 +157,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -182,10 +183,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -211,10 +212,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.10 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, 'key'), '^"|"$', '') AS value, count(*) as count @@ -227,10 +228,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.11 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -287,10 +288,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.12 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -318,10 +319,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.2 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -355,10 +356,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.3 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -384,10 +385,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.4 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, 'key'), '^"|"$', '') AS value, count(*) as count @@ -400,10 +401,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.5 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -445,10 +446,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.6 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -476,10 +477,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.7 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT replaceRegexpAll(JSONExtractRaw(properties, 'key'), '^"|"$', '') AS value, count(DISTINCT pdi.person_id) as count @@ -513,10 +514,10 @@ ORDER BY count DESC, value DESC LIMIT 26 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.8 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total, @@ -602,10 +603,10 @@ day_start) GROUP BY breakdown_value ORDER BY breakdown_value - ' ---- + ''' +# --- # name: ClickhouseTestTrends.test_insight_trends_cumulative.9 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -647,10 +648,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendsCaching.test_insight_trends_merging - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -680,10 +681,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsCaching.test_insight_trends_merging.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -713,10 +714,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsCaching.test_insight_trends_merging_skipped_interval - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -746,10 +747,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsCaching.test_insight_trends_merging_skipped_interval.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -779,10 +780,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsGroups.test_aggregating_by_group - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -807,10 +808,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsGroups.test_aggregating_by_group.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT $group_0 AS actor_id, count() AS actor_value @@ -830,10 +831,10 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- # name: ClickhouseTestTrendsGroups.test_aggregating_by_session - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT groupArray(day_start) as date, groupArray(count) AS total @@ -856,10 +857,10 @@ GROUP BY date) GROUP BY day_start ORDER BY day_start) - ' ---- + ''' +# --- # name: ClickhouseTestTrendsGroups.test_aggregating_by_session.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT person_id AS actor_id, count() AS actor_value @@ -886,5 +887,5 @@ actor_id DESC LIMIT 100 OFFSET 0 - ' ---- + ''' +# --- diff --git a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel.ambr b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel.ambr index 52551e0ef91ec..95dde4841c728 100644 --- a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel.ambr +++ b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestFunnelGroups.test_funnel_aggregation_with_groups - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -46,10 +47,10 @@ GROUP BY aggregation_target, steps HAVING steps = max_steps) - ' ---- + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_aggregation_with_groups.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -97,11 +98,12 @@ WHERE steps IN [1, 2] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_group_aggregation_with_groups_entity_filtering - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -149,10 +151,10 @@ GROUP BY aggregation_target, steps HAVING steps = max_steps) - ' ---- + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_group_aggregation_with_groups_entity_filtering.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -201,11 +203,12 @@ WHERE steps IN [1, 2] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_with_groups_entity_filtering - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -260,10 +263,10 @@ GROUP BY aggregation_target, steps HAVING steps = max_steps) - ' ---- + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_with_groups_entity_filtering.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -318,11 +321,12 @@ WHERE steps IN [1, 2] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_with_groups_global_filtering - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -384,10 +388,10 @@ GROUP BY aggregation_target, steps HAVING steps = max_steps) - ' ---- + ''' +# --- # name: ClickhouseTestFunnelGroups.test_funnel_with_groups_global_filtering.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -449,6 +453,7 @@ WHERE steps IN [1, 2] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- diff --git a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_person.ambr b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_person.ambr index 651c72d8be2ef..5b85988ab77ad 100644 --- a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_person.ambr +++ b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_person.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: TestFunnelPerson.test_funnel_actors_with_groups_search - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -103,6 +104,7 @@ WHERE steps IN [1, 2, 3] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- diff --git a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_unordered.ambr b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_unordered.ambr index a0a7b68edb7e5..9b03221c7ce41 100644 --- a/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_unordered.ambr +++ b/ee/clickhouse/views/test/funnel/__snapshots__/test_clickhouse_funnel_unordered.ambr @@ -1,5 +1,6 @@ +# serializer version: 1 # name: ClickhouseTestUnorderedFunnelGroups.test_unordered_funnel_with_groups - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT countIf(steps = 1) step_1, countIf(steps = 2) step_2, @@ -75,10 +76,10 @@ GROUP BY aggregation_target, steps HAVING steps = max_steps) - ' ---- + ''' +# --- # name: ClickhouseTestUnorderedFunnelGroups.test_unordered_funnel_with_groups.1 - ' + ''' /* user_id:0 request:_snapshot_ */ SELECT aggregation_target AS actor_id FROM @@ -156,6 +157,7 @@ WHERE steps IN [1, 2] ORDER BY aggregation_target LIMIT 100 - OFFSET 0 - ' ---- + OFFSET 0 SETTINGS max_ast_elements=1000000, + max_expanded_ast_elements=1000000 + ''' +# --- diff --git a/ee/session_recordings/session_recording_playlist.py b/ee/session_recordings/session_recording_playlist.py index 31e76a168f43c..5849481d2f4c2 100644 --- a/ee/session_recordings/session_recording_playlist.py +++ b/ee/session_recordings/session_recording_playlist.py @@ -40,6 +40,7 @@ ) from posthog.session_recordings.session_recording_api import list_recordings_response from posthog.utils import relative_date_parse +from loginas.utils import is_impersonated_session logger = structlog.get_logger(__name__) @@ -52,6 +53,7 @@ def log_playlist_activity( organization_id: UUIDT, team_id: int, user: User, + was_impersonated: bool, changes: Optional[List[Change]] = None, ) -> None: """ @@ -66,6 +68,7 @@ def log_playlist_activity( organization_id=organization_id, team_id=team_id, user=user, + was_impersonated=was_impersonated, item_id=playlist_id, scope="SessionRecordingPlaylist", activity=activity, @@ -125,6 +128,7 @@ def create(self, validated_data: Dict, *args, **kwargs) -> SessionRecordingPlayl organization_id=self.context["request"].user.current_organization_id, team_id=team.id, user=self.context["request"].user, + was_impersonated=is_impersonated_session(self.context["request"]), ) return playlist @@ -150,6 +154,7 @@ def update(self, instance: SessionRecordingPlaylist, validated_data: Dict, **kwa organization_id=self.context["request"].user.current_organization_id, team_id=self.context["team_id"], user=self.context["request"].user, + was_impersonated=is_impersonated_session(self.context["request"]), changes=changes, ) diff --git a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png index a7abeb3e31dbb..ee4c46f959b04 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png and b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png index bb1a4dc628445..216fe48ac872d 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png and b/frontend/__snapshots__/components-errors-error-display--anonymous-error-with-stack-trace--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png b/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png index b70d129dff586..e994ede6d9bfb 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png and b/frontend/__snapshots__/components-errors-error-display--importing-module--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--importing-module--light.png b/frontend/__snapshots__/components-errors-error-display--importing-module--light.png index caa7590b38f6a..b86d5d5c03570 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--importing-module--light.png and b/frontend/__snapshots__/components-errors-error-display--importing-module--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png index 0078c07650b11..9589b57a0d98c 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png and b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png index d3e7c1ce67937..88915ba84537c 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png and b/frontend/__snapshots__/components-errors-error-display--resize-observer-loop-limit-exceeded--light.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png b/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png index b8b63482a6dce..8e90948a09f6f 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png and b/frontend/__snapshots__/components-errors-error-display--safari-script-error--dark.png differ diff --git a/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png b/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png index c66770936ea59..300a2d36739a5 100644 Binary files a/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png and b/frontend/__snapshots__/components-errors-error-display--safari-script-error--light.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--editable-display--dark.png b/frontend/__snapshots__/components-html-elements-display--editable-display--dark.png index e39b73dccf3be..f4573ad7274ce 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--editable-display--dark.png and b/frontend/__snapshots__/components-html-elements-display--editable-display--dark.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--editable-display--light.png b/frontend/__snapshots__/components-html-elements-display--editable-display--light.png index 596ec40e8828a..b3f041fe9520c 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--editable-display--light.png and b/frontend/__snapshots__/components-html-elements-display--editable-display--light.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--dark.png b/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--dark.png index f6f794eed4c6f..12b08518ad98b 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--dark.png and b/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--dark.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--light.png b/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--light.png index e5eab180ca4e6..3af5884481d77 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--light.png and b/frontend/__snapshots__/components-html-elements-display--editable-display-with-preselection--light.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--empty-display--dark.png b/frontend/__snapshots__/components-html-elements-display--empty-display--dark.png index 79475891d6d25..8af4d2f7e929f 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--empty-display--dark.png and b/frontend/__snapshots__/components-html-elements-display--empty-display--dark.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--empty-display--light.png b/frontend/__snapshots__/components-html-elements-display--empty-display--light.png index 813e3d07c2846..ffed6c32698e8 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--empty-display--light.png and b/frontend/__snapshots__/components-html-elements-display--empty-display--light.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--example-elements--dark.png b/frontend/__snapshots__/components-html-elements-display--example-elements--dark.png index 79475891d6d25..8af4d2f7e929f 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--example-elements--dark.png and b/frontend/__snapshots__/components-html-elements-display--example-elements--dark.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--example-elements--light.png b/frontend/__snapshots__/components-html-elements-display--example-elements--light.png index 813e3d07c2846..ffed6c32698e8 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--example-elements--light.png and b/frontend/__snapshots__/components-html-elements-display--example-elements--light.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--dark.png b/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--dark.png index be848cf78e9b2..6e0935a6dd389 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--dark.png and b/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--dark.png differ diff --git a/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--light.png b/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--light.png index 6e0dfc9485a9c..ef5c3a8ead840 100644 Binary files a/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--light.png and b/frontend/__snapshots__/components-html-elements-display--with-uniqueness-check--light.png differ diff --git a/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png b/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png index 3923c9d8ca74e..39d124b7321e8 100644 Binary files a/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png and b/frontend/__snapshots__/components-networkrequesttiming--basic--dark.png differ diff --git a/frontend/__snapshots__/components-networkrequesttiming--basic--light.png b/frontend/__snapshots__/components-networkrequesttiming--basic--light.png index 9909a831e80cd..dd3ec76426daf 100644 Binary files a/frontend/__snapshots__/components-networkrequesttiming--basic--light.png and b/frontend/__snapshots__/components-networkrequesttiming--basic--light.png differ diff --git a/frontend/__snapshots__/components-not-found--not-found--dark.png b/frontend/__snapshots__/components-not-found--not-found--dark.png index 2851e668fac57..0490729ac8368 100644 Binary files a/frontend/__snapshots__/components-not-found--not-found--dark.png and b/frontend/__snapshots__/components-not-found--not-found--dark.png differ diff --git a/frontend/__snapshots__/components-not-found--not-found--light.png b/frontend/__snapshots__/components-not-found--not-found--light.png index 6090c39c0dfca..5886f7561c08d 100644 Binary files a/frontend/__snapshots__/components-not-found--not-found--light.png and b/frontend/__snapshots__/components-not-found--not-found--light.png differ diff --git a/frontend/__snapshots__/components-properties-table--properties-table--dark.png b/frontend/__snapshots__/components-properties-table--properties-table--dark.png index 4c3eecefaa480..d0d79cbec500f 100644 Binary files a/frontend/__snapshots__/components-properties-table--properties-table--dark.png and b/frontend/__snapshots__/components-properties-table--properties-table--dark.png differ diff --git a/frontend/__snapshots__/components-properties-table--properties-table--light.png b/frontend/__snapshots__/components-properties-table--properties-table--light.png index b26437d5170c7..e827d95f2a83f 100644 Binary files a/frontend/__snapshots__/components-properties-table--properties-table--light.png and b/frontend/__snapshots__/components-properties-table--properties-table--light.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--dark.png b/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--dark.png index 5d4133c9f9180..33850a4ce0d5d 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--dark.png and b/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--dark.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--light.png b/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--light.png index 4e478ee6c087a..440227a985a40 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--light.png and b/frontend/__snapshots__/components-properties-timeline--multiple-points-for-one-person-property--light.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--dark.png b/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--dark.png index fe9b35d7f66b7..41ad4c4c0a750 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--dark.png and b/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--dark.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--light.png b/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--light.png index 4d735f3de6823..7397ce91fb435 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--light.png and b/frontend/__snapshots__/components-properties-timeline--no-points-for-no-person-properties--light.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--dark.png b/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--dark.png index 2e9de8a4e1816..8ea8fe4cd2a60 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--dark.png and b/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--dark.png differ diff --git a/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--light.png b/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--light.png index d78cd96891890..c51df947dd638 100644 Binary files a/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--light.png and b/frontend/__snapshots__/components-properties-timeline--one-point-for-one-person-property--light.png differ diff --git a/frontend/__snapshots__/components-sharing--dashboard-sharing--dark.png b/frontend/__snapshots__/components-sharing--dashboard-sharing--dark.png index db58ac179b34e..17e58aab5f02a 100644 Binary files a/frontend/__snapshots__/components-sharing--dashboard-sharing--dark.png and b/frontend/__snapshots__/components-sharing--dashboard-sharing--dark.png differ diff --git a/frontend/__snapshots__/components-sharing--dashboard-sharing--light.png b/frontend/__snapshots__/components-sharing--dashboard-sharing--light.png index 5b6a11afbb388..2b20d80bdd3e8 100644 Binary files a/frontend/__snapshots__/components-sharing--dashboard-sharing--light.png and b/frontend/__snapshots__/components-sharing--dashboard-sharing--light.png differ diff --git a/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--dark.png b/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--dark.png index 02abcd63c5c0b..1de1eb08f81dd 100644 Binary files a/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--dark.png and b/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--dark.png differ diff --git a/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--light.png b/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--light.png index 7950e74023174..721d35606de1f 100644 Binary files a/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--light.png and b/frontend/__snapshots__/components-sharing--dashboard-sharing-licensed--light.png differ diff --git a/frontend/__snapshots__/components-sharing--insight-sharing--dark.png b/frontend/__snapshots__/components-sharing--insight-sharing--dark.png index 46eb14f8db0b7..752cc0ad13d3e 100644 Binary files a/frontend/__snapshots__/components-sharing--insight-sharing--dark.png and b/frontend/__snapshots__/components-sharing--insight-sharing--dark.png differ diff --git a/frontend/__snapshots__/components-sharing--insight-sharing--light.png b/frontend/__snapshots__/components-sharing--insight-sharing--light.png index acfe3b3eaaa75..daca5a1aa5e77 100644 Binary files a/frontend/__snapshots__/components-sharing--insight-sharing--light.png and b/frontend/__snapshots__/components-sharing--insight-sharing--light.png differ diff --git a/frontend/__snapshots__/components-sharing--insight-sharing-licensed--dark.png b/frontend/__snapshots__/components-sharing--insight-sharing-licensed--dark.png index dfbe061958fc9..fcf7d2bc0ee31 100644 Binary files a/frontend/__snapshots__/components-sharing--insight-sharing-licensed--dark.png and b/frontend/__snapshots__/components-sharing--insight-sharing-licensed--dark.png differ diff --git a/frontend/__snapshots__/components-sharing--insight-sharing-licensed--light.png b/frontend/__snapshots__/components-sharing--insight-sharing-licensed--light.png index 5dcd9d177ee25..818c4a2134bc9 100644 Binary files a/frontend/__snapshots__/components-sharing--insight-sharing-licensed--light.png and b/frontend/__snapshots__/components-sharing--insight-sharing-licensed--light.png differ diff --git a/frontend/__snapshots__/components-sharing--recording-sharing-licensed--dark.png b/frontend/__snapshots__/components-sharing--recording-sharing-licensed--dark.png index fc1ec522012e6..0124aebefc9eb 100644 Binary files a/frontend/__snapshots__/components-sharing--recording-sharing-licensed--dark.png and b/frontend/__snapshots__/components-sharing--recording-sharing-licensed--dark.png differ diff --git a/frontend/__snapshots__/components-sharing--recording-sharing-licensed--light.png b/frontend/__snapshots__/components-sharing--recording-sharing-licensed--light.png index 477d2fc373f20..8d478e409a28b 100644 Binary files a/frontend/__snapshots__/components-sharing--recording-sharing-licensed--light.png and b/frontend/__snapshots__/components-sharing--recording-sharing-licensed--light.png differ diff --git a/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--dark.png index b2a247ca1529b..185ad373822c8 100644 Binary files a/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--dark.png and b/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--dark.png differ diff --git a/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--light.png index 93f7be23da3c9..f3f195ca705db 100644 Binary files a/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--light.png and b/frontend/__snapshots__/exporter-exporter--funnel-time-to-convert-insight--light.png differ diff --git a/frontend/__snapshots__/filters-property-filter-button--button--dark.png b/frontend/__snapshots__/filters-property-filter-button--button--dark.png index 8f3be459b455a..cf8e5f67a4aaa 100644 Binary files a/frontend/__snapshots__/filters-property-filter-button--button--dark.png and b/frontend/__snapshots__/filters-property-filter-button--button--dark.png differ diff --git a/frontend/__snapshots__/filters-property-filter-button--button--light.png b/frontend/__snapshots__/filters-property-filter-button--button--light.png index d606cf6eef75f..c63597c73fe19 100644 Binary files a/frontend/__snapshots__/filters-property-filter-button--button--light.png and b/frontend/__snapshots__/filters-property-filter-button--button--light.png differ diff --git a/frontend/__snapshots__/filters-property-filter-button--pseudo-states--dark.png b/frontend/__snapshots__/filters-property-filter-button--pseudo-states--dark.png index 3344153da71fe..ac2549aeb83d8 100644 Binary files a/frontend/__snapshots__/filters-property-filter-button--pseudo-states--dark.png and b/frontend/__snapshots__/filters-property-filter-button--pseudo-states--dark.png differ diff --git a/frontend/__snapshots__/filters-property-filter-button--pseudo-states--light.png b/frontend/__snapshots__/filters-property-filter-button--pseudo-states--light.png index a7bf3e49d32f9..02be4cea65bb3 100644 Binary files a/frontend/__snapshots__/filters-property-filter-button--pseudo-states--light.png and b/frontend/__snapshots__/filters-property-filter-button--pseudo-states--light.png differ diff --git a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--dark.png b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--dark.png index 02ae05942903c..cc953661a43f0 100644 Binary files a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--dark.png and b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--dark.png differ diff --git a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--light.png b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--light.png index 4fecd9bb7a3a9..ad1be12259a79 100644 Binary files a/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--light.png and b/frontend/__snapshots__/filters-propertyfilters--comparing-property-filters--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--compact--dark.png b/frontend/__snapshots__/lemon-ui-code-snippet--compact--dark.png index 8abbba0ec28c3..cb1383a9d140c 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--compact--dark.png and b/frontend/__snapshots__/lemon-ui-code-snippet--compact--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--compact--light.png b/frontend/__snapshots__/lemon-ui-code-snippet--compact--light.png index fdfc937f3398d..ef6cd6066e596 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--compact--light.png and b/frontend/__snapshots__/lemon-ui-code-snippet--compact--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--default--dark.png b/frontend/__snapshots__/lemon-ui-code-snippet--default--dark.png index 64d3ca244521a..be08334b4d9ab 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--default--dark.png and b/frontend/__snapshots__/lemon-ui-code-snippet--default--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--default--light.png b/frontend/__snapshots__/lemon-ui-code-snippet--default--light.png index 5cd98a7d94ef3..93e2b5a5c0921 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--default--light.png and b/frontend/__snapshots__/lemon-ui-code-snippet--default--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--java-script--dark.png b/frontend/__snapshots__/lemon-ui-code-snippet--java-script--dark.png index 8556057d0a037..7e2dee7f0a92a 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--java-script--dark.png and b/frontend/__snapshots__/lemon-ui-code-snippet--java-script--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--java-script--light.png b/frontend/__snapshots__/lemon-ui-code-snippet--java-script--light.png index da993d52a3048..f4c948e1fd7cd 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--java-script--light.png and b/frontend/__snapshots__/lemon-ui-code-snippet--java-script--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--wrap--dark.png b/frontend/__snapshots__/lemon-ui-code-snippet--wrap--dark.png index 8939e14e6643b..04580ae04264c 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--wrap--dark.png and b/frontend/__snapshots__/lemon-ui-code-snippet--wrap--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-code-snippet--wrap--light.png b/frontend/__snapshots__/lemon-ui-code-snippet--wrap--light.png index 12c92a3120591..051b6cb38bfd4 100644 Binary files a/frontend/__snapshots__/lemon-ui-code-snippet--wrap--light.png and b/frontend/__snapshots__/lemon-ui-code-snippet--wrap--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png index dc701797d93b2..5aeb67eab8526 100644 Binary files a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png and b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png index 80c440d0c93c7..8c832059395fb 100644 Binary files a/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png and b/frontend/__snapshots__/lemon-ui-forms-and-fields--fields-with-kea-form--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-bubble--dark.png b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-bubble--dark.png index fcbdaa3530661..2db7b0889c32d 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-bubble--dark.png and b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-bubble--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--dark.png b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--dark.png index 46ef10bee7ab9..b254d8deba644 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--dark.png and b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--light.png b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--light.png index e0cb16289bf04..85455cc258b9b 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--light.png and b/frontend/__snapshots__/lemon-ui-icons--icon-with-count-overflowing--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-d--light.png b/frontend/__snapshots__/lemon-ui-icons--shelf-d--light.png index 85908ef4d820f..2e67972bc9302 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-d--light.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-d--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-e--dark.png b/frontend/__snapshots__/lemon-ui-icons--shelf-e--dark.png index 147b2369f6d8b..6e4704248cc20 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-e--dark.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-e--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-e--light.png b/frontend/__snapshots__/lemon-ui-icons--shelf-e--light.png index 3c5facfd6eb5d..c3c78e977ec71 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-e--light.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-e--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-p--dark.png b/frontend/__snapshots__/lemon-ui-icons--shelf-p--dark.png index 1904af35fab06..b7b58a60517d2 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-p--dark.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-p--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-p--light.png b/frontend/__snapshots__/lemon-ui-icons--shelf-p--light.png index 34cd2aae4745e..934e188787b35 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-p--light.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-p--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-s--dark.png b/frontend/__snapshots__/lemon-ui-icons--shelf-s--dark.png index ee492a5f8b73f..b9ee609363c1c 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-s--dark.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-s--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-icons--shelf-s--light.png b/frontend/__snapshots__/lemon-ui-icons--shelf-s--light.png index d32382360be81..ea4c969acd228 100644 Binary files a/frontend/__snapshots__/lemon-ui-icons--shelf-s--light.png and b/frontend/__snapshots__/lemon-ui-icons--shelf-s--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--standard--dark.png b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--standard--dark.png index c2f0bd017aadb..c63bd1520d071 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--standard--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--standard--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--status--dark.png b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--status--dark.png index 993252eec398e..d3705d59d8097 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--status--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-badge-lemon-badge--status--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png index 6a53270f112d8..63b7bfd9b1293 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png index 9e2bdac9d6737..550cee152c102 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png and b/frontend/__snapshots__/lemon-ui-lemon-button--as-links--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-markdown--default--dark.png b/frontend/__snapshots__/lemon-ui-lemon-markdown--default--dark.png index 77515dfb4b578..927c6ea16f3a1 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-markdown--default--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-markdown--default--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-markdown--default--light.png b/frontend/__snapshots__/lemon-ui-lemon-markdown--default--light.png index ed61d9a806e7a..a725d61378b10 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-markdown--default--light.png and b/frontend/__snapshots__/lemon-ui-lemon-markdown--default--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png index e41052cc3e62a..b3f0e5aff920d 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png index 1e3bd4537aef8..2270b98673d95 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--default--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png index e41052cc3e62a..b3f0e5aff920d 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png index 1e3bd4537aef8..2270b98673d95 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--full-width--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png index 431eb5f508667..c443418b6459d 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png index 104b2e2158d0f..0e60b3bbfed74 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png and b/frontend/__snapshots__/lemon-ui-lemon-segmented-button--small--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png index 39e1746d4f240..be0f293e55e00 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png index 0c3de1ec6028f..aa5074e189fe7 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--presets--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png index 16a7dce66e736..26f01c95ac385 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png index 2383a3628cab8..3137693589071 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png and b/frontend/__snapshots__/lemon-ui-lemon-skeleton--repeat--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-table--x-small--dark.png b/frontend/__snapshots__/lemon-ui-lemon-table--x-small--dark.png index 941fb99c9265f..c7e2e8014aa1a 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-table--x-small--dark.png and b/frontend/__snapshots__/lemon-ui-lemon-table--x-small--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-lemon-table--x-small--light.png b/frontend/__snapshots__/lemon-ui-lemon-table--x-small--light.png index fa828606a089c..4093d5d23333a 100644 Binary files a/frontend/__snapshots__/lemon-ui-lemon-table--x-small--light.png and b/frontend/__snapshots__/lemon-ui-lemon-table--x-small--light.png differ diff --git a/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--dark.png b/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--dark.png index e0eaa42f2948a..ea2b6db0a77ea 100644 Binary files a/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--dark.png and b/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--dark.png differ diff --git a/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--light.png b/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--light.png index c6d641eca799f..da9075401372e 100644 Binary files a/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--light.png and b/frontend/__snapshots__/lemon-ui-scrollable-shadows--vertical--light.png differ diff --git a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png index 0c0dfaa5d9355..6f65b70500363 100644 Binary files a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png and b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--dark.png differ diff --git a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png index 691ed0e648567..1c75975ae4741 100644 Binary files a/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png and b/frontend/__snapshots__/replay-player-failure--recent-recordings-404--light.png differ diff --git a/frontend/__snapshots__/scenes-app-dashboards--create-template.png b/frontend/__snapshots__/scenes-app-dashboards--create-template.png new file mode 100644 index 0000000000000..0f9d79e0b8e09 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-dashboards--create-template.png differ diff --git a/frontend/__snapshots__/scenes-app-events--event-explorer--dark.png b/frontend/__snapshots__/scenes-app-events--event-explorer--dark.png index 6b562ca8217c3..4b3b23d5b8ffa 100644 Binary files a/frontend/__snapshots__/scenes-app-events--event-explorer--dark.png and b/frontend/__snapshots__/scenes-app-events--event-explorer--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-events--event-explorer--light.png b/frontend/__snapshots__/scenes-app-events--event-explorer--light.png index c2bd83ae6b215..7f2fbaf603031 100644 Binary files a/frontend/__snapshots__/scenes-app-events--event-explorer--light.png and b/frontend/__snapshots__/scenes-app-events--event-explorer--light.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--dark.png b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--dark.png index cd85fc829ba9f..ae729c7f144f3 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--dark.png and b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--light.png b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--light.png index a1f351933532b..4c5c0ca9d62a9 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--light.png and b/frontend/__snapshots__/scenes-app-experiments--complete-funnel-experiment--light.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png index d5f702a033e64..5e7de45b99fe9 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png and b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png index 16ee0a54f3643..a22ddbb2215c5 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png and b/frontend/__snapshots__/scenes-app-experiments--experiment-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--dark.png b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--dark.png index 5246d042061a1..f0e7c7b4585e5 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--dark.png and b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--light.png b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--light.png index f56718bad6da0..e1406c8a0feef 100644 Binary files a/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--light.png and b/frontend/__snapshots__/scenes-app-experiments--running-trend-experiment--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png index a60892c250ff5..f34d9ff379b37 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png index c7ecb5f0decf1..b6753ebf76e55 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png index 76a00bfefed52..df154c90cb789 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png index 40b74bcf45ddb..368cc4ccd4cf1 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--edit-multi-variate-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png index 33cdc47ddc575..a898fec7fd1aa 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png index aa8381288adfe..3ab2a31a26205 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--feature-flag-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png index 863c5df6ef0e7..159195c403027 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png index 3f7f7df0a67e7..a6b18e212733b 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags--new-feature-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--dark.png index 01011270d3fc2..046395d22cdde 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--light.png index 920d9be9784da..3666e7ea48310 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-node-with-group-multivariate-flag-local-evaluation--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--dark.png index 66eb0dea5c68c..23529892be689 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--light.png index a1cc0f6deff9b..e29a609a57974 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-overview--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--dark.png index 4c686f6542792..1d24134e02a19 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--light.png index e65363895e512..d175bb2f6c4f4 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-python-with-local-evaluation--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--dark.png index af58bdf12b100..98c535cc837e1 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--light.png index bfc86c445331c..a8f72b078c5ba 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-react-native-with-bootstrap--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--dark.png index babc12950581f..d72e22cc40466 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--light.png index 46af00490865f..29fb750f52bf4 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructions-ruby-with-group-flag-local-evaluation--light.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--dark.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--dark.png index e01406d2adc9a..3c0831c95b10d 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--dark.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--light.png b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--light.png index a8b987203e17d..757040fcd8fba 100644 Binary files a/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--light.png and b/frontend/__snapshots__/scenes-app-feature-flags-code-examples--code-instructionsi-os-with-multivariate-flag--light.png differ diff --git a/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png b/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png index 4a464b2db4f6a..cd9f9b82f551f 100644 Binary files a/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png and b/frontend/__snapshots__/scenes-app-features--not-found-early-access--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png b/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png index 43003e4f01f87..3327b43d90d26 100644 Binary files a/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png and b/frontend/__snapshots__/scenes-app-features--not-found-early-access--light.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention--dark--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention--dark--webkit.png index f32476de293c7..0b2a03627ae7f 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention--dark--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention--dark--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention--dark.png b/frontend/__snapshots__/scenes-app-insights--retention--dark.png index 69bd7ed4462d7..fd3ca0690974c 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention--dark.png and b/frontend/__snapshots__/scenes-app-insights--retention--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention--light--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention--light--webkit.png index ac0ee8081cdcd..031783809a8d2 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention--light--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention--light--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention--light.png b/frontend/__snapshots__/scenes-app-insights--retention--light.png index c9509d2c5cbf5..90539c81e15ec 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention--light.png and b/frontend/__snapshots__/scenes-app-insights--retention--light.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark--webkit.png index 9bd48ffbf96a3..a87839253ae7e 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark.png index 67e5eaba6da54..637793690b29a 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light--webkit.png index 9f226b2bb03a7..309f023da5a71 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light.png index 7c94d38bab21b..f79c4f5669ba9 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown--light.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark--webkit.png index f085e14950b59..b814cbce42cff 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark.png index 659df59a48316..15d724d733d4e 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light--webkit.png index c8cea1e3bb15d..482b6f6dcb4c2 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light.png b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light.png index 03c95accc4d3c..5ebc54d7673e7 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light.png and b/frontend/__snapshots__/scenes-app-insights--retention-breakdown-edit--light.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit--dark--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-edit--dark--webkit.png index 42cf5341bdbda..f1d78d16af6ad 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit--dark--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit--dark--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit--dark.png b/frontend/__snapshots__/scenes-app-insights--retention-edit--dark.png index a6f705746cb16..568ac320c11b3 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit--dark.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit--light--webkit.png b/frontend/__snapshots__/scenes-app-insights--retention-edit--light--webkit.png index af18f357d556d..78b2b4980a437 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit--light--webkit.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit--light--webkit.png differ diff --git a/frontend/__snapshots__/scenes-app-insights--retention-edit--light.png b/frontend/__snapshots__/scenes-app-insights--retention-edit--light.png index 5b0c0ec33240f..b800e8481eafe 100644 Binary files a/frontend/__snapshots__/scenes-app-insights--retention-edit--light.png and b/frontend/__snapshots__/scenes-app-insights--retention-edit--light.png differ diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png index 0f1bf2a59f3a0..5426bf1fba2e0 100644 Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png and b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png index fca76e6e6fb61..ca320211b9792 100644 Binary files a/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png and b/frontend/__snapshots__/scenes-app-notebooks--notebook-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist--light.png b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist--light.png index 0e97322e0c616..43d9118daea6d 100644 Binary files a/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist--light.png and b/frontend/__snapshots__/scenes-app-notebooks--recordings-playlist--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--dark.png index c4e4bf4791737..03ed3be76614d 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--light.png index a50a7cdfe83cd..e606a27b97dc7 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--dark.png new file mode 100644 index 0000000000000..f5331e45a4b4b Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--light.png new file mode 100644 index 0000000000000..025a455dae129 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-404--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--dark.png new file mode 100644 index 0000000000000..917984d79bca1 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--light.png new file mode 100644 index 0000000000000..f91ed280d5bb8 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-configuration-empty--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--dark.png index 49425b7762ede..e093a5f53abdd 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--light.png index b6e6cd7d2a8d7..ed4913123192c 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--dark.png new file mode 100644 index 0000000000000..f5331e45a4b4b Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--light.png new file mode 100644 index 0000000000000..025a455dae129 Binary files /dev/null and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-logs-batch-export--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--dark.png index 8da167ba5bf2d..4be88bd92af87 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--light.png index 14d40443f7137..5b608fc07d6f2 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--dark.png index b4b1df27e3244..8d0040451649e 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--light.png index d8b872127daa3..d703740037ac5 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-app-metrics-error-modal--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--dark.png index 103c966f5be29..5ef8980069537 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--light.png index a79aa17f0b6a1..9f93174665f39 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-apps-management-page--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--dark.png index f5f6f6915093c..0c1edf3844993 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--light.png index 052cdc7e052d2..4502aa48db727 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-destinations-page--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--dark.png index 76f321a927289..0e6e16ae259fa 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--light.png index a6b29cd3f9fc4..8eb0f0246b3e6 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-filtering-page--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--dark.png index ea6b9a9e97dcc..0c1edf3844993 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--light.png index 6514f5fa973ab..4502aa48db727 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-landing-page--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--dark.png index 30fb6435562a7..694effd20e7f7 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--light.png index 1672406e82083..cea0f143f421c 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page--light.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--dark.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--dark.png index d4aa288b61e3c..70cabae57dbdf 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--dark.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--light.png b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--light.png index 5e1f9164c4104..28cda46ec0211 100644 Binary files a/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--light.png and b/frontend/__snapshots__/scenes-app-pipeline--pipeline-transformations-page-empty--light.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--card-view--dark.png b/frontend/__snapshots__/scenes-app-saved-insights--card-view--dark.png index ae53ed381d52e..64713d6edc184 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--card-view--dark.png and b/frontend/__snapshots__/scenes-app-saved-insights--card-view--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--card-view--light.png b/frontend/__snapshots__/scenes-app-saved-insights--card-view--light.png index bc635c186f081..5a615a4ede0fb 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--card-view--light.png and b/frontend/__snapshots__/scenes-app-saved-insights--card-view--light.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--empty-state--dark.png b/frontend/__snapshots__/scenes-app-saved-insights--empty-state--dark.png index d8501f9f024ce..f48a4db9810da 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--empty-state--dark.png and b/frontend/__snapshots__/scenes-app-saved-insights--empty-state--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--empty-state--light.png b/frontend/__snapshots__/scenes-app-saved-insights--empty-state--light.png index b8c09f4a9c806..52ee33bc4e57d 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--empty-state--light.png and b/frontend/__snapshots__/scenes-app-saved-insights--empty-state--light.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--list-view--dark.png b/frontend/__snapshots__/scenes-app-saved-insights--list-view--dark.png index 3b6b4c722a4f2..8cb857bd8cd19 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--list-view--dark.png and b/frontend/__snapshots__/scenes-app-saved-insights--list-view--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-saved-insights--list-view--light.png b/frontend/__snapshots__/scenes-app-saved-insights--list-view--light.png index 41e3786b1eec3..c9afcddbf64da 100644 Binary files a/frontend/__snapshots__/scenes-app-saved-insights--list-view--light.png and b/frontend/__snapshots__/scenes-app-saved-insights--list-view--light.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png index e4699ad769ee2..fc7327a35555e 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png index b8430d6a60252..52c56473a5ec5 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-activation--light.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--dark.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--dark.png index 325c6a363bf0c..1dada10c77fdf 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--dark.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--light.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--light.png index 280a15d386865..88700b33dffe0 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--light.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-settings--light.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png index cc94e6ccb8a7c..86bbaf87704de 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png index 8421c85da4fa4..ac8430941fe3a 100644 Binary files a/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png and b/frontend/__snapshots__/scenes-app-sidepanels--side-panel-welcome--light.png differ diff --git a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png index ac812df42d0b3..0d7aa6975e8db 100644 Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png and b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--dark.png differ diff --git a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png index 22b5594b789c2..149f444c28a92 100644 Binary files a/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png and b/frontend/__snapshots__/scenes-app-surveys--survey-not-found--light.png differ diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--dark.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--dark.png index d070e01a147a7..08d2248011fb9 100644 Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--dark.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--light.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--light.png index c8f73691c44ff..e12cd2d01fec4 100644 Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--light.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal--light.png differ diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--dark.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--dark.png index 4d197913f55a7..389112f3e2c7f 100644 Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--dark.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--light.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--light.png index dd97e5486b7e9..54ef728dfd277 100644 Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--light.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-unsubscribe-modal-data-pipelines--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud--dark.png b/frontend/__snapshots__/scenes-other-login--cloud--dark.png index 83955b278a743..79be2f6da084b 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud--light.png b/frontend/__snapshots__/scenes-other-login--cloud--light.png index 910ccf73d8ed0..089113c318132 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud--light.png and b/frontend/__snapshots__/scenes-other-login--cloud--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png b/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png index e4f152b590dfb..3759b88e7ce6c 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud-eu--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png b/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png index a3c1a42ac9108..34ff210eb5352 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png and b/frontend/__snapshots__/scenes-other-login--cloud-eu--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png index 5178a2b0ac14b..5e3dc60309789 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png and b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png index b845e33320902..e67a6a0e2ff33 100644 Binary files a/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png and b/frontend/__snapshots__/scenes-other-login--cloud-with-google-login-enforcement--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--second-factor--dark.png b/frontend/__snapshots__/scenes-other-login--second-factor--dark.png index 11516e761f232..3be47d83ee98e 100644 Binary files a/frontend/__snapshots__/scenes-other-login--second-factor--dark.png and b/frontend/__snapshots__/scenes-other-login--second-factor--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--second-factor--light.png b/frontend/__snapshots__/scenes-other-login--second-factor--light.png index 9f9f2c349d9d6..661e5be1063bb 100644 Binary files a/frontend/__snapshots__/scenes-other-login--second-factor--light.png and b/frontend/__snapshots__/scenes-other-login--second-factor--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png b/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png index 5a4479997a474..4d54c69d31e1b 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png and b/frontend/__snapshots__/scenes-other-login--self-hosted--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted--light.png b/frontend/__snapshots__/scenes-other-login--self-hosted--light.png index 04a38d84262cc..f859af95307bb 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted--light.png and b/frontend/__snapshots__/scenes-other-login--self-hosted--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png index 2cbc14c70de79..f83fd6633b093 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png and b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png index ad71d0f772282..bc653908edc34 100644 Binary files a/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png and b/frontend/__snapshots__/scenes-other-login--self-hosted-with-saml--light.png differ diff --git a/frontend/__snapshots__/scenes-other-login--sso-error--dark.png b/frontend/__snapshots__/scenes-other-login--sso-error--dark.png index 2de7d23fc3ded..2d4ed894b8f09 100644 Binary files a/frontend/__snapshots__/scenes-other-login--sso-error--dark.png and b/frontend/__snapshots__/scenes-other-login--sso-error--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-login--sso-error--light.png b/frontend/__snapshots__/scenes-other-login--sso-error--light.png index 274875b22551b..9702eef8a92dd 100644 Binary files a/frontend/__snapshots__/scenes-other-login--sso-error--light.png and b/frontend/__snapshots__/scenes-other-login--sso-error--light.png differ diff --git a/frontend/__snapshots__/scenes-other-password-reset--no-smtp--dark.png b/frontend/__snapshots__/scenes-other-password-reset--no-smtp--dark.png index 35c8bc7f2beb2..afe6733fd69b4 100644 Binary files a/frontend/__snapshots__/scenes-other-password-reset--no-smtp--dark.png and b/frontend/__snapshots__/scenes-other-password-reset--no-smtp--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-password-reset--no-smtp--light.png b/frontend/__snapshots__/scenes-other-password-reset--no-smtp--light.png index f124845cb21f5..505a1c37c5fdd 100644 Binary files a/frontend/__snapshots__/scenes-other-password-reset--no-smtp--light.png and b/frontend/__snapshots__/scenes-other-password-reset--no-smtp--light.png differ diff --git a/frontend/__snapshots__/scenes-other-settings--settings-project--dark.png b/frontend/__snapshots__/scenes-other-settings--settings-project--dark.png index c480ec3a3fe01..4c245decabc12 100644 Binary files a/frontend/__snapshots__/scenes-other-settings--settings-project--dark.png and b/frontend/__snapshots__/scenes-other-settings--settings-project--dark.png differ diff --git a/frontend/__snapshots__/scenes-other-settings--settings-project--light.png b/frontend/__snapshots__/scenes-other-settings--settings-project--light.png index 90549202b1f8c..efeae2fa10a7e 100644 Binary files a/frontend/__snapshots__/scenes-other-settings--settings-project--light.png and b/frontend/__snapshots__/scenes-other-settings--settings-project--light.png differ diff --git a/frontend/__snapshots__/scenes-other-signup--cloud--light.png b/frontend/__snapshots__/scenes-other-signup--cloud--light.png index 4e8a87f3b0b3b..c527248055ffa 100644 Binary files a/frontend/__snapshots__/scenes-other-signup--cloud--light.png and b/frontend/__snapshots__/scenes-other-signup--cloud--light.png differ diff --git a/frontend/__snapshots__/scenes-other-signup--self-hosted--light.png b/frontend/__snapshots__/scenes-other-signup--self-hosted--light.png index d0ac6651e91ad..a46e014a8fb4e 100644 Binary files a/frontend/__snapshots__/scenes-other-signup--self-hosted--light.png and b/frontend/__snapshots__/scenes-other-signup--self-hosted--light.png differ diff --git a/frontend/__snapshots__/scenes-other-signup--self-hosted-sso--light.png b/frontend/__snapshots__/scenes-other-signup--self-hosted-sso--light.png index a668c390a6c67..3ce828b31ab1a 100644 Binary files a/frontend/__snapshots__/scenes-other-signup--self-hosted-sso--light.png and b/frontend/__snapshots__/scenes-other-signup--self-hosted-sso--light.png differ diff --git a/frontend/build.mjs b/frontend/build.mjs index 17af59fa1a505..4d616e8ea9e0a 100755 --- a/frontend/build.mjs +++ b/frontend/build.mjs @@ -1,13 +1,14 @@ #!/usr/bin/env node import * as path from 'path' import { fileURLToPath } from 'url' + import { + buildInParallel, + copyIndexHtml, copyPublicFolder, + createHashlessEntrypoints, isDev, startDevServer, - createHashlessEntrypoints, - buildInParallel, - copyIndexHtml, } from './utils.mjs' export const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -58,6 +59,10 @@ await buildInParallel( ], { async onBuildComplete(config, buildResponse) { + if (!buildResponse) { + return + } + const { chunks, entrypoints } = buildResponse if (config.name === 'PostHog App') { diff --git a/frontend/src/initKea.ts b/frontend/src/initKea.ts index 41cbda7fbf358..936fb12e7d84a 100644 --- a/frontend/src/initKea.ts +++ b/frontend/src/initKea.ts @@ -8,6 +8,7 @@ import { waitForPlugin } from 'kea-waitfor' import { windowValuesPlugin } from 'kea-window-values' import { lemonToast } from 'lib/lemon-ui/LemonToast/LemonToast' import { identifierToHuman } from 'lib/utils' +import { addProjectIdIfMissing, removeProjectIdIfPresent } from 'lib/utils/router-utils' /* Actions for which we don't want to show error alerts, @@ -74,6 +75,15 @@ export function initKea({ routerHistory, routerLocation, beforePlugins }: InitKe // in "/url/:key". Default: "a-zA-Z0-9-_~ %". segmentValueCharset: "a-zA-Z0-9-_~ %.@()!'|", }, + pathFromRoutesToWindow: (path) => { + return addProjectIdIfMissing(path) + }, + transformPathInActions: (path) => { + return addProjectIdIfMissing(path) + }, + pathFromWindowToRoutes: (path) => { + return removeProjectIdIfPresent(path) + }, }), formsPlugin, loadersPlugin({ diff --git a/frontend/src/layout.html b/frontend/src/layout.html index 73a3be28423f9..f3468333c3d5a 100644 --- a/frontend/src/layout.html +++ b/frontend/src/layout.html @@ -1,119 +1,289 @@ - - - PostHog - {% include "head.html" %} - - - - - - {% block head %} {% endblock %} - - - {% include "overlays.html" %} {% block content %} {% endblock %} - - + + + + PostHog + {% include "head.html" %} + + + + + + + + {% block head %} {% endblock %} + + + + {% include "overlays.html" %} {% block content %} {% endblock %} + + + \ No newline at end of file diff --git a/frontend/src/layout/ErrorProjectUnavailable.tsx b/frontend/src/layout/ErrorProjectUnavailable.tsx index 29a178c490b05..2d31f8fb5aee1 100644 --- a/frontend/src/layout/ErrorProjectUnavailable.tsx +++ b/frontend/src/layout/ErrorProjectUnavailable.tsx @@ -8,7 +8,7 @@ export function ErrorProjectUnavailable(): JSX.Element { return (
- +

{projectCreationForbiddenReason ? "Switch to a project that you have access to. If you need a new project or access to an existing one that's private, ask a team member with administrator permissions." diff --git a/frontend/src/layout/navigation-3000/Navigation.tsx b/frontend/src/layout/navigation-3000/Navigation.tsx index 16b4e9fade648..110c8f068fdf6 100644 --- a/frontend/src/layout/navigation-3000/Navigation.tsx +++ b/frontend/src/layout/navigation-3000/Navigation.tsx @@ -6,11 +6,12 @@ import { BillingAlertsV2 } from 'lib/components/BillingAlertsV2' import { CommandBar } from 'lib/components/CommandBar/CommandBar' import { FlaggedFeature } from 'lib/components/FlaggedFeature' import { FEATURE_FLAGS } from 'lib/constants' -import { ReactNode, useEffect } from 'react' +import { ReactNode } from 'react' import { SceneConfig } from 'scenes/sceneTypes' import { navigationLogic } from '../navigation/navigationLogic' import { ProjectNotice } from '../navigation/ProjectNotice' +import { Announcement } from '../navigation/TopBar/Announcement' import { MinimalNavigation } from './components/MinimalNavigation' import { Navbar } from './components/Navbar' import { Sidebar } from './components/Sidebar' @@ -30,11 +31,6 @@ export function Navigation({ const { mobileLayout } = useValues(navigationLogic) const { activeNavbarItem, mode } = useValues(navigation3000Logic) - useEffect(() => { - // FIXME: Include debug notice in a non-obstructing way - document.getElementById('bottom-notice')?.remove() - }, []) - if (mode !== 'full') { return (

@@ -51,6 +47,7 @@ export function Navigation({ {activeNavbarItem && }
+
    + } @@ -119,7 +121,7 @@ export function Navbar(): JSX.Element {
{!mobileLayout && ( toggleNavCollapsed(shouldBeClosed)} diff --git a/frontend/src/layout/navigation-3000/components/NavbarButton.tsx b/frontend/src/layout/navigation-3000/components/NavbarButton.tsx index c12620170479e..b0dbb214bcf88 100644 --- a/frontend/src/layout/navigation-3000/components/NavbarButton.tsx +++ b/frontend/src/layout/navigation-3000/components/NavbarButton.tsx @@ -18,7 +18,7 @@ import { KeyboardShortcut, KeyboardShortcutProps } from './KeyboardShortcut' export interface NavbarButtonProps extends Pick { identifier: string icon: ReactElement - title?: string + title?: string | ReactElement shortTitle?: string forceTooltipOnHover?: boolean tag?: 'alpha' | 'beta' | 'new' diff --git a/frontend/src/layout/navigation-3000/components/TopBar.scss b/frontend/src/layout/navigation-3000/components/TopBar.scss index 3d6aca2b4aa07..34bca649b812e 100644 --- a/frontend/src/layout/navigation-3000/components/TopBar.scss +++ b/frontend/src/layout/navigation-3000/components/TopBar.scss @@ -1,6 +1,3 @@ -// TODO: Remove legacy scss files -@import '../../navigation/SideBar/SideBar'; - .TopBar3000 { --breadcrumbs-compaction-rate: 0; diff --git a/frontend/src/layout/navigation-3000/navigationLogic.tsx b/frontend/src/layout/navigation-3000/navigationLogic.tsx index 5788e4685b77d..262c2dbde3724 100644 --- a/frontend/src/layout/navigation-3000/navigationLogic.tsx +++ b/frontend/src/layout/navigation-3000/navigationLogic.tsx @@ -429,7 +429,7 @@ export const navigation3000Logic = kea([ }, { identifier: Scene.Pipeline, - label: 'Data pipeline new', + label: 'Data pipeline 3000', icon: , to: urls.pipeline(), featureFlag: FEATURE_FLAGS.PIPELINE_UI, diff --git a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss index 59d909f573728..cd88a2f4fcd97 100644 --- a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss +++ b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.scss @@ -45,6 +45,10 @@ overflow: hidden; user-select: none; border-left-width: 1px; + + .LemonButton__icon { + transform: rotate(-90deg); + } } .SidePanel3000__tabs { diff --git a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx index 124d263615432..b28915a8babe4 100644 --- a/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx +++ b/frontend/src/layout/navigation-3000/sidepanel/SidePanel.tsx @@ -17,6 +17,7 @@ import { SidePanelActivation, SidePanelActivationIcon } from './panels/SidePanel import { SidePanelDocs } from './panels/SidePanelDocs' import { SidePanelFeaturePreviews } from './panels/SidePanelFeaturePreviews' import { SidePanelSettings } from './panels/SidePanelSettings' +import { SidePanelStatus, SidePanelStatusIcon } from './panels/SidePanelStatus' import { SidePanelSupport } from './panels/SidePanelSupport' import { SidePanelWelcome } from './panels/SidePanelWelcome' import { sidePanelLogic } from './sidePanelLogic' @@ -71,6 +72,11 @@ export const SIDE_PANEL_TABS: Record} + icon={} onClick={() => activeTab === tab ? closeSidePanel() : openSidePanel(tab as SidePanelTab) } @@ -173,7 +179,7 @@ export function SidePanel(): JSX.Element | null {
) : null}
- + {PanelConent ? (
diff --git a/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelDocs.tsx b/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelDocs.tsx index daaece9502404..300ccc2941089 100644 --- a/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelDocs.tsx +++ b/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelDocs.tsx @@ -13,7 +13,7 @@ type Menu = { url?: string } -function SidePanelDocsSkeleton(): JSX.Element { +export function SidePanelDocsSkeleton(): JSX.Element { return (
diff --git a/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelStatus.tsx b/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelStatus.tsx new file mode 100644 index 0000000000000..371b63cc013b7 --- /dev/null +++ b/frontend/src/layout/navigation-3000/sidepanel/panels/SidePanelStatus.tsx @@ -0,0 +1,68 @@ +import { IconCloud, IconExternal } from '@posthog/icons' +import { LemonButton, Tooltip } from '@posthog/lemon-ui' +import clsx from 'clsx' +import { useActions, useValues } from 'kea' +import { IconWithBadge } from 'lib/lemon-ui/icons' +import { useState } from 'react' + +import { SidePanelPaneHeader } from '../components/SidePanelPaneHeader' +import { sidePanelLogic } from '../sidePanelLogic' +import { SidePanelDocsSkeleton } from './SidePanelDocs' +import { sidePanelStatusLogic, STATUS_PAGE_BASE } from './sidePanelStatusLogic' + +export const SidePanelStatusIcon = (props: { className?: string }): JSX.Element => { + const { status, statusPage } = useValues(sidePanelStatusLogic) + + let title = statusPage?.status.description + if (statusPage?.status.description === 'All Systems Operational') { + title = 'All systems operational' // Sentence-case Statuspage.io default message, which can't be changed + } + + return ( + + + + + + + + ) +} + +export const SidePanelStatus = (): JSX.Element => { + const { closeSidePanel } = useActions(sidePanelLogic) + const [ready, setReady] = useState(false) + + return ( + <> + +
+ } + targetBlank + // We can't use the normal `to` property as that is intercepted to open this panel :D + onClick={() => { + window.open(STATUS_PAGE_BASE, '_blank')?.focus() + closeSidePanel() + }} + > + Open in new tab + + +
+