pgcopy2vals

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

View Source
const PgtimeOffset int64 = 10957 * 86400 * 1000 * 1000

Variables

View Source
var (
	ErrColumnNameNotFound error = errors.New("column name not found")

	ErrInvalidWord  error = errors.New("invalid word")
	ErrInvalidQword error = errors.New("invalid qword")

	ErrInvalidDword error = errors.New("invalid dword")
	ErrMayBeWord    error = errors.New("invalid dword: may be word")

	ErrInvalidBool error = errors.New("invalid bool")

	ErrUnexpectedNull error = errors.New("unexpected null")

	ErrConvGenMissing error = errors.New("converter creator missing")

	ErrConverterMissing error = errors.New("converter missing")

	ErrInvalidUuid error = errors.New("invalid uuid")
)
View Source
var JoinedNamesToNameResolverMapDefault func(
	string,
) map[int16]string = Curry(JoinedNamesToNameResolverMap)(",")
View Source
var JsonsFilenameToColumnInfoMap func(string) map[int16]ColumnInfo = Compose(
	JsonsFilenameToColumnInfo,
	ColumnInfoMapFromIter,
)
View Source
var MapToNameResolver func(map[int16]string) func(int16) (string, error) = rs.
	GetValueByKeyFromMap[int16, string](
	func(ix int16) error {
		return fmt.Errorf("%w: %v", ErrColumnNameNotFound, ix)
	},
)
View Source
var PgRowsFromStdin IO[iter.Seq2[PgRow, error]] = OfFn(StdinToPgRows)

Functions

func ByteToBool

func ByteToBool(b byte) bool

func ColumnIndexToColumnToValueNew

func ColumnIndexToColumnToValueNew(
	typ2cfg2conv TypeToConfigToConverter,
	cfg PgColumnConverterConfig,
	indices []int16,
	index2type IndexToType,
) func(int16, PgColumn) IO[sw.Value]

func ColumnIndexToColumnToValueNewDefault

func ColumnIndexToColumnToValueNewDefault(
	indices []int16,
	index2type IndexToType,
) func(int16, PgColumn) IO[sw.Value]

func ColumnIndexToColumnToValueNewDefaultFromMap

func ColumnIndexToColumnToValueNewDefaultFromMap(
	ix2typMap map[int16]rs.PrimitiveType,
) func(int16, PgColumn) IO[sw.Value]

func ColumnInfoMapFromIter

func ColumnInfoMapFromIter(
	i iter.Seq2[ColumnInfo, error],
) map[int16]ColumnInfo

func ColumnMapToPgRows

func ColumnMapToPgRows(
	colmap map[int16]ColumnInfo,
) func(iter.Seq2[PgRow, error]) IO[iter.Seq2[map[string]sw.Value, error]]

func FilenameToColumnInfoMap

func FilenameToColumnInfoMap(filename string) IO[map[int16]ColumnInfo]

func JoinedNamesToNameResolverMap

func JoinedNamesToNameResolverMap(
	split string,
	joined string,
) map[int16]string

func JsonsFilenameToColumnInfo

func JsonsFilenameToColumnInfo(
	filename string,
) iter.Seq2[ColumnInfo, error]

func JsonsToColumnInfo

func JsonsToColumnInfo(
	jsons io.Reader,
) iter.Seq2[ColumnInfo, error]

func MapGetOrInsert

func MapGetOrInsert[K comparable, V any](
	m map[K]V,
	key K,
	onMissing func() V,
) V

func NamesToNameResolverMap

func NamesToNameResolverMap(
	names iter.Seq[string],
) map[int16]string

func NullableMap

func NullableMap[T, U any](
	input sql.Null[T],
	convert func(T) U,
) sql.Null[U]

func PgRowsToValues

func PgRowsToValues(
	ctx context.Context,
	rows iter.Seq2[PgRow, error],
	ix2name ColumnIndexToColumnName,
	col2val func(int16, PgColumn) IO[sw.Value],
) iter.Seq2[map[string]sw.Value, error]

func PgRowsToValuesFromColumnMap

func PgRowsToValuesFromColumnMap(
	ctx context.Context,
	rows iter.Seq2[PgRow, error],
	colmap map[int16]ColumnInfo,
) iter.Seq2[map[string]sw.Value, error]

func ReaderToPgRows

func ReaderToPgRows(
	rdr io.Reader,
) iter.Seq2[PgRow, error]

func StdinToPgRows

func StdinToPgRows() iter.Seq2[PgRow, error]

Types

type ColumnIndexToCol2Val

type ColumnIndexToCol2Val func(int16) PgColumnToValue

type ColumnIndexToColumnName

type ColumnIndexToColumnName func(int16) (string, error)

type ColumnInfo

type ColumnInfo struct {
	Name string
	rs.PrimitiveType
}

func ColumInfoNew

func ColumInfoNew(name string, typeString string) (ColumnInfo, error)

type ColumnInfoRaw

type ColumnInfoRaw struct {
	Name                string `json:"name"`
	PrimitiveTypeString string `json:"type"`
}

func (ColumnInfoRaw) ToColumnInfo

func (r ColumnInfoRaw) ToColumnInfo() (ColumnInfo, error)

type ConfigToConverter

type ConfigToConverter func(PgColumnConverterConfig) PgColumnToValue

type IndexToType

type IndexToType func(int16) rs.PrimitiveType

func MapToIndexToType

func MapToIndexToType(m map[int16]rs.PrimitiveType) IndexToType

type PgColumn

type PgColumn struct {
	Size    int32
	Content []byte
}

func (PgColumn) IsNull

func (p PgColumn) IsNull() bool

func (PgColumn) String

func (p PgColumn) String() string

func (PgColumn) ToBytes

func (p PgColumn) ToBytes() []byte

func (PgColumn) ToNullableBoolean

func (p PgColumn) ToNullableBoolean() (sql.Null[bool], error)

func (PgColumn) ToNullableDouble

func (p PgColumn) ToNullableDouble() (sql.Null[float64], error)

func (PgColumn) ToNullableDword

func (p PgColumn) ToNullableDword() (sql.Null[uint32], error)

func (PgColumn) ToNullableFloat

func (p PgColumn) ToNullableFloat() (sql.Null[float32], error)

func (PgColumn) ToNullableInt

func (p PgColumn) ToNullableInt() (sql.Null[int32], error)

func (PgColumn) ToNullableLong

func (p PgColumn) ToNullableLong() (sql.Null[int64], error)

func (PgColumn) ToNullableQword

func (p PgColumn) ToNullableQword() (sql.Null[uint64], error)

func (PgColumn) ToNullableShortInt

func (p PgColumn) ToNullableShortInt() (sql.Null[int32], error)

func (PgColumn) ToNullableString

func (p PgColumn) ToNullableString(
	checker func(string) error,
	buf *strings.Builder,
) (sql.Null[string], error)

func (PgColumn) ToNullableTime

func (p PgColumn) ToNullableTime() (sql.Null[time.Time], error)

func (PgColumn) ToNullableUuid

func (p PgColumn) ToNullableUuid() (sql.Null[uuid.UUID], error)

func (PgColumn) ToNullableWord

func (p PgColumn) ToNullableWord() (sql.Null[uint16], error)

func (PgColumn) ToValueBoolean

func (p PgColumn) ToValueBoolean() sw.Value

func (PgColumn) ToValueBytes

func (p PgColumn) ToValueBytes() sw.Value

func (PgColumn) ToValueDouble

func (p PgColumn) ToValueDouble() sw.Value

func (PgColumn) ToValueFloat

func (p PgColumn) ToValueFloat() sw.Value

func (PgColumn) ToValueInt

func (p PgColumn) ToValueInt() sw.Value

func (PgColumn) ToValueLong

func (p PgColumn) ToValueLong() sw.Value

func (PgColumn) ToValueNull

func (p PgColumn) ToValueNull() sw.Value

func (PgColumn) ToValueNullBoolean

func (p PgColumn) ToValueNullBoolean() sw.Value

func (PgColumn) ToValueNullBytes

func (p PgColumn) ToValueNullBytes() sw.Value

func (PgColumn) ToValueNullDouble

func (p PgColumn) ToValueNullDouble() sw.Value

func (PgColumn) ToValueNullFloat

func (p PgColumn) ToValueNullFloat() sw.Value

func (PgColumn) ToValueNullInt

func (p PgColumn) ToValueNullInt() sw.Value

func (PgColumn) ToValueNullLong

func (p PgColumn) ToValueNullLong() sw.Value

func (PgColumn) ToValueNullString

func (p PgColumn) ToValueNullString(
	checker func(string) error,
	buf *strings.Builder,
) sw.Value

func (PgColumn) ToValueNullTime

func (p PgColumn) ToValueNullTime() sw.Value

func (PgColumn) ToValueNullUuid

func (p PgColumn) ToValueNullUuid() sw.Value

func (PgColumn) ToValueString

func (p PgColumn) ToValueString(
	checker func(string) error,
	buf *strings.Builder,
) sw.Value

func (PgColumn) ToValueTime

func (p PgColumn) ToValueTime() sw.Value

func (PgColumn) ToValueUuid

func (p PgColumn) ToValueUuid() sw.Value

type PgColumnConverterConfig

type PgColumnConverterConfig struct{ StringChecker }

type PgColumnToValue

type PgColumnToValue func(PgColumn) IO[sw.Value]

type PgRow

type PgRow []PgColumn

type StringChecker

type StringChecker func(string) error
var StringCheckerTrusted StringChecker = func(_ string) error { return nil }

type TypeToConfigToConverter

type TypeToConfigToConverter func(rs.PrimitiveType) (ConfigToConverter, error)
var TypeToConvGen TypeToConfigToConverter = rs.
	GetValueByKeyFromMap[rs.PrimitiveType, ConfigToConverter](
	func(typ rs.PrimitiveType) error {
		return fmt.Errorf("%w: %v", ErrConvGenMissing, typ)
	},
)(type2convGenMap)

type TypeToConverterMap

type TypeToConverterMap map[rs.PrimitiveType]ConfigToConverter

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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