Skip to content

Commit fd03e9a

Browse files
committed
fix: SGStream migration fail when a TOASTable column has NOT NULL constraint
1 parent 0365dd1 commit fd03e9a

1 file changed

Lines changed: 33 additions & 22 deletions

File tree

stackgres-k8s/e2e/spec/stream-to-cluster

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,37 +66,17 @@ e2e_test() {
6666
return
6767
fi
6868

69-
run_test "Checking that stream is working" check_stream_is_working
70-
7169
run_test "Checking that stream is working skipping DDL import" check_stream_is_working_skippig_ddl_import
7270

71+
run_test "Checking that stream is working" check_stream_is_working
72+
7373
run_test "Checking that stream copying schema first is working" check_stream_copy_schema_is_working
7474
}
7575

7676
check_stream_is_working_skippig_ddl_import() {
7777
check_stream_is_working true
7878
}
7979

80-
is_array_not_supported() {
81-
local TYPE_CATEGORY="$1"
82-
local TYPE_TYPE="$2"
83-
local TYPE_NAME="$3"
84-
local TYPE_FORMAT_TYPE="$4"
85-
[ "${TYPE_NAME%serial}" != "$TYPE_NAME" ] \
86-
|| [ "$TYPE_NAME" = 'aclitem' ] \
87-
|| [ "$TYPE_NAME" = 'point' ] \
88-
|| [ "$TYPE_NAME" = 'money' ] \
89-
|| [ "$TYPE_NAME" = 'interval' ] \
90-
|| [ "$TYPE_NAME" = 'name' ] \
91-
|| [ "$TYPE_NAME" = 'varbit' ] \
92-
|| [ "$TYPE_NAME" = 'xml' ] \
93-
|| [ "$TYPE_NAME" = 'jsonpath' ] \
94-
|| [ "$TYPE_NAME" = 'bytea' ] \
95-
|| [ "$TYPE_NAME" = 'time' ] \
96-
|| [ "$TYPE_NAME" = 'timetz' ] \
97-
|| [ "$TYPE_NAME" = 'bit' ]
98-
}
99-
10080
check_stream_is_working() {
10181
SKIP_DDL_IMPORT="${1:-false}"
10282
cat << 'EOF' | tee "$LOG_PATH/list-types.sql" | kubectl exec -i -n "$CLUSTER_NAMESPACE" "$CLUSTER_NAME-0" -c postgres-util -- psql -q -v ON_ERROR_STOP=on -tA > "$LOG_PATH/types"
@@ -139,6 +119,17 @@ EOF
139119

140120
cat << EOF | tee "$LOG_PATH/reset-target-status.sql" | kubectl exec -i -n "$CLUSTER_NAMESPACE" "$TARGET_CLUSTER_NAME-0" -c postgres-util -- psql -q -v ON_ERROR_STOP=on
141121
ALTER DATABASE postgres SET sgstream.ddl_import_completed = false;
122+
DROP TABLE IF EXISTS test;
123+
DROP TABLE IF EXISTS pop;
124+
$(
125+
set +x
126+
cat "$LOG_PATH/types" | while read -r TYPE_CATEGORY TYPE_TYPE TYPE_NAME TYPE_FORMAT_TYPE
127+
do
128+
cat << INNER_EOF
129+
DROP TABLE IF EXISTS complex_$TYPE_NAME;
130+
INNER_EOF
131+
done
132+
)
142133
EOF
143134

144135
TYPE_COUNT="$(wc -l "$LOG_PATH/types" | cut -d ' ' -f 1)"
@@ -683,6 +674,26 @@ EOF
683674
fi
684675
}
685676

677+
is_array_not_supported() {
678+
local TYPE_CATEGORY="$1"
679+
local TYPE_TYPE="$2"
680+
local TYPE_NAME="$3"
681+
local TYPE_FORMAT_TYPE="$4"
682+
[ "${TYPE_NAME%serial}" != "$TYPE_NAME" ] \
683+
|| [ "$TYPE_NAME" = 'aclitem' ] \
684+
|| [ "$TYPE_NAME" = 'point' ] \
685+
|| [ "$TYPE_NAME" = 'money' ] \
686+
|| [ "$TYPE_NAME" = 'interval' ] \
687+
|| [ "$TYPE_NAME" = 'name' ] \
688+
|| [ "$TYPE_NAME" = 'varbit' ] \
689+
|| [ "$TYPE_NAME" = 'xml' ] \
690+
|| [ "$TYPE_NAME" = 'jsonpath' ] \
691+
|| [ "$TYPE_NAME" = 'bytea' ] \
692+
|| [ "$TYPE_NAME" = 'time' ] \
693+
|| [ "$TYPE_NAME" = 'timetz' ] \
694+
|| [ "$TYPE_NAME" = 'bit' ]
695+
}
696+
686697
check_stream_copy_schema_is_working() {
687698
wait_until check_sakila_database "$CLUSTER_NAME"
688699

0 commit comments

Comments
 (0)