Revision 2066
Added by Matt Jones over 20 years ago
src/edu/ucsb/nceas/metacat/QuerySpecification.java | ||
---|---|---|
929 | 929 |
self.append("where docid like '").append(docid).append("'"); |
930 | 930 |
return self.toString(); |
931 | 931 |
} |
932 |
|
|
933 |
/** |
|
934 |
* Prints sql that returns all relations in the database. |
|
935 |
*/ |
|
936 |
public static String printPackageSQL() |
|
937 |
{ |
|
938 |
StringBuffer self = new StringBuffer(); |
|
939 |
self.append("select z.nodedata, x.nodedata, y.nodedata from "); |
|
940 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
941 |
self.append("'triple/subject') s, (select nodeid, parentnodeid "); |
|
942 |
self.append("from xml_index where path like "); |
|
943 |
self.append("'triple/relationship') rel, "); |
|
944 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
945 |
self.append("'triple/object') o, "); |
|
946 |
self.append("xml_nodes x, xml_nodes y, xml_nodes z "); |
|
947 |
self.append("where s.parentnodeid = rel.parentnodeid "); |
|
948 |
self.append("and rel.parentnodeid = o.parentnodeid "); |
|
949 |
self.append("and x.parentnodeid in (rel.nodeid) "); |
|
950 |
self.append("and y.parentnodeid in (o.nodeid) "); |
|
951 |
self.append("and z.parentnodeid in (s.nodeid) "); |
|
952 |
//self.append("and z.nodedata like '%"); |
|
953 |
//self.append(docid); |
|
954 |
//self.append("%'"); |
|
955 |
return self.toString(); |
|
956 |
} |
|
957 |
|
|
958 |
/** |
|
959 |
* Prints sql that returns all relations in the database that were input |
|
960 |
* under a specific docid |
|
961 |
* @param docid the docid to search for. |
|
962 |
*/ |
|
963 |
public static String printPackageSQL(String docid) |
|
964 |
{ |
|
965 |
StringBuffer self = new StringBuffer(); |
|
966 |
self.append("select z.nodedata, z.parentnodeid, "); |
|
967 |
self.append("x.nodedata, x.parentnodeid, y.nodedata, y.parentnodeid from "); |
|
968 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
969 |
self.append("'triple/subject') s, (select nodeid, parentnodeid "); |
|
970 |
self.append("from xml_index where path like "); |
|
971 |
self.append("'triple/relationship') rel, "); |
|
972 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
973 |
self.append("'triple/object') o, "); |
|
974 |
self.append("xml_nodes x, xml_nodes y, xml_nodes z "); |
|
975 |
self.append("where s.parentnodeid = rel.parentnodeid "); |
|
976 |
self.append("and rel.parentnodeid = o.parentnodeid "); |
|
977 |
self.append("and x.parentnodeid in (rel.nodeid) "); |
|
978 |
self.append("and y.parentnodeid in (o.nodeid) "); |
|
979 |
self.append("and z.parentnodeid in (s.nodeid) "); |
|
980 |
self.append("and z.docid like '").append(docid).append("'"); |
|
981 |
|
|
982 |
return self.toString(); |
|
983 |
} |
|
984 |
|
|
985 |
/** |
|
986 |
* Returns all of the relations that has a certain docid in the subject |
|
987 |
* or the object. |
|
988 |
* |
|
989 |
* @param docid the docid to search for |
|
990 |
*/ |
|
991 |
public static String printPackageSQL(String subDocidURL, String objDocidURL) |
|
992 |
{ |
|
993 |
StringBuffer self = new StringBuffer(); |
|
994 |
self.append("select z.nodedata, x.nodedata, y.nodedata from "); |
|
995 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
996 |
self.append("'triple/subject') s, (select nodeid, parentnodeid "); |
|
997 |
self.append("from xml_index where path like "); |
|
998 |
self.append("'triple/relationship') rel, "); |
|
999 |
self.append("(select nodeid, parentnodeid from xml_index where path like "); |
|
1000 |
self.append("'triple/object') o, "); |
|
1001 |
self.append("xml_nodes x, xml_nodes y, xml_nodes z "); |
|
1002 |
self.append("where s.parentnodeid = rel.parentnodeid "); |
|
1003 |
self.append("and rel.parentnodeid = o.parentnodeid "); |
|
1004 |
self.append("and x.parentnodeid in (rel.nodeid) "); |
|
1005 |
self.append("and y.parentnodeid in (o.nodeid) "); |
|
1006 |
self.append("and z.parentnodeid in (s.nodeid) "); |
|
1007 |
self.append("and (z.nodedata like '"); |
|
1008 |
self.append(subDocidURL); |
|
1009 |
self.append("' or y.nodedata like '"); |
|
1010 |
self.append(objDocidURL); |
|
1011 |
self.append("')"); |
|
1012 |
return self.toString(); |
|
1013 |
} |
|
1014 |
|
|
932 |
|
|
1015 | 933 |
public static String printGetDocByDoctypeSQL(String docid) |
1016 | 934 |
{ |
1017 | 935 |
StringBuffer self = new StringBuffer(); |
Also available in: Unified diff
removed the 3 versions of printPackageSQL which are no longer used by metacat. This eliminates some dependency on xml_index.