@@ -2997,12 +2997,10 @@ BEGIN
29972997END;
29982998
29992999/*
3000- SQL Trigger that adds a warning to the notification table when enabling a provisional cluster.
3001- Triggers are needed for both AFTER INSERT and AFTER UPDATE,
3002- as initial enabling inserts a row into ENDPOINT_TYPE_CLUSTER, while subsequent enabling updates the table.
3000+ SQL UPDATE Trigger that adds a warning to the notification table when re-enabling a provisional cluster.
30033001*/
30043002CREATE TRIGGER
3005- UPDATE_TRIGGER_ENABLE_PROVISIONAL_CLUSTER_WARNING
3003+ UPDATE_TRIGGER_PROVISIONAL_CLUSTER_WARNING
30063004AFTER
30073005 UPDATE ON ENDPOINT_TYPE_CLUSTER
30083006WHEN
@@ -3127,95 +3125,153 @@ BEGIN
31273125 );
31283126END;
31293127
3128+ /*
3129+ SQL INSERT Trigger that adds a warning to the notification table when first-time enabling a provisional cluster.
3130+ */
31303131CREATE TRIGGER
3131- INSERT_TRIGGER_ENABLE_PROVISIONAL_CLUSTER_WARNING
3132+ INSERT_TRIGGER_PROVISIONAL_CLUSTER_WARNING_PER_CLUSTER
31323133AFTER
31333134 INSERT ON ENDPOINT_TYPE_CLUSTER
31343135WHEN
3135- (
3136+ new .ENABLED = 1
3137+ AND EXISTS (
31363138 SELECT
3137- COUNT ()
3139+ 1
31383140 FROM
3139- ENDPOINT_TYPE_CLUSTER
3140- INNER JOIN
31413141 CLUSTER
3142- ON
3143- ENDPOINT_TYPE_CLUSTER .CLUSTER_REF = CLUSTER .CLUSTER_ID
31443142 WHERE
3145- ENDPOINT_TYPE_CLUSTER . CLUSTER_REF = new .CLUSTER_REF
3143+ CLUSTER . CLUSTER_ID = new .CLUSTER_REF
31463144 AND
3147- ENDPOINT_TYPE_CLUSTER .ENDPOINT_TYPE_REF = new .ENDPOINT_TYPE_REF
3148- AND
3149- ENDPOINT_TYPE_CLUSTER .SIDE = new .SIDE
3150- AND
3151- new .ENABLED = 1
3152- AND
3153- CLUSTER .API_MATURITY = " provisional"
3154- ) > 0
3145+ CLUSTER .API_MATURITY = " provisional"
3146+ )
3147+ AND EXISTS (
3148+ SELECT
3149+ 1
3150+ FROM
3151+ SESSION_PARTITION
3152+ INNER JOIN
3153+ ENDPOINT_TYPE
3154+ ON
3155+ SESSION_PARTITION .SESSION_PARTITION_ID = ENDPOINT_TYPE .SESSION_PARTITION_REF
3156+ WHERE
3157+ ENDPOINT_TYPE .ENDPOINT_TYPE_ID = new .ENDPOINT_TYPE_REF
3158+ )
31553159BEGIN
31563160 INSERT INTO
3157- SESSION_NOTICE(SESSION_REF, NOTICE_TYPE, NOTICE_MESSAGE, NOTICE_SEVERITY, DISPLAY, SEEN)
3158- VALUES
3159- (
3160- (
3161- SELECT
3162- SESSION_PARTITION .SESSION_REF
3163- FROM
3164- ENDPOINT_TYPE_CLUSTER
3165- INNER JOIN
3166- ENDPOINT_TYPE
3167- ON
3168- ENDPOINT_TYPE .ENDPOINT_TYPE_ID = ENDPOINT_TYPE_CLUSTER .ENDPOINT_TYPE_REF
3169- INNER JOIN
3170- SESSION_PARTITION
3171- ON
3172- SESSION_PARTITION .SESSION_PARTITION_ID = ENDPOINT_TYPE .SESSION_PARTITION_REF
3173- WHERE
3174- ENDPOINT_TYPE_CLUSTER .ENDPOINT_TYPE_CLUSTER_ID = new .ENDPOINT_TYPE_CLUSTER_ID
3175- ),
3176- " WARNING" ,
3177- " On endpoint "
3178- ||
3179- (
3180- SELECT
3181- ENDPOINT .ENDPOINT_IDENTIFIER
3182- FROM
3183- ENDPOINT
3184- INNER JOIN
3185- ENDPOINT_TYPE
3186- ON
3187- ENDPOINT .ENDPOINT_TYPE_REF = ENDPOINT_TYPE .ENDPOINT_TYPE_ID
3188- INNER JOIN
3189- ENDPOINT_TYPE_CLUSTER
3190- ON
3191- ENDPOINT_TYPE_CLUSTER .ENDPOINT_TYPE_REF = ENDPOINT_TYPE .ENDPOINT_TYPE_ID
3192- WHERE
3193- ENDPOINT_TYPE_CLUSTER .ENDPOINT_TYPE_CLUSTER_ID = new .ENDPOINT_TYPE_CLUSTER_ID
3194- )
3195- ||
3196- " , support for cluster: "
3197- ||
3198- (
3199- SELECT
3200- CLUSTER .NAME || " " || new .SIDE
3201- FROM
3202- CLUSTER
3203- WHERE
3204- CLUSTER .CLUSTER_ID = new .CLUSTER_REF
3205- )
3206- ||
3207- " is provisional." ,
3208- 1 ,
3209- 1 ,
3210- 0
3211- );
3161+ SESSION_NOTICE (SESSION_REF, NOTICE_TYPE, NOTICE_MESSAGE, NOTICE_SEVERITY, DISPLAY, SEEN)
3162+ SELECT
3163+ SP .SESSION_REF ,
3164+ " WARNING" ,
3165+ " On endpoint " || E .ENDPOINT_IDENTIFIER || " , support for cluster: " || C .NAME || " " || new .SIDE || " is provisional." ,
3166+ 1 ,
3167+ 1 ,
3168+ 0
3169+ FROM
3170+ ENDPOINT E
3171+ INNER JOIN
3172+ ENDPOINT_TYPE ET
3173+ ON
3174+ E .ENDPOINT_TYPE_REF = ET .ENDPOINT_TYPE_ID
3175+ INNER JOIN
3176+ SESSION_PARTITION SP
3177+ ON
3178+ ET .SESSION_PARTITION_REF = SP .SESSION_PARTITION_ID
3179+ INNER JOIN
3180+ CLUSTER C
3181+ ON
3182+ C .CLUSTER_ID = new .CLUSTER_REF
3183+ WHERE
3184+ ET .ENDPOINT_TYPE_ID = new .ENDPOINT_TYPE_REF ;
3185+ END;
3186+
3187+ /*
3188+ SQL INSERT Trigger that adds warnings for provisional clusters to the notification table when creating an endpoint.
3189+ The triggered is placed on ENDPOINT table since ENDPOINT data is required in the warning and is loaded after ENDPOINT_TYPE and ENDPOINT_TYPE_CLUSTER.
3190+ */
3191+ CREATE TRIGGER
3192+ INSERT_TRIGGER_PROVISIONAL_CLUSTER_WARNING_PER_ENDPOINT
3193+ AFTER
3194+ INSERT ON ENDPOINT
3195+ BEGIN
3196+ INSERT INTO
3197+ SESSION_NOTICE (SESSION_REF, NOTICE_TYPE, NOTICE_MESSAGE, NOTICE_SEVERITY, DISPLAY, SEEN)
3198+ SELECT
3199+ SP .SESSION_REF ,
3200+ " WARNING" ,
3201+ " On endpoint " || E .ENDPOINT_IDENTIFIER || " , support for cluster: " || C .NAME || " " || ETC .SIDE || " is provisional." ,
3202+ 1 ,
3203+ 1 ,
3204+ 0
3205+ FROM
3206+ ENDPOINT E
3207+ INNER JOIN
3208+ ENDPOINT_TYPE ET
3209+ ON
3210+ E .ENDPOINT_TYPE_REF = ET .ENDPOINT_TYPE_ID
3211+ INNER JOIN
3212+ SESSION_PARTITION SP
3213+ ON
3214+ SP .SESSION_PARTITION_ID = ET .SESSION_PARTITION_REF
3215+ INNER JOIN
3216+ ENDPOINT_TYPE_CLUSTER ETC
3217+ ON
3218+ ETC .ENDPOINT_TYPE_REF = ET .ENDPOINT_TYPE_ID
3219+ INNER JOIN
3220+ CLUSTER C
3221+ ON
3222+ ETC .CLUSTER_REF = C .CLUSTER_ID
3223+ WHERE
3224+ E .ENDPOINT_ID = NEW .ENDPOINT_ID
3225+ AND
3226+ ETC .ENABLED = 1
3227+ AND
3228+ C .API_MATURITY = " provisional" ;
3229+ END;
3230+
3231+ /*
3232+ SQL DELETE Trigger that removes provisional cluster warnings from the notification table when deleting an endpoint.
3233+ */
3234+ CREATE TRIGGER
3235+ DELETE_TRIGGER_PROVISIONAL_CLUSTER_WARNING_REMOVAL
3236+ AFTER
3237+ DELETE ON ENDPOINT
3238+ BEGIN
3239+ DELETE FROM
3240+ SESSION_NOTICE
3241+ WHERE
3242+ SESSION_REF = (
3243+ SELECT
3244+ SESSION_REF
3245+ FROM
3246+ SESSION_PARTITION
3247+ WHERE
3248+ SESSION_PARTITION .SESSION_PARTITION_ID = (
3249+ SELECT
3250+ SESSION_PARTITION_REF
3251+ FROM
3252+ ENDPOINT_TYPE
3253+ WHERE
3254+ ENDPOINT_TYPE .ENDPOINT_TYPE_ID = old .ENDPOINT_TYPE_REF
3255+ )
3256+ )
3257+ AND
3258+ NOTICE_TYPE= " WARNING"
3259+ AND
3260+ NOTICE_MESSAGE LIKE
3261+ (
3262+ " On endpoint "
3263+ ||
3264+ old .ENDPOINT_IDENTIFIER
3265+ ||
3266+ " , support for cluster: % is provisional."
3267+ );
32123268END;
32133269
32143270/*
3215- SQL Trigger that removes a warning from the notification table when disabling a provisional cluster.
3271+ SQL UPDATE Trigger that removes a warning from the notification table when disabling a provisional cluster.
32163272*/
32173273CREATE TRIGGER
3218- UPDATE_TRIGGER_DISABLE_PROVISIONAL_CLUSTER_WARNING_REMOVAL
3274+ UPDATE_TRIGGER_PROVISIONAL_CLUSTER_WARNING_REMOVAL
32193275AFTER
32203276 UPDATE ON ENDPOINT_TYPE_CLUSTER
32213277WHEN
0 commit comments