MCPcopy Create free account
hub / github.com/rilldata/rill / BenchmarkReparse

Function BenchmarkReparse

runtime/parser/parser_test.go:928–985  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

926}
927
928func BenchmarkReparse(b *testing.B) {
929 ctx := context.Background()
930 files := map[string]string{
931 // rill.yaml
932 `rill.yaml`: ``,
933 // model m1
934 `models/m1.sql`: `
935SELECT 1
936`,
937 // model m2
938 `models/m2.sql`: `
939SELECT * FROM m1
940`,
941 `models/m2.yaml`: `
942materialize: true
943`,
944 }
945 resources := []*Resource{
946 // m1
947 {
948 Name: ResourceName{Kind: ResourceKindModel, Name: "m1"},
949 Paths: []string{"/models/m1.sql"},
950 ModelSpec: &runtimev1.ModelSpec{
951 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
952 InputConnector: "duckdb",
953 InputProperties: must(structpb.NewStruct(map[string]any{"sql": strings.TrimSpace(files["models/m1.sql"])})),
954 OutputConnector: "duckdb",
955 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
956 },
957 },
958 // m2
959 {
960 Name: ResourceName{Kind: ResourceKindModel, Name: "m2"},
961 Refs: []ResourceName{{Kind: ResourceKindModel, Name: "m1"}},
962 Paths: []string{"/models/m2.sql", "/models/m2.yaml"},
963 ModelSpec: &runtimev1.ModelSpec{
964 RefreshSchedule: &runtimev1.Schedule{RefUpdate: true},
965 InputConnector: "duckdb",
966 InputProperties: must(structpb.NewStruct(map[string]any{"sql": strings.TrimSpace(files["models/m2.sql"])})),
967 OutputConnector: "duckdb",
968 OutputProperties: must(structpb.NewStruct(map[string]any{"materialize": true})),
969 ChangeMode: runtimev1.ModelChangeMode_MODEL_CHANGE_MODE_RESET,
970 },
971 },
972 }
973 repo := makeRepo(b, files)
974 p, err := Parse(ctx, repo, "", "", "duckdb", true)
975 require.NoError(b, err)
976 requireResourcesAndErrors(b, p, resources, nil)
977
978 b.ResetTimer()
979 for i := 0; i < b.N; i++ {
980 files[`models/m2.sql`] = fmt.Sprintf(`SELECT * FROM m1 LIMIT %d`, i)
981 _, err = p.Reparse(ctx, []string{`models/m2.sql`})
982 require.NoError(b, err)
983 require.Empty(b, p.Errors)
984 }
985}

Callers

nothing calls this directly

Calls 5

makeRepoFunction · 0.85
ReparseMethod · 0.80
mustFunction · 0.70
ParseFunction · 0.70

Tested by

no test coverage detected