Skip to content

Double negation in counter updates with QueryBuilder #233

Open
@avelanarius

Description

@avelanarius

Given such a query built with QueryBuilder:

QueryBuilder.update(KEYSPACE, TABLE)
            .decrement(COLUMN_SCORE, QueryBuilder.literal(beforeScore.score))
            .whereColumn(COLUMN_KEY).isEqualTo(QueryBuilder.literal(key.key))
            .whereColumn(COLUMN_MEMBER).isEqualTo(QueryBuilder.literal(member.member))
            .build()

if decrement value is negative (for example beforeScore.score equal to -13), the generated query will have double negation:

UPDATE tabletest.tablename SET score=score--13 WHERE key='key' AND member='member'

which is an invalid Scylla query. QueryBuilder should avoid generating such a query (it should change -(-13) to +13 in this case).

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions