clickhouse

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PipelinesTable              string = "pipelines"
	JobsTable                   string = "jobs"
	SectionsTable               string = "sections"
	BridgesTable                string = "bridges"
	TestReportsTable            string = "testreports"
	TestSuitesTable             string = "testsuites"
	TestCasesTable              string = "testcases"
	MergeRequestsTable          string = "mergerequests"
	MergeRequestNoteEventsTable string = "mergerequest_noteevents"
	MetricsTable                string = "metrics"
	ProjectsTable               string = "projects"
	TraceSpansTable             string = "traces"
)

Variables

View Source
var (
	ErrMigrateNoChange   = migrate.ErrNoChange
	ErrMigrateNilVersion = migrate.ErrNilVersion
)

Functions

func ClientOptions added in v0.6.1

func ClientOptions(cfg ClientConfig) clickhouse.Options

func Connect added in v0.6.1

func Connect(options *clickhouse.Options) (driver.Conn, error)

func DeduplicateTable

func DeduplicateTable(ctx context.Context, opt DeduplicateTableOptions, ch *Client) error

func GetLatestMigrationVersion added in v0.7.0

func GetLatestMigrationVersion(fsys fs.FS, path string) (uint, error)

func GetSchemaVersion added in v0.7.0

func GetSchemaVersion(c *Client, ctx context.Context) (uint, bool, error)

func InsertBridges

func InsertBridges(c *Client, ctx context.Context, bridges []*typespb.Bridge) (int, error)

func InsertJobs

func InsertJobs(c *Client, ctx context.Context, jobs []*typespb.Job) (int, error)

func InsertMergeRequestNoteEvents added in v0.8.0

func InsertMergeRequestNoteEvents(c *Client, ctx context.Context, mres []*typespb.MergeRequestNoteEvent) (int, error)

func InsertMergeRequests added in v0.7.0

func InsertMergeRequests(c *Client, ctx context.Context, mrs []*typespb.MergeRequest) (int, error)

func InsertMetrics

func InsertMetrics(c *Client, ctx context.Context, metrics []*typespb.Metric) (int, error)

func InsertPipelines

func InsertPipelines(c *Client, ctx context.Context, pipelines []*typespb.Pipeline) (int, error)

func InsertProjects added in v0.7.0

func InsertProjects(c *Client, ctx context.Context, projects []*typespb.Project) (int, error)

func InsertSections

func InsertSections(c *Client, ctx context.Context, sections []*typespb.Section) (int, error)

func InsertTestCases

func InsertTestCases(c *Client, ctx context.Context, cases []*typespb.TestCase) (int, error)

func InsertTestReports

func InsertTestReports(c *Client, ctx context.Context, reports []*typespb.TestReport) (int, error)

func InsertTestSuites

func InsertTestSuites(c *Client, ctx context.Context, suites []*typespb.TestSuite) (int, error)

func InsertTraces

func InsertTraces(c *Client, ctx context.Context, traces []*typespb.Trace) (int, error)

func MigrateUp added in v0.7.0

func MigrateUp(opts MigrationOptions) error

func NewMigration added in v0.7.0

func NewMigration(opts MigrationOptions) (*migrate.Migrate, error)

func PrepareDeduplicateQuery

func PrepareDeduplicateQuery(opt DeduplicateTableOptions) (string, map[string]string)

func SelectPipelineMaxUpdatedAt

func SelectPipelineMaxUpdatedAt(c *Client, ctx context.Context) (map[int64]float64, error)

func SelectTableIDLastestUpdates added in v0.7.0

func SelectTableIDLastestUpdates(c *Client, ctx context.Context, table string, idColumn string, updatedAtColumn string) (map[int64]float64, error)

func SelectTableIDs

func SelectTableIDs[T int64 | string](c *Client, ctx context.Context, table string, column string) (map[T]struct{}, error)

func SelectTraceSpanIDs

func SelectTraceSpanIDs(c *Client, ctx context.Context) (map[string]struct{}, error)

func WithParameters

func WithParameters(ctx context.Context, params map[string]string) context.Context

Types

type Cache

type Cache struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewCache

func NewCache() *Cache

func (*Cache) UpdateBridges

func (c *Cache) UpdateBridges(data []int64, updated []bool)

func (*Cache) UpdateJobs

func (c *Cache) UpdateJobs(data []int64, updated []bool)

func (*Cache) UpdateMergeRequests added in v0.7.0

func (c *Cache) UpdateMergeRequests(data map[int64]float64, updated map[int64]bool)

func (*Cache) UpdateMetrics added in v0.7.0

func (c *Cache) UpdateMetrics(keys map[int64]bool)

UpdateMetrics updates the cache used to prevent inserting duplicate metrics. For each key in the given map we check whether it is already cached. If it is, the correspopnding map value is set to `false`, else it will be added to the cache and the correponding map value is set to `true`. In order to not require holding each individual metric ID in memory, we use the metric's job ID as a cache key.

func (*Cache) UpdatePipelines

func (c *Cache) UpdatePipelines(data map[int64]float64, updated map[int64]bool)

func (*Cache) UpdateProjects added in v0.7.0

func (c *Cache) UpdateProjects(data map[int64]float64, updated map[int64]bool)

func (*Cache) UpdateSections

func (c *Cache) UpdateSections(keys map[int64]bool)

UpdateSections updates the cache used to prevent inserting duplicate sections. For each key in the given map we check whether it is already cached. If it is, the correspopnding map value is set to `false`, else it will be added to the cache and the correponding map value is set to `true`. In order to not require holding each individual section ID in memory, we use the section's job ID as a cache key.

func (*Cache) UpdateTestCases

func (c *Cache) UpdateTestCases(keys map[string]bool)

UpdateTestCases updates the cache used to prevent inserting duplicate test cases. For each key in the given map we check whether it is already cached. If it is, the correspopnding map value is set to `false`, else it will be added to the cache and the correponding map value is set to `true`. In order to not require holding each individual test case ID in memory, we use the test case's test suite ID as a cache key.

func (*Cache) UpdateTestReports

func (c *Cache) UpdateTestReports(data []string, updated []bool)

func (*Cache) UpdateTestSuites

func (c *Cache) UpdateTestSuites(data []string, updated []bool)

func (*Cache) UpdateTraceSpans

func (c *Cache) UpdateTraceSpans(data []string, updated []bool)

type Client

type Client struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewClient

func NewClient(conn driver.Conn, database string) *Client

func (*Client) Exec

func (c *Client) Exec(ctx context.Context, query string, args ...any) error

func (*Client) Ping

func (c *Client) Ping(ctx context.Context) error

func (*Client) PrepareBatch

func (c *Client) PrepareBatch(ctx context.Context, query string) (driver.Batch, error)

func (*Client) Select

func (c *Client) Select(ctx context.Context, dest any, query string, args ...any) error

type ClientConfig

type ClientConfig struct {
	Host     string
	Port     string
	Database string
	User     string
	Password string
}

type DeduplicateTableOptions

type DeduplicateTableOptions struct {
	Database    string
	Table       string
	Final       *bool
	By          []string
	Except      []string
	ThrowIfNoop *bool
}

type MigrationOptions added in v0.7.0

type MigrationOptions struct {
	ClientConfig

	FileSystem fs.FS
	Path       string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL