mirror of
https://github.com/turbot/steampipe.git
synced 2026-03-21 16:00:13 -04:00
30 lines
843 B
Go
30 lines
843 B
Go
package db_local
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/turbot/steampipe-plugin-sdk/v5/sperr"
|
|
"github.com/turbot/steampipe/v2/pkg/constants"
|
|
)
|
|
|
|
// SendPostgresNotification send a postgres notification that the schema has chganged
|
|
func SendPostgresNotification(_ context.Context, conn *pgx.Conn, notification any) error {
|
|
notificationBytes, err := json.Marshal(notification)
|
|
if err != nil {
|
|
return sperr.WrapWithMessage(err, "error marshalling Postgres notification")
|
|
}
|
|
|
|
log.Printf("[TRACE] Send update notification")
|
|
|
|
sql := fmt.Sprintf("select pg_notify('%s', $1)", constants.PostgresNotificationChannel)
|
|
_, err = conn.Exec(context.Background(), sql, notificationBytes)
|
|
if err != nil {
|
|
return sperr.WrapWithMessage(err, "error sending Postgres notification")
|
|
}
|
|
return nil
|
|
}
|