+//-----------------------------------------------------------------
+// get output "keys"
+// This is a guess about the set of fields which are a key
+// Use as metadata output, e.g. in qtree.xml
+
+
+
+// refs to GB attribtues are keys, if a SE is not a GB colref
+// but refers to a GB colref (outside of an aggregation)
+// then set partial_keys to true
+vector<string> sgah_qpn::get_tbl_keys(vector<string> &partial_keys){
+ vector<string> keys;
+
+ set<int> gref_set;
+ for(int i=0; i<gb_tbl.size();++i)
+ gref_set.insert(i);
+
+ for(int s=0;s<select_list.size();++s){
+ if(select_list[s]->se->is_gb()){
+ keys.push_back(select_list[s]->name);
+ }else{
+ if(contains_gb_se(select_list[s]->se, gref_set)){
+ partial_keys.push_back(select_list[s]->name);
+ }
+ }
+ }
+ return keys;
+}
+
+vector<string> rsgah_qpn::get_tbl_keys(vector<string> &partial_keys){
+ vector<string> keys;
+
+ set<int> gref_set;
+ for(int i=0; i<gb_tbl.size();++i)
+ gref_set.insert(i);
+
+ for(int s=0;s<select_list.size();++s){
+ if(select_list[s]->se->is_gb()){
+ keys.push_back(select_list[s]->name);
+ }else{
+ if(contains_gb_se(select_list[s]->se, gref_set)){
+ partial_keys.push_back(select_list[s]->name);
+ }
+ }
+ }
+ return keys;
+}
+
+
+
+