connection-alter.td 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. $ set-sql-timeout duration=60s
  10. $ set-arg-default single-replica-cluster=quickstart
  11. #
  12. # Test basic connection functionality
  13. $ skip-consistency-checks reason="workflow uses SSH keys which we currently can't check"
  14. $ postgres-execute connection=postgres://mz_system:materialize@${testdrive.materialize-internal-sql-addr}
  15. ALTER SYSTEM SET enable_connection_validation_syntax = true
  16. # Create working connection + some data to ingest
  17. $ kafka-create-topic topic=connection_test partitions=1
  18. $ kafka-ingest format=bytes topic=connection_test
  19. 1,2
  20. > CREATE CONNECTION conn TO KAFKA (BROKER '${testdrive.kafka-addr}', SECURITY PROTOCOL PLAINTEXT)
  21. > SELECT name, type from mz_connections WHERE id LIKE 'u%'
  22. name type
  23. ------------------------------
  24. conn kafka
  25. > CREATE CONNECTION progress_override TO KAFKA (
  26. BROKER '${testdrive.kafka-addr}',
  27. PROGRESS TOPIC 'some_progress_topic',
  28. SECURITY PROTOCOL PLAINTEXT
  29. )
  30. > CREATE SOURCE mz_source
  31. IN CLUSTER ${arg.single-replica-cluster}
  32. FROM KAFKA CONNECTION conn (TOPIC 'testdrive-connection_test-${testdrive.seed}')
  33. > CREATE TABLE mz_source_tbl (first, second) FROM SOURCE mz_source (REFERENCE "testdrive-connection_test-${testdrive.seed}")
  34. FORMAT CSV WITH 2 COLUMNS
  35. > SELECT * FROM mz_source_tbl
  36. first second
  37. ------------
  38. 1 2
  39. ! ALTER CONNECTION conn RESET (broker);
  40. contains:invalid ALTER CONNECTION: invalid CONNECTION: must set one of BROKER, BROKERS, or AWS PRIVATELINK
  41. ! ALTER CONNECTION conn SET (broker = 'abcd') WITH (validate = true);
  42. contains:Failed to resolve hostname
  43. > ALTER CONNECTION conn SET (broker = 'abcd') WITH (validate = false);
  44. > SELECT status = 'stalled' FROM mz_internal.mz_source_statuses WHERE name = 'mz_source';
  45. true
  46. > SHOW CREATE CONNECTION conn
  47. name create_sql
  48. ---------------------------------
  49. materialize.public.conn "CREATE CONNECTION materialize.public.conn TO KAFKA (BROKER = 'abcd', SECURITY PROTOCOL = plaintext);"
  50. $ kafka-ingest format=bytes topic=connection_test
  51. 2,3
  52. > ALTER CONNECTION conn SET (broker = '${testdrive.kafka-addr}') WITH (validate = true);
  53. > SELECT * FROM mz_source_tbl
  54. first second
  55. ------------
  56. 1 2
  57. 2 3
  58. > SHOW CREATE CONNECTION conn
  59. name create_sql
  60. ---------------------------------
  61. materialize.public.conn "CREATE CONNECTION materialize.public.conn TO KAFKA (BROKER = '${testdrive.kafka-addr}', SECURITY PROTOCOL = plaintext);"
  62. > ALTER CONNECTION conn SET (BROKERS ['${testdrive.kafka-addr}'])
  63. > SHOW CREATE CONNECTION conn
  64. name create_sql
  65. ---------------------------------
  66. materialize.public.conn "CREATE CONNECTION materialize.public.conn TO KAFKA (BROKERS = ('${testdrive.kafka-addr}'), SECURITY PROTOCOL = plaintext);"
  67. ! ALTER CONNECTION conn DROP (SECURITY PROTOCOL);
  68. contains:Broker does not support SSL connections
  69. ! ALTER CONNECTION conn SET (BROKER '${testdrive.kafka-addr}'), RESET (BROKER);
  70. contains:cannot both SET and DROP/RESET options BROKER
  71. ! ALTER CONNECTION conn SET (BROKER '${testdrive.kafka-addr}'), SET (BROKER '${testdrive.kafka-addr}');
  72. contains:BROKER specified more than once
  73. ! ALTER CONNECTION conn SET (BROKER '${testdrive.kafka-addr}'), SET (BROKER '${testdrive.kafka-addr}'), SET (BROKER '${testdrive.kafka-addr}');
  74. contains:BROKER specified more than once
  75. ! ALTER CONNECTION conn SET (BROKER '${testdrive.kafka-addr}'), SET (BROKERS ['${testdrive.kafka-addr}'])
  76. contains:invalid ALTER CONNECTION: invalid CONNECTION: can only set one of BROKER, BROKERS, or AWS PRIVATELINK
  77. ! ALTER CONNECTION conn SET (BROKER '${testdrive.kafka-addr}'), DROP (BROKERS)
  78. contains:cannot both SET and DROP/RESET mutually exclusive KAFKA options BROKER, BROKERS
  79. ! ALTER CONNECTION conn DROP (BROKER), SET (BROKERS ['${testdrive.kafka-addr}'])
  80. contains:cannot both SET and DROP/RESET mutually exclusive KAFKA options BROKER, BROKERS
  81. # We permit resetting both of these options, and the error occurs later in planning
  82. ! ALTER CONNECTION conn RESET (BROKER), RESET (BROKERS);
  83. contains:invalid ALTER CONNECTION: invalid CONNECTION: must set one of BROKER, BROKERS, or AWS PRIVATELINK
  84. > ALTER CONNECTION conn SET (BROKER = '${testdrive.kafka-addr}');
  85. ! ALTER CONNECTION conn SET (PROGRESS TOPIC = 'new');
  86. contains:cannot ALTER KAFKA option PROGRESS TOPIC
  87. ! ALTER CONNECTION conn RESET (PROGRESS TOPIC);
  88. contains:cannot ALTER KAFKA option PROGRESS TOPIC
  89. # Misc. ALTER CONNECTION operations
  90. ! ALTER CONNECTION conn RESET (PROGRESS TOPIC), ROTATE KEYS;
  91. contains:cannot specify any other actions alongside ALTER CONNECTION...ROTATE KEYS
  92. ! ALTER CONNECTION conn ROTATE KEYS, RESET (PROGRESS TOPIC);
  93. contains:cannot specify any other actions alongside ALTER CONNECTION...ROTATE KEYS
  94. ! ALTER CONNECTION conn ROTATE KEYS, ROTATE KEYS;
  95. contains:cannot specify any other actions alongside ALTER CONNECTION...ROTATE KEYS
  96. # IF EXISTS
  97. > ALTER CONNECTION IF EXISTS abc RESET (PROGRESS TOPIC);
  98. ## Mix altering option w/ rotate keys allowed iff in an IF EXISTS and object DNE
  99. > ALTER CONNECTION IF EXISTS abc RESET (PROGRESS TOPIC), ROTATE KEYS;
  100. # Rotate keys on non-SSH conn
  101. ! ALTER CONNECTION conn ROTATE KEYS
  102. contains:is not an SSH connection
  103. > CREATE CONNECTION ssh_conn TO SSH TUNNEL (
  104. HOST 'host',
  105. USER 'user',
  106. PORT 1
  107. )
  108. WITH (VALIDATE = false);
  109. ! ALTER CONNECTION ssh_conn ROTATE KEYS WITH (VALIDATE = true, VALIDATE = false, VALIDATE = 'abc');
  110. contains:ALTER CONNECTION...ROTATE KEYS does not support WITH (VALIDATE = true, VALIDATE = false, VALIDATE = 'abc')