Skip to content

Commit bb30143

Browse files
knutwalkerjjaderberg
authored andcommitted
Move creating new tx context to compat layer
This change is required after neo-technology/neo4j#17457
1 parent 03c25ca commit bb30143

File tree

10 files changed

+130
-22
lines changed

10 files changed

+130
-22
lines changed

compatibility/4.3/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_43/Neo4jProxyImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,10 @@
104104
import org.neo4j.kernel.api.procedure.CallableProcedure;
105105
import org.neo4j.kernel.database.NamedDatabaseId;
106106
import org.neo4j.kernel.database.TestDatabaseIdRepository;
107+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
107108
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
109+
import org.neo4j.kernel.impl.query.TransactionalContext;
110+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
108111
import org.neo4j.kernel.impl.store.MetaDataStore;
109112
import org.neo4j.kernel.impl.store.RecordStore;
110113
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
@@ -119,6 +122,7 @@
119122
import org.neo4j.ssl.config.SslPolicyLoader;
120123
import org.neo4j.values.storable.ValueCategory;
121124
import org.neo4j.values.storable.ValueGroup;
125+
import org.neo4j.values.virtual.MapValue;
122126

123127
import java.io.IOException;
124128
import java.nio.file.Path;
@@ -774,4 +778,15 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
774778

775779
idGenerator.nextIdBatch(size, false, cursorContext);
776780
}
781+
782+
@Override
783+
public TransactionalContext newQueryContext(
784+
TransactionalContextFactory contextFactory,
785+
InternalTransaction tx,
786+
String queryText,
787+
MapValue queryParameters
788+
) {
789+
return contextFactory.newContext(tx, queryText, queryParameters);
790+
}
791+
777792
}

compatibility/4.4/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_44/Neo4jProxyImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@
106106
import org.neo4j.kernel.database.NamedDatabaseId;
107107
import org.neo4j.kernel.database.NormalizedDatabaseName;
108108
import org.neo4j.kernel.database.TestDatabaseIdRepository;
109+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
109110
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
111+
import org.neo4j.kernel.impl.query.TransactionalContext;
112+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
110113
import org.neo4j.kernel.impl.store.MetaDataStore;
111114
import org.neo4j.kernel.impl.store.RecordStore;
112115
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
@@ -122,6 +125,7 @@
122125
import org.neo4j.storageengine.api.PropertySelection;
123126
import org.neo4j.values.storable.ValueCategory;
124127
import org.neo4j.values.storable.ValueGroup;
128+
import org.neo4j.values.virtual.MapValue;
125129

126130
import java.io.IOException;
127131
import java.nio.file.Path;
@@ -777,4 +781,14 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
777781

778782
idGenerator.nextConsecutiveIdRange(size, false, cursorContext);
779783
}
784+
785+
@Override
786+
public TransactionalContext newQueryContext(
787+
TransactionalContextFactory contextFactory,
788+
InternalTransaction tx,
789+
String queryText,
790+
MapValue queryParameters
791+
) {
792+
return contextFactory.newContext(tx, queryText, queryParameters);
793+
}
780794
}

compatibility/5.1/neo4j-kernel-adapter/src/main/java17/org/neo4j/gds/compat/_51/Neo4jProxyImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@
114114
import org.neo4j.kernel.database.NamedDatabaseId;
115115
import org.neo4j.kernel.database.NormalizedDatabaseName;
116116
import org.neo4j.kernel.database.TestDatabaseIdRepository;
117+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
117118
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
119+
import org.neo4j.kernel.impl.query.TransactionalContext;
120+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
118121
import org.neo4j.kernel.impl.store.RecordStore;
119122
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
120123
import org.neo4j.kernel.impl.store.format.RecordFormats;
@@ -132,6 +135,7 @@
132135
import org.neo4j.util.Bits;
133136
import org.neo4j.values.storable.ValueCategory;
134137
import org.neo4j.values.storable.Values;
138+
import org.neo4j.values.virtual.MapValue;
135139

136140
import java.io.IOException;
137141
import java.nio.file.Path;
@@ -900,4 +904,14 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
900904

901905
idGenerator.nextConsecutiveIdRange(size, false, cursorContext);
902906
}
907+
908+
@Override
909+
public TransactionalContext newQueryContext(
910+
TransactionalContextFactory contextFactory,
911+
InternalTransaction tx,
912+
String queryText,
913+
MapValue queryParameters
914+
) {
915+
return contextFactory.newContext(tx, queryText, queryParameters);
916+
}
903917
}

compatibility/5.2/neo4j-kernel-adapter/src/main/java17/org/neo4j/gds/compat/_52/Neo4jProxyImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@
114114
import org.neo4j.kernel.database.NamedDatabaseId;
115115
import org.neo4j.kernel.database.NormalizedDatabaseName;
116116
import org.neo4j.kernel.database.TestDatabaseIdRepository;
117+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
117118
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
119+
import org.neo4j.kernel.impl.query.TransactionalContext;
120+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
118121
import org.neo4j.kernel.impl.store.RecordStore;
119122
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
120123
import org.neo4j.kernel.impl.store.format.RecordFormats;
@@ -132,6 +135,7 @@
132135
import org.neo4j.util.Bits;
133136
import org.neo4j.values.storable.ValueCategory;
134137
import org.neo4j.values.storable.Values;
138+
import org.neo4j.values.virtual.MapValue;
135139

136140
import java.io.IOException;
137141
import java.nio.file.Path;
@@ -898,4 +902,14 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
898902

899903
idGenerator.nextConsecutiveIdRange(size, false, cursorContext);
900904
}
905+
906+
@Override
907+
public TransactionalContext newQueryContext(
908+
TransactionalContextFactory contextFactory,
909+
InternalTransaction tx,
910+
String queryText,
911+
MapValue queryParameters
912+
) {
913+
return contextFactory.newContext(tx, queryText, queryParameters);
914+
}
901915
}

compatibility/5.3/neo4j-kernel-adapter/src/main/java17/org/neo4j/gds/compat/_53/Neo4jProxyImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@
114114
import org.neo4j.kernel.database.NamedDatabaseId;
115115
import org.neo4j.kernel.database.NormalizedDatabaseName;
116116
import org.neo4j.kernel.database.TestDatabaseIdRepository;
117+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
117118
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
119+
import org.neo4j.kernel.impl.query.TransactionalContext;
120+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
118121
import org.neo4j.kernel.impl.store.RecordStore;
119122
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
120123
import org.neo4j.kernel.impl.store.format.RecordFormats;
@@ -132,6 +135,7 @@
132135
import org.neo4j.util.Bits;
133136
import org.neo4j.values.storable.ValueCategory;
134137
import org.neo4j.values.storable.Values;
138+
import org.neo4j.values.virtual.MapValue;
135139

136140
import java.io.IOException;
137141
import java.nio.file.Path;
@@ -898,4 +902,14 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
898902

899903
idGenerator.nextConsecutiveIdRange(size, false, cursorContext);
900904
}
905+
906+
@Override
907+
public TransactionalContext newQueryContext(
908+
TransactionalContextFactory contextFactory,
909+
InternalTransaction tx,
910+
String queryText,
911+
MapValue queryParameters
912+
) {
913+
return contextFactory.newContext(tx, queryText, queryParameters);
914+
}
901915
}

compatibility/5.4/neo4j-kernel-adapter/src/main/java17/org/neo4j/gds/compat/_54/Neo4jProxyImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@
114114
import org.neo4j.kernel.database.NamedDatabaseId;
115115
import org.neo4j.kernel.database.NormalizedDatabaseName;
116116
import org.neo4j.kernel.database.TestDatabaseIdRepository;
117+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
117118
import org.neo4j.kernel.impl.index.schema.IndexImporterFactoryImpl;
119+
import org.neo4j.kernel.impl.query.TransactionalContext;
120+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
118121
import org.neo4j.kernel.impl.store.RecordStore;
119122
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
120123
import org.neo4j.kernel.impl.store.format.RecordFormats;
@@ -132,6 +135,7 @@
132135
import org.neo4j.util.Bits;
133136
import org.neo4j.values.storable.ValueCategory;
134137
import org.neo4j.values.storable.Values;
138+
import org.neo4j.values.virtual.MapValue;
135139

136140
import java.io.IOException;
137141
import java.nio.file.Path;
@@ -898,4 +902,14 @@ public void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, Curso
898902

899903
idGenerator.nextConsecutiveIdRange(size, false, cursorContext);
900904
}
905+
906+
@Override
907+
public TransactionalContext newQueryContext(
908+
TransactionalContextFactory contextFactory,
909+
InternalTransaction tx,
910+
String queryText,
911+
MapValue queryParameters
912+
) {
913+
return contextFactory.newContext(tx, queryText, queryParameters);
914+
}
901915
}

compatibility/api/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/Neo4jProxyApi.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@
7171
import org.neo4j.kernel.api.KernelTransactionHandle;
7272
import org.neo4j.kernel.api.procedure.CallableProcedure;
7373
import org.neo4j.kernel.database.NamedDatabaseId;
74+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
75+
import org.neo4j.kernel.impl.query.TransactionalContext;
76+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
7477
import org.neo4j.kernel.impl.store.RecordStore;
7578
import org.neo4j.kernel.impl.store.format.RecordFormats;
7679
import org.neo4j.kernel.impl.store.record.AbstractBaseRecord;
@@ -79,6 +82,7 @@
7982
import org.neo4j.procedure.Mode;
8083
import org.neo4j.scheduler.JobScheduler;
8184
import org.neo4j.ssl.config.SslPolicyLoader;
85+
import org.neo4j.values.virtual.MapValue;
8286

8387
import java.nio.file.Path;
8488
import java.util.List;
@@ -304,4 +308,11 @@ UserFunctionSignature userFunctionSignature(
304308
long transactionId(KernelTransactionHandle kernelTransactionHandle);
305309

306310
void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, CursorContext cursorContext);
311+
312+
TransactionalContext newQueryContext(
313+
TransactionalContextFactory contextFactory,
314+
InternalTransaction tx,
315+
String queryText,
316+
MapValue queryParameters
317+
);
307318
}

compatibility/common/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/Neo4jProxy.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@
7171
import org.neo4j.kernel.api.KernelTransactionHandle;
7272
import org.neo4j.kernel.api.procedure.CallableProcedure;
7373
import org.neo4j.kernel.database.NamedDatabaseId;
74+
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
75+
import org.neo4j.kernel.impl.query.TransactionalContext;
76+
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
7477
import org.neo4j.kernel.impl.store.RecordStore;
7578
import org.neo4j.kernel.impl.store.format.RecordFormats;
7679
import org.neo4j.kernel.impl.store.record.AbstractBaseRecord;
@@ -79,6 +82,7 @@
7982
import org.neo4j.procedure.Mode;
8083
import org.neo4j.scheduler.JobScheduler;
8184
import org.neo4j.ssl.config.SslPolicyLoader;
85+
import org.neo4j.values.virtual.MapValue;
8286

8387
import java.nio.file.Path;
8488
import java.util.List;
@@ -460,6 +464,14 @@ public static long transactionId(KernelTransactionHandle kernelTransactionHandle
460464
public static void reserveNeo4jIds(IdGeneratorFactory generatorFactory, int size, CursorContext cursorContext) {
461465
IMPL.reserveNeo4jIds(generatorFactory, size, cursorContext);
462466
}
467+
public static TransactionalContext newQueryContext(
468+
TransactionalContextFactory contextFactory,
469+
InternalTransaction tx,
470+
String queryText,
471+
MapValue queryParameters
472+
) {
473+
return IMPL.newQueryContext(contextFactory, tx, queryText, queryParameters);
474+
}
463475

464476
private Neo4jProxy() {
465477
throw new UnsupportedOperationException("No instances");

core/src/main/java/org/neo4j/gds/core/loading/CypherRecordLoader.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,27 @@
2121

2222
import org.neo4j.gds.api.GraphLoaderContext;
2323
import org.neo4j.gds.compat.GraphDatabaseApiProxy;
24+
import org.neo4j.gds.compat.Neo4jProxy;
2425
import org.neo4j.gds.config.GraphProjectFromCypherConfig;
2526
import org.neo4j.gds.utils.StringJoining;
2627
import org.neo4j.graphdb.security.AuthorizationViolationException;
2728
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
2829
import org.neo4j.kernel.impl.query.QueryExecution;
2930
import org.neo4j.kernel.impl.query.QueryExecutionEngine;
31+
import org.neo4j.kernel.impl.query.QueryExecutionKernelException;
3032
import org.neo4j.kernel.impl.query.QuerySubscriber;
3133
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
34+
import org.neo4j.kernel.impl.util.ValueUtils;
3235

3336
import java.util.Arrays;
3437
import java.util.Collection;
3538
import java.util.HashSet;
3639
import java.util.Locale;
40+
import java.util.Map;
3741
import java.util.Set;
3842
import java.util.function.Predicate;
3943
import java.util.stream.Collectors;
4044

41-
import static org.neo4j.gds.compat.GraphDatabaseApiProxy.runQueryWithoutClosingTheResult;
4245
import static org.neo4j.gds.utils.StringFormatting.formatWithLocale;
4346

4447
abstract class CypherRecordLoader<R> {
@@ -146,4 +149,22 @@ private void validateMandatoryColumns(Collection<String> allColumns) {
146149
));
147150
}
148151
}
152+
153+
private static QueryExecution runQueryWithoutClosingTheResult(
154+
InternalTransaction tx,
155+
String query,
156+
Map<String, Object> params,
157+
TransactionalContextFactory contextFactory,
158+
QueryExecutionEngine executionEngine,
159+
QuerySubscriber subscriber
160+
) {
161+
var convertedParams = ValueUtils.asMapValue(params);
162+
var context = Neo4jProxy.newQueryContext(contextFactory, tx, query, convertedParams);
163+
try {
164+
return executionEngine.executeQuery(query, convertedParams, context, false, subscriber);
165+
} catch (QueryExecutionKernelException e) {
166+
throw e.asUserException();
167+
}
168+
}
169+
149170
}

neo4j-adapter/src/main/java/org/neo4j/gds/compat/GraphDatabaseApiProxy.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,8 @@
3636
import org.neo4j.kernel.impl.coreapi.InternalTransaction;
3737
import org.neo4j.kernel.impl.factory.DbmsInfo;
3838
import org.neo4j.kernel.impl.query.Neo4jTransactionalContextFactory;
39-
import org.neo4j.kernel.impl.query.QueryExecution;
4039
import org.neo4j.kernel.impl.query.QueryExecutionEngine;
41-
import org.neo4j.kernel.impl.query.QueryExecutionKernelException;
42-
import org.neo4j.kernel.impl.query.QuerySubscriber;
4340
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
44-
import org.neo4j.kernel.impl.util.ValueUtils;
4541
import org.neo4j.kernel.internal.GraphDatabaseAPI;
4642

4743
import java.util.Map;
@@ -132,23 +128,6 @@ public static Result runQueryWithoutClosingTheResult(Transaction tx, String quer
132128
return tx.execute(query, params);
133129
}
134130

135-
public static QueryExecution runQueryWithoutClosingTheResult(
136-
InternalTransaction tx,
137-
String query,
138-
Map<String, Object> params,
139-
TransactionalContextFactory contextFactory,
140-
QueryExecutionEngine executionEngine,
141-
QuerySubscriber subscriber
142-
) {
143-
var convertedParams = ValueUtils.asMapValue(params);
144-
var context = contextFactory.newContext(tx, query, convertedParams);
145-
try {
146-
return executionEngine.executeQuery(query, convertedParams, context, false, subscriber);
147-
} catch (QueryExecutionKernelException e) {
148-
throw e.asUserException();
149-
}
150-
}
151-
152131
public static Result runQueryWithoutClosingTheResult(
153132
KernelTransaction tx,
154133
String query,

0 commit comments

Comments
 (0)