Class: Neo4j::Driver::Bolt::Protocol::V3

Inherits:
Base
  • Object
show all
Defined in:
lib/neo4j/driver/bolt/protocol/v3.rb

Overview

Bolt 3.0 protocol handler — the oldest version the driver speaks (matches the Java driver's matrix, which starts at 3.0).

Differences from V4 that this class encodes:

* Routing is the `dbms.cluster.routing.getRoutingTable`
procedure (RUN), not a server ROUTE message — but the HELLO
still carries the routing context, matching the Java driver
(and so JRuby): testkit gates `routing` in the 3.0 HELLO on
driver name java/ruby specifically.
* Single-database: no `db` field on RUN / BEGIN. Inherits
supports_multiple_databases? = false from Base, so the
strip_db in build_run / build_begin happens automatically.
* Streaming is all-or-nothing: PULL_ALL (0x3F) and
DISCARD_ALL (0x2F) take no fields, unlike the 4.0+
PULL / DISCARD which carry `{n, qid}`.

Instance Attribute Summary

Attributes inherited from Base

#connection, #version

Instance Method Summary collapse

Methods inherited from Base

#build_begin, #build_hello_message, #build_logon_message, #build_run, #build_telemetry, #configure_packer, #customize_hydration, #enforce_impersonation_support!, #hello_extra, #initialize, #notification_config_extra, #pack_uuid, #supports_impersonation?, #supports_multiple_databases?, #supports_notification_filtering?, #supports_re_auth?, #supports_telemetry?, #unpack_uuid

Constructor Details

This class inherits a constructor from Neo4j::Driver::Bolt::Protocol::Base

Instance Method Details

#build_discard(_extra) ⇒ Object

DISCARD_ALL: no metadata map.



36
37
38
# File 'lib/neo4j/driver/bolt/protocol/v3.rb', line 36

def build_discard(_extra)
  PackStream::Structure.new(Message::DISCARD, [])
end

#build_pull(_extra) ⇒ Object

PULL_ALL: no metadata map. The caller still passes {n:} for the 4.0+ path; on 3.0 we discard it and send the bare struct.



31
32
33
# File 'lib/neo4j/driver/bolt/protocol/v3.rb', line 31

def build_pull(_extra)
  PackStream::Structure.new(Message::PULL, [])
end