mz_now_combination.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. columns:
  2. - column: "mz_now() Compound Clause"
  3. - column: "Valid/Invalid"
  4. rows:
  5. - "mz_now() Compound Clause": |
  6. <span class="copyableCode">
  7. ```mzsql
  8. SELECT * FROM orders
  9. WHERE status = 'Shipped'
  10. OR order_date + interval '1' days <= mz_now()
  11. ;
  12. ```
  13. </span>
  14. "Valid/Invalid": |
  15. ✅ **Valid**
  16. Ad-hoc queries do not have the same restrictions.
  17. - "mz_now() Compound Clause": |
  18. <span class="copyableCode">
  19. ```mzsql
  20. CREATE MATERIALIZED VIEW forecast_completed_orders AS
  21. SELECT * FROM orders
  22. WHERE order_date + interval '3' days > mz_now()
  23. AND order_date + interval '1' days < mz_now()
  24. ;
  25. ```
  26. </span>
  27. "Valid/Invalid": "✅ **Valid**"
  28. - "mz_now() Compound Clause": |
  29. <span class="copyableCode">
  30. ```mzsql
  31. CREATE MATERIALIZED VIEW forecast_completed_orders AS
  32. SELECT * FROM orders
  33. WHERE (status = 'Complete' OR status = 'Shipped')
  34. AND order_date + interval '1' days <= mz_now()
  35. ;
  36. ```
  37. </span>
  38. "Valid/Invalid": "✅ **Valid**"
  39. - "mz_now() Compound Clause": |
  40. <div style="background-color: var(--code-block)">
  41. ```mzsql
  42. CREATE MATERIALIZED VIEW forecast_completed_orders AS
  43. SELECT * FROM orders
  44. WHERE status = 'Shipped'
  45. OR order_date + interval '1' days <= mz_now()
  46. ;
  47. ```
  48. </div>
  49. "Valid/Invalid": |
  50. ❌ **Invalid**
  51. In materialized view definitions, `mz_now()` clause can only be combined
  52. using an `AND`.
  53. - "mz_now() Compound Clause": |
  54. <div style="background-color: var(--code-block)">
  55. ```mzsql
  56. CREATE MATERIALIZED VIEW forecast_completed_orders AS
  57. SELECT * FROM orders
  58. WHERE status = 'Complete'
  59. OR (status = 'Shipped' AND order_date + interval '1' days <= mz_now())
  60. ```
  61. </div>
  62. "Valid/Invalid": |
  63. ❌ **Invalid**
  64. In materialized view definitions with `mz_now()` clauses, top-level
  65. conditions must be combined using an `AND`.
  66. - "mz_now() Compound Clause": |
  67. <div style="background-color: var(--code-block)">
  68. ```mzsql
  69. CREATE VIEW forecast_completed_orders AS
  70. SELECT * FROM orders
  71. WHERE status = 'Complete'
  72. OR (status = 'Shipped' AND order_date + interval '1' days <= mz_now())
  73. ;
  74. CREATE INDEX idx_forecast_completed_orders ON forecast_completed_orders
  75. (order_date); -- Unsupported because of the `mz_now()` clause
  76. ```
  77. </div>
  78. "Valid/Invalid": |
  79. ❌ **Invalid**
  80. To index a view whose definitions includes `mz_now()` clauses, top-level
  81. conditions must be combined using an `AND` in the view definition.