rename_view.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. from textwrap import dedent
  10. from materialize.checks.actions import Testdrive
  11. from materialize.checks.checks import Check
  12. class RenameView(Check):
  13. def initialize(self) -> Testdrive:
  14. return Testdrive(
  15. dedent(
  16. """
  17. > CREATE TABLE rename_view_table (f1 INTEGER, f2 INTEGER);
  18. > CREATE VIEW rename_view_viewA1 AS SELECT f2 FROM rename_view_table WHERE f2 > 0;
  19. > INSERT INTO rename_view_table VALUES (1,1);
  20. > CREATE VIEW rename_view_viewB1 AS SELECT f2 FROM rename_view_viewA1 WHERE f2 > 0;
  21. """
  22. )
  23. )
  24. def manipulate(self) -> list[Testdrive]:
  25. return [
  26. Testdrive(dedent(s))
  27. for s in [
  28. """
  29. > INSERT INTO rename_view_table VALUES (2,2);
  30. > ALTER VIEW rename_view_viewA1 RENAME TO rename_view_viewA2;
  31. > ALTER VIEW rename_view_viewB1 RENAME TO rename_view_viewB2;
  32. > INSERT INTO rename_view_table VALUES (3,3);
  33. """,
  34. """
  35. > INSERT INTO rename_view_table VALUES (4,4);
  36. > ALTER VIEW rename_view_viewB2 RENAME TO rename_view_viewB3;
  37. > ALTER VIEW rename_view_viewA2 RENAME TO rename_view_viewA3;
  38. > INSERT INTO rename_view_table VALUES (5,5);
  39. """,
  40. ]
  41. ]
  42. def validate(self) -> Testdrive:
  43. return Testdrive(
  44. dedent(
  45. r"""
  46. >[version>=14000] SHOW CREATE VIEW rename_view_viewB3;
  47. materialize.public.rename_view_viewb3 "CREATE VIEW\n materialize.public.rename_view_viewb3\n AS SELECT f2 FROM materialize.public.rename_view_viewa3 WHERE f2 > 0;"
  48. >[version<14000] SHOW CREATE VIEW rename_view_viewB3;
  49. materialize.public.rename_view_viewb3 "CREATE VIEW \"materialize\".\"public\".\"rename_view_viewb3\" AS SELECT \"f2\" FROM \"materialize\".\"public\".\"rename_view_viewa3\" WHERE \"f2\" > 0"
  50. > SELECT * FROM rename_view_viewA3;
  51. 1
  52. 2
  53. 3
  54. 4
  55. 5
  56. > SELECT * FROM rename_view_viewB3;
  57. 1
  58. 2
  59. 3
  60. 4
  61. 5
  62. """
  63. )
  64. )