func GetAnalyzer()

in pkg/analyzer/analyzer.go [31:205]


func GetAnalyzer(id string) DatabaseConfiguration {
	switch {
	case id == "ij":
		fieldNames := []string{
			"classLoadingTime", "classLoadingSearchTime", "classLoadingDefineTime", "classLoadingCount", "classLoadingPreparedCount", "classLoadingLoadedCount",
			"resourceLoadingTime", "resourceLoadingCount",
			"measure.name", "measure.start", "measure.duration", "measure.thread", "metrics.name", "metrics.value",
		}
		return DatabaseConfiguration{
			DbName:            id,
			HasProductField:   true,
			HasInstallerField: true,
			extraFieldCount:   len(IjMetricDescriptors) + len(fieldNames),
			ReportReader:      analyzeIjReport,
			insertStatementWriter: func(sb *strings.Builder) {
				for _, metric := range IjMetricDescriptors {
					sb.WriteByte(',')
					sb.WriteString(metric.Name)
				}
				for _, fieldName := range fieldNames {
					sb.WriteByte(',')
					sb.WriteString(fieldName)
				}
			},
		}
	case id == "ijDev":
		fieldNames := []string{
			"classLoadingTime", "classLoadingSearchTime", "classLoadingDefineTime", "classLoadingCount", "classLoadingPreparedCount", "classLoadingLoadedCount",
			"resourceLoadingTime", "resourceLoadingCount",
			"measure.name", "measure.start", "measure.duration", "measure.thread", "metrics.name", "metrics.value",
		}
		return DatabaseConfiguration{
			DbName:                      id,
			HasProductField:             true,
			HasNoInstallerButHasChanges: true,
			extraFieldCount:             len(IjMetricDescriptors) + len(fieldNames),
			ReportReader:                analyzeIjReport,
			insertStatementWriter: func(sb *strings.Builder) {
				for _, metric := range IjMetricDescriptors {
					sb.WriteByte(',')
					sb.WriteString(metric.Name)
				}
				for _, fieldName := range fieldNames {
					sb.WriteByte(',')
					sb.WriteString(fieldName)
				}
			},
		}
	case strings.HasPrefix(id, "perfintDev"):
		dbName, tableName := splitId(id)
		return DatabaseConfiguration{
			DbName:                      dbName,
			TableName:                   tableName,
			ReportReader:                analyzePerfReport[int32],
			HasMetaDB:                   true,
			HasNoInstallerButHasChanges: true,
			extraFieldCount:             3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case strings.HasPrefix(id, "perfint"):
		dbName, tableName := splitId(id)
		return DatabaseConfiguration{
			DbName:            dbName,
			TableName:         tableName,
			ReportReader:      analyzePerfReport[int32],
			HasInstallerField: true,
			HasMetaDB:         true,
			extraFieldCount:   3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "fleet":
		return DatabaseConfiguration{
			DbName:            "fleet",
			ReportReader:      analyzeFleetReport,
			HasInstallerField: true,
			extraFieldCount:   4,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.start, measures.thread")
			},
		}
	case id == "mlEvaluation":
		return DatabaseConfiguration{
			DbName:          "mlEvaluation",
			TableName:       "report",
			ReportReader:    analyzePerfReport[float64],
			HasMetaDB:       true,
			extraFieldCount: 3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "perf_fleet":
		return DatabaseConfiguration{
			DbName:          "fleet",
			TableName:       "measure_new",
			ReportReader:    analyzePerfFleetReport,
			extraFieldCount: 3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type")
			},
		}
	case id == "jbr":
		return DatabaseConfiguration{
			DbName:          "jbr",
			TableName:       "report",
			extraFieldCount: 3,
			HasBuildNumber:  true,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type")
			},
		}
	case id == "bazel":
		return DatabaseConfiguration{
			DbName:          "bazel",
			TableName:       "report",
			ReportReader:    analyzePerfReport[int32],
			extraFieldCount: 3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "qodana":
		return DatabaseConfiguration{
			DbName:          "qodana",
			TableName:       "report",
			extraFieldCount: 4,
			ReportReader:    analyzePerfReport[int32],
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "perfUnitTests":
		return DatabaseConfiguration{
			DbName:                      "perfUnitTests",
			TableName:                   "report",
			ReportReader:                analyzePerfReport[int32],
			HasMetaDB:                   false,
			HasNoInstallerButHasChanges: true,
			extraFieldCount:             3,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "toolbox":
		return DatabaseConfiguration{
			DbName:                      "toolbox",
			TableName:                   "report",
			ReportReader:                analyzePerfReport[int32],
			HasMetaDB:                   false,
			HasNoInstallerButHasChanges: true,
			extraFieldCount:             4,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	case id == "diogen":
		return DatabaseConfiguration{
			DbName:                      "diogen",
			TableName:                   "report",
			ReportReader:                analyzePerfReport[int32],
			HasMetaDB:                   false,
			extraFieldCount:             3,
			HasNoInstallerButHasChanges: true,
			insertStatementWriter: func(sb *strings.Builder) {
				sb.WriteString(", measures.name, measures.value, measures.type, mode")
			},
		}
	default:
		panic("unknown project: " + id)
	}
}