This is an automated email from the ASF dual-hosted git repository.

mbudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new bbdf14d723 [CALCITE-6633] Add CEILING to MSSQL dialect
bbdf14d723 is described below

commit bbdf14d72392e2cbc61268b9ba8faa7b8778eb57
Author: Sreeharsha Ramanavarapu <[email protected]>
AuthorDate: Thu Oct 17 12:11:15 2024 -0400

    [CALCITE-6633] Add CEILING to MSSQL dialect
    
    Indentation and minor changes.
    
    [CALCITE-6633] Add CEILING to MSSQL dialect
    
    Add Jira link to test.
    
    [CALCITE-6633] Add CEILING to MSSQL dialect
    
    Add CEILING to MSSQL dialect
---
 .../java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java |  5 +++++
 .../apache/calcite/rel/rel2sql/RelToSqlConverterTest.java    | 12 ++++++++++++
 2 files changed, 17 insertions(+)

diff --git 
a/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java 
b/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java
index 6f32a33a4a..02163c170d 100644
--- a/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/dialect/MssqlSqlDialect.java
@@ -163,6 +163,11 @@ public class MssqlSqlDialect extends SqlDialect {
         throw new IllegalArgumentException("MSSQL SUBSTRING requires FROM and 
FOR arguments");
       }
       SqlUtil.unparseFunctionSyntax(MSSQL_SUBSTRING, writer, call, false);
+    } else if (call.getOperator().equals(SqlStdOperatorTable.CEIL)) {
+      // CEILING is supported but not CEIL in MS SQL
+      final SqlWriter.Frame frame = writer.startFunCall("CEILING");
+      call.operand(0).unparse(writer, leftPrec, rightPrec);
+      writer.endFunCall(frame);
     } else {
       switch (call.getKind()) {
       case FLOOR:
diff --git 
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java 
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
index 67fd701f22..259af4b156 100644
--- 
a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
+++ 
b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java
@@ -8696,6 +8696,18 @@ class RelToSqlConverterTest {
     sql(query).withPostgresql().ok(expectedQuery);
   }
 
+ /** Test case for
+   * <a 
href="https://issues.apache.org/jira/browse/CALCITE-6633";>[CALCITE-6633]
+   * MSSQL Dialect does not generate CEILING function</a>.
+   */
+  @Test void testMSSQLCeiling() {
+    final String query = "select 1.24, FLOOR(1.24), CEILING(1.24)";
+    final String mssqlExpected = "SELECT 1.24, FLOOR(1.24), CEILING(1.24)\n"
+        + "FROM (VALUES (0)) AS [t] ([ZERO])";
+    sql(query)
+        .dialect(MssqlSqlDialect.DEFAULT).ok(mssqlExpected);
+  }
+
   /** Fluid interface to run tests. */
   static class Sql {
     private final CalciteAssert.SchemaSpec schemaSpec;

Reply via email to