From: Ben Thompson Date: Thu, 5 Jun 2014 23:23:33 +0000 (-0400) Subject: Only walk path on toOne and toMany X-Git-Tag: v4.5.0-dev16~2^2~6^2~4 X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=4e1023277b9476c3d09460c302ece87528a71a7e;p=xtuple Only walk path on toOne and toMany --- diff --git a/lib/orm/source/xt/javascript/data.sql b/lib/orm/source/xt/javascript/data.sql index a975c0749..0cacd1851 100644 --- a/lib/orm/source/xt/javascript/data.sql +++ b/lib/orm/source/xt/javascript/data.sql @@ -114,28 +114,30 @@ select xt.install_js('XT','Data','xtuple', $$ subChildOrm, naturalKey; - if (currentProp.toOne && currentProp.toOne.type) { - subChildOrm = that.fetchOrm(nameSpace, currentProp.toOne.type); - } else if (currentProp.toMany && currentProp.toMany.type) { - subChildOrm = that.fetchOrm(nameSpace, currentProp.toMany.type); - } else { - plv8.elog(ERROR, "toOne or toMany property is missing it's 'type': " + currentProp.name); - } + if ((currentProp.toOne || currentProp.toMany)) { + if (currentProp.toOne && currentProp.toOne.type) { + subChildOrm = that.fetchOrm(nameSpace, currentProp.toOne.type); + } else if (currentProp.toMany && currentProp.toMany.type) { + subChildOrm = that.fetchOrm(nameSpace, currentProp.toMany.type); + } else { + plv8.elog(ERROR, "toOne or toMany property is missing it's 'type': " + currentProp.name); + } - if (pathIndex < pathParts.length - 1) { - /* Recurse. */ - walkPath(pathParts, subChildOrm, pathIndex + 1); - } else { - /* This is the end of the path. */ - naturalKey = XT.Orm.naturalKey(subChildOrm); - if (currentAttributeIsString) { - /* add the natural key to the end of the requested attribute */ - parameter.attribute = attribute + "." + naturalKey; + if (pathIndex < pathParts.length - 1) { + /* Recurse. */ + walkPath(pathParts, subChildOrm, pathIndex + 1); } else { - /* swap out the attribute in the array for the one with the prepended natural key */ - index = parameter.attribute.indexOf(attribute); - parameter.attribute.splice(index, 1); - parameter.attribute.splice(index, 0, attribute + "." + naturalKey); + /* This is the end of the path. */ + naturalKey = XT.Orm.naturalKey(subChildOrm); + if (currentAttributeIsString) { + /* add the natural key to the end of the requested attribute */ + parameter.attribute = attribute + "." + naturalKey; + } else { + /* swap out the attribute in the array for the one with the prepended natural key */ + index = parameter.attribute.indexOf(attribute); + parameter.attribute.splice(index, 1); + parameter.attribute.splice(index, 0, attribute + "." + naturalKey); + } } } }