internal/postgres: remove experiment code

Experiments are loaded via a config file.

Change-Id: Ief412709e78694146df160cd5f016524d95921eb
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/260098
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/internal/postgres/experiment.go b/internal/postgres/experiment.go
deleted file mode 100644
index 5729735..0000000
--- a/internal/postgres/experiment.go
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package postgres
-
-import (
-	"context"
-	"database/sql"
-	"fmt"
-
-	"golang.org/x/pkgsite/internal"
-	"golang.org/x/pkgsite/internal/derrors"
-)
-
-// GetExperiments fetches all experiments in the database.
-func (db *DB) GetExperiments(ctx context.Context) (_ []*internal.Experiment, err error) {
-	defer derrors.Wrap(&err, "DB.GetExperiments(ctx)")
-
-	query := "SELECT name, rollout, description FROM experiments;"
-	var experiments []*internal.Experiment
-	err = db.db.RunQuery(ctx, query, func(rows *sql.Rows) error {
-		var e internal.Experiment
-		if err := rows.Scan(&e.Name, &e.Rollout, &e.Description); err != nil {
-			return err
-		}
-		experiments = append(experiments, &e)
-		return nil
-	})
-	return experiments, nil
-}
-
-// InsertExperiment inserts a row into the experiments table.
-func (db *DB) InsertExperiment(ctx context.Context, e *internal.Experiment) (err error) {
-	defer derrors.Wrap(&err, "DB.insertExperiment(ctx, %v)", e)
-	if e.Name == "" || e.Description == "" {
-		return fmt.Errorf("neither name nor description can be empty: %w", derrors.InvalidArgument)
-	}
-
-	_, err = db.db.Exec(ctx,
-		`INSERT INTO experiments
-		(name, rollout, description) VALUES ($1, $2, $3);`,
-		e.Name, e.Rollout, e.Description)
-	return err
-}
-
-// UpdateExperiment updates the specified experiment with the provided rollout value.
-func (db *DB) UpdateExperiment(ctx context.Context, e *internal.Experiment) (err error) {
-	defer derrors.Wrap(&err, "DB.UpdateExperiment(ctx, %v)", e)
-	if e.Name == "" || e.Description == "" {
-		return fmt.Errorf("neither name nor description can be empty: %w", derrors.InvalidArgument)
-	}
-
-	query := `UPDATE experiments
-		SET rollout = $2, description = $3
-		WHERE name = $1;`
-	n, err := db.db.Exec(ctx, query, e.Name, e.Rollout, e.Description)
-	if err != nil {
-		return err
-	}
-	if n == 0 {
-		return derrors.NotFound
-	}
-	return nil
-}
-
-// RemoveExperiment removes the specified experiment.
-func (db *DB) RemoveExperiment(ctx context.Context, name string) (err error) {
-	defer derrors.Wrap(&err, "DB.RemoveExperiment(ctx, %q)", name)
-	n, err := db.db.Exec(ctx, `DELETE FROM experiments WHERE name = $1`, name)
-	if err != nil {
-		return err
-	}
-	if n == 0 {
-		return derrors.NotFound
-	}
-	return nil
-}
diff --git a/internal/postgres/experiment_test.go b/internal/postgres/experiment_test.go
deleted file mode 100644
index b17729f..0000000
--- a/internal/postgres/experiment_test.go
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package postgres
-
-import (
-	"context"
-	"errors"
-	"testing"
-
-	"github.com/google/go-cmp/cmp"
-	"golang.org/x/pkgsite/internal"
-	"golang.org/x/pkgsite/internal/derrors"
-)
-
-func TestGetActiveExperiments(t *testing.T) {
-	defer ResetTestDB(testDB, t)
-	ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
-	defer cancel()
-
-	experiment := &internal.Experiment{Name: "test-experiment", Description: "test-description"}
-	if err := testDB.UpdateExperiment(ctx, experiment); !errors.Is(err, derrors.NotFound) {
-		t.Fatalf("unexpected error when updating non-existent experiment: %v", err)
-	}
-	got, err := testDB.GetExperiments(ctx)
-	if err != nil {
-		t.Fatal(err)
-	}
-	if len(got) != 0 {
-		t.Fatalf("got %d experiments; want = 0", len(got))
-	}
-	if err := testDB.InsertExperiment(ctx, experiment); err != nil {
-		t.Fatalf("error inserting inactive experiment: %v", err)
-	}
-	got, err = testDB.GetExperiments(ctx)
-	if err != nil {
-		t.Fatal(err)
-	}
-	if len(got) != 1 {
-		t.Fatalf("got %d experiments; want = 1", len(got))
-	}
-
-	experiment.Rollout = 50
-	if err := testDB.UpdateExperiment(ctx, experiment); err != nil {
-		t.Fatal(err)
-	}
-	got, err = testDB.GetExperiments(ctx)
-	if err != nil {
-		t.Fatal(err)
-	}
-	if len(got) != 1 {
-		t.Fatalf("got = %d active experiments; want = 1", len(got))
-	}
-	if diff := cmp.Diff(experiment, got[0]); diff != "" {
-		t.Fatalf("mismatch (-want +got):\n%s", diff)
-	}
-
-}
-
-func TestCannotInsertRolloutGreaterThan100(t *testing.T) {
-	defer ResetTestDB(testDB, t)
-	ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
-	defer cancel()
-
-	experiment := &internal.Experiment{
-		Name:        "test-rollout-greater-than-one",
-		Rollout:     101,
-		Description: "test-description",
-	}
-	// Test cannot insert feature with rollout > 100.
-	if err := testDB.InsertExperiment(ctx, experiment); err == nil {
-		t.Fatal(err)
-	}
-
-	experiment.Rollout = 100
-	if err := testDB.InsertExperiment(ctx, experiment); err != nil {
-		t.Fatal(err)
-	}
-	// Test cannot update feature rollout to > 1.
-	experiment.Rollout = 101
-	if err := testDB.UpdateExperiment(ctx, experiment); err == nil {
-		t.Fatal(err)
-	}
-}