diff --git a/internal/postgres/path_test.go b/internal/postgres/path_test.go
index fa308d9..8f6f22d 100644
--- a/internal/postgres/path_test.go
+++ b/internal/postgres/path_test.go
@@ -13,6 +13,7 @@
 	"github.com/google/go-cmp/cmp/cmpopts"
 	"github.com/google/safehtml"
 	"golang.org/x/pkgsite/internal"
+	"golang.org/x/pkgsite/internal/experiment"
 	"golang.org/x/pkgsite/internal/licenses"
 	"golang.org/x/pkgsite/internal/source"
 	"golang.org/x/pkgsite/internal/testing/sample"
@@ -57,11 +58,28 @@
 		}
 	}
 
-	for _, test := range []struct {
+	type teststruct struct {
 		name                  string
 		path, module, version string
 		want                  *internal.UnitMeta
-	}{
+	}
+
+	checkUnitMeta := func(ctx context.Context, test teststruct) {
+		got, err := testDB.GetUnitMeta(ctx, test.path, test.module, test.version)
+		if err != nil {
+			t.Fatal(err)
+		}
+		opts := []cmp.Option{
+			cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
+			cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod"),
+			cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
+		}
+		if diff := cmp.Diff(test.want, got, opts...); diff != "" {
+			t.Errorf("mismatch (-want +got):\n%s", diff)
+		}
+	}
+
+	for _, test := range []teststruct{
 		{
 			name:    "known module and version",
 			path:    "m.com/a",
@@ -205,18 +223,13 @@
 				test.want.IsRedistributable,
 			)
 			test.want.CommitTime = sample.CommitTime
-			got, err := testDB.GetUnitMeta(ctx, test.path, test.module, test.version)
-			if err != nil {
-				t.Fatal(err)
-			}
-			opts := []cmp.Option{
-				cmpopts.IgnoreFields(licenses.Metadata{}, "Coverage"),
-				cmpopts.IgnoreFields(internal.UnitMeta{}, "HasGoMod"),
-				cmp.AllowUnexported(source.Info{}, safehtml.HTML{}),
-			}
-			if diff := cmp.Diff(test.want, got, opts...); diff != "" {
-				t.Errorf("mismatch (-want +got):\n%s", diff)
-			}
+			t.Run("no experiment", func(t *testing.T) {
+				checkUnitMeta(ctx, test)
+			})
+			t.Run("with experiment", func(t *testing.T) {
+				ctx := experiment.NewContext(ctx, internal.ExperimentGetUnitMetaQuery)
+				checkUnitMeta(ctx, test)
+			})
 		})
 	}
 }
diff --git a/internal/postgres/unit.go b/internal/postgres/unit.go
index 4c56e79..9081733 100644
--- a/internal/postgres/unit.go
+++ b/internal/postgres/unit.go
@@ -86,6 +86,7 @@
 		"m.version",
 		"m.commit_time",
 		"m.source_info",
+		"m.has_go_mod",
 		"u.name",
 		"u.redistributable",
 		"u.license_types",
@@ -114,6 +115,7 @@
 		"m.version",
 		"m.commit_time",
 		"m.source_info",
+		"m.has_go_mod",
 		"u.id AS unit_id",
 	).From("modules m").
 		Join("units u ON u.module_id = m.id").
diff --git a/internal/postgres/unit_test.go b/internal/postgres/unit_test.go
index 3ac4539..bea3c1a 100644
--- a/internal/postgres/unit_test.go
+++ b/internal/postgres/unit_test.go
@@ -161,7 +161,13 @@
 				test.want.IsRedistributable,
 			)
 			test.want.CommitTime = um.CommitTime
-			checkUnit(ctx, t, um, test.want)
+			t.Run("no experiment", func(t *testing.T) {
+				checkUnit(ctx, t, um, test.want)
+			})
+			t.Run("with experiment", func(t *testing.T) {
+				ctx := experiment.NewContext(ctx, internal.ExperimentGetUnitMetaQuery)
+				checkUnit(ctx, t, um, test.want)
+			})
 		})
 	}
 }
