|
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- package undo
-
- import (
- "flag"
-
- "seata.apache.org/seata-go/pkg/compressor"
- )
-
- var (
- UndoConfig Config
- )
-
- func InitUndoConfig(cfg Config) {
- UndoConfig = cfg
- }
-
- type CompressConfig struct {
- Enable bool `yaml:"enable" json:"enable,omitempty" koanf:"enable"`
- Type string `yaml:"type" json:"type,omitempty" koanf:"type"`
- Threshold string `yaml:"threshold" json:"threshold,omitempty" koanf:"threshold"`
- }
-
- type Config struct {
- DataValidation bool `yaml:"data-validation" json:"data-validation,omitempty" koanf:"data-validation"`
- LogSerialization string `yaml:"log-serialization" json:"log-serialization,omitempty" koanf:"log-serialization"`
- LogTable string `yaml:"log-table" json:"log-table,omitempty" koanf:"log-table"`
- OnlyCareUpdateColumns bool `yaml:"only-care-update-columns" json:"only-care-update-columns,omitempty" koanf:"only-care-update-columns"`
- CompressConfig CompressConfig `yaml:"compress" json:"compress,omitempty" koanf:"compress"`
- }
-
- func (u *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
- f.BoolVar(&u.DataValidation, prefix+".data-validation", true, "Judge whether the before image and after image are the same,If it is the same, undo will not be recorded")
- f.StringVar(&u.LogSerialization, prefix+".log-serialization", "json", "Serialization method.")
- f.StringVar(&u.LogTable, prefix+".log-table", "undo_log", "undo log table name.")
- f.BoolVar(&u.OnlyCareUpdateColumns, prefix+".only-care-update-columns", true, "The switch for degrade check.")
- u.CompressConfig.RegisterFlagsWithPrefix(prefix+".compress", f)
- }
-
- func (c *CompressConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
- f.StringVar(&c.Type, prefix+".type", string(compressor.CompressorNone), "Compression type")
- f.StringVar(&c.Threshold, prefix+".threshold", "64k", "Compression threshold")
- }
|