func createCloudSpannerDatabase()

in spanner_prober/prober/proberlib.go [517:539]


func createCloudSpannerDatabase(ctx context.Context, databaseClient *database.DatabaseAdminClient, opt ProberOptions) error {
	op, err := databaseClient.CreateDatabase(ctx, &dbadminpb.CreateDatabaseRequest{
		Parent:          opt.instanceURI(),
		CreateStatement: fmt.Sprintf("CREATE DATABASE `%v`", opt.databaseName()),
		ExtraStatements: []string{
			`CREATE TABLE ProbeTarget (
					Id INT64 NOT NULL,
					Payload BYTES(MAX),
					PayloadHash BYTES(MAX),
				) PRIMARY KEY (Id)`,
		},
	})

	if err != nil {
		if code := status.Code(err); code == codes.AlreadyExists {
			return nil
		}
		return err
	}

	_, err = op.Wait(ctx)
	return err
}