Documentation
¶
Index ¶
- Constants
- func CreateTlsConfig(minVersion uint16, rootCAs *string, host string, tlsHost string, ...) (*tls.Config, error)
- func CreateTlsConfigFromRootCAString(minVersion uint16, rootCAs string, host string, tlsHost string, ...) (*tls.Config, error)
- func HeartbeatRoutine(ctx context.Context, message func() string) func()
- func Interval(ctx context.Context, freq time.Duration, fn func()) func()
- func ParseNumericTypmod(typmod int32) (int16, int16)
- func QuoteIdentifier(name string) string
- func QuoteMySQLIdentifier(name string) string
- func RandomString(n int) string
- type ClientCertificate
- type QualifiedTable
- type ReplicaIdentifierInUseError
- type SourceTablesMissingError
- type TablesNotInPublicationError
Constants ¶
const ( ErrorInfoDomain = "peerdb.io" // MaxTablesInErrorDetails bounds table lists carried in gRPC status metadata. // Rich gRPC errors are transported in response headers/trailers, which have // substantially smaller limits than response bodies. MaxTablesInErrorDetails = 20 ErrorInfoReasonMirror = "MIRROR" ErrorInfoReasonSourceTableMissing = "SOURCE_TABLE_MISSING" ErrorInfoReasonTablesNotInPublication = "TABLES_NOT_IN_PUBLICATION" ErrorInfoReasonSourceValidationFailed = "SOURCE_VALIDATION_FAILED" ErrorMetadataOffendingField = "offendingField" ErrorMetadataPublication = "publication" ErrorMetadataTableCount = "tableCount" )
gRPC ErrorInfo constants
const ( OrgIdTag = "org_id" ServiceIdTag = "service_id" PipeIdTag = "pipe_id" PipeNameTag = "pipe_name" )
Variables ¶
This section is empty.
Functions ¶
func CreateTlsConfig ¶
func CreateTlsConfigFromRootCAString ¶
func CreateTlsConfigFromRootCAString( minVersion uint16, rootCAs string, host string, tlsHost string, skipCertVerification bool, ) (*tls.Config, error)
CreateTlsConfigFromRootCAString adapts CreateTlsConfig for callers that pass rootCAs as a string rather than *string (e.g. mongo ClientConfig). Empty string is treated as no custom CA.
func HeartbeatRoutine ¶
func ParseNumericTypmod ¶
ParseNumericTypmod reverses what make_numeric_typmod of Postgres does: https://github.com/postgres/postgres/blob/21912e3c0262e2cfe64856e028799d6927862563/src/backend/utils/adt/numeric.c#L897
func QuoteIdentifier ¶
QuoteIdentifier quotes an "identifier" (e.g. a table or a column name) to be used as part of an SQL statement. For example:
tblname := "my_table"
data := "my_data"
quoted := common.QuoteIdentifier(tblname)
err := db.Exec(fmt.Sprintf("INSERT INTO %s VALUES ($1)", quoted), data)
Any double quotes in name will be escaped. The quoted identifier will be case-sensitive when used in a query. If the input string contains a zero byte, the result will be truncated immediately before it.
func QuoteMySQLIdentifier ¶
func RandomString ¶
Types ¶
type ClientCertificate ¶
type ClientCertificate struct {
// contains filtered or unexported fields
}
ClientCertificate is a PEM-encoded client certificate and its private key, for mutual TLS.
func NewClientCertificate ¶
func NewClientCertificate(certificate string, privateKey string) (*ClientCertificate, error)
NewClientCertificate requires both the certificate and private key to be non-empty.
type QualifiedTable ¶
type QualifiedTable struct {
Namespace string // schema in PG, database in MySQL/Mongo
Table string // table or collection
}
func ParseTableIdentifier ¶
func ParseTableIdentifier(tableIdentifier string) (*QualifiedTable, error)
ParseTableIdentifier parses a table name into namespace and table name.
func (QualifiedTable) MySQL ¶
func (t QualifiedTable) MySQL() string
func (QualifiedTable) String ¶
func (t QualifiedTable) String() string
type ReplicaIdentifierInUseError ¶
type ReplicaIdentifierInUseError struct {
Id string
}
func NewReplicaIdentifierInUseError ¶
func NewReplicaIdentifierInUseError(id string) *ReplicaIdentifierInUseError
func (*ReplicaIdentifierInUseError) Error ¶
func (e *ReplicaIdentifierInUseError) Error() string
type SourceTablesMissingError ¶
type SourceTablesMissingError struct {
Tables []QualifiedTable
}
func NewSourceTablesMissingError ¶
func NewSourceTablesMissingError(tables []QualifiedTable) *SourceTablesMissingError
func (*SourceTablesMissingError) Error ¶
func (e *SourceTablesMissingError) Error() string
type TablesNotInPublicationError ¶
type TablesNotInPublicationError struct {
Publication string
Tables []QualifiedTable
}
func NewTablesNotInPublicationError ¶
func NewTablesNotInPublicationError(publication string, tables []QualifiedTable) *TablesNotInPublicationError
func (*TablesNotInPublicationError) Error ¶
func (e *TablesNotInPublicationError) Error() string