Skip to content

Unable to Execute SQL Script with IF Statement from Console #2775

@ironluca

Description

@ironluca

The below script gives error when executed from console (load command)

LET x=SELECT FROM ZX;

if($x.size()>0){
return true;
}

return false;

The error is as below. The script when copy pasted to UI, works perfectly.
In console, I executed set language=sqlscript before executing the script.
ArcadeDB Version: arcadedb-25.10.1
JDK: jdk-22.0.2+9
OS: Ubuntu 22.04 LTS

{testdb}> load <path>/test-script.osql

Executing commands from file <path>/test-script.osql...
{testdb}> LET x=SELECT FROM ZX
Command executed in 7ms
{testdb}> 
{testdb}> if($x.size()>0){
ERROR:
com.arcadedb.remote.RemoteException: Error on executing remote operation if($x.size()>0){ (cause:com.arcadedb.exception.CommandSQLParsingException detail:com.arcadedb.query.sql.parser.ParseException: Encountered <EOF> at line 1, column 17. Was expecting one of:     <ALIASES> ...     <ALIGN> ...     <SELECT> ...     <TRAVERSE> ...     <MATCH> ...     <INSERT> ...     <CREATE> ...     <CUSTOM> ...     <DELETE> ...     <UPDATE> ...     <TO> ...     <WHILE> ...     <VALUE> ...     <VALUES> ...     <SET> ...     <ADD> ...     <PUT> ...     <MERGE> ...     <CONTENT> ...     <REMOVE> ...     <NULL> ...     <DEFINE> ...     <BREAK> ...     <OF> ...     <OFFSET> ...     <RETURN> ...     <RECORD> ...     <LET> ...     <LOCK> ...     <CHECK> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <MINDEPTH> ...     <TYPE> ...     <SUPERTYPE> ...     <TYPES> ...     <EXCEPTION> ...     <PROFILE> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BACKUP> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <PARAMETERS> ...     <LANGUAGE> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <DISTINCT> ...     <EXISTS> ...     <FOREACH> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <THIS> ...     <RECORD_ATTRIBUTE> ...     <RID_STRING> ...     <INTEGER_LITERAL> ...     <FLOATING_POINT_LITERAL> ...     <CHARACTER_LITERAL> ...     <STRING_LITERAL> ...     <TRUE> ...     <FALSE> ...     "(" ...     "{" ...     "" ...     "[" ...     ";" ...     "?" ...     ":" ...     "-" ...     "*" ...     <IN> ...     <KEY> ...     <ITEM> ...     <IDENTIFIER> ...     <QUOTED_IDENTIFIER> ...     "#" ...     <EXPLAIN> ...     <PROFILE> ...     <LET> ...     <SELECT> ...     <SELECT> ...     <TRAVERSE> ...     <MATCH> ...     <DELETE> ...     <UPDATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <CREATE> ...     <DEFINE> ...     <DELETE> ...     <TRUNCATE> ...     <TRUNCATE> ...     <TRUNCATE> ...     <ALTER> ...     <DROP> ...     <ALTER> ...     <DROP> ...     <DROP> ...     <ALTER> ...     <DROP> ...     <ALTER> ...     <IMPORT> ...     <EXPORT> ...     <BACKUP> ...     <CHECK> ...     <ALIGN> ...     <INSERT> ...     <MOVE> ...     <REBUILD> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <LOCK> ...     <RETURN> ...     <SLEEP> ...     <CONSOLE> ...     <IF> ...     <NULL> ...     <TRUE> ...     <FALSE> ...     "#" ...     "-" ...     <INTEGER_LITERAL> ...     "{" ...     "(" ...     "-" ...     <INTEGER_LITERAL> ...     "-" ...     <FLOATING_POINT_LITERAL> ...     <IDENTIFIER> ...     <ALIASES> ...     <ALIGN> ...     <IN> ...     <SET> ...     <PUT> ...     <ADD> ...     <REMOVE> ...     <MERGE> ...     <CONTENT> ...     <KEY> ...     <ITEM> ...     <OF> ...     <OFFSET> ...     <VALUE> ...     <VALUES> ...     <RECORD> ...     <TO> ...     <TYPE> ...     <TYPES> ...     <MINDEPTH> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <EXCEPTION> ...     <PROFILE> ...     <CUSTOM> ...     <CHECK> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <SUPERTYPE> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <LANGUAGE> ...     <PARAMETERS> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <LOCK> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <EXISTS> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <QUOTED_IDENTIFIER> ...     <DISTINCT> ...     <THIS> ...     "[" ...     <IDENTIFIER> ...     <ALIASES> ...     <ALIGN> ...     <IN> ...     <SET> ...     <PUT> ...     <ADD> ...     <REMOVE> ...     <MERGE> ...     <CONTENT> ...     <KEY> ...     <ITEM> ...     <OF> ...     <OFFSET> ...     <VALUE> ...     <VALUES> ...     <RECORD> ...     <TO> ...     <TYPE> ...     <TYPES> ...     <MINDEPTH> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <EXCEPTION> ...     <PROFILE> ...     <CUSTOM> ...     <CHECK> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <SUPERTYPE> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <LANGUAGE> ...     <PARAMETERS> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <LOCK> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <EXISTS> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <QUOTED_IDENTIFIER> ...     <RECORD_ATTRIBUTE> ...     "*" ...     "?" ...     ":" ...     <STRING_LITERAL> ...     <RID_STRING> ...     <CHARACTER_LITERAL> ...     <NULL> ...     "{" ...     <NULL> ...     <TRUE> ...     <FALSE> ...     "#" ...     "-" ...     <INTEGER_LITERAL> ...     "{" ...     "(" ...     "(" ...     "-" ...     <INTEGER_LITERAL> ...     "-" ...     <FLOATING_POINT_LITERAL> ...     <IDENTIFIER> ...     <ALIASES> ...     <ALIGN> ...     <IN> ...     <SET> ...     <PUT> ...     <ADD> ...     <REMOVE> ...     <MERGE> ...     <CONTENT> ...     <KEY> ...     <ITEM> ...     <OF> ...     <OFFSET> ...     <VALUE> ...     <VALUES> ...     <RECORD> ...     <TO> ...     <TYPE> ...     <TYPES> ...     <MINDEPTH> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <EXCEPTION> ...     <PROFILE> ...     <CUSTOM> ...     <CHECK> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <SUPERTYPE> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <LANGUAGE> ...     <PARAMETERS> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <LOCK> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <EXISTS> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <QUOTED_IDENTIFIER> ...     <DISTINCT> ...     <THIS> ...     "[" ...     <IDENTIFIER> ...     <ALIASES> ...     <ALIGN> ...     <IN> ...     <SET> ...     <PUT> ...     <ADD> ...     <REMOVE> ...     <MERGE> ...     <CONTENT> ...     <KEY> ...     <ITEM> ...     <OF> ...     <OFFSET> ...     <VALUE> ...     <VALUES> ...     <RECORD> ...     <TO> ...     <TYPE> ...     <TYPES> ...     <MINDEPTH> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <EXCEPTION> ...     <PROFILE> ...     <CUSTOM> ...     <CHECK> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <SUPERTYPE> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <LANGUAGE> ...     <PARAMETERS> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <LOCK> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <EXISTS> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <QUOTED_IDENTIFIER> ...     <RECORD_ATTRIBUTE> ...     "*" ...     "?" ...     ":" ...     <STRING_LITERAL> ...     <RID_STRING> ...     <CHARACTER_LITERAL> ...     <NULL> ...     "{" ...     <IF> ...     <WHILE> ...     <FOREACH> ...     <BREAK> ...     ";" ...     "}" ...     )
	at com.arcadedb.remote.RemoteHttpComponent.manageException(RemoteHttpComponent.java:531)
	at com.arcadedb.remote.RemoteHttpComponent.httpCommand(RemoteHttpComponent.java:253)
	at com.arcadedb.remote.RemoteDatabase.databaseCommand(RemoteDatabase.java:502)
	at com.arcadedb.remote.RemoteDatabase.command(RemoteDatabase.java:449)
	at com.arcadedb.console.Console.executeSQL(Console.java:632)
	at com.arcadedb.console.Console.execute(Console.java:294)
	at com.arcadedb.console.Console.parse(Console.java:787)
	at com.arcadedb.console.Console.executeLoad(Console.java:734)
	at com.arcadedb.console.Console.execute(Console.java:288)
	at com.arcadedb.console.Console.parse(Console.java:787)
	at com.arcadedb.console.Console.interactiveMode(Console.java:150)
	at com.arcadedb.console.Console.execute(Console.java:207)
	at com.arcadedb.console.Console.main(Console.java:167)
}

{testdb}> return true
+-----+-----+
|NAME |VALUE|
+-----+-----+
|value|true |
+-----+-----+
Command executed in 6ms
{testdb}> }
ERROR:
com.arcadedb.remote.RemoteException: Error on executing remote operation  (cause:com.arcadedb.exception.CommandSQLParsingException detail:com.arcadedb.query.sql.parser.ParseException: Encountered "}" "}" at line 1, column 1. Was expecting one of:     <EOF>      <ALIASES> ...     <ALIGN> ...     <SELECT> ...     <TRAVERSE> ...     <MATCH> ...     <INSERT> ...     <CREATE> ...     <CUSTOM> ...     <DELETE> ...     <UPDATE> ...     <TO> ...     <WHILE> ...     <VALUE> ...     <VALUES> ...     <SET> ...     <ADD> ...     <PUT> ...     <MERGE> ...     <CONTENT> ...     <REMOVE> ...     <NULL> ...     <DEFINE> ...     <OF> ...     <OFFSET> ...     <RETURN> ...     <RECORD> ...     <LET> ...     <LOCK> ...     <CHECK> ...     <NEAR> ...     <WITH> ...     <WITHIN> ...     <MINDEPTH> ...     <TYPE> ...     <SUPERTYPE> ...     <TYPES> ...     <EXCEPTION> ...     <PROFILE> ...     <ON> ...     <OFF> ...     <TRUNCATE> ...     <FIND> ...     <EXTENDS> ...     <BACKUP> ...     <BUCKETS> ...     <BUCKETSELECTIONSTRATEGY> ...     <ALTER> ...     <NAME> ...     <ADDBUCKET> ...     <REMOVEBUCKET> ...     <DROP> ...     <PROPERTY> ...     <HIDDEN> ...     <FORCE> ...     <INDEX> ...     <ENGINE> ...     <METADATA> ...     <REBUILD> ...     <FORMAT> ...     <EXPORT> ...     <IMPORT> ...     <DATABASE> ...     <OPTIMIZE> ...     <LINK> ...     <INVERSE> ...     <EXPLAIN> ...     <GRANT> ...     <REVOKE> ...     <READ> ...     <EXECUTE> ...     <ALL> ...     <NONE> ...     <FUNCTION> ...     <PARAMETERS> ...     <LANGUAGE> ...     <BEGIN> ...     <COMMIT> ...     <ROLLBACK> ...     <IF> ...     <ELSE> ...     <CONTINUE> ...     <FAIL> ...     <ISOLATION> ...     <SLEEP> ...     <CONSOLE> ...     <START> ...     <OPTIONAL> ...     <COUNT> ...     <DISTINCT> ...     <EXISTS> ...     <FOREACH> ...     <MOVE> ...     <DEPTH_ALIAS> ...     <PATH_ALIAS> ...     <IDENTIFIED> ...     <RID> ...     <SYSTEM> ...     <UNIDIRECTIONAL> ...     <THIS> ...     <RECORD_ATTRIBUTE> ...     <RID_STRING> ...     <INTEGER_LITERAL> ...     <FLOATING_POINT_LITERAL> ...     <CHARACTER_LITERAL> ...     <STRING_LITERAL> ...     <TRUE> ...     <FALSE> ...     "(" ...     "{" ...     "[" ...     ";" ...     "?" ...     ":" ...     "-" ...     "*" ...     <IN> ...     <KEY> ...     <ITEM> ...     <IDENTIFIER> ...     <QUOTED_IDENTIFIER> ...     "#" ...     )
	at com.arcadedb.remote.RemoteHttpComponent.manageException(RemoteHttpComponent.java:531)
	at com.arcadedb.remote.RemoteHttpComponent.httpCommand(RemoteHttpComponent.java:253)
	at com.arcadedb.remote.RemoteDatabase.databaseCommand(RemoteDatabase.java:502)
	at com.arcadedb.remote.RemoteDatabase.command(RemoteDatabase.java:449)
	at com.arcadedb.console.Console.executeSQL(Console.java:632)
	at com.arcadedb.console.Console.execute(Console.java:294)
	at com.arcadedb.console.Console.parse(Console.java:787)
	at com.arcadedb.console.Console.executeLoad(Console.java:734)
	at com.arcadedb.console.Console.execute(Console.java:288)
	at com.arcadedb.console.Console.parse(Console.java:787)
	at com.arcadedb.console.Console.interactiveMode(Console.java:150)
	at com.arcadedb.console.Console.execute(Console.java:207)
	at com.arcadedb.console.Console.main(Console.java:167)
}

{testdb}> 
{testdb}> return false
+-----+-----+
|NAME |VALUE|
+-----+-----+
|value|false|
+-----+-----+
Command executed in 6ms
File processed in 0 seconds

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions