Skip to content

Commit c586343

Browse files
authored
MRI-driver (#1730)
* MRI driver * MRI driver * update workflow * update workflow * update workflow
1 parent 4e7f303 commit c586343

File tree

10 files changed

+87
-85
lines changed

10 files changed

+87
-85
lines changed

.github/workflows/e2e_test.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
ruby: [ jruby, ruby-3.3.5 ]
20-
neo4j: [ 5.23.0 ]
21-
active_model: [ 7.1.4, 7.2.1 ]
19+
ruby: [ jruby, ruby ]
20+
neo4j: [ 5.26.0 ]
21+
active_model: [ 7.1.5.1, 7.2.2.1 ]
2222
include:
23+
- ruby: ruby
24+
neo4j: 5.26.0
25+
active_model: 8.0.1
2326
- ruby: jruby
2427
java-version: 17
2528
env:

.github/workflows/test.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,19 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
ruby: [ jruby, ruby-3.1.6 ]
20-
neo4j: [ 5.23.0 ]
21-
active_model: [ 7.0.8, 7.1.4, 7.2.1 ]
19+
ruby: [ jruby, ruby ]
20+
neo4j: [ 5.26.0 ]
21+
active_model: [ 7.1.5.1, 7.2.2.1 ]
2222
include:
23-
- ruby: ruby-3.2.5
24-
neo4j: 5.23.0
25-
active_model: 7.1.4
26-
- ruby: ruby-3.3.5
27-
neo4j: 5.23.0
28-
active_model: 7.1.4
23+
- ruby: ruby-3.2.6
24+
neo4j: 5.26.0
25+
active_model: 7.1.5.1
26+
- ruby: ruby-3.3.6
27+
neo4j: 5.26.0
28+
active_model: 7.1.5.1
29+
- ruby: ruby
30+
neo4j: 5.26.0
31+
active_model: 8.0.1
2932
- ruby: jruby
3033
java-version: 17
3134
env:

activegraph.gemspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
77
s.name = 'activegraph'
88
s.version = ActiveGraph::VERSION
99

10-
s.required_ruby_version = '>= 2.6'
10+
s.required_ruby_version = '>= 3.1'
1111

1212
s.authors = 'Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek'
1313
@@ -30,9 +30,9 @@ DESCRIPTION
3030
'bug_tracker_uri' => 'https://github.com/neo4jrb/activegraph/issues'
3131
}
3232

33-
s.add_dependency('activemodel', '>= 7')
33+
s.add_dependency('activemodel')
3434
s.add_dependency('i18n', '!= 1.8.8') # https://github.com/jruby/jruby/issues/6547
35-
s.add_dependency('neo4j-ruby-driver', '>= 5.7.0.alpha.1')
35+
s.add_dependency('neo4j-ruby-driver', '>= 5.7.0.alpha.3')
3636
s.add_dependency('orm_adapter', '>= 0.5.0')
3737
s.add_dependency('sorted_set')
3838
s.add_development_dependency('guard')

lib/active_graph/migration.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ def initialize(path = default_path)
3939

4040
def migrate
4141
ActiveGraph.deprecator.warn '`AddIdProperty` task is deprecated and may be removed from future releases. ' \
42-
'Create a new migration and use the `populate_id_property` helper.', caller
42+
'Create a new migration and use the `populate_id_property` helper.',
43+
caller_locations
4344
models = ActiveSupport::HashWithIndifferentAccess.new(YAML.load_file(models_filename))[:models]
4445
output 'This task will add an ID Property every node in the given file.'
4546
output 'It may take a significant amount of time, please be patient.'
@@ -108,7 +109,6 @@ def setup
108109
# print_output message
109110
# end
110111

111-
112112
# def id_batch_set(label, id_property, new_ids, count)
113113
# tx = ActiveGraph::Base.new_transaction
114114

lib/active_graph/relationship/query.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def last
4949
private
5050

5151
def deprecation_warning!
52-
ActiveGraph.deprecator.warn 'The ActiveGraph::Relationship::Query module has been deprecated and will be removed in a future version of the gem.', caller
52+
ActiveGraph.deprecator.warn 'The ActiveGraph::Relationship::Query module has been deprecated and will be removed in a future version of the gem.', caller_locations
5353
end
5454

5555
def where_query

lib/active_graph/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module ActiveGraph
2-
VERSION = '12.0.0.beta.4'
2+
VERSION = '12.0.0.beta.5'
33
end

spec/e2e/association_dependency_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ def routing_setup
104104
@route2 = Route.create(name: 'Secondary Route')
105105
@tour.routes << [@route1, @route2]
106106

107-
108107
# Pro Tip from Chris: No good metal shows happen in Manhattan.
109108
# Boston is iffy, too.
110109
city_names = %w(Philadelphia Brooklyn Manhattan Providence Boston)
@@ -217,7 +216,7 @@ def routing_setup
217216
it 'deletes only orphans' do
218217
rel_1.destroy
219218
expect { BadModel.find(bad_model_1.id) }.to raise_error(ActiveGraph::Node::Labels::RecordNotFound)
220-
expect { BadModel.find(bad_model_2.id) }.not_to raise_error
219+
expect { BadModel.find(bad_model_2.id) }.not_to raise_error
221220
end
222221
end
223222

@@ -365,7 +364,7 @@ def routing_setup
365364

366365
describe 'invalid options' do
367366
it 'raises an error when an invalid option is passed' do
368-
expect { Stop.has_many(:out, :fooz, dependent: :foo).to raise_error }
367+
expect { Stop.has_many(:out, :fooz, dependent: :foo) }.to raise_error
369368
end
370369
end
371370
end

spec/e2e/query_spec.rb

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
clear_model_memory_caches
44
end
55

6-
76
let(:student_interests_association_options) { {} }
87

98
before(:each) do
@@ -42,11 +41,11 @@ def self.ordered_by_subject
4241

4342
has_many :out, :lessons, rel_class: 'IsEnrolledFor'
4443

45-
has_many :out, :interests, {type: nil}.merge(scoped_interests_options)
44+
has_many :out, :interests, { type: nil }.merge(scoped_interests_options)
4645

4746
has_many :both, :favorite_teachers, type: nil, model_class: 'Teacher'
4847
has_many :both, :hated_teachers, type: nil, model_class: 'Teacher'
49-
has_many :in, :winning_lessons, model_class: 'Lesson', origin: :teachers_pet
48+
has_many :in, :winning_lessons, model_class: 'Lesson', origin: :teachers_pet
5049
end
5150

5251
stub_relationship_class('IsEnrolledFor') do
@@ -167,7 +166,6 @@ def self.ordered_by_subject
167166
let!(:math) { Interest.create(name: 'Math') }
168167
let!(:monster_trucks) { Interest.create(name: 'Monster Trucks') }
169168

170-
171169
it 'evaluates `all` lazily' do
172170
result = Teacher.all
173171
expect(result).to be_a(ActiveGraph::Node::Query::QueryProxy)
@@ -209,10 +207,10 @@ def self.ordered_by_subject
209207

210208
describe '.merge' do
211209
let(:timestamps) { [1, 1, 2, 3].map(&DateTime.method(:new)) }
212-
let(:merge_attrs) { {name: 'Dr. Dre'} }
210+
let(:merge_attrs) { { name: 'Dr. Dre' } }
213211
let(:on_match_clause) { {} }
214212
let(:on_create_clause) { {} }
215-
let(:set_attrs) { {status: 'on create status'} }
213+
let(:set_attrs) { { status: 'on create status' } }
216214

217215
before { allow(DateTime).to receive(:now).and_return(*timestamps) }
218216
after { expect(Teacher.count).to eq 1 }
@@ -235,7 +233,7 @@ def self.ordered_by_subject
235233
its(:labels) { is_expected.to match_array [:TeacherFoo, :Substitute] }
236234
end
237235

238-
let_context 'on_create', on_create_clause: {age: 49} do
236+
let_context 'on_create', on_create_clause: { age: 49 } do
239237
its(:age) { is_expected.to eq 49 }
240238
its(:status) { is_expected.to eq 'on create status' }
241239

@@ -244,8 +242,7 @@ def self.ordered_by_subject
244242
end
245243
end
246244

247-
248-
let_context 'on_merge', on_match_clause: {age: 50}, on_create_clause: {age: 49}, set_attrs: {status: 'on match status'} do
245+
let_context 'on_merge', on_match_clause: { age: 50 }, on_create_clause: { age: 49 }, set_attrs: { status: 'on match status' } do
249246
before { Teacher.merge(on_create_clause.merge(merge_attrs)) }
250247

251248
its(:age) { is_expected.to eq 50 }
@@ -286,7 +283,7 @@ def self.ordered_by_subject
286283
end
287284

288285
it 'also sets properties on create' do
289-
Teacher.find_or_create({name: 'Dr. Harold Samuels'}, age: 34)
286+
Teacher.find_or_create({ name: 'Dr. Harold Samuels' }, age: 34)
290287

291288
expect(Teacher.count).to eq(1)
292289

@@ -298,7 +295,7 @@ def self.ordered_by_subject
298295
end
299296

300297
it 'overrides default properties on create' do
301-
Teacher.find_or_create({name: 'Dr. Harold Samuels'}, age: 34, status: 'inactive')
298+
Teacher.find_or_create({ name: 'Dr. Harold Samuels' }, age: 34, status: 'inactive')
302299

303300
expect(Teacher.count).to eq(1)
304301

@@ -343,7 +340,7 @@ def custom_prop_method
343340
end
344341

345342
context 'on match' do
346-
let(:original) { Teacher.find_or_create({name: 'Dr. Harold Samuels'}, age: 34) }
343+
let(:original) { Teacher.find_or_create({ name: 'Dr. Harold Samuels' }, age: 34) }
347344

348345
before(:each) { original }
349346

@@ -355,7 +352,7 @@ def custom_prop_method
355352
end
356353

357354
it 'updates nothing' do
358-
teacher = Teacher.find_or_create({name: 'Dr. Harold Samuels'}, age: 0)
355+
teacher = Teacher.find_or_create({ name: 'Dr. Harold Samuels' }, age: 0)
359356

360357
expect(teacher.id).to eq(original.id)
361358
expect(teacher.name).to eq('Dr. Harold Samuels')
@@ -550,13 +547,13 @@ def custom_prop_method
550547
describe 'on classes' do
551548
before(:each) do
552549
danny.lessons << math101
553-
danny.lessons(:l, :r).query.set(r: {grade: 65}).exec
550+
danny.lessons(:l, :r).query.set(r: { grade: 65 }).exec
554551

555552
bobby.lessons << math101
556-
bobby.lessons(:l, :r).query.set(r: {grade: 71})
553+
bobby.lessons(:l, :r).query.set(r: { grade: 71 })
557554

558555
math101.teachers << othmar
559-
math101.teachers(:t, :r).query.set(r: {since: 2001}).exec
556+
math101.teachers(:t, :r).query.set(r: { since: 2001 }).exec
560557

561558
sandra.lessons << ss101
562559
end
@@ -565,9 +562,8 @@ def custom_prop_method
565562
it { expect(Student.as(:student).where(age: 15).lessons(:lesson).where(level: 101).pluck(:student)).to eq([danny]) }
566563
it { expect(Student.where(age: 15).lessons(:lesson).where(level: '101').pluck(:lesson)).not_to eq([[othmar]]) }
567564
it do
568-
expect(Student.as(:student).where(age: 15).lessons(:lesson).where(level: 101).pluck(:student)).to eq(
569-
Student.as(:student).node_where(age: 15).lessons(:lesson).node_where(level: 101).pluck(:student)
570-
)
565+
expect(Student.as(:student).where(age: 15).lessons(:lesson).where(level: 101).pluck(:student))
566+
.to eq( Student.as(:student).node_where(age: 15).lessons(:lesson).node_where(level: 101).pluck(:student) )
571567
end
572568
end
573569

@@ -687,17 +683,19 @@ def custom_prop_method
687683
expect(Teacher.where(date: date).to_cypher_with_params).to include(converted_date.to_s)
688684
expect(Teacher.where(datetime: datetime).to_cypher_with_params).to include(converted_datetime.to_s)
689685
expect(Teacher.where(time: time).to_cypher_with_params).to include(converted_time.to_s)
690-
expect(Teacher.where(age: '1').to_cypher_with_params).to include(':result_teacher2_age=>1')
691-
expect(Student.where(likely_to_succeed: 'false').to_cypher_with_params).to include(':result_student2_likely_to_succeed=>false')
686+
expect(Teacher.where(age: '1').to_cypher_with_params).to include({ result_teacher2_age: 1 }.to_s)
687+
expect(Student.where(likely_to_succeed: 'false').to_cypher_with_params)
688+
.to include({ result_student2_likely_to_succeed: false }.to_s)
692689
end
693690

694691
context '...and values already in the destination format' do
695692
it 'uses the values as they are' do
696693
expect(Teacher.where(date: converted_date).to_cypher_with_params).to include(converted_date.to_s)
697694
expect(Teacher.where(datetime: converted_datetime).to_cypher_with_params).to include(converted_datetime.to_s)
698695
expect(Teacher.where(time: converted_time).to_cypher_with_params).to include(converted_time.to_s)
699-
expect(Teacher.where(age: 1).to_cypher_with_params).to include(':result_teacher2_age=>1')
700-
expect(Student.where(likely_to_succeed: false).to_cypher_with_params).to include(':result_student2_likely_to_succeed=>false')
696+
expect(Teacher.where(age: 1).to_cypher_with_params).to include({ result_teacher2_age: 1 }.to_s)
697+
expect(Student.where(likely_to_succeed: false).to_cypher_with_params)
698+
.to include({ result_student2_likely_to_succeed: false }.to_s)
701699
end
702700
end
703701

@@ -741,9 +739,9 @@ def custom_prop_method
741739

742740
describe 'Associations with `unique` set' do
743741
let(:from_node) { Student.create }
744-
let(:to_node) { Interest.create }
745-
let(:first_props) { {score: 900} }
746-
let(:second_props) { {score: 1000} }
742+
let(:to_node) { Interest.create }
743+
let(:first_props) { { score: 900 } }
744+
let(:second_props) { { score: 1000 } }
747745
let(:changed_props_create) { proc { from_node.interests.create(to_node, second_props) } }
748746

749747
before do
@@ -752,7 +750,7 @@ def custom_prop_method
752750
end
753751

754752
context 'with `true` option' do
755-
let(:student_interests_association_options) { {type: nil, unique: true} }
753+
let(:student_interests_association_options) { { type: nil, unique: true } }
756754

757755
it 'becomes :none' do
758756
expect(ActiveGraph::Shared::FilteredHash).to receive(:new).with(instance_of(Hash), :none).and_call_original
@@ -761,7 +759,7 @@ def custom_prop_method
761759
end
762760

763761
context 'with :none open' do
764-
let(:student_interests_association_options) { {type: nil, unique: :none} }
762+
let(:student_interests_association_options) { { type: nil, unique: :none } }
765763

766764
it 'does not create additional rels, even when properties change' do
767765
expect do
@@ -771,15 +769,15 @@ def custom_prop_method
771769
end
772770

773771
context 'with `:all` option' do
774-
let(:student_interests_association_options) { {type: nil, unique: :all} }
772+
let(:student_interests_association_options) { { type: nil, unique: :all } }
775773

776774
it 'creates additional rels when properties change' do
777775
expect { changed_props_create.call }.to change { from_node.interests.count }
778776
end
779777
end
780778

781779
context 'with {on: [keys]} option' do
782-
let(:student_interests_association_options) { {type: nil, unique: {on: :score}} }
780+
let(:student_interests_association_options) { { type: nil, unique: { on: :score } } }
783781

784782
context 'and a listed property changes' do
785783
it 'creates a new rel' do

spec/unit/migrations/schema_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
let(:constraints) { [] }
1515

1616
let(:range_index) { 'CREATE RANGE INDEX `range_index` FOR (n:`Person`) ON (n.`nickname`)' }
17-
let(:point_index) { "CREATE POINT INDEX `point_index` FOR (n:`Person`) ON (n.`location`) OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}, indexProvider: 'point-1.0'}" }
18-
let(:fulltext_index) { "CREATE FULLTEXT INDEX `fulltext_index` FOR (n:`Friend`) ON EACH [n.`name`] OPTIONS {indexConfig: {`fulltext.analyzer`: 'swedish',`fulltext.eventually_consistent`: false}, indexProvider: 'fulltext-1.0'}" }
19-
let(:text_index) { "CREATE TEXT INDEX `text_index` FOR ()-[r:`KNOWS`]-() ON (r.`city`) OPTIONS {indexConfig: {}, indexProvider: 'text-2.0'}" }
17+
let(:point_index) { "CREATE POINT INDEX `point_index` FOR (n:`Person`) ON (n.`location`) OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}}" }
18+
let(:fulltext_index) { "CREATE FULLTEXT INDEX `fulltext_index` FOR (n:`Friend`) ON EACH [n.`name`] OPTIONS {indexConfig: {`fulltext.analyzer`: 'swedish',`fulltext.eventually_consistent`: false}}" }
19+
let(:text_index) { "CREATE TEXT INDEX `text_index` FOR ()-[r:`KNOWS`]-() ON (r.`city`)" }
2020

2121
let(:unique_constraint) { 'CREATE CONSTRAINT `unique_constraint` FOR (n:`Person`) REQUIRE (n.`name`) IS UNIQUE' }
2222
let(:not_null_rel_prop_constraint) { 'CREATE CONSTRAINT `not_null_rel_prop_constraint` FOR ()-[r:`LIKED`]-() REQUIRE (r.`when`) IS NOT NULL' }
@@ -28,14 +28,14 @@
2828
end
2929

3030
if ActiveGraph::Base.version?('<4.4')
31-
let(:range_index) { "CREATE INDEX `range_index` FOR (n:`Person`) ON (n.`nickname`) OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}, indexProvider: 'native-btree-1.0'}" }
31+
let(:range_index) { "CREATE INDEX `range_index` FOR (n:`Person`) ON (n.`nickname`) OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}}" }
3232
let(:point_index) {}
3333
let(:text_index) {}
3434

35-
let(:unique_constraint) { "CREATE CONSTRAINT `unique_constraint` ON (n:`Person`) ASSERT (n.`name`) IS UNIQUE OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}, indexProvider: 'native-btree-1.0'}" }
35+
let(:unique_constraint) { "CREATE CONSTRAINT `unique_constraint` ON (n:`Person`) ASSERT (n.`name`) IS UNIQUE OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}}" }
3636
let(:not_null_rel_prop_constraint) { 'CREATE CONSTRAINT `not_null_rel_prop_constraint` ON ()-[r:`LIKED`]-() ASSERT (r.`when`) IS NOT NULL' }
3737
let(:not_null_node_prop_constraint) { 'CREATE CONSTRAINT `not_null_node_prop_constraint` ON (n:`Person`) ASSERT (n.`name`) IS NOT NULL' }
38-
let(:node_key_constraint) { "CREATE CONSTRAINT `node_key_constraint` ON (n:`Person`) ASSERT (n.`name`, n.`surname`) IS NODE KEY OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}, indexProvider: 'native-btree-1.0'}" }
38+
let(:node_key_constraint) { "CREATE CONSTRAINT `node_key_constraint` ON (n:`Person`) ASSERT (n.`name`, n.`surname`) IS NODE KEY OPTIONS {indexConfig: {`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84.max`: [180.0, 90.0],`spatial.wgs-84.min`: [-180.0, -90.0]}}" }
3939
end
4040

4141
if ActiveGraph::Base.version?('<4.3')

0 commit comments

Comments
 (0)