Help us shape the future of Go! Take the 2026 Go Developer Survey

sail

package
v0.11.783 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewColumnCheckOperator

func NewColumnCheckOperator(manager config.ConnectionGetter) *ansisql.ColumnCheckOperator

NewColumnCheckOperator builds the column-check runner for Sail. The generic numeric/null checks come from ansisql, but accepted_values and pattern need Spark SQL syntax (see the types below) rather than the Presto-flavored SQL the athena checks emit.

func NewMaterializer

func NewMaterializer(fullRefresh bool) *pipeline.Materializer

NewMaterializer builds a materializer that renders Sail (Spark SQL) SQL.

Types

type AcceptedValuesCheck

type AcceptedValuesCheck struct {
	// contains filtered or unexported fields
}

func NewAcceptedValuesCheck

func NewAcceptedValuesCheck(conn config.ConnectionGetter) *AcceptedValuesCheck

func (*AcceptedValuesCheck) Check

type BasicOperator

type BasicOperator struct {
	// contains filtered or unexported fields
}

func NewBasicOperator

func NewBasicOperator(conn config.ConnectionGetter, extractor query.QueryExtractor, fullRefresh bool, hoister pipeline.DeclareHoister, parser *sqlparser.SQLParser) *BasicOperator

func (BasicOperator) Run

func (BasicOperator) RunTask

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(c Config) (*Client, error)

func (*Client) CreateSchemaIfNotExist

func (c *Client) CreateSchemaIfNotExist(ctx context.Context, asset *pipeline.Asset) error

CreateSchemaIfNotExist ensures the schema (Spark database) an asset's table lives in exists before the table is created. Sail rejects a CREATE TABLE into a database that does not exist ("Database not found: ..."), so we create it first with CREATE SCHEMA IF NOT EXISTS.

func (*Client) GetDatabaseSummary

func (c *Client) GetDatabaseSummary(ctx context.Context) (*ansisql.DBDatabase, error)

GetDatabaseSummary introspects the available schemas and tables using the ANSI information_schema.

func (*Client) Ping

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

func (*Client) RunQueryWithoutResult

func (c *Client) RunQueryWithoutResult(ctx context.Context, query *query.Query) error

func (*Client) Select

func (c *Client) Select(ctx context.Context, query *query.Query) ([][]interface{}, error)

func (*Client) SelectWithSchema

func (c *Client) SelectWithSchema(ctx context.Context, queryObj *query.Query) (*query.QueryResult, error)

type Config

type Config struct {
	Host          string
	Port          int
	Username      string
	Password      string
	Token         string
	Database      string
	TLS           bool
	TLSSkipVerify bool
}

Config holds the connection parameters for a Sail platform.

Sail (LakeSail / PySail) exposes an Arrow Flight SQL server and speaks Spark SQL. Flight SQL is served in Go by the apache/arrow-adbc Flight SQL driver. Sail does not require authentication by default; the username/password and bearer Token fields are provided for deployments that put auth in front of it. Token and username/password are mutually exclusive.

func (Config) GetDatabase

func (c Config) GetDatabase() string

func (Config) ToDSN

func (c Config) ToDSN() (string, error)

ToDSN builds a DSN understood by the ADBC Flight SQL database/sql driver. The driver parses the DSN as a ";"-separated list of "key=value" options, where the keys are the standard ADBC option names (uri, username, password, adbc.flight.sql.*).

The driver does not unescape values, so credentials are passed through verbatim; a ";" in a credential would split the DSN into a bogus option and fail to parse. We reject that explicitly rather than corrupt the value. ("=" is safe because the driver splits each option on its first "=" only.)

type PatternCheck

type PatternCheck struct {
	// contains filtered or unexported fields
}

func NewPatternCheck

func NewPatternCheck(conn config.ConnectionGetter) *PatternCheck

func (*PatternCheck) Check

Jump to

Keyboard shortcuts

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