Polishing.

Inherit column name when using function builder.

See #1504
This commit is contained in:
Mark Paluch
2025-02-13 14:11:19 +01:00
parent 3aadf3bf60
commit c61f305350
2 changed files with 11 additions and 2 deletions

View File

@@ -75,6 +75,11 @@ public abstract class ColumnName {
*/
public abstract Optional<CqlIdentifier> getCqlIdentifier();
CqlIdentifier getRequiredCqlIdentifier() {
return getCqlIdentifier().or(() -> getColumnName().map(CqlIdentifier::fromCql))
.orElseGet(() -> CqlIdentifier.fromCql(toCql()));
}
/**
* Represent the column name as CQL.
*

View File

@@ -480,6 +480,10 @@ public class Columns implements Iterable<ColumnName> {
return new FunctionCall(expression, params, alias);
}
FunctionCall as(ColumnName alias) {
return new FunctionCall(expression, params, alias.getRequiredCqlIdentifier());
}
@Override
public String getExpression() {
return expression;
@@ -625,7 +629,7 @@ public class Columns implements Iterable<ColumnName> {
@Override
public Selector ttl() {
return FunctionCall.from("TTL", ColumnSelector.from(columnName));
return FunctionCall.from("TTL", ColumnSelector.from(columnName)).as(columnName);
}
@Override
@@ -657,7 +661,7 @@ public class Columns implements Iterable<ColumnName> {
@Override
public Selector using(SimilarityFunction similarityFunction) {
return FunctionCall.from("similarity_" + similarityFunction.name().toLowerCase(Locale.ROOT), columnName,
vector);
vector).as(columnName);
}
};
}