@@ -2824,6 +2824,26 @@ func DeleteProducerByNameAndStationID(name string, stationId int) (bool, error)
28242824 return true , nil
28252825}
28262826
2827+ func DeleteConnectorProducerByNameAndStationID (name string , stationId int ) (bool , error ) {
2828+ ctx , cancelfunc := context .WithTimeout (context .Background (), DbOperationTimeout * time .Second )
2829+ defer cancelfunc ()
2830+ conn , err := MetadataDbClient .Client .Acquire (ctx )
2831+ if err != nil {
2832+ return false , err
2833+ }
2834+ defer conn .Release ()
2835+ query := `DELETE FROM producers WHERE name = $1 AND station_id = $2 AND type = 'connector' LIMIT 1`
2836+ stmt , err := conn .Conn ().Prepare (ctx , "delete_producer_by_name_and_station_id" , query )
2837+ if err != nil {
2838+ return false , err
2839+ }
2840+ _ , err = conn .Conn ().Query (ctx , stmt .Name , name , stationId )
2841+ if err != nil {
2842+ return false , err
2843+ }
2844+ return true , nil
2845+ }
2846+
28272847func DeleteProducerByNameStationIDAndConnID (name string , stationId int , connId string ) (bool , error ) {
28282848 ctx , cancelfunc := context .WithTimeout (context .Background (), DbOperationTimeout * time .Second )
28292849 defer cancelfunc ()
@@ -3223,6 +3243,34 @@ func DeleteConsumerByNameStationIDAndConnID(connectionId, name string, stationId
32233243 return true , consumers [0 ], nil
32243244}
32253245
3246+ func DeleteConsumerByNameStationIDAndType (consumerType , name string , stationId int ) (bool , models.Consumer , error ) {
3247+ ctx , cancelfunc := context .WithTimeout (context .Background (), DbOperationTimeout * time .Second )
3248+ defer cancelfunc ()
3249+ conn , err := MetadataDbClient .Client .Acquire (ctx )
3250+ if err != nil {
3251+ return false , models.Consumer {}, err
3252+ }
3253+ defer conn .Release ()
3254+ query := ` DELETE FROM consumers WHERE ctid = ( SELECT ctid FROM consumers WHERE type = $1 AND name = $2 AND station_id = $3 LIMIT 1) RETURNING *`
3255+ deleteStmt , err := conn .Conn ().Prepare (ctx , "delete_consumers" , query )
3256+ if err != nil {
3257+ return false , models.Consumer {}, err
3258+ }
3259+ rows , err := conn .Conn ().Query (ctx , deleteStmt .Name , consumerType , name , stationId )
3260+ if err != nil {
3261+ return false , models.Consumer {}, err
3262+ }
3263+ defer rows .Close ()
3264+ consumers , err := pgx .CollectRows (rows , pgx .RowToStructByPos [models .Consumer ])
3265+ if err != nil {
3266+ return false , models.Consumer {}, err
3267+ }
3268+ if len (consumers ) == 0 {
3269+ return false , models.Consumer {}, err
3270+ }
3271+ return true , consumers [0 ], nil
3272+ }
3273+
32263274func DeleteConsumerByNameAndStationId (name string , stationId int ) (bool , models.Consumer , error ) {
32273275 ctx , cancelfunc := context .WithTimeout (context .Background (), DbOperationTimeout * time .Second )
32283276 defer cancelfunc ()
0 commit comments