Jelajahi Sumber

valid check

libf 4 bulan lalu
induk
melakukan
38ed6c360a
3 mengubah file dengan 20 tambahan dan 1 penghapusan
  1. 9 0
      importer/importer.go
  2. 8 1
      importer/odbcimporter.go
  3. 3 0
      schema/classinfo.go

+ 9 - 0
importer/importer.go

@@ -326,4 +326,13 @@ func Check() {
 		bs, _ := json.MarshalIndent(r.Data, "", "  ")
 		fmt.Println(string(bs))
 	}
+	{
+		mql := `match ("level1:E2E:OTR0002L")-[*]->(),("level1:E2E:OTR0002L")<-[*]-() in "level1","level2"`
+		r, e := client.Query(mql).Do()
+		if e != nil {
+			panic(merrs.NewError(e))
+		}
+		bs, _ := json.MarshalIndent(r.Data, "", "  ")
+		fmt.Println(string(bs))
+	}
 }

+ 8 - 1
importer/odbcimporter.go

@@ -61,6 +61,11 @@ func (odbci *ODBCImporter) ReviseClassStruct() (err error) {
 					if e != nil {
 						return nil, e
 					}
+					// add graph tags
+					_, e = odbci.client.Query(ci.Addtagmql, ci.Classaliasname, ci.Classaliasname, []string{ci.Classaliasname}).Do()
+					if e != nil {
+						return nil, e
+					}
 				}
 			}
 			cdi = &classdatainfo{ClassInfo: ci}
@@ -409,7 +414,9 @@ func (odbci *ODBCImporter) reload() error {
 func (odbci *ODBCImporter) dropclass(classnames ...string) error {
 	for _, classname := range classnames {
 		for retry := 2; retry >= 0; retry-- {
-			_, e := odbci.client.Query(`delete from "` + classname + `" with version`).Do()
+			_, e := odbci.client.Query(`delete from /matrix/tagdir where tags='` + classname + `'`).Do()
+			_ = e
+			_, e = odbci.client.Query(`delete from "` + classname + `" with version`).Do()
 			_ = e
 			_, e = odbci.client.Query(`drop class if exists "` + classname + `"`).Do()
 			if e != nil {

+ 3 - 0
schema/classinfo.go

@@ -23,6 +23,7 @@ type ClassInfo struct {
 	Fieldslist        []string
 	Insertmql         string
 	Createmql         string
+	Addtagmql         string
 }
 
 var ClassInfos = cmap.NewSingle[string, *ClassInfo]()
@@ -205,6 +206,7 @@ func newclassinfo(classaliasname, classsimplename, baseclassaliasname string, fi
 	if len(fieldslist) > 0 {
 		insertmql = `insert into ` + classfullname + "(" + strings.Join(fieldslist, ",") + ")values(" + strings.Repeat(",?", len(fieldslist))[1:] + ")"
 	}
+	addtagmql := `insert into /matrix/tagdir (name,path,tags,domain,creater) values(?,?,?,'graph','system')`
 	ci = &ClassInfo{
 		Classaliasname:    classaliasname,
 		Classfullname:     classfullname,
@@ -214,6 +216,7 @@ func newclassinfo(classaliasname, classsimplename, baseclassaliasname string, fi
 		Fieldslist:        fieldslist,
 		Insertmql:         insertmql,
 		Createmql:         createmql,
+		Addtagmql:         addtagmql,
 	}
 	return
 }