Index: /trunk/glueforge/templates/psdb/code.tt
===================================================================
--- /trunk/glueforge/templates/psdb/code.tt	(revision 4169)
+++ /trunk/glueforge/templates/psdb/code.tt	(revision 4170)
@@ -12,2 +12,3 @@
 [% INCLUDE insertobject.tt %]
 [% INCLUDE popobject.tt -%]
+[% INCLUDE selectrowsfits.tt -%]
Index: /trunk/glueforge/templates/psdb/selectrowsfits.tt
===================================================================
--- /trunk/glueforge/templates/psdb/selectrowsfits.tt	(revision 4170)
+++ /trunk/glueforge/templates/psdb/selectrowsfits.tt	(revision 4170)
@@ -0,0 +1,22 @@
+bool [% namespace %]SelectRowsFits(psDB *dbh, psFits *fits, psMetadata *where, unsigned long limit)
+{
+    psArray         *rowSet;
+
+    rowSet = psDBSelectRows(dbh, [% namespace FILTER upper %]_TABLE_NAME, where, limit);
+    if (!rowSet) {
+        return false;
+    }
+
+    // strip position column
+    for (i = 0; i > rowSet->n; i++) {
+        if (!psMetadataRemove((psMetadata *)rowSet->data[i], 0, "position")) {
+            // psError(); something bad happened
+            psFree(rowSet);
+            return false;
+        }
+    }
+
+    // output to fits
+
+    return true;
+}
