Documentation
¶
Overview ¶
Package metacmd contains meta information and implentation for usql's backslash (\) commands.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var SectionOrder = []Section{ SectionGeneral, SectionQueryExecute, SectionQueryBuffer, SectionHelp, SectionInputOutput, SectionInformational, SectionFormatting, SectionTransaction, SectionConnection, SectionOperatingSystem, SectionVariables, }
SectionOrder is the order of sections to display via Listing.
Functions ¶
Types ¶
type Cmd ¶
type Cmd struct {
Section Section
Name string
Desc Desc
Aliases map[string]Desc
Process func(*Params) error
}
Cmd is a command implementation.
type ExecType ¶
type ExecType int
ExecType represents the type of execution requested.
const ( // ExecNone indicates no execution. ExecNone ExecType = iota // ExecOnly indicates plain execution only (\g). ExecOnly // ExecPipe indicates execution and piping results (\g |file) ExecPipe // ExecSet indicates execution and setting the resulting columns as // variables (\gset). ExecSet // ExecExec indicates execution and executing the resulting rows (\gexec). ExecExec // ExecCrosstab indicates execution using crosstabview (\crosstabview). ExecCrosstab // ExecWatch indicates repeated execution with a fixed time interval. ExecWatch )
type Handler ¶
type Handler interface {
// IO handles the handler's IO.
IO() rline.IO
// User returns the current user.
User() *user.User
// URL returns the current database URL.
URL() *dburl.URL
// DB returns the current database connection.
DB() drivers.DB
// Last returns the last executed query.
Last() string
// LastRaw returns the last raw (non-interpolated) query.
LastRaw() string
// Buf returns the current query buffer.
Buf() *stmt.Stmt
// Reset resets the last and current query buffer.
Reset([]rune)
// Open opens a database connection.
Open(context.Context, ...string) error
// Close closes the current database connection.
Close() error
// ChangePassword changes the password for a user.
ChangePassword(string) (string, error)
// ReadVar reads a variable of a specified type.
ReadVar(string, string) (string, error)
// Include includes a file.
Include(string, bool) error
// Begin begins a transaction.
Begin(*sql.TxOptions) error
// Commit commits the current transaction.
Commit() error
// Rollback aborts the current transaction.
Rollback() error
// Highlight highlights the statement.
Highlight(io.Writer, string) error
// GetTiming mode.
GetTiming() bool
// SetTiming mode.
SetTiming(bool)
// GetOutput writer.
GetOutput() io.Writer
// SetOutput writer.
SetOutput(io.WriteCloser)
// MetadataWriter retrieves the metadata writer for the handler.
MetadataWriter(context.Context) (metadata.Writer, error)
// Print formats according to a format specifier and writes to handler's standard output.
Print(string, ...interface{})
}
Handler is the shared interface for a command handler.
type Metacmd ¶
type Metacmd uint
Metacmd represents a command and associated meta information about it.
const ( // None is an empty command. None Metacmd = iota // Question is question meta command (\?) Question // Quit is the quit meta command (\?). Quit // Copyright is the copyright meta command (\copyright). Copyright // Connect is the connect meta command (\c, \connect). Connect // Copy is the copy meta command (\copy). Copy // Disconnect is the disconnect meta command (\Z). Disconnect // Password is the change password meta command (\password). Password // ConnectionInfo is the connection info meta command (\conninfo). ConnectionInfo // Drivers is the driver info meta command (\drivers). Drivers // Describe is the describe meta command (\d and variants). Describe // Exec is the execute meta command (\g and variants). Exec // Edit is the edit query buffer meta command (\e). Edit // Print is the print query buffer meta command (\p, \print, \raw). Print // Reset is the reset query buffer meta command (\r, \reset). Reset // Echo is the echo meta command (\echo, \warn, \qecho). Echo // Write is the write meta command (\w). Write // ChangeDir is the system change directory meta command (\cd). ChangeDir // SetEnv is the system set environment variable meta command (\setenv). SetEnv // Shell is the system shell exec meta command (\!). Shell // Out is the switch output meta command (\o). Out // Include is the system include file meta command (\i and variants). Include // Transact is the transaction meta command (\begin, \commit, \rollback). Transact // Prompt is the variable prompt meta command (\prompt). Prompt // SetVar is the set variable meta command (\set). SetVar // Unset is the variable unset meta command (\unset). Unset // SetFormatVar is the set format variable meta commands (\pset, \a, \C, \f, \H, \t, \T, \x). SetFormatVar // Timing is the timing meta command (\timing). Timing // Stats is the show stats meta command (\ss and variants). Stats )
Command types.
type Option ¶ added in v0.14.13
type Option struct {
// Quit instructs the handling code to quit.
Quit bool
// Exec informs the handling code of the type of execution.
Exec ExecType
// Params are accompanying string parameters for execution.
Params map[string]string
// Crosstab are the crosstab column parameters.
Crosstab []string
// Watch is the watch duration interval.
Watch time.Duration
}
Option contains parsed result options of a metacmd.
type Params ¶ added in v0.5.0
type Params struct {
// Handler is the process handler.
Handler Handler
// Name is the name of the metacmd.
Name string
// Params are the actual statement parameters.
Params *stmt.Params
// Option contains resulting command execution options.
Option Option
}
Params wraps metacmd parameters.
func (*Params) Get ¶ added in v0.14.13
Get returns the next command parameter, using env.Unquote to decode quoted strings.
func (*Params) GetAll ¶ added in v0.14.13
GetAll gets all remaining command parameters using env.Unquote to decode quoted strings.
func (*Params) GetOK ¶ added in v0.14.13
GetOK returns the next command parameter, using env.Unquote to decode quoted strings.
func (*Params) GetOptional ¶ added in v0.14.13
GetOptional returns the next command parameter, using env.Unquote to decode quoted strings, returns true when the value is prefixed with a "-", along with the value sans the "-" prefix. Otherwise returns false and the value.
type RunnerFunc ¶
RunnerFunc is a type wrapper for a single func satisfying Runner.Run.
type Section ¶
type Section string
Section is a meta command section.
const ( SectionGeneral Section = "General" SectionQueryExecute Section = "Query Execute" SectionQueryBuffer Section = "Query Buffer" SectionHelp Section = "Help" SectionTransaction Section = "Transaction" SectionInputOutput Section = "Input/Output" SectionInformational Section = "Informational" SectionFormatting Section = "Formatting" SectionConnection Section = "Connection" SectionOperatingSystem Section = "Operating System" SectionVariables Section = "Variables" )
Meta command section types.