From 83455e614e157b35d617d0b5186fbe0abad229ba Mon Sep 17 00:00:00 2001 From: Nityananda Gohain Date: Wed, 10 Jul 2024 11:23:29 +0530 Subject: [PATCH] fix: disable removing a selected field (#5457) * fix: disable removing a selected field * fix: comment updated with issue link * fix: remove local db --- .../app/clickhouseReader/reader.go | 66 ++++++++++--------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index ae8fb64c94..ccdffd88bd 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -3575,38 +3575,42 @@ func (r *ClickHouseReader) UpdateLogField(ctx context.Context, field *model.Upda } } else { - // 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, "`")) - err := r.db.Exec(ctx, query) - if err != nil { - return &model.ApiError{Err: err, Typ: model.ErrorInternal} - } + // 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.")) - for _, table := range []string{r.logsTable, r.logsLocalTable} { - // drop materialized column from logs table - query := "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s " - err := r.db.Exec(ctx, fmt.Sprintf(query, - r.logsDB, table, - r.cluster, - colname, - ), - ) - if err != nil { - return &model.ApiError{Err: err, Typ: model.ErrorInternal} - } - - // drop exists column on logs table - query = "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s_exists` " - err = r.db.Exec(ctx, fmt.Sprintf(query, - r.logsDB, table, - r.cluster, - strings.TrimSuffix(colname, "`"), - ), - ) - if err != nil { - return &model.ApiError{Err: err, Typ: model.ErrorInternal} - } - } + // 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, "`")) + // err := r.db.Exec(ctx, query) + // if err != nil { + // return &model.ApiError{Err: err, Typ: model.ErrorInternal} + // } + + // for _, table := range []string{r.logsTable, r.logsLocalTable} { + // // drop materialized column from logs table + // query := "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s " + // err := r.db.Exec(ctx, fmt.Sprintf(query, + // r.logsDB, table, + // r.cluster, + // colname, + // ), + // ) + // if err != nil { + // return &model.ApiError{Err: err, Typ: model.ErrorInternal} + // } + + // // drop exists column on logs table + // query = "ALTER TABLE %s.%s ON CLUSTER %s DROP COLUMN IF EXISTS %s_exists` " + // err = r.db.Exec(ctx, fmt.Sprintf(query, + // r.logsDB, table, + // r.cluster, + // strings.TrimSuffix(colname, "`"), + // ), + // ) + // if err != nil { + // return &model.ApiError{Err: err, Typ: model.ErrorInternal} + // } + // } } return nil }