Title: SQL: Error when comparing two empty strings · Issue #1297 · ArcadeData/arcadedb · GitHub
Open Graph Title: SQL: Error when comparing two empty strings · Issue #1297 · ArcadeData/arcadedb
X Title: SQL: Error when comparing two empty strings · Issue #1297 · ArcadeData/arcadedb
Description: ArcadeDB Version: ArcadeDB Server v23.10.1 (build 47e2c315678e3a503e5c9b4e615186bed925ac7d/1698807954815/main) OS and JDK Version: Running on Linux 6.4.16-linuxkit - OpenJDK 64-Bit Server VM 11.0.21 (Temurin-11.0.21+9) In 23.10.1 (via do...
Open Graph Description: ArcadeDB Version: ArcadeDB Server v23.10.1 (build 47e2c315678e3a503e5c9b4e615186bed925ac7d/1698807954815/main) OS and JDK Version: Running on Linux 6.4.16-linuxkit - OpenJDK 64-Bit Server VM 11.0.2...
X Description: ArcadeDB Version: ArcadeDB Server v23.10.1 (build 47e2c315678e3a503e5c9b4e615186bed925ac7d/1698807954815/main) OS and JDK Version: Running on Linux 6.4.16-linuxkit - OpenJDK 64-Bit Server VM 11.0.2...
Opengraph URL: https://github.com/ArcadeData/arcadedb/issues/1297
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"SQL: Error when comparing two empty strings","articleBody":"### ArcadeDB Version:\r\n`ArcadeDB Server v23.10.1 (build 47e2c315678e3a503e5c9b4e615186bed925ac7d/1698807954815/main)`\r\n### OS and JDK Version:\r\n`Running on Linux 6.4.16-linuxkit - OpenJDK 64-Bit Server VM 11.0.21 (Temurin-11.0.21+9)`\r\n\r\nIn `23.10.1` (via docker hub container) the following error appears when comparing an empty string against an empty string.\r\nParticularly, this happens only if both sides in a comparison are the empty string.\r\nHowever, this error is strangely not happening with the current repo head.\r\n\r\nMaybe the case of two empty string needs to be handled here https://github.com/ArcadeData/arcadedb/blob/main/engine/src/main/java/com/arcadedb/serializer/BinaryComparator.java#L403 ?\r\n\r\n### Expected behavior\r\nCorrect string comparisons with empty strings.\r\n\r\n### Actual behavior\r\n\r\n\u003cdetails\u003e \u003csummary\u003e\u003ccode\u003eInternal error Index -1 out of bounds for length 0\u003c/code\u003e\u003c/summary\u003e\r\n\r\n```\r\nError on command execution (PostCommandHandler)\r\njava.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0\r\n at com.arcadedb.serializer.BinaryComparator.equalsBytes(BinaryComparator.java:410)\r\n at com.arcadedb.serializer.BinaryComparator.equalsString(BinaryComparator.java:399)\r\n at com.arcadedb.serializer.BinaryComparator.equals(BinaryComparator.java:382)\r\n at com.arcadedb.query.sql.executor.QueryOperatorEquals.equals(QueryOperatorEquals.java:39)\r\n at com.arcadedb.query.sql.parser.EqualsCompareOperator.execute(EqualsCompareOperator.java:35)\r\n at com.arcadedb.query.sql.parser.BinaryCondition.evaluate(BinaryCondition.java:49)\r\n at com.arcadedb.query.sql.parser.NotBlock.evaluate(NotBlock.java:56)\r\n at com.arcadedb.query.sql.parser.AndBlock.evaluate(AndBlock.java:70)\r\n at com.arcadedb.query.sql.parser.OrBlock.evaluate(OrBlock.java:58)\r\n at com.arcadedb.query.sql.parser.WhereClause.matchesFilters(WhereClause.java:56)\r\n at com.arcadedb.query.sql.parser.Expression.execute(Expression.java:89)\r\n at com.arcadedb.query.sql.parser.ProjectionItem.execute(ProjectionItem.java:137)\r\n at com.arcadedb.query.sql.parser.Projection.calculateSingle(Projection.java:129)\r\n at com.arcadedb.query.sql.executor.ProjectionCalculationStep.calculateProjections(ProjectionCalculationStep.java:66)\r\n at com.arcadedb.query.sql.executor.ProjectionCalculationStep$1.next(ProjectionCalculationStep.java:51)\r\n at com.arcadedb.query.sql.parser.LocalResultSet.next(LocalResultSet.java:72)\r\n at com.arcadedb.server.http.handler.AbstractQueryHandler.serializeResultSet(AbstractQueryHandler.java:98)\r\n at com.arcadedb.server.http.handler.PostCommandHandler.execute(PostCommandHandler.java:100)\r\n at com.arcadedb.server.http.handler.DatabaseAbstractHandler.execute(DatabaseAbstractHandler.java:99)\r\n at com.arcadedb.server.http.handler.AbstractServerHttpHandler.handleRequest(AbstractServerHttpHandler.java:126)\r\n at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)\r\n at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)\r\n at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)\r\n at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)\r\n at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)\r\n at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)\r\n at java.base/java.lang.Thread.run(Thread.java:829)\r\n\r\n```\r\n\u003c/details\u003e\r\n\r\n### Steps to reproduce\r\n\r\nMinimal example:\r\n```\r\nSELECT ('' != '')\r\n```\r\n\r\nGeneral example:\r\n```\r\nCREATE DOCUMENT TYPE doc;\r\nCREATE PROPERTY doc.str;\r\nINSERT INTO doc SET str = '';\r\nSELECT str FROM doc WHERE str != ''\r\n```\r\n","author":{"url":"https://github.com/gramian","@type":"Person","name":"gramian"},"datePublished":"2023-11-02T19:13:00.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/1297/arcadedb/issues/1297"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:83dac599-667b-7b92-5473-056d49071b52 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 92AE:21BA3B:3224438:42EC748:6A654204 |
| html-safe-nonce | 4f640b8bc7eb4a4a3424046dac5f7eae5f5861cd234e0a7a694c1d719d141614 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MkFFOjIxQkEzQjozMjI0NDM4OjQyRUM3NDg6NkE2NTQyMDQiLCJ2aXNpdG9yX2lkIjoiMzAxNDYwNjQ3NzA1NDAwMTY2OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | ee4bc2c732231ff0b801e422f06decbde398aedaf42f878c96e64c2bd9a9d90f |
| hovercard-subject-tag | issue:1974889099 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/ArcadeData/arcadedb/1297/issue_layout |
| twitter:image | https://opengraph.githubassets.com/7e629cbe792c68bcacd73e537ed51d727afb280a9ccc4cb11c807b9f1d1eb29a/ArcadeData/arcadedb/issues/1297 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/7e629cbe792c68bcacd73e537ed51d727afb280a9ccc4cb11c807b9f1d1eb29a/ArcadeData/arcadedb/issues/1297 |
| og:image:alt | ArcadeDB Version: ArcadeDB Server v23.10.1 (build 47e2c315678e3a503e5c9b4e615186bed925ac7d/1698807954815/main) OS and JDK Version: Running on Linux 6.4.16-linuxkit - OpenJDK 64-Bit Server VM 11.0.2... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | gramian |
| hostname | github.com |
| expected-hostname | github.com |
| None | 52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b |
| turbo-cache-control | no-preview |
| go-import | github.com/ArcadeData/arcadedb git https://github.com/ArcadeData/arcadedb.git |
| octolytics-dimension-user_id | 32255470 |
| octolytics-dimension-user_login | ArcadeData |
| octolytics-dimension-repository_id | 396867188 |
| octolytics-dimension-repository_nwo | ArcadeData/arcadedb |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 396867188 |
| octolytics-dimension-repository_network_root_nwo | ArcadeData/arcadedb |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 309153364422b3c499922d1a2a6404910a58ed8e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width