Skip to content

Commit

Permalink
[CALCITE-6819] MSSQL doesn't support TRUE/FALSE keywords in its Join …
Browse files Browse the repository at this point in the history
…predicate

PR Comments 2
  • Loading branch information
sreeharshar84 committed Feb 15, 2025
1 parent 7ec6c0d commit 72bd96c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

import org.checkerframework.checker.nullness.qual.Nullable;

import static org.apache.calcite.util.RelToSqlConverterUtil.writeAlwaysCondition;
import static org.apache.calcite.util.RelToSqlConverterUtil.unparseBoolLiteralToCondition;

import static java.util.Objects.requireNonNull;

Expand Down Expand Up @@ -197,7 +197,7 @@ public MssqlSqlDialect(Context context) {
if (value == null) {
return;
}
writeAlwaysCondition(writer, value);
unparseBoolLiteralToCondition(writer, value);
}

@Override public boolean supportsCharSet() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

import java.util.List;

import static org.apache.calcite.util.RelToSqlConverterUtil.writeAlwaysCondition;
import static org.apache.calcite.util.RelToSqlConverterUtil.unparseBoolLiteralToCondition;

/**
* A <code>SqlDialect</code> implementation for the Oracle database.
Expand Down Expand Up @@ -141,7 +141,7 @@ public OracleSqlDialect(Context context) {
return;
}
// low version oracle not support bool literal
writeAlwaysCondition(writer, value);
unparseBoolLiteralToCondition(writer, value);
}

@Override public void unparseDateTimeLiteral(SqlWriter writer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,13 @@ public static SqlSpecialOperator specialOperatorByName(String opName) {
};
}

public static void writeAlwaysCondition(SqlWriter writer, boolean value) {
/**
* Writes TRUE/FALSE or 1 = 1/ 1 &lt; &gt; 1 for certain.
*
* @param writer current SqlWriter object
* @param value boolean value to be unparsed.
*/
public static void unparseBoolLiteralToCondition(SqlWriter writer, boolean value) {
final SqlWriter.Frame frame = writer.startList("(", ")");
writer.literal("1");
writer.sep(SqlStdOperatorTable.EQUALS.getName());
Expand Down

0 comments on commit 72bd96c

Please sign in to comment.