From 76a29503e6ed9730108c257d2a7c6a028a4c392c Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 13 Feb 2025 14:13:21 +0100 Subject: [PATCH] Polishing. Inherit column name when using function builder. See #1504 --- .../data/cassandra/core/query/Columns.java | 10 ++++++---- .../data/cassandra/core/StatementFactoryUnitTests.java | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java index 6e6582f6d..a39a58f03 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java @@ -134,7 +134,7 @@ public class Columns implements Iterable { * @return a new {@link Columns} object containing all column definitions and the TTL for {@code columnName}. */ public Columns ttl(String columnName) { - return select(columnName, SelectorBuilder::ttl); + return select(columnName, FunctionCall.from("TTL", ColumnSelector.from(columnName))); } /** @@ -145,7 +145,7 @@ public class Columns implements Iterable { * @return a new {@link Columns} object containing all column definitions and the TTL for {@code columnName}. */ public Columns ttl(CqlIdentifier columnName) { - return select(columnName, SelectorBuilder::ttl); + return select(columnName, FunctionCall.from("TTL", ColumnSelector.from(columnName))); } /** @@ -161,7 +161,8 @@ public class Columns implements Iterable { /** * Include column {@code columnName} with a built {@link Selector}. This column selection overrides an existing - * selection for the column name. + * selection for the column name. {@link SelectorBuilder} uses the given {@code columnName} as column alias to + * represent the selection in the result. * * @param columnName must not be {@literal null}. * @return a new {@link Columns} object containing all column definitions and the selected {@code columnName}. @@ -175,7 +176,8 @@ public class Columns implements Iterable { /** * Include column {@code columnName} with a built {@link Selector}. This column selection overrides an existing - * selection for the column name. + * selection for the column name. {@link SelectorBuilder} uses the given {@code columnName} as column alias to + * represent the selection in the result. * * @param columnName must not be {@literal null}. * @return a new {@link Columns} object containing all column definitions and the selected {@code columnName}. diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java index 84d82d233..20dbc69bc 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/StatementFactoryUnitTests.java @@ -960,7 +960,7 @@ class StatementFactoryUnitTests { .build(ParameterHandling.BY_NAME); assertThat(statement.getQuery()).isEqualTo( - "SELECT comment,similarity_cosine(vector,[0.2, 0.15, 0.3, 0.2, 0.05]) FROM withvector ORDER BY vector ANN OF [1.2, 1.3]"); + "SELECT comment,similarity_cosine(vector,[0.2, 0.15, 0.3, 0.2, 0.05]) AS vector FROM withvector ORDER BY vector ANN OF [1.2, 1.3]"); assertThat(statement.getNamedValues()).isEmpty(); }