mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed?
<!-- Describe what has changed in this PR -->
Remove license header from every file. Because it is really hard to
follow in this PR here is the summary:
1. License header is removed from all `.go` and `.proto` files
:fireworks::fireworks:🎆.
2. `LICENSE` file in the root directory has only Temporal and Uber
copyrights.
3. 5 other `LICENSE` files added to the packages which have copyrights
different from Temporal and Uber: Datadog, Xargin, "Mat Ryer, Tyler
Bunnell and contributors".
4. `license_file` flag is removed from all code generation tools.
5. `copyright_file` flag is removed from `go:generate mockgen`
directive.
6. All copyright related targets are removed from `Makefile`.
7. Updated Temporal copyright year to 2025 everywhere.
## Why?
<!-- Tell your future self why have you made these changes -->
I double checked with legal department that it is not needed to have
license header in every file. One file per repo is enough. I put all
copyrights to the root `LICENSE` file and removed header from all other
files. Also updated tools and `Makefile`.
139 lines
3.2 KiB
Go
139 lines
3.2 KiB
Go
package sqlplugin
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
"go.temporal.io/server/common/config"
|
|
"go.temporal.io/server/common/log"
|
|
"go.temporal.io/server/common/metrics"
|
|
"go.temporal.io/server/common/resolver"
|
|
)
|
|
|
|
type (
|
|
DbKind int
|
|
)
|
|
|
|
const (
|
|
DbKindUnknown DbKind = iota
|
|
DbKindMain
|
|
DbKindVisibility
|
|
)
|
|
|
|
type VersionedBlob struct {
|
|
Version int64
|
|
Data []byte
|
|
DataEncoding string
|
|
}
|
|
|
|
type (
|
|
// Plugin defines the interface for any SQL database that needs to implement
|
|
Plugin interface {
|
|
CreateDB(dbKind DbKind, cfg *config.SQL, r resolver.ServiceResolver, l log.Logger, mh metrics.Handler) (GenericDB, error)
|
|
}
|
|
|
|
// TableCRUD defines the API for interacting with the database tables
|
|
TableCRUD interface {
|
|
ClusterMetadata
|
|
Namespace
|
|
Visibility
|
|
QueueMessage
|
|
QueueMetadata
|
|
QueueV2Message
|
|
QueueV2Metadata
|
|
|
|
MatchingTask
|
|
MatchingTaskQueue
|
|
|
|
NexusEndpoints
|
|
|
|
HistoryNode
|
|
HistoryTree
|
|
|
|
HistoryShard
|
|
|
|
HistoryExecution
|
|
HistoryExecutionBuffer
|
|
HistoryExecutionActivity
|
|
HistoryExecutionChildWorkflow
|
|
HistoryExecutionTimer
|
|
HistoryExecutionRequestCancel
|
|
HistoryExecutionSignal
|
|
HistoryExecutionSignalRequest
|
|
HistoryExecutionChasm
|
|
|
|
HistoryImmediateTask
|
|
HistoryScheduledTask
|
|
HistoryTransferTask
|
|
HistoryTimerTask
|
|
HistoryReplicationTask
|
|
HistoryReplicationDLQTask
|
|
HistoryVisibilityTask
|
|
}
|
|
|
|
// AdminCRUD defines admin operations for CLI and test suites
|
|
AdminCRUD interface {
|
|
CreateSchemaVersionTables() error
|
|
ReadSchemaVersion(database string) (string, error)
|
|
UpdateSchemaVersion(database string, newVersion string, minCompatibleVersion string) error
|
|
WriteSchemaUpdateLog(oldVersion string, newVersion string, manifestMD5 string, desc string) error
|
|
ListTables(database string) ([]string, error)
|
|
DropTable(table string) error
|
|
DropAllTables(database string) error
|
|
CreateDatabase(database string) error
|
|
DropDatabase(database string) error
|
|
Exec(stmt string, args ...interface{}) error
|
|
}
|
|
|
|
// Tx defines the API for a SQL transaction
|
|
Tx interface {
|
|
TableCRUD
|
|
Commit() error
|
|
Rollback() error
|
|
}
|
|
|
|
// DB defines the API for regular SQL operations of a Temporal server
|
|
DB interface {
|
|
TableCRUD
|
|
GenericDB
|
|
BeginTx(ctx context.Context) (Tx, error)
|
|
IsDupEntryError(err error) bool
|
|
}
|
|
|
|
// AdminDB defines the API for admin SQL operations for CLI and testing suites
|
|
AdminDB interface {
|
|
AdminCRUD
|
|
GenericDB
|
|
ExpectedVersion() string
|
|
VerifyVersion() error
|
|
}
|
|
|
|
GenericDB interface {
|
|
DbName() string
|
|
PluginName() string
|
|
Close() error
|
|
}
|
|
|
|
// Conn defines the API for a single database connection
|
|
Conn interface {
|
|
Rebind(query string) string
|
|
ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
|
|
NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error)
|
|
GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
|
|
SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
|
|
PrepareNamedContext(ctx context.Context, query string) (*sqlx.NamedStmt, error)
|
|
}
|
|
)
|
|
|
|
func (k DbKind) String() string {
|
|
switch k {
|
|
case DbKindMain:
|
|
return "main"
|
|
case DbKindVisibility:
|
|
return "visibility"
|
|
default:
|
|
return "unknown"
|
|
}
|
|
}
|