I have an embedded version of OrientDB 2.1.2. When I execute the following SQL command on a Linux or OSX OS it works great:
DELETE VERTEX Team WHERE @rid=16:1
I also tried the following variations just in case all with the same outcome:
DELETE VERTEX Team WHERE @rid='16:1'
DELETE VERTEX Team WHERE @rid=#16:1
DELETE VERTEX Team WHERE @rid='#16:1'
However, if I run the exact same command(s) on a Windows OS I get the following error:
Cannot find a command executor for the command request: sql.DELETE VERTEX Team WHERE @rid=16:1
All the other SQL queries seem to work on all the OS.
Seems you didn't include the orientdb-graphdb.jar.
Nope I have it:
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-graphdb</artifactId>
<version>${orientdb-version}</version>
<exclusions>
<exclusion>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-core</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
N.B. I have some exclusions as those dependencies are already declared in my project.
Ok so after further investigation it does not have anything to do with the OS! In my pom.xml I declare the following:
<!-- As defined: http://orientdb.com/docs/last/Graph-Database-Tinkerpop.html -->
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-core</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-graphdb</artifactId>
<version>${orientdb-version}</version>
</dependency>
<dependency>
<groupId>com.tinkerpop.blueprints</groupId>
<artifactId>blueprints-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.concurrentlinkedhashmap</groupId>
<artifactId>concurrentlinkedhashmap-lru</artifactId>
<version>1.4.2</version>
</dependency>
<!-- Include to enable embedded db if user selects single mode -->
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-server</artifactId>
<version>${orientdb-version}</version>
</dependency>
<!-- Include to enable remote db if user selects distributed mode -->
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-client</artifactId>
<version>${orientdb-version}</version>
</dependency>
...
<orientdb-version>2.1.3</orientdb-version>
When I run it from the IDE everything works great. However when I package up the project using maven-shade-plugin I start getting these Cannot find a command executor for the command request: errors but only for a subset of queries.
@tarkal
is the tips i gave you here
solved the issue?
@maggiolo00 Yes it did thanks. I specifically had to add:
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/com.orientechnologies.orient.core.sql.functions.OSQLFunctionFactory</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/com.orientechnologies.orient.core.sql.OCommandExecutorSQLFactory</resource>
</transformer>
You can go ahead and close this issue. Thanks for your help.
Cool @tarkal :D
Most helpful comment
@maggiolo00 Yes it did thanks. I specifically had to add:
You can go ahead and close this issue. Thanks for your help.