Map structure and other attributes before indexes, so that
[yaz-moved-to-github.git] / src / cqltransform.c
index 70c45e7..69630e4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: cqltransform.c,v 1.16 2005-06-27 22:03:59 adam Exp $
+/* $Id: cqltransform.c,v 1.19 2006-03-10 14:43:13 mike Exp $
    Copyright (C) 1995-2005, Index Data ApS
    Index Data Aps
 
@@ -390,9 +390,6 @@ void cql_transform_r(cql_transform_t ct,
                 (*pr)("\" ", client_data);
                 return ;
             }
-            cql_pr_attr_uri(ct, "index", ns,
-                            cn->u.st.index, "serverChoice",
-                            pr, client_data, 16);
         }
         else
         {
@@ -425,6 +422,11 @@ void cql_transform_r(cql_transform_t ct,
         }
         cql_pr_attr(ct, "structure", cn->u.st.relation, 0,
                     pr, client_data, 24);
+        if (ns) {
+            cql_pr_attr_uri(ct, "index", ns,
+                            cn->u.st.index, "serverChoice",
+                            pr, client_data, 16);
+        }
         if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "all"))
         {
             emit_wordlist(ct, cn, pr, client_data, "and");
@@ -446,6 +448,11 @@ void cql_transform_r(cql_transform_t ct,
 
         cql_transform_r(ct, cn->u.boolean.left, pr, client_data);
         cql_transform_r(ct, cn->u.boolean.right, pr, client_data);
+        break;
+
+    default:
+        fprintf(stderr, "Fatal: impossible CQL node-type %d\n", cn->which);
+        abort();
     }
 }