|
@@ -47,11 +47,17 @@ func (odbci *ODBCImporter) ReviseClassStruct() (err error) {
|
|
|
return merrs.NewError("classinfo not found " + classname)
|
|
|
}
|
|
|
_, err = classdatainfos.GetWithNew(classname, func() (cdi *classdatainfo, err error) {
|
|
|
- logger.Info("create class " + ci.classname)
|
|
|
if odbci.client != nil {
|
|
|
- _, err = odbci.client.Query(ci.createmql).Do()
|
|
|
+ _, err = odbci.client.Query("select class,id from " + ci.classname + " limit 1").Do()
|
|
|
if err != nil {
|
|
|
- return
|
|
|
+ if !strings.Contains(err.Error(), "not find") {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ logger.Info("create class " + ci.classname)
|
|
|
+ _, err = odbci.client.Query(ci.createmql).Do()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
cdi = &classdatainfo{classinfo: ci}
|
|
@@ -113,11 +119,20 @@ func (odbci *ODBCImporter) insertEdge(edgetype, fromuid, touid string, extraattr
|
|
|
foid := get_object_id_from_cache("master:" + fromuid)
|
|
|
toid := to_object_id("level1", touid)
|
|
|
eabs, _ := json.Marshal(extraattr)
|
|
|
- quadmql := `quad "` + foid + `" ` + edgetype + ` + "` + toid + `" ` + string(eabs)
|
|
|
- _, err = odbci.client.Query(quadmql).Do()
|
|
|
+ // quadmql := `quad "` + foid + `" ` + edgetype + ` + "` + toid + `" ` + string(eabs)
|
|
|
+ // _, err = odbci.client.Query(quadmql).Do()
|
|
|
+ // if err != nil {
|
|
|
+ // err = merrs.NewError(err, merrs.SSMaps{{"mql": quadmql}})
|
|
|
+ // logger.Error(err)
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ updatemql := "update " + "/m3cnet/master" + " set " + " contain=?" + " where id='" + foid + "'"
|
|
|
+ _, err = odbci.client.Query(updatemql, map[string][]string{
|
|
|
+ "_all": {toid},
|
|
|
+ toid: {string(eabs)},
|
|
|
+ }).Do()
|
|
|
if err != nil {
|
|
|
- err = merrs.NewError(err, merrs.SSMaps{{"mql": quadmql}})
|
|
|
- logger.Error(err)
|
|
|
+ err = merrs.NewError(err, merrs.SSMaps{{"mql": updatemql}})
|
|
|
return
|
|
|
}
|
|
|
logger.Info("relation immport " + foid + "->" + toid)
|