fix: disable removing a selected field (#5457)

* fix: disable removing a selected field

* fix: comment updated with issue link

* fix: remove local db
This commit is contained in:
Nityananda Gohain 2024-07-10 11:23:29 +05:30 committed by GitHub
parent 831de18464
commit 83455e614e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3575,38 +3575,42 @@ func (r *ClickHouseReader) UpdateLogField(ctx context.Context, field *model.Upda
} }
} else { } else {
// We are not allowing to delete a materialized column
// For more details please check https://github.com/SigNoz/signoz/issues/4566
return model.ForbiddenError(errors.New("Removing a selected field is not allowed, please reach out to support."))
// Delete the index first // Delete the index first
query := fmt.Sprintf("ALTER TABLE %s.%s ON CLUSTER %s DROP INDEX IF EXISTS %s_idx`", r.logsDB, r.logsLocalTable, r.cluster, strings.TrimSuffix(colname, "`")) // query := fmt.Sprintf("ALTER TABLE %s.%s ON CLUSTER %s DROP INDEX IF EXISTS %s_idx`", r.logsDB, r.logsLocalTable, r.cluster, strings.TrimSuffix(colname, "`"))
err := r.db.Exec(ctx, query) // err := r.db.Exec(ctx, query)
if err != nil { // if err != nil {
return &model.ApiError{Err: err, Typ: model.ErrorInternal} // return &model.ApiError{Err: err, Typ: model.ErrorInternal}
} // }
for _, table := range []string{r.logsTable, r.logsLocalTable} { // for _, table := range []string{r.logsTable, r.logsLocalTable} {
// drop materialized column from logs table // // drop materialized column from logs table
query := "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s " // query := "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s "
err := r.db.Exec(ctx, fmt.Sprintf(query, // err := r.db.Exec(ctx, fmt.Sprintf(query,
r.logsDB, table, // r.logsDB, table,
r.cluster, // r.cluster,
colname, // colname,
), // ),
) // )
if err != nil { // if err != nil {
return &model.ApiError{Err: err, Typ: model.ErrorInternal} // return &model.ApiError{Err: err, Typ: model.ErrorInternal}
} // }
// drop exists column on logs table // // drop exists column on logs table
query = "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s_exists` " // query = "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s_exists` "
err = r.db.Exec(ctx, fmt.Sprintf(query, // err = r.db.Exec(ctx, fmt.Sprintf(query,
r.logsDB, table, // r.logsDB, table,
r.cluster, // r.cluster,
strings.TrimSuffix(colname, "`"), // strings.TrimSuffix(colname, "`"),
), // ),
) // )
if err != nil { // if err != nil {
return &model.ApiError{Err: err, Typ: model.ErrorInternal} // return &model.ApiError{Err: err, Typ: model.ErrorInternal}
} // }
} // }
} }
return nil return nil
} }