From 7b623b25b18dbcee8a8cc27d1cbf66d8767a1bb7 Mon Sep 17 00:00:00 2001 From: Krishna Miriyala Date: Thu, 14 Sep 2023 18:23:01 -0700 Subject: [PATCH] Add support for golang 1.21 (#60) --- .github/workflows/daily.yml | 14 ++++-- .github/workflows/go.yml | 14 ++++-- build/install_tools.sh | 6 ++- docs/DOCUMENTATION.md | 87 ++++++++++++++++++++---------------- pkg/datastore/database.go | 62 ++++++++++++------------- pkg/errors/error_codes.go | 10 +++-- pkg/protostore/protostore.go | 5 ++- 7 files changed, 115 insertions(+), 83 deletions(-) diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index d96c1bb..1ba9a80 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -14,12 +14,15 @@ jobs: test: name: Unit test runs-on: [ubuntu-latest] + strategy: + matrix: + go: ['1.19', '1.20', '1.21'] steps: - uses: actions/checkout@v3 - - name: Set up Go using version for latest 1.19 version + - name: Set up Go using version for latest ${{ matrix.go }} version uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: ${{ matrix.go }} check-latest: true - name: Run unit tests run: | @@ -37,12 +40,15 @@ jobs: lint: name: Check lint runs-on: [ubuntu-latest] + strategy: + matrix: + go: ['1.19', '1.20', '1.21'] steps: - uses: actions/checkout@v3 - - name: Set up Go using version for latest 1.19 version + - name: Set up Go using version for latest ${{ matrix.go }} version uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: ${{ matrix.go }} check-latest: true - name: Run lint run: | diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index a3bc04e..d7c93ef 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -26,12 +26,15 @@ jobs: test: name: Unit test runs-on: [ubuntu-latest] + strategy: + matrix: + go: ['1.19', '1.20', '1.21'] steps: - uses: actions/checkout@v3 - - name: Set up Go using version for latest 1.19 version + - name: Set up Go using version for latest ${{ matrix.go }} version uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: ${{ matrix.go }} check-latest: true - name: Run unit tests @@ -50,12 +53,15 @@ jobs: lint: name: Check lint runs-on: [ubuntu-latest] + strategy: + matrix: + go: ['1.19', '1.20', '1.21'] steps: - uses: actions/checkout@v3 - - name: Set up Go using version for latest 1.19 version + - name: Set up Go using version for latest ${{ matrix.go }} version uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: ${{ matrix.go }} check-latest: true - name: Run lint run: | diff --git a/build/install_tools.sh b/build/install_tools.sh index 754b0c2..da40003 100755 --- a/build/install_tools.sh +++ b/build/install_tools.sh @@ -3,7 +3,11 @@ set -eux source $(dirname "$0")/env.sh -GOLNT_VERSION=v1.50.1 +if go version | grep 1.2; then + GOLNT_VERSION=${GOLNT_VERSION:=v1.52.2} +else + GOLNT_VERSION=${GOLNT_VERSION:=v1.50.1} +fi GOMRK_VERSION=v1.1.0 SHFMT_VERSION=v3.6.0 TYPOS_VERSION=1.13.6 diff --git a/docs/DOCUMENTATION.md b/docs/DOCUMENTATION.md index 77829c8..c3a4288 100755 --- a/docs/DOCUMENTATION.md +++ b/docs/DOCUMENTATION.md @@ -1091,7 +1091,7 @@ var ( ``` -## type [DbError]() +## type [DbError]() @@ -1102,7 +1102,7 @@ type DbError struct { ``` -### func \(\*DbError\) [Error]() +### func \(\*DbError\) [Error]() ```go func (e *DbError) Error() string @@ -1111,7 +1111,7 @@ func (e *DbError) Error() string -### func \(\*DbError\) [Is]() +### func \(\*DbError\) [Is]() ```go func (e *DbError) Is(target error) bool @@ -1120,7 +1120,7 @@ func (e *DbError) Is(target error) bool -### func \(\*DbError\) [Unwrap]() +### func \(\*DbError\) [Unwrap]() ```go func (e *DbError) Unwrap() error @@ -1129,7 +1129,7 @@ func (e *DbError) Unwrap() error -### func \(\*DbError\) [With]() +### func \(\*DbError\) [With]() ```go func (e *DbError) With(msg string) *DbError @@ -1138,7 +1138,7 @@ func (e *DbError) With(msg string) *DbError -### func \(\*DbError\) [WithContext]() +### func \(\*DbError\) [WithContext]() ```go func (e *DbError) WithContext(ctx context.Context) *DbError @@ -1147,7 +1147,7 @@ func (e *DbError) WithContext(ctx context.Context) *DbError -### func \(\*DbError\) [WithMap]() +### func \(\*DbError\) [WithMap]() ```go func (e *DbError) WithMap(kvMap map[ErrorContextKey]string) *DbError @@ -1156,7 +1156,7 @@ func (e *DbError) WithMap(kvMap map[ErrorContextKey]string) *DbError -### func \(\*DbError\) [WithValue]() +### func \(\*DbError\) [WithValue]() ```go func (e *DbError) WithValue(key ErrorContextKey, value string) *DbError @@ -1165,7 +1165,7 @@ func (e *DbError) WithValue(key ErrorContextKey, value string) *DbError -### func \(\*DbError\) [Wrap]() +### func \(\*DbError\) [Wrap]() ```go func (e *DbError) Wrap(err error) *DbError @@ -1183,7 +1183,7 @@ type ErrorContextKey string ``` -### func \(ErrorContextKey\) [String]() +### func \(ErrorContextKey\) [String]() ```go func (c ErrorContextKey) String() string @@ -1217,6 +1217,7 @@ This package exposes interface \[pkg.protostore.ProtoStore\] to the consumer, wh - [func \(p ProtobufDataStore\) FindAllAsMap\(ctx context.Context, msgsMap interface\{\}, pagination \*datastore.Pagination\) \(metadataMap map\[string\]Metadata, err error\)](<#ProtobufDataStore.FindAllAsMap>) - [func \(p ProtobufDataStore\) FindById\(ctx context.Context, id string, msg proto.Message, metadata \*Metadata\) error](<#ProtobufDataStore.FindById>) - [func \(p ProtobufDataStore\) GetAuthorizer\(\) authorizer.Authorizer](<#ProtobufDataStore.GetAuthorizer>) + - [func \(p ProtobufDataStore\) GetDataStore\(\) datastore.DataStore](<#ProtobufDataStore.GetDataStore>) - [func \(p ProtobufDataStore\) GetMetadata\(ctx context.Context, id string, msg proto.Message\) \(md Metadata, err error\)](<#ProtobufDataStore.GetMetadata>) - [func \(p ProtobufDataStore\) GetRevision\(ctx context.Context, id string, msg proto.Message\) \(int64, error\)](<#ProtobufDataStore.GetRevision>) - [func \(p ProtobufDataStore\) Insert\(ctx context.Context, id string, msg proto.Message\) \(rowsAffected int64, md Metadata, err error\)](<#ProtobufDataStore.Insert>) @@ -1232,7 +1233,7 @@ This package exposes interface \[pkg.protostore.ProtoStore\] to the consumer, wh -## func [FromBytes]() +## func [FromBytes]() ```go func FromBytes(bytes []byte, message proto.Message) error @@ -1241,7 +1242,7 @@ func FromBytes(bytes []byte, message proto.Message) error -## func [ToBytes]() +## func [ToBytes]() ```go func ToBytes(message proto.Message) ([]byte, error) @@ -1250,7 +1251,7 @@ func ToBytes(message proto.Message) ([]byte, error) -## type [Metadata]() +## type [Metadata]() @@ -1266,7 +1267,7 @@ type Metadata struct { ``` -### func [MetadataFrom]() +### func [MetadataFrom]() ```go func MetadataFrom(protoStoreMsg ProtoStoreMsg) Metadata @@ -1275,7 +1276,7 @@ func MetadataFrom(protoStoreMsg ProtoStoreMsg) Metadata -## type [ProtoStore]() +## type [ProtoStore]() @@ -1301,6 +1302,7 @@ type ProtoStore interface { MsgToFilter(ctx context.Context, id string, msg proto.Message) (pMsg *ProtoStoreMsg, err error) MsgToPersist(ctx context.Context, id string, msg proto.Message, md Metadata) (pMsg *ProtoStoreMsg, err error) + GetDataStore() datastore.DataStore GetAuthorizer() authorizer.Authorizer DropTables(msgs ...proto.Message) error } @@ -1392,7 +1394,7 @@ DeleteById:: rowsAffected: 1 err: -### func [GetProtoStore]() +### func [GetProtoStore]() ```go func GetProtoStore(logger *logrus.Entry, ds datastore.DataStore) ProtoStore @@ -1401,7 +1403,7 @@ func GetProtoStore(logger *logrus.Entry, ds datastore.DataStore) ProtoStore -## type [ProtoStoreMsg]() +## type [ProtoStoreMsg]() @@ -1421,7 +1423,7 @@ type ProtoStoreMsg struct { ``` -### func \(\*ProtoStoreMsg\) [String]() +### func \(\*ProtoStoreMsg\) [String]() ```go func (msg *ProtoStoreMsg) String() string @@ -1430,7 +1432,7 @@ func (msg *ProtoStoreMsg) String() string -### func \(\*ProtoStoreMsg\) [TableName]() +### func \(\*ProtoStoreMsg\) [TableName]() ```go func (msg *ProtoStoreMsg) TableName() string @@ -1439,7 +1441,7 @@ func (msg *ProtoStoreMsg) TableName() string -## type [ProtobufDataStore]() +## type [ProtobufDataStore]() @@ -1450,7 +1452,7 @@ type ProtobufDataStore struct { ``` -### func \(ProtobufDataStore\) [DeleteById]() +### func \(ProtobufDataStore\) [DeleteById]() ```go func (p ProtobufDataStore) DeleteById(ctx context.Context, id string, msg proto.Message) (int64, error) @@ -1459,7 +1461,7 @@ func (p ProtobufDataStore) DeleteById(ctx context.Context, id string, msg proto. -### func \(ProtobufDataStore\) [DropTables]() +### func \(ProtobufDataStore\) [DropTables]() ```go func (p ProtobufDataStore) DropTables(msgs ...proto.Message) error @@ -1468,7 +1470,7 @@ func (p ProtobufDataStore) DropTables(msgs ...proto.Message) error -### func \(ProtobufDataStore\) [FindAll]() +### func \(ProtobufDataStore\) [FindAll]() ```go func (p ProtobufDataStore) FindAll(ctx context.Context, msgs interface{}, pagination *datastore.Pagination) (metadataMap map[string]Metadata, err error) @@ -1477,7 +1479,7 @@ func (p ProtobufDataStore) FindAll(ctx context.Context, msgs interface{}, pagina FindAll Finds all messages \(of the same type as the element of msgs\) in Protostore and stores the result in msgs. msgs must be a pointer to a slice of Protobuf structs or a pointer to a slice of pointers to Protobuf structs. It will be modified in\-place. Returns a map of Protobuf messages' IDs to their metadata \(parent ID & revision\). -### func \(ProtobufDataStore\) [FindAllAsMap]() +### func \(ProtobufDataStore\) [FindAllAsMap]() ```go func (p ProtobufDataStore) FindAllAsMap(ctx context.Context, msgsMap interface{}, pagination *datastore.Pagination) (metadataMap map[string]Metadata, err error) @@ -1486,7 +1488,7 @@ func (p ProtobufDataStore) FindAllAsMap(ctx context.Context, msgsMap interface{} -### func \(ProtobufDataStore\) [FindById]() +### func \(ProtobufDataStore\) [FindById]() ```go func (p ProtobufDataStore) FindById(ctx context.Context, id string, msg proto.Message, metadata *Metadata) error @@ -1495,7 +1497,7 @@ func (p ProtobufDataStore) FindById(ctx context.Context, id string, msg proto.Me Finds a Protobuf message by ID. If metadata arg. is non\-nil, fills it with the metadata \(parent ID & revision\) of the Protobuf message that was found. -### func \(ProtobufDataStore\) [GetAuthorizer]() +### func \(ProtobufDataStore\) [GetAuthorizer]() ```go func (p ProtobufDataStore) GetAuthorizer() authorizer.Authorizer @@ -1503,8 +1505,17 @@ func (p ProtobufDataStore) GetAuthorizer() authorizer.Authorizer + +### func \(ProtobufDataStore\) [GetDataStore]() + +```go +func (p ProtobufDataStore) GetDataStore() datastore.DataStore +``` + + + -### func \(ProtobufDataStore\) [GetMetadata]() +### func \(ProtobufDataStore\) [GetMetadata]() ```go func (p ProtobufDataStore) GetMetadata(ctx context.Context, id string, msg proto.Message) (md Metadata, err error) @@ -1513,7 +1524,7 @@ func (p ProtobufDataStore) GetMetadata(ctx context.Context, id string, msg proto -### func \(ProtobufDataStore\) [GetRevision]() +### func \(ProtobufDataStore\) [GetRevision]() ```go func (p ProtobufDataStore) GetRevision(ctx context.Context, id string, msg proto.Message) (int64, error) @@ -1522,7 +1533,7 @@ func (p ProtobufDataStore) GetRevision(ctx context.Context, id string, msg proto -### func \(ProtobufDataStore\) [Insert]() +### func \(ProtobufDataStore\) [Insert]() ```go func (p ProtobufDataStore) Insert(ctx context.Context, id string, msg proto.Message) (rowsAffected int64, md Metadata, err error) @@ -1531,7 +1542,7 @@ func (p ProtobufDataStore) Insert(ctx context.Context, id string, msg proto.Mess @DEPRECATED See \[InsertWithMetadata\]. -### func \(ProtobufDataStore\) [InsertWithMetadata]() +### func \(ProtobufDataStore\) [InsertWithMetadata]() ```go func (p ProtobufDataStore) InsertWithMetadata(ctx context.Context, id string, msg proto.Message, metadata Metadata) (rowsAffected int64, md Metadata, err error) @@ -1540,7 +1551,7 @@ func (p ProtobufDataStore) InsertWithMetadata(ctx context.Context, id string, ms Inserts a new Protobuf record in the DB. Returns, rowsAffected \- 0 if insertion fails; 1 otherwise md \- metadata of the new Protobuf record err \- error that occurred during insertion, if any. -### func \(ProtobufDataStore\) [MsgToFilter]() +### func \(ProtobufDataStore\) [MsgToFilter]() ```go func (p ProtobufDataStore) MsgToFilter(ctx context.Context, id string, msg proto.Message) (pMsg *ProtoStoreMsg, err error) @@ -1549,7 +1560,7 @@ func (p ProtobufDataStore) MsgToFilter(ctx context.Context, id string, msg proto Return the ProtoStoreMsg that can be used for filtering with id/orgId filled up and error that occurred during extraction orgId from context. -### func \(ProtobufDataStore\) [MsgToPersist]() +### func \(ProtobufDataStore\) [MsgToPersist]() ```go func (p ProtobufDataStore) MsgToPersist(ctx context.Context, id string, msg proto.Message, md Metadata) (pMsg *ProtoStoreMsg, err error) @@ -1558,7 +1569,7 @@ func (p ProtobufDataStore) MsgToPersist(ctx context.Context, id string, msg prot Return the serialized ProtoStoreMsg that can be persisted to database and error that occurred during extraction orgId from context, or serialization. -### func \(ProtobufDataStore\) [Register]() +### func \(ProtobufDataStore\) [Register]() ```go func (p ProtobufDataStore) Register(ctx context.Context, roleMapping map[string]dbrole.DbRole, msgs ...proto.Message) error @@ -1567,7 +1578,7 @@ func (p ProtobufDataStore) Register(ctx context.Context, roleMapping map[string] -### func \(ProtobufDataStore\) [SoftDeleteById]() +### func \(ProtobufDataStore\) [SoftDeleteById]() ```go func (p ProtobufDataStore) SoftDeleteById(ctx context.Context, id string, msg proto.Message) (int64, error) @@ -1576,7 +1587,7 @@ func (p ProtobufDataStore) SoftDeleteById(ctx context.Context, id string, msg pr -### func \(ProtobufDataStore\) [Update]() +### func \(ProtobufDataStore\) [Update]() ```go func (p ProtobufDataStore) Update(ctx context.Context, id string, msg proto.Message) (rowsAffected int64, md Metadata, err error) @@ -1585,7 +1596,7 @@ func (p ProtobufDataStore) Update(ctx context.Context, id string, msg proto.Mess Update Fetches metadata for the record and updates the Protobuf message. NOTE: Avoid using this method in user\-workflows and only in service\-to\-service workflows when the updates are already ordered by some other service/app. -### func \(ProtobufDataStore\) [UpdateWithMetadata]() +### func \(ProtobufDataStore\) [UpdateWithMetadata]() ```go func (p ProtobufDataStore) UpdateWithMetadata(ctx context.Context, id string, msg proto.Message, metadata Metadata) (rowsAffected int64, md Metadata, err error) @@ -1594,7 +1605,7 @@ func (p ProtobufDataStore) UpdateWithMetadata(ctx context.Context, id string, ms Updates an existing Protobuf record in the DB. Returns, rowsAffected \- 0 if update fails; 1 otherwise md \- metadata of the updated Protobuf record err \- error that occurred during update, if any. -### func \(ProtobufDataStore\) [Upsert]() +### func \(ProtobufDataStore\) [Upsert]() ```go func (p ProtobufDataStore) Upsert(ctx context.Context, id string, msg proto.Message) (rowsAffected int64, md Metadata, err error) @@ -1603,7 +1614,7 @@ func (p ProtobufDataStore) Upsert(ctx context.Context, id string, msg proto.Mess Upsert Fetches metadata for the record and upserts the Protobuf message. NOTE: Avoid using this method in user\-workflows and only in service\-to\-service workflows when the updates are already ordered by some other service/app. -### func \(ProtobufDataStore\) [UpsertWithMetadata]() +### func \(ProtobufDataStore\) [UpsertWithMetadata]() ```go func (p ProtobufDataStore) UpsertWithMetadata(ctx context.Context, id string, msg proto.Message, metadata Metadata) (rowsAffected int64, md Metadata, err error) diff --git a/pkg/datastore/database.go b/pkg/datastore/database.go index 6f3c2d2..71e3691 100644 --- a/pkg/datastore/database.go +++ b/pkg/datastore/database.go @@ -112,7 +112,7 @@ func (db *relationalDb) getDBTransaction(ctx context.Context, tableName string, TABLE_NAME: tableName, "authorizer": TypeName(db.authorizer), }) - db.logger.Error(err) + db.logger.Debug(err) return nil, err } return tx, nil @@ -150,7 +150,7 @@ func (db *relationalDb) ValidateTenancyScope(tenancyInfo TenancyInfo, record Rec orgIdCol, _ := GetOrgId(record) if orgIdCol != "" && orgIdCol != tenancyInfo.OrgId { err := ErrOperationNotAllowed.WithValue("tenant", tenancyInfo.OrgId).WithValue("orgIdCol", orgIdCol) - db.logger.Error(err) + db.logger.Debug(err) return err } } @@ -158,7 +158,7 @@ func (db *relationalDb) ValidateTenancyScope(tenancyInfo TenancyInfo, record Rec instanceIdCol, _ := GetInstanceId(record) if instanceIdCol != "" && instanceIdCol != tenancyInfo.InstanceId { err := ErrOperationNotAllowed.WithValue("instance", tenancyInfo.InstanceId).WithValue("instanceIdCol", instanceIdCol) - db.logger.Error(err) + db.logger.Debug(err) return err } } @@ -175,7 +175,7 @@ func (db *relationalDb) configureTxWithTenancyScope(tenancyInfo TenancyInfo) (*g // Set org. ID stmt := getSetConfigStmt(DbConfigOrgId, tenancyInfo.OrgId) if err = tx.Exec(stmt).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return nil, ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) } } else { @@ -185,7 +185,7 @@ func (db *relationalDb) configureTxWithTenancyScope(tenancyInfo TenancyInfo) (*g // Set config view scoped to InstanceId stmt := getSetConfigStmt(DbConfigInstanceId, tenancyInfo.InstanceId) if err = tx.Exec(stmt).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return nil, ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) } return tx, nil @@ -206,7 +206,7 @@ func (db *relationalDb) Find(ctx context.Context, record Record) error { func rollbackTx(tx *gorm.DB, db *relationalDb) { if err := tx.Rollback().Error; err != nil && err != sql.ErrTxDone { - db.logger.Error(err) + db.logger.Debug(err) } } @@ -224,11 +224,11 @@ func (db *relationalDb) FindInTable(ctx context.Context, tableName string, recor if errors.Is(err, gorm.ErrRecordNotFound) { return ErrRecordNotFound.Wrap(err).WithValue("record", fmt.Sprintf("%+v", record)).WithValue(DB_NAME, db.dbName) } - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return nil @@ -240,7 +240,7 @@ func (db *relationalDb) FindAll(ctx context.Context, records interface{}, pagina if reflect.TypeOf(records).Kind() != reflect.Ptr || reflect.TypeOf(records).Elem().Kind() != reflect.Slice { errMsg := "\"records\" argument has to be a pointer to a slice of structs implementing \"Record\" interface" err := ErrNotPtrToStructSlice.Wrap(fmt.Errorf(errMsg)) - db.logger.Error(err) + db.logger.Debug(err) return err } @@ -276,7 +276,7 @@ func (db *relationalDb) FindWithFilterInTable(ctx context.Context, tableName str } if err = tx.Table(tableName).Where(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } if pagination != nil { @@ -286,12 +286,12 @@ func (db *relationalDb) FindWithFilterInTable(ctx context.Context, tableName str } } if err = tx.Find(records).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return nil @@ -315,11 +315,11 @@ func (db *relationalDb) InsertInTable(ctx context.Context, tableName string, rec defer rollbackTx(tx, db) if err = tx.Create(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return tx.RowsAffected, nil @@ -362,17 +362,17 @@ func (db *relationalDb) delete(ctx context.Context, tableName string, record Rec if softDelete { if err = tx.Delete(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } } else { if err = tx.Unscoped().Delete(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return tx.RowsAffected, nil @@ -389,7 +389,7 @@ func (db *relationalDb) DropTables(records ...Record) error { } err = tx.Migrator().DropTable(record) if err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } } @@ -409,7 +409,7 @@ func (db *relationalDb) TruncateCascade(cascade bool, tableNames ...string) (err return err } if err = tx.Exec(stmt).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) } } @@ -419,12 +419,12 @@ func (db *relationalDb) TruncateCascade(cascade bool, tableNames ...string) (err func (db *relationalDb) HasTable(tableName string) (bool, error) { if tx, err := db.GetDBConn(dbrole.MAIN); err != nil { - db.logger.Error(err) + db.logger.Debug(err) return false, err } else { exists := tx.Migrator().HasTable(tableName) if err = tx.Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return exists, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return exists, nil @@ -456,7 +456,7 @@ func (db *relationalDb) UpsertInTable(ctx context.Context, tableName string, rec defer rollbackTx(tx, db) if err = tx.Clauses(clause.OnConflict{UpdateAll: true}).Create(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) if strings.Contains(err.Error(), REVISION_OUTDATED_MSG) { return 0, ErrRevisionConflict.Wrap(err).WithValue(DB_NAME, db.dbName) } else { @@ -464,7 +464,7 @@ func (db *relationalDb) UpsertInTable(ctx context.Context, tableName string, rec } } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return tx.RowsAffected, nil @@ -481,7 +481,7 @@ func (db *relationalDb) UpdateInTable(ctx context.Context, tableName string, rec defer rollbackTx(tx, db) if err = tx.Model(record).Select("*").Updates(record).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) if strings.Contains(err.Error(), REVISION_OUTDATED_MSG) { err = ErrRevisionConflict.Wrap(err).WithValue(DB_NAME, db.dbName) return 0, err @@ -491,7 +491,7 @@ func (db *relationalDb) UpdateInTable(ctx context.Context, tableName string, rec } } if err = tx.Commit().Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return 0, ErrExecutingSqlStmt.Wrap(err).WithValue(DB_NAME, db.dbName) } return tx.RowsAffected, nil @@ -521,7 +521,7 @@ func (db *relationalDb) RegisterHelper(_ context.Context, roleMapping map[string } if err = tx.Table(tableName).AutoMigrate(record); err != nil { err = ErrRegisteringStruct.Wrap(err).WithValue(TABLE_NAME, tableName).WithValue(DB_NAME, db.dbName) - db.logger.Error(err) + db.logger.Debug(err) return err } @@ -545,7 +545,7 @@ func (db *relationalDb) RegisterHelper(_ context.Context, roleMapping map[string TABLE_NAME: tableName, SQL_STMT: stmt, }) - db.logger.Error(err) + db.logger.Debug(err) return err } } @@ -580,7 +580,7 @@ func (db *relationalDb) enforceRevisioning(tableName string) (err error) { stmt := getDropTriggerStmt(tableName, functionName) if err = tx.Exec(stmt).Error; err != nil { err = ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) - db.logger.Error(err) + db.logger.Debug(err) return err } @@ -590,7 +590,7 @@ func (db *relationalDb) enforceRevisioning(tableName string) (err error) { stmt = getCreateTriggerStmt(tableName, functionName) if err = tx.Exec(stmt).Error; err != nil { if !strings.Contains(err.Error(), "duplicate key value") { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) } } @@ -607,7 +607,7 @@ func (db *relationalDb) grantPrivileges(dbUser dbUserSpec, tableName string, rec } stmt := getGrantPrivilegesStmt(tableName, string(dbUser.username), dbUser.commands) if err := tx.Exec(stmt).Error; err != nil { - db.logger.Error(err) + db.logger.Debug(err) return ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) } @@ -620,7 +620,7 @@ func (db *relationalDb) grantPrivileges(dbUser dbUserSpec, tableName string, rec stmt = getCreatePolicyStmt(tableName, record, dbUser) if err := tx.Exec(stmt).Error; err != nil { err = ErrExecutingSqlStmt.Wrap(err).WithValue(SQL_STMT, stmt).WithValue(DB_NAME, db.dbName) - db.logger.Error(err) + db.logger.Debug(err) return err } } diff --git a/pkg/errors/error_codes.go b/pkg/errors/error_codes.go index 30f61ee..8bc185c 100644 --- a/pkg/errors/error_codes.go +++ b/pkg/errors/error_codes.go @@ -45,8 +45,12 @@ const ( ) func contextToString(ctx context.Context) string { - contextType := reflect.TypeOf(ctx).Elem() - if contextType.Kind() != reflect.Struct { + typ := reflect.TypeOf(ctx) + if fmt.Sprintf("XXX%s", typ) == "XXXcontext.backgroundCtx" { + return "" // Empty Background context case + } + contextElem := typ.Elem() + if contextElem.Kind() != reflect.Struct { return "" } @@ -57,7 +61,7 @@ func contextToString(ctx context.Context) string { reflectValue := contextValue.Field(i) reflectValue = reflect.NewAt(reflectValue.Type(), unsafe.Pointer(reflectValue.UnsafeAddr())).Elem() - reflectField := contextType.Field(i) + reflectField := contextElem.Field(i) switch reflectField.Name { case "Context": innerCtxStr := contextToString(reflectValue.Interface().(context.Context)) diff --git a/pkg/protostore/protostore.go b/pkg/protostore/protostore.go index 148d48a..8b508ad 100644 --- a/pkg/protostore/protostore.go +++ b/pkg/protostore/protostore.go @@ -431,8 +431,9 @@ func (p ProtobufDataStore) DeleteById(ctx context.Context, id string, msg proto. func (p ProtobufDataStore) DropTables(msgs ...proto.Message) error { for _, msg := range msgs { - p.logger.Infof("Dropping Table for %s", msg) - err := p.ds.TestHelper().DropTables(datastore.GetTableName(msg)) + tableName := datastore.GetTableName(msg) + p.logger.Infof("Dropping Table for %s", tableName) + err := p.ds.TestHelper().DropTables(tableName) if err != nil { return err }