Documentation ¶
Overview ¶
* * Copyright (c) 2024 vesoft inc. All rights reserved. * * This source code is licensed under Apache 2.0 License. *
Index ¶
- Constants
- func GetDefaultSSLConfig(rootCAPath, certPath, privateKeyPath string) (*tls.Config, error)
- func IndexOf(collection []string, element string) int
- func IsError(resp *graph.ExecutionResponse) bool
- func MakeOperatorInfo(planNodeDesc *graph.PlanNodeDescription) string
- func MakeProfilingData(planNodeDesc *graph.PlanNodeDescription, isTckFmt bool) string
- type ConnectionPool
- type DateTimeWrapper
- type DateWrapper
- type DefaultLogger
- type ErrorCode
- type HostAddress
- type Label
- type LabelFieldSchema
- type LabelName
- type LabelSchema
- type Logger
- type Node
- func (node Node) GetID() ValueWrapper
- func (node Node) GetTags() []string
- func (node Node) HasTag(label string) bool
- func (n1 Node) IsEqualTo(n2 *Node) bool
- func (node Node) Keys(tagName string) ([]string, error)
- func (node Node) Properties(tagName string) (map[string]*ValueWrapper, error)
- func (node Node) String() string
- func (node Node) Values(tagName string) ([]*ValueWrapper, error)
- type PathWrapper
- func (path *PathWrapper) ContainsNode(node Node) bool
- func (path *PathWrapper) ContainsRelationship(relationship *Relationship) bool
- func (path *PathWrapper) GetEndNode() (*Node, error)
- func (path *PathWrapper) GetNodes() []*Node
- func (path *PathWrapper) GetPathLength() int
- func (path *PathWrapper) GetRelationships() []*Relationship
- func (path *PathWrapper) GetSegments() []segment
- func (path *PathWrapper) GetStartNode() (*Node, error)
- func (p1 *PathWrapper) IsEqualTo(p2 *PathWrapper) bool
- func (pathWrap *PathWrapper) String() string
- type PoolConfig
- type Record
- type Relationship
- func (relationship Relationship) GetDstVertexID() ValueWrapper
- func (relationship Relationship) GetEdgeName() string
- func (relationship Relationship) GetRanking() int64
- func (relationship Relationship) GetSrcVertexID() ValueWrapper
- func (r1 Relationship) IsEqualTo(r2 *Relationship) bool
- func (relationship Relationship) Keys() []string
- func (relationship Relationship) Properties() map[string]*ValueWrapper
- func (relationship Relationship) String() string
- func (relationship Relationship) Values() []*ValueWrapper
- type ResultSet
- func (res ResultSet) AsStringTable() [][]string
- func (res ResultSet) GetColNames() []string
- func (res ResultSet) GetColSize() int
- func (res ResultSet) GetComment() string
- func (res ResultSet) GetErrorCode() ErrorCode
- func (res ResultSet) GetErrorMsg() string
- func (res ResultSet) GetLatency() int64
- func (res ResultSet) GetLatencyInMs() int64
- func (res ResultSet) GetPlanDesc() *graph.PlanDescription
- func (res ResultSet) GetRowSize() int
- func (res ResultSet) GetRowValuesByIndex(index int) (*Record, error)
- func (res ResultSet) GetRows() []*nebula.Row
- func (res ResultSet) GetSpaceName() string
- func (res ResultSet) GetValuesByColName(colName string) ([]*ValueWrapper, error)
- func (res ResultSet) IsEmpty() bool
- func (res ResultSet) IsPartialSucceed() bool
- func (res ResultSet) IsSetComment() bool
- func (res ResultSet) IsSetData() bool
- func (res ResultSet) IsSetPlanDesc() bool
- func (res ResultSet) IsSucceed() bool
- func (res ResultSet) MakeDotGraph() string
- func (res ResultSet) MakeDotGraphByStruct() string
- func (res ResultSet) MakePlanByRow() [][]interface{}
- func (res ResultSet) MakePlanByTck() [][]interface{}
- func (res ResultSet) Scan(v interface{}) error
- type SchemaManager
- type Session
- func (session *Session) CreateSpace(conf SpaceConf) (*ResultSet, error)
- func (session *Session) Execute(stmt string) (*ResultSet, error)
- func (session *Session) ExecuteAndCheck(stmt string) (*ResultSet, error)
- func (session *Session) ExecuteJson(stmt string) ([]byte, error)
- func (session *Session) ExecuteJsonWithParameter(stmt string, params map[string]interface{}) ([]byte, error)
- func (session *Session) ExecuteWithParameter(stmt string, params map[string]interface{}) (*ResultSet, error)
- func (session *Session) ExecuteWithParameterTimeout(stmt string, params map[string]interface{}, timeoutMs int64) (*ResultSet, error)
- func (session *Session) ExecuteWithTimeout(stmt string, timeoutMs int64) (*ResultSet, error)
- func (session *Session) GetSessionID() int64
- func (session *Session) Ping() error
- func (session *Session) Release()
- func (session *Session) ShowSpaces() ([]SpaceName, error)
- type SessionPool
- func (pool *SessionPool) AddEdgeTTL(tagName string, colName string, duration uint) (*ResultSet, error)
- func (pool *SessionPool) AddTagTTL(tagName string, colName string, duration uint) (*ResultSet, error)
- func (pool *SessionPool) Close()
- func (pool *SessionPool) CreateEdge(edge LabelSchema) (*ResultSet, error)
- func (pool *SessionPool) CreateTag(tag LabelSchema) (*ResultSet, error)
- func (pool *SessionPool) DescEdge(edgeName string) ([]Label, error)
- func (pool *SessionPool) DescTag(tagName string) ([]Label, error)
- func (pool *SessionPool) Execute(stmt string) (*ResultSet, error)
- func (pool *SessionPool) ExecuteAndCheck(q string) (*ResultSet, error)
- func (pool *SessionPool) ExecuteJson(stmt string) ([]byte, error)
- func (pool *SessionPool) ExecuteJsonWithParameter(stmt string, params map[string]interface{}) ([]byte, error)
- func (pool *SessionPool) ExecuteWithParameter(stmt string, params map[string]interface{}) (*ResultSet, error)
- func (pool *SessionPool) ExecuteWithParameterTimeout(stmt string, params map[string]interface{}, timeoutMs int64) (*ResultSet, error)
- func (pool *SessionPool) ExecuteWithTimeout(stmt string, timeoutMs int64) (*ResultSet, error)
- func (pool *SessionPool) GetEdgeTTL(edgeName string) (string, uint, error)
- func (pool *SessionPool) GetTagTTL(tagName string) (string, uint, error)
- func (pool *SessionPool) GetTotalSessionCount() int
- func (pool *SessionPool) ShowEdges() ([]LabelName, error)
- func (pool *SessionPool) ShowSpaces() ([]SpaceName, error)
- func (pool *SessionPool) ShowTags() ([]LabelName, error)
- type SessionPoolConf
- type SessionPoolConfOption
- func WithHTTP2(useHTTP2 bool) SessionPoolConfOption
- func WithHandshakeKey(handshakeKey string) SessionPoolConfOption
- func WithHttpHeader(header http.Header) SessionPoolConfOption
- func WithIdleTime(idleTime time.Duration) SessionPoolConfOption
- func WithMaxSize(maxSize int) SessionPoolConfOption
- func WithMinSize(minSize int) SessionPoolConfOption
- func WithSSLConfig(sslConfig *tls.Config) SessionPoolConfOption
- func WithTimeOut(timeOut time.Duration) SessionPoolConfOption
- type SpaceConf
- type SpaceName
- type TimeWrapper
- type ValueWrapper
- func (valWrap ValueWrapper) AsBool() (bool, error)
- func (valWrap ValueWrapper) AsDate() (*nebula.Date, error)
- func (valWrap ValueWrapper) AsDateTime() (*DateTimeWrapper, error)
- func (valWrap ValueWrapper) AsDedupList() ([]ValueWrapper, error)
- func (valWrap ValueWrapper) AsDuration() (*nebula.Duration, error)
- func (valWrap ValueWrapper) AsFloat() (float64, error)
- func (valWrap ValueWrapper) AsGeography() (*nebula.Geography, error)
- func (valWrap ValueWrapper) AsInt() (int64, error)
- func (valWrap ValueWrapper) AsList() ([]ValueWrapper, error)
- func (valWrap ValueWrapper) AsMap() (map[string]ValueWrapper, error)
- func (valWrap ValueWrapper) AsNode() (*Node, error)
- func (valWrap ValueWrapper) AsNull() (nebula.NullType, error)
- func (valWrap ValueWrapper) AsPath() (*PathWrapper, error)
- func (valWrap ValueWrapper) AsRelationship() (*Relationship, error)
- func (valWrap ValueWrapper) AsString() (string, error)
- func (valWrap ValueWrapper) AsTime() (*TimeWrapper, error)
- func (valWrap ValueWrapper) GetType() string
- func (valWrap ValueWrapper) IsBool() bool
- func (valWrap ValueWrapper) IsDate() bool
- func (valWrap ValueWrapper) IsDateTime() bool
- func (valWrap ValueWrapper) IsDuration() bool
- func (valWrap ValueWrapper) IsEdge() bool
- func (valWrap ValueWrapper) IsEmpty() bool
- func (valWrap ValueWrapper) IsFloat() bool
- func (valWrap ValueWrapper) IsGeography() bool
- func (valWrap ValueWrapper) IsInt() bool
- func (valWrap ValueWrapper) IsList() bool
- func (valWrap ValueWrapper) IsMap() bool
- func (valWrap ValueWrapper) IsNull() bool
- func (valWrap ValueWrapper) IsPath() bool
- func (valWrap ValueWrapper) IsSet() bool
- func (valWrap ValueWrapper) IsString() bool
- func (valWrap ValueWrapper) IsTime() bool
- func (valWrap ValueWrapper) IsVertex() bool
- func (valWrap ValueWrapper) String() string
Constants ¶
const ( ErrorTagNotFound = "TagNotFound: Tag not existed!" ErrorEdgeNotFound = "EdgeNotFound: Edge not existed!" )
Variables ¶
This section is empty.
Functions ¶
func GetDefaultSSLConfig ¶
GetDefaultSSLConfig reads the files in the given path and returns a tls.Config object
func IsError ¶
func IsError(resp *graph.ExecutionResponse) bool
func MakeOperatorInfo ¶
func MakeOperatorInfo(planNodeDesc *graph.PlanNodeDescription) string
generate operator info for Row format.
func MakeProfilingData ¶
func MakeProfilingData(planNodeDesc *graph.PlanNodeDescription, isTckFmt bool) string
generate profiling data for both Row and TCK formats.
Types ¶
type ConnectionPool ¶
type ConnectionPool struct {
// contains filtered or unexported fields
}
func NewConnectionPool ¶
func NewConnectionPool(addresses []HostAddress, conf PoolConfig, log Logger) (*ConnectionPool, error)
NewConnectionPool constructs a new connection pool using the given addresses and configs
func NewSslConnectionPool ¶
func NewSslConnectionPool(addresses []HostAddress, conf PoolConfig, sslConfig *tls.Config, log Logger) (*ConnectionPool, error)
NewConnectionPool constructs a new SSL connection pool using the given addresses and configs
func (*ConnectionPool) GetSession ¶
func (pool *ConnectionPool) GetSession(username, password string) (*Session, error)
GetSession authenticates the username and password. It returns a session if the authentication succeed.
func (*ConnectionPool) Ping ¶
func (pool *ConnectionPool) Ping(host HostAddress, timeout time.Duration) error
Ping checks availability of host
type DateTimeWrapper ¶
type DateTimeWrapper struct {
// contains filtered or unexported fields
}
func (DateTimeWrapper) GetLocalDateTimeWithTimezoneName ¶
func (dt DateTimeWrapper) GetLocalDateTimeWithTimezoneName(timezoneName string) (*nebula.DateTime, error)
GetLocalDateTimeWithTimezoneName returns a nebula.DateTime object representing local time using user specified timezone name.
If the name is "" or "UTC", LoadLocation returns UTC. If the name is "Local", LoadLocation returns Local.
Otherwise, the name is taken to be a location name corresponding to a file in the IANA Time Zone database, such as "America/New_York".
func (DateTimeWrapper) IsEqualTo ¶
func (dt1 DateTimeWrapper) IsEqualTo(dt2 DateTimeWrapper) bool
type DateWrapper ¶
type DateWrapper struct {
// contains filtered or unexported fields
}
func (DateWrapper) IsEqualTo ¶
func (d1 DateWrapper) IsEqualTo(d2 DateWrapper) bool
type DefaultLogger ¶
type DefaultLogger struct{}
func (DefaultLogger) Error ¶
func (l DefaultLogger) Error(msg string)
func (DefaultLogger) Fatal ¶
func (l DefaultLogger) Fatal(msg string)
func (DefaultLogger) Info ¶
func (l DefaultLogger) Info(msg string)
func (DefaultLogger) Warn ¶
func (l DefaultLogger) Warn(msg string)
type ErrorCode ¶
type ErrorCode int64
const ( ErrorCode_SUCCEEDED ErrorCode = ErrorCode(nebula.ErrorCode_SUCCEEDED) ErrorCode_E_DISCONNECTED ErrorCode = ErrorCode(nebula.ErrorCode_E_DISCONNECTED) ErrorCode_E_FAIL_TO_CONNECT ErrorCode = ErrorCode(nebula.ErrorCode_E_FAIL_TO_CONNECT) ErrorCode_E_RPC_FAILURE ErrorCode = ErrorCode(nebula.ErrorCode_E_RPC_FAILURE) ErrorCode_E_BAD_USERNAME_PASSWORD ErrorCode = ErrorCode(nebula.ErrorCode_E_BAD_USERNAME_PASSWORD) ErrorCode_E_SESSION_INVALID ErrorCode = ErrorCode(nebula.ErrorCode_E_SESSION_INVALID) ErrorCode_E_SESSION_TIMEOUT ErrorCode = ErrorCode(nebula.ErrorCode_E_SESSION_TIMEOUT) ErrorCode_E_SYNTAX_ERROR ErrorCode = ErrorCode(nebula.ErrorCode_E_SYNTAX_ERROR) ErrorCode_E_EXECUTION_ERROR ErrorCode = ErrorCode(nebula.ErrorCode_E_EXECUTION_ERROR) ErrorCode_E_STATEMENT_EMPTY ErrorCode = ErrorCode(nebula.ErrorCode_E_STATEMENT_EMPTY) ErrorCode_E_USER_NOT_FOUND ErrorCode = ErrorCode(nebula.ErrorCode_E_USER_NOT_FOUND) ErrorCode_E_BAD_PERMISSION ErrorCode = ErrorCode(nebula.ErrorCode_E_BAD_PERMISSION) ErrorCode_E_SEMANTIC_ERROR ErrorCode = ErrorCode(nebula.ErrorCode_E_SEMANTIC_ERROR) ErrorCode_E_PARTIAL_SUCCEEDED ErrorCode = ErrorCode(nebula.ErrorCode_E_PARTIAL_SUCCEEDED) )
type HostAddress ¶
type Label ¶
type Label struct { Field string `nebula:"Field"` Type string `nebula:"Type"` Null string `nebula:"Null"` Default string `nebula:"Default"` Comment string `nebula:"Comment"` }
func (Label) BuildDropEdgeFieldQL ¶
func (Label) BuildDropTagFieldQL ¶
type LabelFieldSchema ¶
func (LabelFieldSchema) BuildAddEdgeFieldQL ¶
func (field LabelFieldSchema) BuildAddEdgeFieldQL(labelName string) string
func (LabelFieldSchema) BuildAddTagFieldQL ¶
func (field LabelFieldSchema) BuildAddTagFieldQL(labelName string) string
type LabelSchema ¶
type LabelSchema struct { Name string Fields []LabelFieldSchema TTLDuration uint TTLCol string }
func (LabelSchema) BuildCreateEdgeQL ¶
func (edge LabelSchema) BuildCreateEdgeQL() string
func (LabelSchema) BuildCreateTagQL ¶
func (tag LabelSchema) BuildCreateTagQL() string
func (LabelSchema) BuildDropEdgeQL ¶
func (edge LabelSchema) BuildDropEdgeQL() string
func (LabelSchema) BuildDropTagQL ¶
func (tag LabelSchema) BuildDropTagQL() string
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
func (Node) Properties ¶
func (node Node) Properties(tagName string) (map[string]*ValueWrapper, error)
Properties returns all properties of a tag
type PathWrapper ¶
type PathWrapper struct {
// contains filtered or unexported fields
}
func (*PathWrapper) ContainsNode ¶
func (path *PathWrapper) ContainsNode(node Node) bool
func (*PathWrapper) ContainsRelationship ¶
func (path *PathWrapper) ContainsRelationship(relationship *Relationship) bool
func (*PathWrapper) GetEndNode ¶
func (path *PathWrapper) GetEndNode() (*Node, error)
func (*PathWrapper) GetNodes ¶
func (path *PathWrapper) GetNodes() []*Node
func (*PathWrapper) GetPathLength ¶
func (path *PathWrapper) GetPathLength() int
func (*PathWrapper) GetRelationships ¶
func (path *PathWrapper) GetRelationships() []*Relationship
func (*PathWrapper) GetSegments ¶
func (path *PathWrapper) GetSegments() []segment
func (*PathWrapper) GetStartNode ¶
func (path *PathWrapper) GetStartNode() (*Node, error)
func (*PathWrapper) IsEqualTo ¶
func (p1 *PathWrapper) IsEqualTo(p2 *PathWrapper) bool
func (*PathWrapper) String ¶
func (pathWrap *PathWrapper) String() string
Path format: <("VertexID" :tag1{k0: v0,k1: v1}) -[:TypeName@ranking {edgeProps}]-> ("VertexID2" :tag1{k0: v0,k1: v1} :tag2{k2: v2}) -[:TypeName@ranking {edgeProps}]-> ("VertexID3" :tag1{k0: v0,k1: v1})>
type PoolConfig ¶
type PoolConfig struct { // Socket timeout and Socket connection timeout, unit: seconds TimeOut time.Duration // The idleTime of the connection, unit: seconds // If connection's idle time is longer than idleTime, it will be delete // 0 value means the connection will not expire IdleTime time.Duration // The max connections in pool for all addresses MaxConnPoolSize int // The min connections in pool for all addresses MinConnPoolSize int // UseHTTP2 indicates whether to use HTTP2 UseHTTP2 bool // HttpHeader is the http headers for the connection when using HTTP2 HttpHeader http.Header // client handshakeKey, make sure the client handshakeKey is in the white list of NebulaGraph server 'client_white_list' HandshakeKey string }
PoolConfig is the configs of connection pool
type Record ¶
type Record struct {
// contains filtered or unexported fields
}
func (Record) GetValueByColName ¶
func (record Record) GetValueByColName(colName string) (*ValueWrapper, error)
Returns value in the record at given column name
func (Record) GetValueByIndex ¶
func (record Record) GetValueByIndex(index int) (*ValueWrapper, error)
Returns value in the record at given column index
type Relationship ¶
type Relationship struct {
// contains filtered or unexported fields
}
func (Relationship) GetDstVertexID ¶
func (relationship Relationship) GetDstVertexID() ValueWrapper
func (Relationship) GetEdgeName ¶
func (relationship Relationship) GetEdgeName() string
func (Relationship) GetRanking ¶
func (relationship Relationship) GetRanking() int64
func (Relationship) GetSrcVertexID ¶
func (relationship Relationship) GetSrcVertexID() ValueWrapper
func (Relationship) IsEqualTo ¶
func (r1 Relationship) IsEqualTo(r2 *Relationship) bool
func (Relationship) Keys ¶
func (relationship Relationship) Keys() []string
Keys returns a list of keys
func (Relationship) Properties ¶
func (relationship Relationship) Properties() map[string]*ValueWrapper
Properties returns a map where the key is property name and the value is property name
func (Relationship) String ¶
func (relationship Relationship) String() string
String returns a string representing relationship Relationship format: [:edge src->dst @ranking {props}]
func (Relationship) Values ¶
func (relationship Relationship) Values() []*ValueWrapper
Values returns a list of values wrapped as ValueWrappers
type ResultSet ¶
type ResultSet struct {
// contains filtered or unexported fields
}
func GenResultSet ¶
func GenResultSet(resp *graph.ExecutionResponse) (*ResultSet, error)
func (ResultSet) AsStringTable ¶
Returns a 2D array of strings representing the query result If resultSet.resp.data is nil, returns an empty 2D array
func (ResultSet) GetColNames ¶
func (ResultSet) GetColSize ¶
Returns the number of total columns
func (ResultSet) GetComment ¶
func (ResultSet) GetErrorCode ¶
Returns an integer representing an error type 0 ErrorCode_SUCCEEDED -1 ErrorCode_E_DISCONNECTED -2 ErrorCode_E_FAIL_TO_CONNECT -3 ErrorCode_E_RPC_FAILURE -4 ErrorCode_E_BAD_USERNAME_PASSWORD -5 ErrorCode_E_SESSION_INVALID -6 ErrorCode_E_SESSION_TIMEOUT -7 ErrorCode_E_SYNTAX_ERROR -8 ErrorCode_E_EXECUTION_ERROR -9 ErrorCode_E_STATEMENT_EMPTY -10 ErrorCode_E_USER_NOT_FOUND -11 ErrorCode_E_BAD_PERMISSION -12 ErrorCode_E_SEMANTIC_ERROR
func (ResultSet) GetErrorMsg ¶
func (ResultSet) GetLatency ¶
func (ResultSet) GetLatencyInMs ¶
func (ResultSet) GetPlanDesc ¶
func (res ResultSet) GetPlanDesc() *graph.PlanDescription
func (ResultSet) GetRowSize ¶
Returns the number of total rows
func (ResultSet) GetRowValuesByIndex ¶
Returns all values in the row at given index
func (ResultSet) GetSpaceName ¶
func (ResultSet) GetValuesByColName ¶
func (res ResultSet) GetValuesByColName(colName string) ([]*ValueWrapper, error)
Returns all values in the given column
func (ResultSet) IsPartialSucceed ¶
func (ResultSet) IsSetComment ¶
func (ResultSet) IsSetPlanDesc ¶
func (ResultSet) MakeDotGraph ¶
explain/profile format="dot"
func (ResultSet) MakeDotGraphByStruct ¶
explain/profile format="dot:struct"
func (ResultSet) MakePlanByRow ¶
func (res ResultSet) MakePlanByRow() [][]interface{}
explain/profile format="row"
func (ResultSet) MakePlanByTck ¶
func (res ResultSet) MakePlanByTck() [][]interface{}
explain/profile format="tck"
type SchemaManager ¶
type SchemaManager struct {
// contains filtered or unexported fields
}
func NewSchemaManager ¶
func NewSchemaManager(pool *SessionPool) *SchemaManager
func (*SchemaManager) ApplyEdge ¶
func (mgr *SchemaManager) ApplyEdge(edge LabelSchema) (*ResultSet, error)
ApplyEdge applies the given edge to the graph. 1. If the edge does not exist, it will be created. 2. If the edge exists, it will be checked if the fields are the same. 2.1 If not, the new fields will be added. 2.2 If the field type is different, it will return an error. 2.3 If a field exists in the graph but not in the given edge, it will be removed. 3. If the edge exists and the fields are the same, it will be checked if the TTL is set as expected.
Notice: We won't change the field type because it has unexpected behavior for the data.
func (*SchemaManager) ApplyTag ¶
func (mgr *SchemaManager) ApplyTag(tag LabelSchema) (*ResultSet, error)
ApplyTag applies the given tag to the graph. 1. If the tag does not exist, it will be created. 2. If the tag exists, it will be checked if the fields are the same. 2.1 If not, the new fields will be added. 2.2 If the field type is different, it will return an error. 2.3 If a field exists in the graph but not in the given tag, it will be removed. 3. If the tag exists and the fields are the same, it will be checked if the TTL is set as expected.
Notice: We won't change the field type because it has unexpected behavior for the data.
func (*SchemaManager) WithVerbose ¶
func (mgr *SchemaManager) WithVerbose(verbose bool) *SchemaManager
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) CreateSpace ¶
func (*Session) ExecuteAndCheck ¶
func (*Session) ExecuteJson ¶
ExecuteJson returns the result of the given query as a json string Date and Datetime will be returned in UTC
JSON struct: { "results":[ { "columns":[ ], "data":[ { "row":[ "row-data" ], "meta":[ "metadata" ] } ], "latencyInUs":0, "spaceName":"", "planDesc ":{ "planNodeDescs":[ { "name":"", "id":0, "outputVar":"", "description":{ "key":"" }, "profiles":[ { "rows":1, "execDurationInUs":0, "totalDurationInUs":0, "otherStats":{} } ], "branchInfo":{ "isDoBranch":false, "conditionNodeId":-1 }, "dependencies":[] } ], "nodeIndexMap":{}, "format":"", "optimize_time_in_us":0 }, "comment ":"" } ], "errors":[ { "code": 0, "message": "" } ] }
func (*Session) ExecuteJsonWithParameter ¶
func (session *Session) ExecuteJsonWithParameter(stmt string, params map[string]interface{}) ([]byte, error)
ExecuteJson returns the result of the given query as a json string Date and Datetime will be returned in UTC The result is a JSON string in the same format as ExecuteJson()
func (*Session) ExecuteWithParameter ¶
func (session *Session) ExecuteWithParameter(stmt string, params map[string]interface{}) (*ResultSet, error)
ExecuteWithParameter returns the result of the given query as a ResultSet
func (*Session) ExecuteWithParameterTimeout ¶
func (*Session) ExecuteWithTimeout ¶
func (*Session) GetSessionID ¶
func (*Session) Release ¶
func (session *Session) Release()
Release logs out and releases connection hold by session. The connection will be added into the activeConnectionQueue of the connection pool so that it could be reused.
func (*Session) ShowSpaces ¶
type SessionPool ¶
type SessionPool struct {
// contains filtered or unexported fields
}
SessionPool is a pool that manages sessions internally.
Usage: Construct sessionPool = newSessionPool(conf)
Initialize sessionPool.init()
Execute query result = sessionPool.execute("query")
Release: sessionPool.close()
Notice that all queries will be executed in the default space specified in the pool config.
func NewSessionPool ¶
func NewSessionPool(conf SessionPoolConf, log Logger) (*SessionPool, error)
NewSessionPool creates a new session pool with the given configs. There must be an existing SPACE in the DB.
func (*SessionPool) AddEdgeTTL ¶
func (*SessionPool) Close ¶
func (pool *SessionPool) Close()
Close logs out all sessions and closes bonded connection.
func (*SessionPool) CreateEdge ¶
func (pool *SessionPool) CreateEdge(edge LabelSchema) (*ResultSet, error)
func (*SessionPool) CreateTag ¶
func (pool *SessionPool) CreateTag(tag LabelSchema) (*ResultSet, error)
func (*SessionPool) Execute ¶
func (pool *SessionPool) Execute(stmt string) (*ResultSet, error)
Execute returns the result of the given query as a ResultSet Notice there are some limitations: 1. The query should not be a plain space switch statement, e.g. "USE test_space", but queries like "use space xxx; match (v) return v" are accepted. 2. If the query contains statements like "USE <space name>", the space will be set to the one in the pool config after the execution of the query. 3. The query should not change the user password nor drop a user.
func (*SessionPool) ExecuteAndCheck ¶
func (pool *SessionPool) ExecuteAndCheck(q string) (*ResultSet, error)
func (*SessionPool) ExecuteJson ¶
func (pool *SessionPool) ExecuteJson(stmt string) ([]byte, error)
ExecuteJson returns the result of the given query as a json string Date and Datetime will be returned in UTC
JSON struct: { "results":[ { "columns":[ ], "data":[ { "row":[ "row-data" ], "meta":[ "metadata" ] } ], "latencyInUs":0, "spaceName":"", "planDesc ":{ "planNodeDescs":[ { "name":"", "id":0, "outputVar":"", "description":{ "key":"" }, "profiles":[ { "rows":1, "execDurationInUs":0, "totalDurationInUs":0, "otherStats":{} } ], "branchInfo":{ "isDoBranch":false, "conditionNodeId":-1 }, "dependencies":[] } ], "nodeIndexMap":{}, "format":"", "optimize_time_in_us":0 }, "comment ":"" } ], "errors":[ { "code": 0, "message": "" } ] }
func (*SessionPool) ExecuteJsonWithParameter ¶
func (pool *SessionPool) ExecuteJsonWithParameter(stmt string, params map[string]interface{}) ([]byte, error)
ExecuteJson returns the result of the given query as a json string Date and Datetime will be returned in UTC The result is a JSON string in the same format as ExecuteJson() TODO(Aiee) check the space name
func (*SessionPool) ExecuteWithParameter ¶
func (pool *SessionPool) ExecuteWithParameter(stmt string, params map[string]interface{}) (*ResultSet, error)
ExecuteWithParameter returns the result of the given query as a ResultSet
func (*SessionPool) ExecuteWithParameterTimeout ¶
func (pool *SessionPool) ExecuteWithParameterTimeout(stmt string, params map[string]interface{}, timeoutMs int64) (*ResultSet, error)
ExecuteWithParameter returns the result of the given query as a ResultSet
func (*SessionPool) ExecuteWithTimeout ¶
func (pool *SessionPool) ExecuteWithTimeout(stmt string, timeoutMs int64) (*ResultSet, error)
func (*SessionPool) GetEdgeTTL ¶
func (pool *SessionPool) GetEdgeTTL(edgeName string) (string, uint, error)
func (*SessionPool) GetTagTTL ¶
func (pool *SessionPool) GetTagTTL(tagName string) (string, uint, error)
func (*SessionPool) GetTotalSessionCount ¶
func (pool *SessionPool) GetTotalSessionCount() int
GetTotalSessionCount returns the total number of sessions in the pool
func (*SessionPool) ShowEdges ¶
func (pool *SessionPool) ShowEdges() ([]LabelName, error)
func (*SessionPool) ShowSpaces ¶
func (pool *SessionPool) ShowSpaces() ([]SpaceName, error)
func (*SessionPool) ShowTags ¶
func (pool *SessionPool) ShowTags() ([]LabelName, error)
type SessionPoolConf ¶
type SessionPoolConf struct {
// contains filtered or unexported fields
}
SessionPoolConf is the configs of a session pool Note that the space name is bound to the session pool for its lifetime
func NewSessionPoolConf ¶
func NewSessionPoolConf( username, password string, serviceAddrs []HostAddress, spaceName string, opts ...SessionPoolConfOption) (*SessionPoolConf, error)
NewSessionPoolConfOpt creates a new NewSessionPoolConf with the provided options
type SessionPoolConfOption ¶
type SessionPoolConfOption func(*SessionPoolConf)
func WithHTTP2 ¶
func WithHTTP2(useHTTP2 bool) SessionPoolConfOption
func WithHandshakeKey ¶
func WithHandshakeKey(handshakeKey string) SessionPoolConfOption
func WithHttpHeader ¶
func WithHttpHeader(header http.Header) SessionPoolConfOption
func WithIdleTime ¶
func WithIdleTime(idleTime time.Duration) SessionPoolConfOption
func WithMaxSize ¶
func WithMaxSize(maxSize int) SessionPoolConfOption
func WithMinSize ¶
func WithMinSize(minSize int) SessionPoolConfOption
func WithSSLConfig ¶
func WithSSLConfig(sslConfig *tls.Config) SessionPoolConfOption
func WithTimeOut ¶
func WithTimeOut(timeOut time.Duration) SessionPoolConfOption
type TimeWrapper ¶
type TimeWrapper struct {
// contains filtered or unexported fields
}
func (TimeWrapper) IsEqualTo ¶
func (t1 TimeWrapper) IsEqualTo(t2 TimeWrapper) bool
type ValueWrapper ¶
type ValueWrapper struct {
// contains filtered or unexported fields
}
func (ValueWrapper) AsBool ¶
func (valWrap ValueWrapper) AsBool() (bool, error)
AsBool converts the ValueWrapper to a boolean value
func (ValueWrapper) AsDate ¶
func (valWrap ValueWrapper) AsDate() (*nebula.Date, error)
AsDate converts the ValueWrapper to a nebula.Date
func (ValueWrapper) AsDateTime ¶
func (valWrap ValueWrapper) AsDateTime() (*DateTimeWrapper, error)
AsDateTime converts the ValueWrapper to a DateTimeWrapper
func (ValueWrapper) AsDedupList ¶
func (valWrap ValueWrapper) AsDedupList() ([]ValueWrapper, error)
AsDedupList converts the ValueWrapper to a slice of ValueWrapper that has unique elements
func (ValueWrapper) AsDuration ¶
func (valWrap ValueWrapper) AsDuration() (*nebula.Duration, error)
AsDuration converts the ValueWrapper to a DurationWrapper
func (ValueWrapper) AsFloat ¶
func (valWrap ValueWrapper) AsFloat() (float64, error)
AsFloat converts the ValueWrapper to a float64
func (ValueWrapper) AsGeography ¶
func (valWrap ValueWrapper) AsGeography() (*nebula.Geography, error)
AsPath converts the ValueWrapper to a nebula.Geography
func (ValueWrapper) AsInt ¶
func (valWrap ValueWrapper) AsInt() (int64, error)
AsInt converts the ValueWrapper to an int64
func (ValueWrapper) AsList ¶
func (valWrap ValueWrapper) AsList() ([]ValueWrapper, error)
AsList converts the ValueWrapper to a slice of ValueWrapper
func (ValueWrapper) AsMap ¶
func (valWrap ValueWrapper) AsMap() (map[string]ValueWrapper, error)
AsMap converts the ValueWrapper to a map of string and ValueWrapper
func (ValueWrapper) AsNode ¶
func (valWrap ValueWrapper) AsNode() (*Node, error)
AsNode converts the ValueWrapper to a Node
func (ValueWrapper) AsNull ¶
func (valWrap ValueWrapper) AsNull() (nebula.NullType, error)
AsNull converts the ValueWrapper to nebula.NullType
func (ValueWrapper) AsPath ¶
func (valWrap ValueWrapper) AsPath() (*PathWrapper, error)
AsPath converts the ValueWrapper to a PathWrapper
func (ValueWrapper) AsRelationship ¶
func (valWrap ValueWrapper) AsRelationship() (*Relationship, error)
AsRelationship converts the ValueWrapper to a Relationship
func (ValueWrapper) AsString ¶
func (valWrap ValueWrapper) AsString() (string, error)
AsString converts the ValueWrapper to a String
func (ValueWrapper) AsTime ¶
func (valWrap ValueWrapper) AsTime() (*TimeWrapper, error)
AsTime converts the ValueWrapper to a TimeWrapper
func (ValueWrapper) GetType ¶
func (valWrap ValueWrapper) GetType() string
GetType returns the value type of value in the valWrap as a string
func (ValueWrapper) IsBool ¶
func (valWrap ValueWrapper) IsBool() bool
func (ValueWrapper) IsDate ¶
func (valWrap ValueWrapper) IsDate() bool
func (ValueWrapper) IsDateTime ¶
func (valWrap ValueWrapper) IsDateTime() bool
func (ValueWrapper) IsDuration ¶
func (valWrap ValueWrapper) IsDuration() bool
func (ValueWrapper) IsEdge ¶
func (valWrap ValueWrapper) IsEdge() bool
func (ValueWrapper) IsEmpty ¶
func (valWrap ValueWrapper) IsEmpty() bool
func (ValueWrapper) IsFloat ¶
func (valWrap ValueWrapper) IsFloat() bool
func (ValueWrapper) IsGeography ¶
func (valWrap ValueWrapper) IsGeography() bool
func (ValueWrapper) IsInt ¶
func (valWrap ValueWrapper) IsInt() bool
func (ValueWrapper) IsList ¶
func (valWrap ValueWrapper) IsList() bool
func (ValueWrapper) IsMap ¶
func (valWrap ValueWrapper) IsMap() bool
func (ValueWrapper) IsNull ¶
func (valWrap ValueWrapper) IsNull() bool
func (ValueWrapper) IsPath ¶
func (valWrap ValueWrapper) IsPath() bool
func (ValueWrapper) IsSet ¶
func (valWrap ValueWrapper) IsSet() bool
func (ValueWrapper) IsString ¶
func (valWrap ValueWrapper) IsString() bool
func (ValueWrapper) IsTime ¶
func (valWrap ValueWrapper) IsTime() bool
func (ValueWrapper) IsVertex ¶
func (valWrap ValueWrapper) IsVertex() bool
func (ValueWrapper) String ¶
func (valWrap ValueWrapper) String() string
String() returns the value in the ValueWrapper as a string.
Maps in the output will be sorted by key value in alphabetical order.
For vertex, the output is in form (vid: tagName{propKey: propVal, propKey2, propVal2}), For edge, the output is in form (SrcVid)-[name]->(DstVid)@Ranking{prop1: val1, prop2: val2} where arrow direction depends on edgeType. For path, the output is in form (v1)-[name@edgeRanking]->(v2)-[name@edgeRanking]->(v3)
For time, and dateTime, String returns the value calculated using the timezone offset from graph service by default.