malloydata / malloy-vscode-extension

The Malloy Visual Studio Code extension facilitates building Malloy data models, querying and transforming data, and creating simple visualizations and dashboards
http://www.malloydata.dev
MIT License
13 stars 12 forks source link

Worker process crashing when selecting * from a record #470

Open fzakaria opened 4 months ago

fzakaria commented 4 months ago

What happens?

I am running select: payload.* because select: * does not seem to be recursive for my nested structure.

    view: merged_pull_requests is {
        where: payload.action = 'closed' and
               payload.pull_request.merged = true
        select: payload.*
    }

Running it on VSCode (tried nightly release as of this comment) fails with:

The worker process has died, and has been restarted. This is possibly the result of a database bug. Please consider filing an issue with as much detail as possible at https://github.com/malloydata/malloy-vscode-extension/issues.

The SQL is produced correct

SELECT 
   base.payload."action" as "action",
   base.payload."after" as "after",
   base.payload."alert" as "alert",
   base.payload."answer" as "answer",
   base.payload."assignee" as "assignee",
   base.payload."avatar_url" as "avatar_url",
   base.payload."before" as "before",
   base.payload."build" as "build",
   base.payload."changes" as "changes",
   base.payload."check_suite" as "check_suite",
   base.payload."comment" as "comment",
   base.payload."context" as "context",
   base.payload."created_at" as "created_at",
   base.payload."deployment" as "deployment",
   base.payload."deployment_status" as "deployment_status",
   base.payload."description" as "description",
   base.payload."discussion" as "discussion",
   base.payload."forkee" as "forkee",
   base.payload."id" as "id",
   base.payload."issue" as "issue",
   base.payload."key" as "key",
   base.payload."label" as "label",
   base.payload."location" as "location",
   base.payload."master_branch" as "master_branch",
   base.payload."member" as "member",
   base.payload."merge_group" as "merge_group",
   base.payload."milestone" as "milestone",
   base.payload."name" as "name",
   base.payload."number" as "number",
   base.payload."pusher_type" as "pusher_type",
   base.payload."reason" as "reason",
   base.payload."ref" as "ref",
   base.payload."ref_type" as "ref_type",
   base.payload."release" as "release",
   base.payload."repository_ruleset" as "repository_ruleset",
   base.payload."requested_reviewer" as "requested_reviewer",
   base.payload."requested_team" as "requested_team",
   base.payload."review" as "review",
   base.payload."rule" as "rule",
   base.payload."sha" as "sha",
   base.payload."starred_at" as "starred_at",
   base.payload."state" as "state",
   base.payload."target_url" as "target_url",
   base.payload."team" as "team",
   base.payload."thread" as "thread",
   base.payload."updated_at" as "updated_at",
   base.payload."workflow" as "workflow",
   base.payload."workflow_run" as "workflow_run"
FROM './github_events.parquet' as base
WHERE ((base.payload."action"='closed')and(base.payload.pull_request."merged"=true))
AND ((base.metadata."event"='pull_request')and((COALESCE(NOT(base.payload.pull_request.user."login"='dependabot[bot]'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentJenkins'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='confluent-renovate[bot]'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentSemaphore'),FALSE))and(COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentTools'),FALSE)))))))

I ran it under DuckDB with no complaints.

    base.payload."before" as "before",
     base.payload."build" as "build",
     base.payload."changes" as "changes",
     base.payload."check_suite" as "check_suite",
     base.payload."comment" as "comment",
     base.payload."context" as "context",
     base.payload."created_at" as "created_at",
     base.payload."deployment" as "deployment",
     base.payload."deployment_status" as "deployment_status",
     base.payload."description" as "description",
     base.payload."discussion" as "discussion",
     base.payload."forkee" as "forkee",
     base.payload."id" as "id",
     base.payload."issue" as "issue",
     base.payload."key" as "key",
     base.payload."label" as "label",
     base.payload."location" as "location",
     base.payload."master_branch" as "master_branch",
     base.payload."member" as "member",
     base.payload."merge_group" as "merge_group",
     base.payload."milestone" as "milestone",
     base.payload."name" as "name",
     base.payload."number" as "number",
     base.payload."pusher_type" as "pusher_type",
     base.payload."reason" as "reason",
     base.payload."ref" as "ref",
     base.payload."ref_type" as "ref_type",
     base.payload."release" as "release",
     base.payload."repository_ruleset" as "repository_ruleset",
     base.payload."requested_reviewer" as "requested_reviewer",
     base.payload."requested_team" as "requested_team",
     base.payload."review" as "review",
     base.payload."rule" as "rule",
     base.payload."sha" as "sha",
     base.payload."starred_at" as "starred_at",
     base.payload."state" as "state",
     base.payload."target_url" as "target_url",
     base.payload."team" as "team",
     base.payload."thread" as "thread",
     base.payload."updated_at" as "updated_at",
     base.payload."workflow" as "workflow",
     base.payload."workflow_run" as "workflow_run"
  FROM './github_events.parquet' as base
  WHERE ((base.payload."action"='closed')and(base.payload.pull_request."merged"=true))
  AND ((base.metadata."event"='pull_request')and((COALESCE(NOT(base.payload.pull_request.user."login"='dependabot[bot]'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentJenkins'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='confluent-renovate[bot]'),FALSE))and((COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentSemaphore'),FALSE))and(COALESCE(NOT(base.payload.pull_request.user."login"='ConfluentTools'),FALSE))))))) LIMIT 1
  ;
┌─────────┬─────────┬─────────┬─────────┬──────────┬────────────┬─────────┬───┬─────────┬────────────┬─────────┬─────────┬────────────┬──────────┬──────────────┐
│ action  │  after  │  alert  │ answer  │ assignee │ avatar_url │ before  │ … │  state  │ target_url │  team   │ thread  │ updated_at │ workflow │ workflow_run │
│ varchar │ varchar │ varchar │ varchar │ varchar  │  varchar   │ varchar │   │ varchar │  varchar   │ varchar │ varchar │  varchar   │ varchar  │   varchar    │
├─────────┼─────────┼─────────┼─────────┼──────────┼────────────┼─────────┼───┼─────────┼────────────┼─────────┼─────────┼────────────┼──────────┼──────────────┤
│ closed  │         │         │         │          │            │         │ … │         │            │         │         │            │          │              │
├─────────┴─────────┴─────────┴─────────┴──────────┴────────────┴─────────┴───┴─────────┴────────────┴─────────┴─────────┴────────────┴──────────┴──────────────┤
│ 1 rows                                                                                                                                  48 columns (14 shown)

To Reproduce

Let me know what I can provide

OS:

macOS

Malloy Client:

local VsCode

Malloy Client Version:

v0.3.1717691562 (pre-release)

Database Connection:

DuckDB