Class: SurrealDB::QueryResult

Inherits:
Object
  • Object
show all
Defined in:
lib/surrealdb/query_result.rb

Overview

Wraps a single statement result from a multi-statement query. Each statement in a SurrealQL query produces a separate QueryResult with its own status, timing, result data, and optional error.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, time: nil, result: nil, error: nil) ⇒ QueryResult

Returns a new instance of QueryResult.



20
21
22
23
24
25
# File 'lib/surrealdb/query_result.rb', line 20

def initialize(status:, time: nil, result: nil, error: nil)
  @status = status
  @time = time
  @result = result
  @error = error
end

Instance Attribute Details

#errorString? (readonly)

Returns error message if status is "ERR".

Returns:

  • (String, nil)

    error message if status is "ERR"



18
19
20
# File 'lib/surrealdb/query_result.rb', line 18

def error
  @error
end

#resultObject (readonly)

Returns the statement's result data.

Returns:

  • (Object)

    the statement's result data



15
16
17
# File 'lib/surrealdb/query_result.rb', line 15

def result
  @result
end

#statusString (readonly)

Returns "OK" or "ERR".

Returns:

  • (String)

    "OK" or "ERR"



9
10
11
# File 'lib/surrealdb/query_result.rb', line 9

def status
  @status
end

#timeString? (readonly)

Returns execution time (e.g. "1.234ms").

Returns:

  • (String, nil)

    execution time (e.g. "1.234ms")



12
13
14
# File 'lib/surrealdb/query_result.rb', line 12

def time
  @time
end

Class Method Details

.from_response(data) ⇒ QueryResult

Builds a QueryResult from a server response hash.

Parameters:

  • data (Hash)

    e.g. "time"=>"1ms", "result"=>[...]

Returns:



40
41
42
43
44
45
46
47
48
49
# File 'lib/surrealdb/query_result.rb', line 40

def self.from_response(data)
  return new(status: 'OK', result: data) unless data.is_a?(Hash) && data.key?('status')

  new(
    status: data['status'],
    time: data['time'],
    result: data['result'],
    error: data['error']
  )
end

Instance Method Details

#error?Boolean

Returns true when the statement produced an error.

Returns:

  • (Boolean)

    true when the statement produced an error



33
34
35
# File 'lib/surrealdb/query_result.rb', line 33

def error?
  status == 'ERR'
end

#inspectObject



51
52
53
# File 'lib/surrealdb/query_result.rb', line 51

def inspect
  "#<SurrealDB::QueryResult status=#{@status.inspect} time=#{@time.inspect}>"
end

#ok?Boolean

Returns true when the statement executed without error.

Returns:

  • (Boolean)

    true when the statement executed without error



28
29
30
# File 'lib/surrealdb/query_result.rb', line 28

def ok?
  status == 'OK'
end