Index: trunk/ippdb/src/ippdb.c
===================================================================
--- trunk/ippdb/src/ippdb.c	(revision 13649)
+++ trunk/ippdb/src/ippdb.c	(revision 13739)
@@ -10221,5 +10221,5 @@
 static void warpSkyfileRowFree(warpSkyfileRow *object);
 
-warpSkyfileRow *warpSkyfileRowAlloc(psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_stdev)
+warpSkyfileRow *warpSkyfileRowAlloc(psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     warpSkyfileRow  *_object;
@@ -10232,4 +10232,5 @@
     _object->tess_id = psStringCopy(tess_id);
     _object->uri = psStringCopy(uri);
+    _object->path_base = psStringCopy(path_base);
     _object->bg = bg;
     _object->bg_stdev = bg_stdev;
@@ -10243,4 +10244,5 @@
     psFree(object->tess_id);
     psFree(object->uri);
+    psFree(object->path_base);
 }
 
@@ -10268,4 +10270,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -10291,5 +10298,5 @@
 }
 
-bool warpSkyfileInsert(psDB * dbh, psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_stdev)
+bool warpSkyfileInsert(psDB * dbh, psS64 warp_id, const char *skycell_id, const char *tess_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     psMetadata *md = psMetadataAlloc();
@@ -10311,4 +10318,9 @@
     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
         psFree(md);
         return false;
@@ -10347,5 +10359,5 @@
 bool warpSkyfileInsertObject(psDB *dbh, warpSkyfileRow *object)
 {
-    return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->bg, object->bg_stdev);
+    return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->path_base, object->bg, object->bg_stdev);
 }
 
@@ -10440,4 +10452,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -10479,4 +10496,9 @@
         return false;
     }
+    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item path_base");
+        return false;
+    }
     psF64 bg = psMetadataLookupF64(&status, md, "bg");
     if (!status) {
@@ -10490,5 +10512,5 @@
     }
 
-    return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, bg, bg_stdev);
+    return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, path_base, bg, bg_stdev);
 }
 psArray *warpSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -11388,5 +11410,5 @@
 static void diffSkyfileRowFree(diffSkyfileRow *object);
 
-diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, psF64 bg, psF64 bg_stdev)
+diffSkyfileRow *diffSkyfileRowAlloc(psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     diffSkyfileRow  *_object;
@@ -11397,4 +11419,5 @@
     _object->diff_id = diff_id;
     _object->uri = psStringCopy(uri);
+    _object->path_base = psStringCopy(path_base);
     _object->bg = bg;
     _object->bg_stdev = bg_stdev;
@@ -11406,4 +11429,5 @@
 {
     psFree(object->uri);
+    psFree(object->path_base);
 }
 
@@ -11421,4 +11445,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -11444,5 +11473,5 @@
 }
 
-bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, psF64 bg, psF64 bg_stdev)
+bool diffSkyfileInsert(psDB * dbh, psS64 diff_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     psMetadata *md = psMetadataAlloc();
@@ -11454,4 +11483,9 @@
     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
         psFree(md);
         return false;
@@ -11490,5 +11524,5 @@
 bool diffSkyfileInsertObject(psDB *dbh, diffSkyfileRow *object)
 {
-    return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->bg, object->bg_stdev);
+    return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->path_base, object->bg, object->bg_stdev);
 }
 
@@ -11573,4 +11607,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -11602,4 +11641,9 @@
         return false;
     }
+    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item path_base");
+        return false;
+    }
     psF64 bg = psMetadataLookupF64(&status, md, "bg");
     if (!status) {
@@ -11613,5 +11657,5 @@
     }
 
-    return diffSkyfileRowAlloc(diff_id, uri, bg, bg_stdev);
+    return diffSkyfileRowAlloc(diff_id, uri, path_base, bg, bg_stdev);
 }
 psArray *diffSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -12424,5 +12468,5 @@
 static void stackSumSkyfileRowFree(stackSumSkyfileRow *object);
 
-stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS64 stack_id, const char *uri, psF64 bg, psF64 bg_stdev)
+stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     stackSumSkyfileRow *_object;
@@ -12433,4 +12477,5 @@
     _object->stack_id = stack_id;
     _object->uri = psStringCopy(uri);
+    _object->path_base = psStringCopy(path_base);
     _object->bg = bg;
     _object->bg_stdev = bg_stdev;
@@ -12442,4 +12487,5 @@
 {
     psFree(object->uri);
+    psFree(object->path_base);
 }
 
@@ -12457,4 +12503,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, "255")) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, 0.0)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -12480,5 +12531,5 @@
 }
 
-bool stackSumSkyfileInsert(psDB * dbh, psS64 stack_id, const char *uri, psF64 bg, psF64 bg_stdev)
+bool stackSumSkyfileInsert(psDB * dbh, psS64 stack_id, const char *uri, const char *path_base, psF64 bg, psF64 bg_stdev)
 {
     psMetadata *md = psMetadataAlloc();
@@ -12490,4 +12541,9 @@
     if (!psMetadataAdd(md, PS_LIST_TAIL, "uri", PS_DATA_STRING, NULL, uri)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item uri");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
         psFree(md);
         return false;
@@ -12526,5 +12582,5 @@
 bool stackSumSkyfileInsertObject(psDB *dbh, stackSumSkyfileRow *object)
 {
-    return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->bg, object->bg_stdev);
+    return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->path_base, object->bg, object->bg_stdev);
 }
 
@@ -12609,4 +12665,9 @@
         return false;
     }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "path_base", PS_DATA_STRING, NULL, object->path_base)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item path_base");
+        psFree(md);
+        return false;
+    }
     if (!psMetadataAdd(md, PS_LIST_TAIL, "bg", PS_DATA_F64, NULL, object->bg)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
@@ -12638,4 +12699,9 @@
         return false;
     }
+    char* path_base = psMetadataLookupPtr(&status, md, "path_base");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item path_base");
+        return false;
+    }
     psF64 bg = psMetadataLookupF64(&status, md, "bg");
     if (!status) {
@@ -12649,5 +12715,5 @@
     }
 
-    return stackSumSkyfileRowAlloc(stack_id, uri, bg, bg_stdev);
+    return stackSumSkyfileRowAlloc(stack_id, uri, path_base, bg, bg_stdev);
 }
 psArray *stackSumSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
