Index: trunk/ippdb/src/ippdb.c
===================================================================
--- trunk/ippdb/src/ippdb.c	(revision 8319)
+++ trunk/ippdb/src/ippdb.c	(revision 8325)
@@ -8793,5 +8793,5 @@
 static void rawImfileRowFree(rawImfileRow *object);
 
-rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *exp_type, const char *uri, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
+rawImfileRow *rawImfileRowAlloc(const char *exp_id, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     rawImfileRow    *object;
@@ -8803,6 +8803,6 @@
     object->class = psStringCopy(class);
     object->class_id = psStringCopy(class_id);
+    object->uri = psStringCopy(uri);
     object->exp_type = psStringCopy(exp_type);
-    object->uri = psStringCopy(uri);
     object->filter = psStringCopy(filter);
     object->airmass = airmass;
@@ -8826,6 +8826,6 @@
     psFree(object->class);
     psFree(object->class_id);
+    psFree(object->uri);
     psFree(object->exp_type);
-    psFree(object->uri);
     psFree(object->filter);
 }
@@ -8857,4 +8857,9 @@
         return false;
     }
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "255")) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
@@ -8862,9 +8867,4 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
-        psFree(md);
-        return false;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
@@ -8940,5 +8940,5 @@
 }
 
-bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *exp_type, const char *uri, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
+bool rawImfileInsert(psDB * dbh, const char *exp_id, const char *class, const char *class_id, const char *uri, const char *exp_type, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     psMetadata      *md;
@@ -8961,11 +8961,11 @@
         return false;
     }
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, uri)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
         psFree(md);
         return false;
@@ -9052,5 +9052,5 @@
     return deleted;
 }
-bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **exp_type, char **uri, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
+bool rawImfilePop(psDB *dbh, char **exp_id, char **class, char **class_id, char **uri, char **exp_type, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
 {
     psArray         *rowSet;
@@ -9114,4 +9114,10 @@
         return false;
     }
+    *uri = psMetadataLookupPtr(&status, row, "uri");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
+        psFree(row);
+        return false;
+    }
     *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
     if (!status) {
@@ -9120,10 +9126,4 @@
         return false;
     }
-    *uri = psMetadataLookupPtr(&status, row, "uri");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
-        psFree(row);
-        return false;
-    }
     *filter = psMetadataLookupPtr(&status, row, "filter");
     if (!status) {
@@ -9206,5 +9206,5 @@
 bool rawImfileInsertObject(psDB *dbh, rawImfileRow *object)
 {
-    return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->exp_type, object->uri, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
+    return rawImfileInsert(dbh, object->exp_id, object->class, object->class_id, object->uri, object->exp_type, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
 }
 
@@ -9225,6 +9225,6 @@
     char            class[256];
     char            class_id[256];
+    char            uri[256];
     char            exp_type[256];
-    char            uri[256];
     char            filter[256];
     psF32           airmass;
@@ -9240,10 +9240,10 @@
     psF64           posang;
 
-    if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&exp_type, (char **)&uri, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
+    if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri, (char **)&exp_type, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return rawImfileRowAlloc(exp_id, class, class_id, exp_type, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
+    return rawImfileRowAlloc(exp_id, class, class_id, uri, exp_type, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 
@@ -9359,11 +9359,11 @@
         return NULL;
     }
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, object->uri)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return NULL;
+    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "uri", 0, NULL, object->uri)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
         psFree(md);
         return NULL;
@@ -9439,6 +9439,6 @@
     char            *class;
     char            *class_id;
+    char            *uri;
     char            *exp_type;
-    char            *uri;
     char            *filter;
     psF32           airmass;
@@ -9469,4 +9469,9 @@
         return false;
     }
+    uri = psMetadataLookupPtr(&status, md, "uri");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
+        return false;
+    }
     exp_type = psMetadataLookupPtr(&status, md, "exp_type");
     if (!status) {
@@ -9474,9 +9479,4 @@
         return false;
     }
-    uri = psMetadataLookupPtr(&status, md, "uri");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item uri");
-        return false;
-    }
     filter = psMetadataLookupPtr(&status, md, "filter");
     if (!status) {
@@ -9540,5 +9540,5 @@
     }
 
-    return rawImfileRowAlloc(exp_id, class, class_id, exp_type, uri, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
+    return rawImfileRowAlloc(exp_id, class, class_id, uri, exp_type, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 psArray *rawImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
