-
Notifications
You must be signed in to change notification settings - Fork 2.8k
console: support materialized views (fix #91) #4270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
marionschleifer
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nicuveo could you please add to the CHANGELOG.md and explain the feature from a user perspective?
Instead of sticking to the information_schema tables, this now uses pg internals. This is not a regression, as the query was already relying on some of them. Furthermore, this heavily simplifies the comment subqueries, since we have access to the oid.
This is horribly verbose; but it does the job. The giant expression of `isc` is almost exactly the definition of the `information_schema.columns` view, with one major restriction: it also list columns present in materialized views. This is very ugly and could be simplified heavily. For technical details: I obtained the details of the view by running `psql -E` and using `\dS+ information_schema.columns`. The only difference is this: before: `c.relkind = ANY (ARRAY['r'::"char", 'v'::"char", 'f'::"char", 'p'::"char"])` after: `c.relkind = ANY (ARRAY['r'::"char", 'v'::"char", 'm'::"char"])`
To be more precise: I have used the definition of `information_schema.columns` as it was in [version 9.5](https://github.com/postgres/postgres/blob/REL9_5_STABLE/src/backend/catalog/information_schema.sql), which is the oldest version we support. I tested it on my local database, which is on version 12. To make sure it worked, I had to remove several functions call that did not exist anymore. The result is a trimmed-down version, that has only the most essential fields. I am going to run more tests to see whether this is enough or not.
b0b02bc to
a8dfbc7
Compare
Done! Sorry for pushing the PR out without it: but I suspect there is going to be quite a lot that needs to be changed, and I wanted it out as quickly as possible. |
This comment has been minimized.
This comment has been minimized.
|
Review app for commit d31f5fe deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
beerose
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments.
console/src/components/Services/Data/TableModify/ModifyActions.js
Outdated
Show resolved
Hide resolved
console/src/components/Services/Data/TableModify/ModifyActions.js
Outdated
Show resolved
Hide resolved
console/src/components/Services/Data/TableModify/ModifyActions.js
Outdated
Show resolved
Hide resolved
console/src/components/Services/Data/TableModify/ModifyTable.js
Outdated
Show resolved
Hide resolved
marionschleifer
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nicuveo if we could have a screenshot of how the console looks in the PR description, that would be amazing 🙏 then we can copy paste it to the changelog once we finalize it 🙂
|
Review app for commit 2ce88ce deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
beerose
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last two suggestions!
2ce88ce to
d6cc5d7
Compare
|
Review app for commit c7e697e deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
|
@marionschleifer Done! It's mostly the same as it was... |
beerose
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good.
I did some performance check to compare new query and old query — it's basically the same. The new one was 1-3ms slower in some runs.
Someone else may also take a look at the sql.
|
Review app for commit 61a6754 deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
tirumaraiselvan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changelog approved
|
/heroku deploy |
|
Review app for commit fb3b765 deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
|
Deploy preview for hasura-docs ready! Built with commit a2c7bc0 |
|
Review app for commit a2c7bc0 deployed to Heroku: https://hge-ci-pull-4270.herokuapp.com |
|
Review app https://hge-ci-pull-4270.herokuapp.com is deleted |
* Fix catalog version for v1.1.1 (close hasura#4354) (hasura#4355) * Fix catalog version for v1.1.1 * Remove entries of removed tables from hdb_catalog While downgrading catalog version from 32 -> 31, not removing entries in hdb_table and hdb_relationship for the tables that are removed in the downgrade, results in incosistent schema, when the server with downgraded version is started. This should probably be handled in a better fashion. With the change in this commit, the server is able to successfully start with downgraded catalog version 31. * Test downgrade command along with upgrade tests * gh: make all hge-server team members code owners (hasura#4361) * cli: event trigger retry_conf support to squash (close hasura#4296) (hasura#4324) * ci: fix cli-migrations-v2 build process (hasura#4273) * Fix erroneous error logging in WebSocket.onStop * dev.sh: generate coverage report after `dev.sh graphql-engine` exit * type is not required for jwk_url in JWT config (hasura#4334) * type is not required for jwk_url * remove type from JWTConfig * Omit type field in JWTConfig serialization if jwk_url is provided * remove type from jwk_url test suite * add changelog * fix docs with new format Co-authored-by: Alexis King <lexi.lambda@gmail.com> * cli: link cli-ext plugin with cli version (close hasura#4105) (hasura#4280) * console, cli, cli-ext: query support for actions (close hasura#4032) (hasura#4318) Co-authored-by: Aravind Shankar <aravind@hasura.io> * console: recover from SDL parse in actions type definition editor (fix hasura#4385) (hasura#4389) * console: redirect to /:table/browse from /:table (close hasura#4330) (hasura#4374) * cli: update docs to remove realize specific instructions (hasura#4398) * unlock inflight events when gracefully shutdown (close hasura#3548) (hasura#4214) * unlock the locked-events during graceful shutdown * Some events can still be delivered multiple times due to ungraceful shutdown * modify the preparevents documentation * modify the prepareEvents doc * update changelog Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * cli(squash): add set_table_is_enum metadata type (close hasura#4394) (hasura#4395) * ci: add tests for cli-migrations image (hasura#4396) - Created new job test_and_build_cli_migrations which runs after test_and_build_cli - Build the cli-migrations and cli-migrations-v2 and save the images as tar image. - Run the test defined in each workflow v1 and v2. - Load the image that was built earlier in deploy step * console: convert theme files to typescript (hasura#4325) * allow reusing Postgres scalars in custom types & actions (close hasura#4125) (hasura#4333) * allow re-using Postgres scalars in custom types, close hasura#4125 * add pytest tests * update CHANGELOG.md * add a doc pointer for reusable postgres scalars * document the code, improve the CHANGELOG entry As suggested by @lexi-lambda * a bit more source code documentation, use WriterT to collect reused scalars * Apply suggestions from code review Co-Authored-By: Marion Schleifer <marion@hasura.io> * improve doc for Postgres scalars in custom graphql types * Add some more references to Note; fix Haddock syntax Also a few very minor tweaks: * Use HashSet instead of [] more pervasively * Export execWriterT from Hasura.Prelude * Use pattern guards in multi-way if * Tweak a few names/comments * Pull buildActions out of buildAndCollectInfo, use buildInfoMap * Tweak wording in documentation * incorporate changes in console code * account Postgres scalars for action input arguments -> Avoid unnecessary 'throw500' in making action schema * Review changes Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Alexis King <lexi.lambda@gmail.com> Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com> Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com> * cli: add hasura-collaborator-token and hasura-client-name to allowed headers (hasura#4414) * console: persist page size in data browser (hasura#4323) * server: Avoid duplicated test runs (hasura#4420) This avoids re-running tests when a parameterized test is specified that doesn't actually depend on its parameter. * cli: update makefile to set plugins branch ref (hasura#4421) * community: fix typo in event trigger doc (hasura#4426) * accept a new argument `claims_namespace_path` in JWT config (hasura#4365) * add new optional field `claims_namespace_path` in JWT config * return value when empty array is found in executeJSONPath * update the docs related to claims_namespace_path * improve encodeJSONPath, add property tests for parseJSONPath * throw error if both claims_namespace_path and claims_namespace are set * refactor the Data.Parser.JsonPath to Data.Parser.JSONPathSpec * update the JWT docs Co-Authored-By: Marion Schleifer <marion@hasura.io> Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com> Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com> * server(actions): add support for queries (close hasura#4032) (hasura#4309) * add support for action queries * a new parameter `type` is added in the ArgumentDefinition, its value can be either `query` or `mutation` and it defaults to the latter * throw 400 when a query action is tried to explain * update the actions docs to include query actions * refactor the ToJSON and ToOrdJSON of ActionDefinition Co-authored-by: Rishichandra Wawhal <rishi@hasura.io> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * cli, console: actions dx improvements (close hasura#4306, hasura#4311) (hasura#4308) * small fixes (hasura#4430) * docs: fix bug in query actions docs (hasura#4434) * console: add possible undefined check (hasura#4445) * tag release v1.2.0-beta.4 (hasura#4428) Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * server: _inc for non-integer numeric types (fix hasura#3573) (hasura#4429) * Allow `_inc` to update other numeric types in addition to integers * Add support for PostgreSQL's `money` field type * Add support for _inc on money types * Add note of generalized `_inc` support to changelog * console: surround string type column default value with quotes (close hasura#4371) (hasura#4423) * ci: skip server tests in PRs if there are no server changes (hasura#4412) * docs: update sample action handler URLs (hasura#4450) * allow special characters in json path's property name (close hasura#3890) (hasura#3892) * allow underscore prefix and special characters in json path * server: Rewrite/refactor JSONPath parser The JSONPath parser is also rewritten, the previous implementation was written in a very explicitly “recursive descent” style, but the whole point of using attoparsec is to be able to backtrack! Taking advantage of the combinators makes for a much simpler parser. Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com> Co-authored-by: Alexis King <lexi.lambda@gmail.com> Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com> Co-authored-by: Shahidh K Muhammed <shahidh@hasura.io> * console: change react ace editor theme to eclipse (close hasura#4437) (hasura#4443) * Move changelog entry to the right section (hasura#4493) * refresh the sample app realtime-poll (hasura#4337) * [fix](realtime-poll) refresh project realtime-poll * remove comment lines Co-authored-by: Praveen Durairaju <praveend.web@gmail.com> Co-authored-by: Praveen Durairaju <praveen@hasura.io> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * community: fix blog link in realtime chat app readme (hasura#4494) * server: support single $ as root json path (hasura#4482) * support single $ json path * support sql query with root json path * update changelog * update changelog Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * Add API docs for `webhook_from_env` (hasura#4462) * Add API docs for `webhook_from_env` fixes hasura#4419 * add changelog * Fixes PR required change * Improve create_trigger api doc * Update docs/graphql/manual/api-reference/schema-metadata-api/event-triggers.rst Co-Authored-By: Marion Schleifer <marion@hasura.io> * Update docs/graphql/manual/api-reference/schema-metadata-api/event-triggers.rst Co-Authored-By: Marion Schleifer <marion@hasura.io> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> Co-authored-by: Marion Schleifer <marion@hasura.io> * add additional tests for testing claims_namespace_path in JWT tokens (hasura#4481) * add additional tests for testing claims_namespace_path in JWT tokens - add tests for at root level and at a nested level * modify the JWT tests * combine the claims_namespace_path tests together in test-server.sh * change the order of the claims_namespace_path tests * change the order of the claims_namespace_path tests * Link to pytest docs in the server test suite READMEs (hasura#4425) * introduce effective timeout in actions async tests (hasura#4363) Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * console: fix columns reordering for relationship tables in data browser (hasura#4483) * server: add support for timestamps without timezone to graphql-engine (fix hasura#1217) (hasura#4452) * Add support for timestamps without timezone to graphql-engine * Add tests for aggregations on timestamps without timezones * console miscellaneous fixes (hasura#4433) * format row count in data browser for readablity * move pre-release notification tooltip msg to top * remove extra localPresets key from migrations (close hasura#3976) * make nullable and unique labels for columns clickable in insert and modify * fix row delete for relationships in data browser * server: avoid integer overflows (fix hasura#576) (fix hasura#4368) (hasura#4435) * Update graphql-parser-hs and hence use `Scientific` directly The new version of graphql-parser-hs returns Scientific and Integer rather than Double and Int32, respectively. So we now need to do less work in graphql-engine, and we can process larger numbers. In practice, this means that when inserting a bigint, we no longer need to specify the inserted integer as text. This is also represented in the updated tests. * Generate int overflow error on insert * Document bigint insertion support in changelog * console: prevent trailing spaces while creating new role (close hasura#3871) (hasura#4497) * console: prevent trailing spaces while creating new role (close hasura#3871) (hasura#4497) * Add a hint on avoiding recompilation during typical dev workflow (hasura#4427) * fix recreating action's permission, fix hasura#4377 (hasura#4495) Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com> * fix typo in jsonb query filters to match operator api (hasura#4505) Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * cli: spinner bug, add cli_environment in global config (hasura#4459) close hasura#4456 close hasura#4436 close hasura#4496 * cli: add check_metadata_consistency for v2 workflow migrations (hasura#4392) * ci: add force flag while creating pull request using hub (hasura#4431) * cli(test): fix cli init test to use initDir from subtest group (hasura#4490) * console: migrate checkbox, icon and radio button to TypeScript (hasura#4373) * cli(test): refactor integration test metadata directory (hasura#4491) * console: allow adding post-update checks in update permissions (close hasura#4142) (hasura#4313) * fix nested errors array in ws-server response log (hasura#3971) * server: Improve `queryModifiesSchemaCache` check for run_sql (hasura#4283) The previous check was too conservative and acquired a lock on the schema cache in situations where it was unnecessary. This change exposes the logic run_sql uses to determine whether to use the metadata check to make the check more precise. * cli: add suport for .env file (fix hasura#4129) (hasura#4454) * cli: validate endpoint using ParseRequestURI (fix hasura#4407) (hasura#4416) * docs: add reference docs for cli (fix hasura#4327) (hasura#4408) Co-Authored-By: Marion Schleifer <marion@hasura.io> * make arguments field optional in ActionDefinition (hasura#4521) * docs: add mapping of hasura operators - pg operators (close hasura#4056) (hasura#4502) * console: preserve the returning field set in a derived action (hasura#4530) * fix creating relationships for custom object types with fields reusing Postgres scalars (fix hasura#4447) (hasura#4455) * fix creating relationships for custom object types with fields reusing Postgres scalars, close hasura#4447 * fix changelog entry * rearrange entries Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * fix intermittent errors occur when query actions used with variables (hasura#4527) * don't add query actions to the plan cache Co-authored-by: rakeshkky <12475069+rakeshkky@users.noreply.github.com> * improve debug information in actions errors response (close hasura#4031) (hasura#4432) * config options for internal errors for non-admin role, close hasura#4031 More detailed action debug info is added in response 'internal' field * add docs * update CHANGELOG.md * set admin graphql errors option in ci tests, minor changes to docs * fix tests Don't use any auth for sync actions error tests. The request body changes based on auth type in session_variables (x-hasura-auth-mode) * Apply suggestions from code review Co-Authored-By: Marion Schleifer <marion@hasura.io> * use a new sum type to represent the inclusion of internal errors As suggested in review by @0x777 -> Move around few modules in to specific API folder -> Saperate types from Init.hs * fix tests Don't use any auth for sync actions error tests. The request body changes based on auth type in session_variables (x-hasura-auth-mode) * move 'HttpResponse' to 'Hasura.HTTP' module * update change log with breaking change warning * Update CHANGELOG.md Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * backend only insert permissions (rfc hasura#4120) (hasura#4224) * move user info related code to Hasura.User module * the RFC hasura#4120 implementation; insert permissions with admin secret * revert back to old RoleName based schema maps An attempt made to avoid duplication of schema contexts in types if any role doesn't possess any admin secret specific schema * fix compile errors in haskell test * keep 'user_vars' for session variables in http-logs * no-op refacto * tests for admin only inserts * update docs for admin only inserts * updated CHANGELOG.md * default behaviour when admin secret is not set * fix x-hasura-role to X-Hasura-Role in pytests * introduce effective timeout in actions async tests * update docs for admin-secret not configured case * Update docs/graphql/manual/api-reference/schema-metadata-api/permission.rst Co-Authored-By: Marion Schleifer <marion@hasura.io> * Apply suggestions from code review Co-Authored-By: Marion Schleifer <marion@hasura.io> * a complete iteration backend insert permissions accessable via 'x-hasura-backend-privilege' session variable * console changes for backend-only permissions * provide tooltip id; update labels and tooltips; * requested changes * requested changes - remove className from Toggle component - use appropriate function name (capitalizeFirstChar -> capitalize) * use toggle props from definitelyTyped * fix accidental commit * Revert "introduce effective timeout in actions async tests" This reverts commit b7a59c1. * generate complete schema for both 'default' and 'backend' sessions * Apply suggestions from code review Co-Authored-By: Marion Schleifer <marion@hasura.io> * remove unnecessary import, export Toggle as is * update session variable in tooltip * 'x-hasura-use-backend-only-permissions' variable to switch * update help texts * update docs * update docs * update console help text * regenerate package-lock * serve no backend schema when backend_only: false and header set to true - Few type name refactor as suggested by @0x777 * update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * fix a merge bug where a certain entity didn't get removed Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Rishichandra Wawhal <rishi@hasura.io> Co-authored-by: rikinsk <rikin.kachhia@gmail.com> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> * console: support materialized views (close hasura#91) (hasura#4270) * tag release v1.2.0-beta.5 (hasura#4555) * cli: remove irrelevant flags from init command (close hasura#4508) (hasura#4549) * cli: allow initialising project in current directory * update CHANGELOG.md * validate pwd is neither filesystem root nor an existing hasura project * update help text and docs for init command * minor fixes * console: make graphiql panel use whole height (hasura#4553) * console: migrate graphql, sql, main utils to TS (hasura#4522) * console: migrate GqlCompabilityWarning to TS (hasura#4544) * console: fix table columns type comparision during column edit (close hasura#4125) (hasura#4393) * console: update and freeze graphiql explorer to support operation transforms (hasura#4567) * server: allow computed fields to have access to Hasura's session variables (fix hasura#3846) (hasura#4486) * Allow computed fields to have access to Hasura's session variables * Inform about session args for computed fields in changelog and docs * Add tests for session arguments for computed fields (and the respective errors) Co-authored-by: Tirumarai Selvan <tiru@hasura.io> Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com> * docs: data validations (close hasura#4085) (hasura#4260) * docs: add version info to the CLI .env file section (close hasura#4572) (hasura#4573) * docs: misc changes (hasura#4584) * change v1.0 -> v1.x in version dropdown * run sphinx build with upto 4 parallel processes * cli: add support for servers with self-signed certs (fix hasura#4564) (hasura#4582) Co-Authored-By: Marion Schleifer <marion@hasura.io> Co-authored-by: nizar-m <19857260+nizar-m@users.noreply.github.com> Co-authored-by: Alexis King <lexi.lambda@gmail.com> Co-authored-by: Aravind Shankar <aravind@hasura.io> Co-authored-by: Brandon Simmons <brandon.m.simmons@gmail.com> Co-authored-by: Tirumarai Selvan <tiru@hasura.io> Co-authored-by: Rishichandra Wawhal <rishi@hasura.io> Co-authored-by: ShahAnuj2610 <anujshah584@gmail.com> Co-authored-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com> Co-authored-by: Karthikeyan Chinnakonda <karthikeyan@hasura.io> Co-authored-by: Ali Oğuzhan Yıldız <aoguzhanyildiz@gmail.com> Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com> Co-authored-by: Marion Schleifer <marion@hasura.io> Co-authored-by: Vamshi Surabhi <0x777@users.noreply.github.com> Co-authored-by: Aleksandra Sikora <ola.zxcvbnm@gmail.com> Co-authored-by: Aravind <aravindkp@hasura.io> Co-authored-by: Aleksandra Sikora <aleksandra@hasura.io> Co-authored-by: Auke Booij <auke@tulcod.com> Co-authored-by: Sitian Liu <goldensunliu@gmail.com> Co-authored-by: Tirumarai Selvan <tirumarai.selvan@gmail.com> Co-authored-by: Shahidh K Muhammed <shahidh@hasura.io> Co-authored-by: Auke Booij <auke@hasura.io> Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com> Co-authored-by: Toan Nguyen <hgiasac@gmail.com> Co-authored-by: Jigyasu Arya <arya.jigyasu6815@gmail.com> Co-authored-by: Areski Belaid <areski@gmail.com> Co-authored-by: Praveen Durairaju <praveend.web@gmail.com> Co-authored-by: Praveen Durairaju <praveen@hasura.io> Co-authored-by: Marco Pegoraro <marco.pegoraro@gmail.com> Co-authored-by: Avi Moondra <avimoondra@gmail.com> Co-authored-by: ryo <ba068082@gmail.com> Co-authored-by: rikinsk <rikin.kachhia@gmail.com> Co-authored-by: Antoine Leblanc <antoine@hasura.io> Co-authored-by: Muhammad Ubaid Raza <mubaidr@gmail.com> Co-authored-by: Fadi Khadra <fdkhadra@gmail.com> Co-authored-by: Aravind <aravindkp@outlook.in>
Description
This PR add support for materialized views, fixing #91. It touches a lot of things, so let's break it down.
The first big change is in Data/utils.js; we have to change the way we load the schema from the backend, as the
information_schemaviews do NOT contain information about materialized views. To fix this, we replace bothinformation_schema.viewsandinformation_schema.columnsby a simplified version of how they were implemented in postgres 9,5, while extending them to also include materialized views.Obviously, this has a major drawback: we areadding postgres implementation details to the frontend. This was however deemed okay, for now, as the query already used some of those implementation details such as
pg_class, and this allows us to have materialized views. A ticket has been filed for the work that needs to be done on the server side.(This PR also temporarily includes a subset of #4250 (until it is merged), as expanding the sql request uncovered a bug in the metadata checker.)
Then, this PR add support for a new "table type" in the frontend: MATERIALIZED VIEW. For the sake of simplicity, most of the code treats is as a view; and since the code made the difference between tables and views by checking whether the object was or wasn't a table, most of the structure remains the same.
We do however need to distinguish between views and materialized views when we want to modify the object; for instance, materialized views do not support
CREATE OR REPLACE, which is why we have to inject aDROPfirst when re-creating the request. Same thing for renaming, commenting, or deleting a materialized view.The main change, beneath all this, is that we now have the
table_typeas a property in theModifyViewcomponent.This adds cypress tests for all common operations on materialized views. They are a straight copy of the tests on views.
Changelog
CHANGELOG.mdis updated with user-facing content relevant to this PR.Affected components
Screenshots
Materialized views are displayed almost exactly like views. They show up in the list of untracked objects:
and when tracked, they display the same tabs and same buttons as a view. The query is updated, however to reflect the fact that it is indeed a materialized view.