Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodogram.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodogram.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodogram.c	(revision 42693)
@@ -274,5 +274,5 @@
 	// The first 3 values[] / fields[] will be time, mag, dmag
 	for (off_t n = 0; n < Nmfields; n++) {
-	  mvalues[n] = dbExtractMeasures (average, secfilt, &measure[k], NULL, NULL, &mfields[n]);
+	  mvalues[n] = dbExtractMeasures (average, secfilt, NULL, &measure[k], NULL, NULL, NULL, &mfields[n]);
 	}
 	if (!dbBooleanCond (mstack, Nmstack, mvalues)) continue;
Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodomatch.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodomatch.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/avperiodomatch.c	(revision 42693)
@@ -302,5 +302,5 @@
 	// The first 3 values[] / fields[] will be time, mag, dmag
 	for (off_t n = 0; n < Nmfields; n++) {
-	  mvalues[n] = dbExtractMeasures (average, secfilt, &measure[k], NULL, NULL, &mfields[n]);
+	  mvalues[n] = dbExtractMeasures (average, secfilt, NULL, &measure[k], NULL, NULL, NULL, &mfields[n]);
 	}
 	if (!dbBooleanCond (mstack, Nmstack, mvalues)) continue;
Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/gstar.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/gstar.c	(revision 42693)
@@ -401,4 +401,7 @@
 	  gprint (GP_LOG, "%20s ",     date);
 	  gprint (GP_LOG, "%f   ",     catalog.average[k].Trange / 86400.0);
+
+	  gprint (GP_LOG, "%ld ", catalog.average[k].extID);
+	  // gprint (GP_LOG, "0x%16x ", catalog.average[k].extID);
 	}
 
Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mextract.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mextract.c	(revision 42693)
@@ -221,6 +221,8 @@
   }
 
+  int needLensobj = dbFieldNeedLensobj (fields, Nfields);
   int needLensing = dbFieldNeedLensing (fields, Nfields);
   int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE);
+  int needGalphot = dbFieldNeedGalphot (fields, Nfields);
 
   // the lensing table does not have a good index to/from the measure table.  if we need lensing
@@ -247,5 +249,7 @@
     catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT;
     catalog.catflags |= needLensing ? DVO_LOAD_LENSING : DVO_SKIP_LENSING;
+    catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ;
     catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR;
+    catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT;
     catalog.Nsecfilt = Nsecfilt;
 
@@ -297,6 +301,12 @@
 	dbExtractMeasuresInitMeas (); // reset counters for saved fields  (costs very little
 
-	int Nstarpar = average->starparOffset;
-	StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[Nstarpar] : NULL;
+	int nStar = average->starparOffset;
+	StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL;
+
+	int nLens = average->lensobjOffset;
+	Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL;
+
+	int nPhot = average->galphotOffset;
+	GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL;
 
 	Lensing *lensing = NULL;
@@ -313,5 +323,5 @@
 
 	for (n = 0; n < Nfields; n++) {
-	  values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], lensing, starpar, &fields[n]);
+	  values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], lensing, starpar, galphot, &fields[n]);
 	}
 	// fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef);
Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmatch.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmatch.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmatch.c	(revision 42693)
@@ -232,6 +232,8 @@
   ALLOCATE (index, off_t, Nelem);
 
-  // int needLensing = dbFieldNeedLensing (fields, Nfields);
+  int needLensobj = dbFieldNeedLensobj (fields, Nfields);
+//int needLensing = dbFieldNeedLensing (fields, Nfields);
   int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE);
+  int needGalphot = dbFieldNeedGalphot (fields, Nfields);
 
   // grab data from all selected sky regions
@@ -249,5 +251,7 @@
     catalog.filename = HOST_ID ? hostfile : skylist[0].filename[i];
     catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_SECFILT | DVO_LOAD_MEASURE;
+    catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ;
     catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR;
+    catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT;
     catalog.Nsecfilt = Nsecfilt;
 
@@ -289,6 +293,12 @@
 	Average *average = &catalog.average[Ncat];
 
-	int Nstarpar = average->starparOffset;
-	StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL;
+	int nStar = average->starparOffset;
+	StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL;
+
+	int nLens = average->lensobjOffset;
+	Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL;
+
+	int nPhot = average->galphotOffset;
+	GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL;
 
 	// int Nlensing = average->lensobjOffset;
@@ -299,5 +309,5 @@
 
 	for (n = 0; n < Nfields; n++) {
-	  values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);
+	  values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], NULL, starpar, galphot, &fields[n]);
 	}
 
Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmextract.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmextract.c	(revision 42692)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/dvo/mmextract.c	(revision 42693)
@@ -174,6 +174,8 @@
   }
 
-  // int needLensing = dbFieldNeedLensing (fields, Nfields);
+  int needLensobj = dbFieldNeedLensobj (fields, Nfields);
+//int needLensing = dbFieldNeedLensing (fields, Nfields);
   int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE);
+  int needGalphot = dbFieldNeedGalphot (fields, Nfields);
 
   // grab data from all selected sky regions
@@ -185,4 +187,8 @@
     catalog.filename = skylist[0].filename[i];
     catalog.catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT;
+//  catalog.catflags |= needLensing ? DVO_LOAD_LENSING : DVO_SKIP_LENSING;
+    catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ;
+    catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR;
+    catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT;
     catalog.Nsecfilt = Nsecfilt;
 
@@ -220,6 +226,12 @@
 	Average *average = &catalog.average[j];
 
-	int Nstarpar = average->starparOffset;
-	StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL;
+	int nStar = average->starparOffset;
+	StarPar *starpar = needStarpar && average->Nstarpar ? &catalog.starpar[nStar] : NULL;
+
+	int nLens = average->lensobjOffset;
+	Lensobj *lensobj = needLensobj && average->Nlensobj ? &catalog.lensobj[nLens] : NULL;
+
+	int nPhot = average->galphotOffset;
+	GalPhot *galphot = needGalphot && average->Ngalphot ? &catalog.galphot[nPhot] : NULL;
 
 	// int Nlensing = average->lensobjOffset;
@@ -231,5 +243,5 @@
 	for (n = 0; n < Nfields; n++) {
 	  // values needs to be a pointer to a type with FLT and INT (with a union, we would save a bit of memory...)
-	  values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);
+	  values[n] = dbExtractMeasures (average, secfilt, lensobj, &catalog.measure[m], NULL, starpar, galphot, &fields[n]);
 	}
 	// fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef);
