Skip to content
Snippets Groups Projects
Commit f265eb17 authored by Grégory Mantelet's avatar Grégory Mantelet
Browse files

[ADQL] Add default translation for IN_UNIT(...): as geometries, same as in ADQL.

parent 61b1a079
No related branches found
No related tags found
No related merge requests found
......@@ -51,6 +51,7 @@ import adql.query.operand.WrappedOperand;
import adql.query.operand.function.ADQLFunction;
import adql.query.operand.function.MathFunction;
import adql.query.operand.function.SQLFunction;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.UserDefinedFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
......@@ -151,6 +152,9 @@ public interface ADQLTranslator {
/** @since 2.0 */
public String translate(LowerFunction fct) throws TranslationException;
/** @since 2.0 */
public String translate(UnitConversionFunction fct) throws TranslationException;
/* ***** GEOMETRICAL FUNCTIONS ***** */
public String translate(GeometryFunction fct) throws TranslationException;
......
......@@ -63,6 +63,7 @@ import adql.query.operand.function.ADQLFunction;
import adql.query.operand.function.MathFunction;
import adql.query.operand.function.SQLFunction;
import adql.query.operand.function.SQLFunctionType;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.UserDefinedFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
......@@ -836,6 +837,8 @@ public abstract class JDBCTranslator implements ADQLTranslator {
return translate((UserDefinedFunction)fct);
else if (fct instanceof LowerFunction)
return translate((LowerFunction)fct);
else if (fct instanceof UnitConversionFunction)
return translate((UnitConversionFunction)fct);
else
return getDefaultADQLFunction(fct);
}
......
......@@ -29,6 +29,7 @@ import adql.query.constraint.Comparison;
import adql.query.operand.ADQLOperand;
import adql.query.operand.Concatenation;
import adql.query.operand.Operation;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
import adql.query.operand.function.geometry.CentroidFunction;
......@@ -155,7 +156,7 @@ public class MySQLTranslator extends JDBCTranslator {
switch(comp.getOperator()) {
case ILIKE:
case NOTILIKE:
throw new TranslationException("Translation of ILIKE impossible! This is not supported in MySQL.");
throw new TranslationException("Translation of ILIKE impossible! This is not supported natively in MySQL.");
default:
return translate(comp.getLeftOperand()) + " " + comp.getOperator().toADQL() + " " + translate(comp.getRightOperand());
}
......@@ -177,6 +178,11 @@ public class MySQLTranslator extends JDBCTranslator {
return translated.toString();
}
@Override
public String translate(final UnitConversionFunction fct) throws TranslationException {
return getDefaultADQLFunction(fct);
}
/* ********************************************************************** */
/* * * */
/* * TYPE MANAGEMENT * */
......
......@@ -30,6 +30,7 @@ import adql.query.operand.OperationType;
import adql.query.operand.StringConstant;
import adql.query.operand.function.ADQLFunction;
import adql.query.operand.function.MathFunction;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
import adql.query.operand.function.geometry.CentroidFunction;
......@@ -175,6 +176,11 @@ public class PostgreSQLTranslator extends JDBCTranslator {
}
}
@Override
public String translate(final UnitConversionFunction fct) throws TranslationException {
return getDefaultADQLFunction(fct);
}
@Override
public String translate(ExtractCoord extractCoord) throws TranslationException {
return getDefaultADQLFunction(extractCoord);
......
......@@ -41,6 +41,7 @@ import adql.query.operand.ADQLColumn;
import adql.query.operand.ADQLOperand;
import adql.query.operand.Concatenation;
import adql.query.operand.function.MathFunction;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
import adql.query.operand.function.geometry.CentroidFunction;
......@@ -194,12 +195,17 @@ public class SQLServerTranslator extends JDBCTranslator {
switch(comp.getOperator()) {
case ILIKE:
case NOTILIKE:
throw new TranslationException("Translation of ILIKE impossible! This is not supported in MS-SQL Server.");
throw new TranslationException("Translation of ILIKE impossible! This is not supported natively in MS-SQL Server.");
default:
return translate(comp.getLeftOperand()) + " " + comp.getOperator().toADQL() + " " + translate(comp.getRightOperand());
}
}
@Override
public String translate(final UnitConversionFunction fct) throws TranslationException {
return getDefaultADQLFunction(fct);
}
@Override
public String translate(Concatenation concat) throws TranslationException {
StringBuffer translated = new StringBuffer();
......
......@@ -20,6 +20,7 @@ import adql.query.operand.NumericConstant;
import adql.query.operand.Operation;
import adql.query.operand.StringConstant;
import adql.query.operand.function.DefaultUDF;
import adql.query.operand.function.UnitConversionFunction;
import adql.query.operand.function.geometry.AreaFunction;
import adql.query.operand.function.geometry.BoxFunction;
import adql.query.operand.function.geometry.CentroidFunction;
......@@ -173,6 +174,11 @@ public class TestJDBCTranslator {
public final static class AJDBCTranslator extends JDBCTranslator {
@Override
public String translate(UnitConversionFunction fct) throws TranslationException {
return null;
}
@Override
public String translate(ExtractCoord extractCoord) throws TranslationException {
return null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment