From 7d5310566b4db0f4ffea87c7ea87ec68a8ac0e2d Mon Sep 17 00:00:00 2001 From: yun Date: Thu, 24 Oct 2024 05:50:00 -0700 Subject: [PATCH] finished --- core/dbio/database/database_proton.go | 184 ++++++++++++++++---------- 1 file changed, 111 insertions(+), 73 deletions(-) diff --git a/core/dbio/database/database_proton.go b/core/dbio/database/database_proton.go index 8e195797..08bafc25 100755 --- a/core/dbio/database/database_proton.go +++ b/core/dbio/database/database_proton.go @@ -435,6 +435,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. row[colI] = val } eG.Capture(err) + } else { + row[colI] = decimal.Zero + g.Debug("decimal if value == nil") } } @@ -442,6 +445,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToBoolE(row[colI]) eG.Capture(err) + } else { + row[colI] = false + g.Debug("boolean if value == nil") } } @@ -449,6 +455,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToStringE(row[colI]) eG.Capture(err) + } else { + row[colI] = "" + g.Debug("string if value == nil") } } @@ -456,6 +465,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToInt8E(row[colI]) eG.Capture(err) + } else { + row[colI] = int8(0) + g.Debug("int8 if value == nil") } } @@ -463,6 +475,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToInt16E(row[colI]) eG.Capture(err) + } else { + row[colI] = int16(0) + g.Debug("int16 if value == nil") } } @@ -470,6 +485,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToInt32E(row[colI]) eG.Capture(err) + } else { + row[colI] = int32(0) + g.Debug("int32 if value == nil") } } @@ -478,6 +496,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToIntE(row[colI]) eG.Capture(err) + } else { + row[colI] = int(0) + g.Debug("int if value == nil") } } @@ -486,6 +507,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToInt64E(row[colI]) eG.Capture(err) + } else { + row[colI] = int64(0) + g.Debug("int64 if value == nil") } } @@ -493,6 +517,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToUint8E(row[colI]) eG.Capture(err) + } else { + row[colI] = uint8(0) + g.Debug("uint8 if value == nil") } } @@ -500,6 +527,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToUint16E(row[colI]) eG.Capture(err) + } else { + row[colI] = uint16(0) + g.Debug("uint16 if value == nil") } } @@ -508,6 +538,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToUint32E(row[colI]) eG.Capture(err) + } else { + row[colI] = uint32(0) + g.Debug("uint32 if value == nil") } } @@ -516,6 +549,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToUint64E(row[colI]) eG.Capture(err) + } else { + row[colI] = uint64(0) + g.Debug("uint64 if value == nil") } } @@ -524,6 +560,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToFloat64E(row[colI]) eG.Capture(err) + } else { + row[colI] = float64(0) + g.Debug("float64 if value == nil") } } @@ -531,6 +570,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToFloat32E(row[colI]) eG.Capture(err) + } else { + row[colI] = float32(0) + g.Debug("float32 if value == nil") } } @@ -538,6 +580,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = cast.ToFloat64E(row[colI]) eG.Capture(err) + } else { + row[colI] = float64(0) + g.Debug("float64 if value == nil") } } @@ -545,6 +590,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayString(row[colI]) eG.Capture(err) + } else { + row[colI] = []string{} + g.Debug("empty arraystring if value == nil") } } @@ -552,6 +600,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayBool(row[colI]) eG.Capture(err) + } else { + row[colI] = []bool{} + g.Debug("empty arrayboolean if value == nil") } } @@ -559,6 +610,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayInt8(row[colI]) eG.Capture(err) + } else { + row[colI] = []int8{} + g.Debug("empty arrayint8 if value == nil") } } @@ -566,6 +620,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayInt16(row[colI]) eG.Capture(err) + } else { + row[colI] = []int16{} + g.Debug("empty arrayint16 if value == nil") } } @@ -573,6 +630,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayInt32(row[colI]) eG.Capture(err) + } else { + row[colI] = []int32{} + g.Debug("empty arrayint32 if value == nil") } } @@ -580,6 +640,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayInt64(row[colI]) eG.Capture(err) + } else { + row[colI] = []int64{} + g.Debug("empty arrayint64 if value == nil") } } @@ -587,6 +650,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayUint8(row[colI]) eG.Capture(err) + } else { + row[colI] = []uint8{} + g.Debug("empty arrayuint8 if value == nil") } } @@ -594,6 +660,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayUint16(row[colI]) eG.Capture(err) + } else { + row[colI] = []uint16{} + g.Debug("empty arrayuint16 if value == nil") } } @@ -601,6 +670,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayUint32(row[colI]) eG.Capture(err) + } else { + row[colI] = []uint32{} + g.Debug("empty arrayuint32 if value == nil") } } @@ -608,6 +680,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayUint64(row[colI]) eG.Capture(err) + } else { + row[colI] = []uint64{} + g.Debug("empty arrayuint64 if value == nil") } } @@ -615,6 +690,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayFloat32(row[colI]) eG.Capture(err) + } else { + row[colI] = []float32{} + g.Debug("empty arrayfloat32 if value == nil") } } @@ -622,6 +700,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToArrayFloat64(row[colI]) eG.Capture(err) + } else { + row[colI] = []float64{} + g.Debug("empty arrayfloat64 if value == nil") } } @@ -629,6 +710,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringString(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]string{} + g.Debug("empty mapstringstring if value == nil") } } @@ -636,6 +720,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringInt32(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]int32{} + g.Debug("empty mapstringint32 if value == nil") } } @@ -643,6 +730,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringInt64(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]int64{} + g.Debug("empty mapstringint64 if value == nil") } } @@ -650,6 +740,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringUint32(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]uint32{} + g.Debug("empty mapstringuint32 if value == nil") } } @@ -657,6 +750,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringUint64(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]uint64{} + g.Debug("empty mapstringuint64 if value == nil") } } @@ -664,6 +760,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringFloat64(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]float64{} + g.Debug("empty mapstringfloat64 if value == nil") } } @@ -671,6 +770,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringFloat32(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string]float32{} + g.Debug("empty mapstringfloat32 if value == nil") } } @@ -678,6 +780,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapStringArrayString(row[colI]) eG.Capture(err) + } else { + row[colI] = map[string][]string{} + g.Debug("empty mapstringarraystring if value == nil") } } @@ -685,6 +790,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapInt32String(row[colI]) eG.Capture(err) + } else { + row[colI] = map[int32]string{} + g.Debug("empty mapint32string if value == nil") } } @@ -692,6 +800,9 @@ func (conn *ProtonConn) processBatch(tableFName string, table Table, batch *iop. if row[colI] != nil { row[colI], err = conn.convertToMapInt64String(row[colI]) eG.Capture(err) + } else { + row[colI] = map[int64]string{} + g.Debug("empty mapint64string if value == nil") } } @@ -921,9 +1032,6 @@ func (conn *ProtonConn) GetNativeType(col iop.Column) (nativeType string, err er // Array types func (conn *ProtonConn) convertToArrayString(value interface{}) ([]string, error) { - if value == nil { - return nil, nil - } if value == "" { return []string{}, nil @@ -944,9 +1052,6 @@ func (conn *ProtonConn) convertToArrayString(value interface{}) ([]string, error } func (conn *ProtonConn) convertToArrayInt8(value interface{}) ([]int8, error) { - if value == nil { - return nil, nil - } if value == "" { return []int8{}, nil @@ -967,9 +1072,6 @@ func (conn *ProtonConn) convertToArrayInt8(value interface{}) ([]int8, error) { } func (conn *ProtonConn) convertToArrayInt16(value interface{}) ([]int16, error) { - if value == nil { - return nil, nil - } if value == "" { return []int16{}, nil @@ -989,9 +1091,6 @@ func (conn *ProtonConn) convertToArrayInt16(value interface{}) ([]int16, error) return result, nil } func (conn *ProtonConn) convertToArrayInt32(value interface{}) ([]int32, error) { - if value == nil { - return nil, nil - } if value == "" { return []int32{}, nil @@ -1011,9 +1110,6 @@ func (conn *ProtonConn) convertToArrayInt32(value interface{}) ([]int32, error) return result, nil } func (conn *ProtonConn) convertToArrayInt64(value interface{}) ([]int64, error) { - if value == nil { - return nil, nil - } if value == "" { return []int64{}, nil @@ -1033,9 +1129,6 @@ func (conn *ProtonConn) convertToArrayInt64(value interface{}) ([]int64, error) return result, nil } func (conn *ProtonConn) convertToArrayUint8(value interface{}) ([]uint8, error) { - if value == nil { - return nil, nil - } if value == "" { return []uint8{}, nil @@ -1055,9 +1148,6 @@ func (conn *ProtonConn) convertToArrayUint8(value interface{}) ([]uint8, error) return result, nil } func (conn *ProtonConn) convertToArrayUint16(value interface{}) ([]uint16, error) { - if value == nil { - return nil, nil - } if value == "" { return []uint16{}, nil @@ -1077,9 +1167,6 @@ func (conn *ProtonConn) convertToArrayUint16(value interface{}) ([]uint16, error return result, nil } func (conn *ProtonConn) convertToArrayUint32(value interface{}) ([]uint32, error) { - if value == nil { - return nil, nil - } if value == "" { return []uint32{}, nil @@ -1100,9 +1187,6 @@ func (conn *ProtonConn) convertToArrayUint32(value interface{}) ([]uint32, error } func (conn *ProtonConn) convertToArrayUint64(value interface{}) ([]uint64, error) { - if value == nil { - return nil, nil - } if value == "" { return []uint64{}, nil @@ -1123,9 +1207,6 @@ func (conn *ProtonConn) convertToArrayUint64(value interface{}) ([]uint64, error } func (conn *ProtonConn) convertToArrayFloat32(value interface{}) ([]float32, error) { - if value == nil { - return nil, nil - } if value == "" { return []float32{}, nil @@ -1145,13 +1226,8 @@ func (conn *ProtonConn) convertToArrayFloat32(value interface{}) ([]float32, err return result, nil } func (conn *ProtonConn) convertToArrayFloat64(value interface{}) ([]float64, error) { - if value == nil { - g.Info("empty arrayfloat64 if value == nil") - return []float64{}, nil - } if value == "" { - g.Info("empty arrayfloat64 if value == \"\"") return []float64{}, nil } @@ -1160,11 +1236,6 @@ func (conn *ProtonConn) convertToArrayFloat64(value interface{}) ([]float64, err return nil, fmt.Errorf("expected string, got %T", value) } - if len(str) == 0 { - g.Info("empty arrayfloat64 if len(str) == 0") - return []float64{}, nil - } - var result []float64 err := json.Unmarshal([]byte(str), &result) if err != nil { @@ -1175,9 +1246,6 @@ func (conn *ProtonConn) convertToArrayFloat64(value interface{}) ([]float64, err } func (conn *ProtonConn) convertToArrayBool(value interface{}) ([]bool, error) { - if value == nil { - return nil, nil - } if value == "" { return []bool{}, nil @@ -1199,9 +1267,6 @@ func (conn *ProtonConn) convertToArrayBool(value interface{}) ([]bool, error) { // Map types func (conn *ProtonConn) convertToMapStringUint64(value interface{}) (map[string]uint64, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]uint64{}, nil @@ -1222,9 +1287,6 @@ func (conn *ProtonConn) convertToMapStringUint64(value interface{}) (map[string] } func (conn *ProtonConn) convertToMapStringUint32(value interface{}) (map[string]uint32, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]uint32{}, nil @@ -1245,9 +1307,6 @@ func (conn *ProtonConn) convertToMapStringUint32(value interface{}) (map[string] } func (conn *ProtonConn) convertToMapStringInt32(value interface{}) (map[string]int32, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]int32{}, nil @@ -1268,9 +1327,6 @@ func (conn *ProtonConn) convertToMapStringInt32(value interface{}) (map[string]i } func (conn *ProtonConn) convertToMapStringInt64(value interface{}) (map[string]int64, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]int64{}, nil @@ -1291,9 +1347,6 @@ func (conn *ProtonConn) convertToMapStringInt64(value interface{}) (map[string]i } func (conn *ProtonConn) convertToMapStringFloat64(value interface{}) (map[string]float64, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]float64{}, nil @@ -1314,9 +1367,6 @@ func (conn *ProtonConn) convertToMapStringFloat64(value interface{}) (map[string } func (conn *ProtonConn) convertToMapStringFloat32(value interface{}) (map[string]float32, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]float32{}, nil @@ -1337,9 +1387,6 @@ func (conn *ProtonConn) convertToMapStringFloat32(value interface{}) (map[string } func (conn *ProtonConn) convertToMapInt32String(value interface{}) (map[int32]string, error) { - if value == nil { - return nil, nil - } if value == "" { return map[int32]string{}, nil @@ -1360,9 +1407,6 @@ func (conn *ProtonConn) convertToMapInt32String(value interface{}) (map[int32]st } func (conn *ProtonConn) convertToMapInt64String(value interface{}) (map[int64]string, error) { - if value == nil { - return nil, nil - } if value == "" { return map[int64]string{}, nil @@ -1383,9 +1427,6 @@ func (conn *ProtonConn) convertToMapInt64String(value interface{}) (map[int64]st } func (conn *ProtonConn) convertToMapStringArrayString(value interface{}) (map[string][]string, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string][]string{}, nil @@ -1406,9 +1447,6 @@ func (conn *ProtonConn) convertToMapStringArrayString(value interface{}) (map[st } func (conn *ProtonConn) convertToMapStringString(value interface{}) (map[string]string, error) { - if value == nil { - return nil, nil - } if value == "" { return map[string]string{}, nil