Parcourir la source

update odb-go

libf il y a 1 mois
Parent
commit
8e0d12e26d
7 fichiers modifiés avec 35 ajouts et 23 suppressions
  1. 2 2
      go.mod
  2. 4 4
      go.sum
  3. 18 6
      importer/classstruct.go
  4. 2 2
      importer/importer.go
  5. 4 4
      importer/odbcimporter.go
  6. 2 2
      reader/blockreader.go
  7. 3 3
      reader/csvreader.go

+ 2 - 2
go.mod

@@ -3,11 +3,11 @@ module git.wecise.com/wecise/cgimport
 go 1.22.0
 
 require (
-	git.wecise.com/wecise/odb-go v0.0.0-20250321042023-40edb95aba8a
+	git.wecise.com/wecise/odb-go v0.0.0-20250327080124-8a8119a169c3
 	github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da
 	github.com/scylladb/go-set v1.0.2
 	github.com/spf13/cast v1.7.1
-	github.com/wecisecode/util v0.2.5
+	github.com/wecisecode/util v0.3.2
 )
 
 require (

+ 4 - 4
go.sum

@@ -1,5 +1,5 @@
-git.wecise.com/wecise/odb-go v0.0.0-20250321042023-40edb95aba8a h1:DZT5pkoy30+NHpYeoH2LoUJChjDQ245d786EIw08SHk=
-git.wecise.com/wecise/odb-go v0.0.0-20250321042023-40edb95aba8a/go.mod h1:DInxP5wFvuPbMRr7+LjbUFTbNdrFG/6f6IQYvKJ1yT8=
+git.wecise.com/wecise/odb-go v0.0.0-20250327080124-8a8119a169c3 h1:FajApRazZK+Ta7aLagqp7NBSNgx80EzLEYCsWXjjoAk=
+git.wecise.com/wecise/odb-go v0.0.0-20250327080124-8a8119a169c3/go.mod h1:7DJYChz1HA8QZ2lslxCa0507/G47FdzmjTqpdHnKxSo=
 github.com/bluele/gcache v0.0.2 h1:WcbfdXICg7G/DGBh1PFfcirkWOQV+v077yF1pSy3DGw=
 github.com/bluele/gcache v0.0.2/go.mod h1:m15KV+ECjptwSPxKhOhQoAFQVtUFjTVkc3H8o0t/fp0=
 github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao=
@@ -73,8 +73,8 @@ github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IU
 github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
 github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
 github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
-github.com/wecisecode/util v0.2.5 h1:nAGdiuh9x9W6Cv9ezx8mWGvzrQ3fGb+9htqQeq9k1eA=
-github.com/wecisecode/util v0.2.5/go.mod h1:fASrRbyMPjssR1owWRMZIBCUSRYo5YkcxOk+kG59byY=
+github.com/wecisecode/util v0.3.2 h1:u1VFgXfmutw/5YZyCAz6+ddtsQ5Ojcdpl3Mt7vYrsnc=
+github.com/wecisecode/util v0.3.2/go.mod h1:fASrRbyMPjssR1owWRMZIBCUSRYo5YkcxOk+kG59byY=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 go.etcd.io/etcd/api/v3 v3.5.18 h1:Q4oDAKnmwqTo5lafvB+afbgCDF7E35E4EYV2g+FNGhs=

+ 18 - 6
importer/classstruct.go

@@ -9,7 +9,7 @@ import (
 	"time"
 
 	"git.wecise.com/wecise/cgimport/schema"
-	ci "git.wecise.com/wecise/odb-go/schema"
+	"git.wecise.com/wecise/odb-go/dbo"
 	"github.com/wecisecode/util/cmap"
 	"github.com/wecisecode/util/merrs"
 	"github.com/wecisecode/util/mio"
@@ -17,7 +17,7 @@ import (
 )
 
 type classdatainfo struct {
-	*ci.ClassInfoHelper
+	*dbo.ClassInfoHelper
 	insertcount   int64
 	lastlogtime   time.Time
 	lastlogicount int64
@@ -79,7 +79,10 @@ func (odbci *ODBCImporter) createclass(classname, mql string) (err error) {
 		return merrs.New("len(cis) != 1")
 	}
 	oci := cis[0]
-	aci := odbci.schema.NewClassinfo(oci)
+	aci, e := odbci.schema.NewClassinfo(oci)
+	if e != nil {
+		return e
+	}
 	// add graph tags
 	_, e = odbci.client.Query(aci.Addtagmql, aci.Classaliasname, aci.Classaliasname, []string{aci.Classaliasname}).Do()
 	if e != nil {
@@ -108,10 +111,13 @@ func (odbci *ODBCImporter) getClassinfos() (err error) {
 	odbci.schema.Clear()
 	classinfos, e := odbci.client.ClassInfo("/m3cnet", true)
 	if e != nil {
-		return e
+		return merrs.New(e)
 	}
 	for _, oci := range classinfos {
-		aci := odbci.schema.NewClassinfo(oci)
+		aci, e := odbci.schema.NewClassinfo(oci)
+		if e != nil {
+			return e
+		}
 		cdi := &classdatainfo{ClassInfoHelper: aci}
 		classdatainfos.Set(aci.Classaliasname, cdi)
 		classdatainfos.Set(aci.Classfullname, cdi)
@@ -122,7 +128,9 @@ func (odbci *ODBCImporter) getClassinfos() (err error) {
 func (odbci *ODBCImporter) init(rebuild bool) (err error) {
 	err = odbci.getClassinfos()
 	if err != nil {
-		return
+		if !merrs.NotExistError.Contains(err) {
+			return
+		}
 	}
 	// bs, _ := json.MarshalIndent(schema.ClassInfos, "", "  ")
 	// fmt.Println(string(bs))
@@ -141,6 +149,10 @@ func (odbci *ODBCImporter) init(rebuild bool) (err error) {
 			return
 		}
 	}
+	err = odbci.getClassinfos()
+	if err != nil {
+		return
+	}
 	return nil
 }
 

+ 2 - 2
importer/importer.go

@@ -249,8 +249,8 @@ func init() {
 	fileclassmapping.Set("level8", regexp.MustCompile(pattern.Contain2RegexpString(`_L8_`)))
 	keys := mcfg.Keys()
 	for _, key := range keys {
-		if strings.HasPrefix(key, "mapping.class.") {
-			classname := key[len("mapping.class."):]
+		if strings.HasPrefix(key, "cgi.mapping.class.") {
+			classname := key[len("cgi.mapping.class."):]
 			filepatterns := mcfg.GetStrings(key)
 			for _, fp := range filepatterns {
 				fp = pattern.Wildcard2RegexpString(fp)

+ 4 - 4
importer/odbcimporter.go

@@ -11,8 +11,8 @@ import (
 
 	"git.wecise.com/wecise/cgimport/graph"
 	"git.wecise.com/wecise/cgimport/odbc"
+	"git.wecise.com/wecise/odb-go/dbo"
 	"git.wecise.com/wecise/odb-go/odb"
-	"git.wecise.com/wecise/odb-go/schema"
 	"github.com/dgryski/go-farm"
 	"github.com/scylladb/go-set/strset"
 	"github.com/wecisecode/util/cast"
@@ -23,14 +23,14 @@ import (
 
 type ODBCImporter struct {
 	client odb.Client
-	schema *schema.Schema
+	schema *dbo.Schema
 }
 
 func NewODBCImporter() *ODBCImporter {
 	odbci := &ODBCImporter{}
 	if odbc.DevPhase&(odbc.DP_CREATECLASS|odbc.DP_INSERTDATA) != 0 {
 		odbci.client = odbc.ODBC()
-		odbci.schema = schema.NewSchema()
+		odbci.schema = dbo.NewSchema(odbci.client)
 	}
 	return odbci
 }
@@ -240,7 +240,7 @@ func (odbci *ODBCImporter) insertData(classaliasname string, oid, suid string, d
 				case "set<varchar>":
 					v = cast.ToStringSlice(v)
 				case "timestamp":
-					tv, e := cast.ToDateTimeE(v, "2006-01-02-15.04.05.000000")
+					tv, e := cast.ToDatetimeE(v, "2006-01-02-15.04.05.000000")
 					if e != nil {
 						return retrycount, 0, merrs.NewError(fmt.Sprint("can't parse datetime value '", v, "'"))
 					}

+ 2 - 2
reader/blockreader.go

@@ -5,7 +5,7 @@ import (
 	"path/filepath"
 
 	"git.wecise.com/wecise/cgimport/odbc"
-	"git.wecise.com/wecise/odb-go/schema"
+	"git.wecise.com/wecise/odb-go/dbo"
 	"github.com/wecisecode/util/merrs"
 )
 
@@ -16,7 +16,7 @@ type BlockReader interface {
 	ReadBlock(skiplines int) (block map[string]any, line string, linecount int, err error)
 }
 
-func NewBlockReader(filename string, classname string, reader io.Reader, schema *schema.Schema) (BlockReader, error) {
+func NewBlockReader(filename string, classname string, reader io.Reader, schema *dbo.Schema) (BlockReader, error) {
 	fileext := filepath.Ext(filename)
 	switch fileext {
 	case ".csv":

+ 3 - 3
reader/csvreader.go

@@ -6,19 +6,19 @@ import (
 	"strconv"
 	"strings"
 
-	"git.wecise.com/wecise/odb-go/schema"
+	"git.wecise.com/wecise/odb-go/dbo"
 	"github.com/spf13/cast"
 	"github.com/wecisecode/util/merrs"
 )
 
 type CSVBlockReader struct {
 	*LineReader
-	schema    *schema.Schema
+	schema    *dbo.Schema
 	classname string
 	csvkeys   []string
 }
 
-func NewCSVBlockReader(filename string, classname string, reader io.Reader, schema *schema.Schema) *CSVBlockReader {
+func NewCSVBlockReader(filename string, classname string, reader io.Reader, schema *dbo.Schema) *CSVBlockReader {
 	return &CSVBlockReader{
 		LineReader: NewLineReader(filename, reader),
 		schema:     schema,