Title: [FEATURE] Support composability of views, materialised views, subqueries and user space tables. · Issue #629 · stackql/stackql · GitHub
Open Graph Title: [FEATURE] Support composability of views, materialised views, subqueries and user space tables. · Issue #629 · stackql/stackql
X Title: [FEATURE] Support composability of views, materialised views, subqueries and user space tables. · Issue #629 · stackql/stackql
Description: Feature Description On ought to be able to select from joins of views, materialised views, subqueries and user space tables. Example(s) Please contrive from reality. This will form the basis of robot regression testing. Possible Approach...
Open Graph Description: Feature Description On ought to be able to select from joins of views, materialised views, subqueries and user space tables. Example(s) Please contrive from reality. This will form the basis of rob...
X Description: Feature Description On ought to be able to select from joins of views, materialised views, subqueries and user space tables. Example(s) Please contrive from reality. This will form the basis of rob...
Opengraph URL: https://github.com/stackql/stackql/issues/629
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[FEATURE] Support composability of views, materialised views, subqueries and user space tables.","articleBody":"**Feature Description**\n\nOn ought to be able to select from joins of views, materialised views, subqueries and user space tables.\n\n\n\n\n**Example(s)**\n\nPlease contrive from reality. This will form the basis of robot regression testing.\n\n**Possible Approaches or Libraries to Consider**\n\nSee below.\n\n**Additional context**\n\nUnfortunately the data flow analysis is interwoven into multiple passes so this will not be simple. The high level expectation is that data flow analysis is not skipped or weakened. Views have the \"novel\" feature that where clauses can be rewritten externally, complicating matters.\n\nHere is an illustrative example in a stackql shell session:\n\n\n```\n\nstackql \u003e\u003edescribe google.storage.buckets;\n|-----------------------|---------|\n| name | type |\n|-----------------------|---------|\n| id | string |\n|-----------------------|---------|\n| name | string |\n|-----------------------|---------|\n| acl | array |\n|-----------------------|---------|\n| autoclass | object |\n|-----------------------|---------|\n| billing | object |\n|-----------------------|---------|\n| cors | array |\n|-----------------------|---------|\n| customPlacementConfig | object |\n|-----------------------|---------|\n| defaultEventBasedHold | boolean |\n|-----------------------|---------|\n| defaultObjectAcl | array |\n|-----------------------|---------|\n| encryption | object |\n|-----------------------|---------|\n| etag | string |\n|-----------------------|---------|\n| generation | string |\n|-----------------------|---------|\n| hardDeleteTime | string |\n|-----------------------|---------|\n| hierarchicalNamespace | object |\n|-----------------------|---------|\n| iamConfiguration | object |\n|-----------------------|---------|\n| ipFilter | object |\n|-----------------------|---------|\n| kind | string |\n|-----------------------|---------|\n| labels | object |\n|-----------------------|---------|\n| lifecycle | object |\n|-----------------------|---------|\n| location | string |\n|-----------------------|---------|\n| locationType | string |\n|-----------------------|---------|\n| logging | object |\n|-----------------------|---------|\n| metageneration | string |\n|-----------------------|---------|\n| objectRetention | object |\n|-----------------------|---------|\n| owner | object |\n|-----------------------|---------|\n| projectNumber | string |\n|-----------------------|---------|\n| retentionPolicy | object |\n|-----------------------|---------|\n| rpo | string |\n|-----------------------|---------|\n| satisfiesPZI | boolean |\n|-----------------------|---------|\n| satisfiesPZS | boolean |\n|-----------------------|---------|\n| selfLink | string |\n|-----------------------|---------|\n| softDeletePolicy | object |\n|-----------------------|---------|\n| softDeleteTime | string |\n|-----------------------|---------|\n| storageClass | string |\n|-----------------------|---------|\n| timeCreated | string |\n|-----------------------|---------|\n| updated | string |\n|-----------------------|---------|\n| versioning | object |\n|-----------------------|---------|\n| website | object |\n|-----------------------|---------|\nstackql \u003e\u003eselect name, updated from google.storage.buckets where project = 'stackql-demo';\n|----------------------------------|--------------------------|\n| name | updated |\n|----------------------------------|--------------------------|\n| demo-app-bucket1 | 2025-08-03T07:01:59.323Z |\n|----------------------------------|--------------------------|\n| demo-app-bucket2 | 2025-08-03T07:01:59.758Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-001 | 2026-02-26T22:39:28.525Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-002 | 2026-02-26T22:40:39.282Z |\n|----------------------------------|--------------------------|\n| stackql-demo-bucket | 2025-08-03T07:01:59.747Z |\n|----------------------------------|--------------------------|\n| stackql-demo-src-bucket | 2025-08-03T07:01:59.749Z |\n|----------------------------------|--------------------------|\n| stackql-demo.appspot.com | 2025-08-03T07:01:59.818Z |\n|----------------------------------|--------------------------|\n| stackql-encrypted-bucket-1 | 2025-08-03T07:01:59.770Z |\n|----------------------------------|--------------------------|\n| stackql-rag-demo | 2025-11-09T21:57:24.135Z |\n|----------------------------------|--------------------------|\n| staging.stackql-demo.appspot.com | 2025-08-03T07:01:59.823Z |\n|----------------------------------|--------------------------|\nstackql \u003e\u003ecreate or replace view vw1 as select name, updated from google.storage.buckets where project = 'stackql-demo';\nDDL Execution Completed\nstackql \u003e\u003ecreate or replace materialized view mv1 as select name, updated from google.storage.buckets where project = 'stackql-demo';\nDDL Execution Completed\nstackql \u003e\u003eselect * from vw1;\n|----------------------------------|--------------------------|\n| name | updated |\n|----------------------------------|--------------------------|\n| demo-app-bucket1 | 2025-08-03T07:01:59.323Z |\n|----------------------------------|--------------------------|\n| demo-app-bucket2 | 2025-08-03T07:01:59.758Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-001 | 2026-02-26T22:39:28.525Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-002 | 2026-02-26T22:40:39.282Z |\n|----------------------------------|--------------------------|\n| stackql-demo-bucket | 2025-08-03T07:01:59.747Z |\n|----------------------------------|--------------------------|\n| stackql-demo-src-bucket | 2025-08-03T07:01:59.749Z |\n|----------------------------------|--------------------------|\n| stackql-demo.appspot.com | 2025-08-03T07:01:59.818Z |\n|----------------------------------|--------------------------|\n| stackql-encrypted-bucket-1 | 2025-08-03T07:01:59.770Z |\n|----------------------------------|--------------------------|\n| stackql-rag-demo | 2025-11-09T21:57:24.135Z |\n|----------------------------------|--------------------------|\n| staging.stackql-demo.appspot.com | 2025-08-03T07:01:59.823Z |\n|----------------------------------|--------------------------|\nstackql \u003e\u003eselect * from mv1;\n|----------------------------------|--------------------------|\n| name | updated |\n|----------------------------------|--------------------------|\n| demo-app-bucket1 | 2025-08-03T07:01:59.323Z |\n|----------------------------------|--------------------------|\n| demo-app-bucket2 | 2025-08-03T07:01:59.758Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-001 | 2026-02-26T22:39:28.525Z |\n|----------------------------------|--------------------------|\n| silly-bucket-st-demo-002 | 2026-02-26T22:40:39.282Z |\n|----------------------------------|--------------------------|\n| stackql-demo-bucket | 2025-08-03T07:01:59.747Z |\n|----------------------------------|--------------------------|\n| stackql-demo-src-bucket | 2025-08-03T07:01:59.749Z |\n|----------------------------------|--------------------------|\n| stackql-demo.appspot.com | 2025-08-03T07:01:59.818Z |\n|----------------------------------|--------------------------|\n| stackql-encrypted-bucket-1 | 2025-08-03T07:01:59.770Z |\n|----------------------------------|--------------------------|\n| stackql-rag-demo | 2025-11-09T21:57:24.135Z |\n|----------------------------------|--------------------------|\n| staging.stackql-demo.appspot.com | 2025-08-03T07:01:59.823Z |\n|----------------------------------|--------------------------|\nstackql \u003e\u003eselect vw1.name as vn, mv1.updated as mvu from vw1 inner join mv1 on vw1.name = mv1.name;\nalias 'vw1' does not map to any table expression\n\n```\n","author":{"url":"https://github.com/general-kroll-4-life","@type":"Person","name":"general-kroll-4-life"},"datePublished":"2026-03-26T06:14:51.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/629/stackql/issues/629"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:6c8a375d-14b8-1b24-101c-583dc5ad51e2 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9040:1BDCFF:BC9455:114C19E:6A4E27A7 |
| html-safe-nonce | 98ff20e7dff25e55c283d5e197e6b6c2c3eb38851f32b17c3c2813142317ac3e |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MDQwOjFCRENGRjpCQzk0NTU6MTE0QzE5RTo2QTRFMjdBNyIsInZpc2l0b3JfaWQiOiI4MzEwNzcxOTMyOTc1NzM2NzQzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | a44bc1a6b10a2cb78ff8fbc5d924aebe0a28ff814264ed5a5fca4809945720f0 |
| hovercard-subject-tag | issue:4140992016 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/stackql/stackql/629/issue_layout |
| twitter:image | https://opengraph.githubassets.com/56387e62a2a97b95f27849ae19269cf188b1b29e9a1970335036987bd4bb885d/stackql/stackql/issues/629 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/56387e62a2a97b95f27849ae19269cf188b1b29e9a1970335036987bd4bb885d/stackql/stackql/issues/629 |
| og:image:alt | Feature Description On ought to be able to select from joins of views, materialised views, subqueries and user space tables. Example(s) Please contrive from reality. This will form the basis of rob... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | general-kroll-4-life |
| hostname | github.com |
| expected-hostname | github.com |
| None | 030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0 |
| turbo-cache-control | no-preview |
| go-import | github.com/stackql/stackql git https://github.com/stackql/stackql.git |
| octolytics-dimension-user_id | 95105302 |
| octolytics-dimension-user_login | stackql |
| octolytics-dimension-repository_id | 443987542 |
| octolytics-dimension-repository_nwo | stackql/stackql |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 443987542 |
| octolytics-dimension-repository_network_root_nwo | stackql/stackql |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d9dd20d38f8ae3c4cb6b597807431db300d0bd2a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width