Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Result ¶
type Result interface {
// NextResultSet selects next result set in the result.
// columns - names of columns in the resultSet that will be scanned
// It returns false if there are no more result sets.
// Stream sets are supported.
NextResultSet(ctx context.Context, columns ...string) bool
// CurrentResultSet get current result set to use ColumnCount(), RowCount() and other methods
CurrentResultSet() ResultSet
// HasNextRow reports whether result row may be advanced.
// It may be useful to call HasNextRow() instead of NextRow() to look ahead
// without advancing the result rows.
HasNextRow() bool
// NextRow selects next row in the current result set.
// It returns false if there are no more rows in the result set.
NextRow() bool
// ScanWithDefaults scan with default types values.
// Nil values applied as default value types
// Input params - pointers to types.
ScanWithDefaults(values ...interface{}) error
// Scan values.
// Input params - pointers to types:
// bool
// int8
// uint8
// int16
// uint16
// int32
// uint32
// int64
// uint64
// float32
// float64
// []byte
// [16]byte
// string
// time.Time
// time.Duration
// ydb.Value
// For custom types implement sql.Scanner interface.
// For optional types use double pointer construction.
// For unknown types use interface types.
// Supported scanning byte arrays of various length.
// For complex yql types: Dict, List, Tuple and own specific scanning logic implement ydb.Scanner with UnmarshalYDB method
// See examples for more detailed information.
// Output param - Scanner error
Scan(values ...interface{}) error
// Stats returns query execution QueryStats.
Stats() (s stats.QueryStats)
// Err return scanner error
// To handle errors, do not need to check after scanning each row
// It is enough to check after reading all ResultSet
Err() error
// Close closes the Result, preventing further iteration.
Close() error
// HasNextResultSet reports whether result set may be advanced.
// It may be useful to call HasNextResultSet() instead of NextResultSet() to look ahead
// without advancing the result set.
// Note that it does not work with sets from stream.
HasNextResultSet() bool
// ResultSetCount returns number of result sets.
// Note that it does not work if r is the result of streaming operation.
ResultSetCount() int
// TotalRowCount returns the number of rows among the all result sets.
// Note that it does not work if r is the result of streaming operation.
TotalRowCount() int
}
Result is a result of a query.
Use NextResultSet(), NextRow() and Scan() to advance through the result sets, its rows and row's items.
res, err := s.Execute(ctx, txc, "SELECT ...")
defer res.Close()
for res.NextResultSet(ctx) {
for res.NextRow() {
var id int64
var name *string //optional value
res.Scan(&id,&name)
}
}
if err := res.err() { // get any error encountered during iteration
// handle error
}
If current value under scan is not requested types, then res.err() become non-nil. After that, NextResultSet(), NextRow() will return false.
type ResultSet ¶
type ResultSet interface {
// ColumnCount returns number of columns in the current result set.
ColumnCount() int
// Columns allows to iterate over all columns of the current result set.
Columns(it func(options.Column))
// RowCount returns number of rows in the result set.
RowCount() int
// ItemCount returns number of items in the current row.
ItemCount() int
// Truncated returns true if current result set has been truncated by server
Truncated() bool
}
Click to show internal directories.
Click to hide internal directories.