use of io.questdb.griffin.FunctionFactory in project questdb by bluestreak01.
the class EqDoubleFunctionFactoryTest method testRightNaNDate.
@Test
public void testRightNaNDate() throws SqlException {
FunctionFactory factory = getFunctionFactory();
ObjList<Function> args = new ObjList<>();
args.add(new DateConstant(10000L));
args.add(new DoubleConstant(Double.NaN));
IntList argPositions = new IntList();
argPositions.add(1);
argPositions.add(2);
Function function = factory.newInstance(4, args, argPositions, configuration, sqlExecutionContext);
Assert.assertFalse(function.getBool(null));
}
use of io.questdb.griffin.FunctionFactory in project questdb by bluestreak01.
the class EqDoubleFunctionFactoryTest method testLeftNaNFloatNaN.
@Test
public void testLeftNaNFloatNaN() throws SqlException {
FunctionFactory factory = getFunctionFactory();
ObjList<Function> args = new ObjList<>();
args.add(new FloatConstant(Float.NaN));
args.add(new DoubleConstant(Double.NaN));
IntList argPositions = new IntList();
argPositions.add(1);
argPositions.add(2);
Function function = factory.newInstance(4, args, argPositions, configuration, sqlExecutionContext);
Assert.assertTrue(function.getBool(null));
Assert.assertTrue(function.isConstant());
}
use of io.questdb.griffin.FunctionFactory in project questdb by bluestreak01.
the class CaseCommon method getCastFunction.
static Function getCastFunction(Function arg, int argPosition, int toType, CairoConfiguration configuration, SqlExecutionContext sqlExecutionContext) throws SqlException {
if (ColumnType.isNull(arg.getType())) {
return Constants.getNullConstant(toType);
}
final int keyIndex = castFactories.keyIndex(Numbers.encodeLowHighInts(arg.getType(), toType));
if (keyIndex < 0) {
FunctionFactory fact = castFactories.valueAt(keyIndex);
ObjList<Function> args = tlArgs.get();
args.clear();
args.add(arg);
IntList argPositions = tlArgPositions.get();
argPositions.clear();
argPositions.add(argPosition);
return fact.newInstance(0, args, argPositions, configuration, sqlExecutionContext);
}
return arg;
}
use of io.questdb.griffin.FunctionFactory in project questdb by bluestreak01.
the class EqTimestampStrFunctionFactoryTest method testFalseWhenVariableStringIsNotValidTimestamp.
@Test
public void testFalseWhenVariableStringIsNotValidTimestamp() throws SqlException, NumericException {
long timestamp = parseUTCTimestamp("2020-12-31T23:59:59.000000Z");
CharSequence invalidTimestamp = "abc";
FunctionFactory factory = getFunctionFactory();
ObjList<Function> args = new ObjList<>();
args.add(TimestampColumn.newInstance(0));
args.add(StrColumn.newInstance(5));
IntList argPositions = new IntList();
argPositions.add(0);
argPositions.add(1);
Function function = factory.newInstance(3, args, argPositions, configuration, sqlExecutionContext);
Assert.assertFalse(function.getBool(new Record() {
@Override
public CharSequence getStr(int col) {
return invalidTimestamp;
}
@Override
public long getTimestamp(int col) {
return timestamp;
}
}));
}
use of io.questdb.griffin.FunctionFactory in project questdb by bluestreak01.
the class EqDoubleFunctionFactoryTest method testLeftNaNTimestamp.
@Test
public void testLeftNaNTimestamp() throws SqlException {
FunctionFactory factory = getFunctionFactory();
ObjList<Function> args = new ObjList<>();
args.add(DoubleConstant.NULL);
args.add(new TimestampConstant(20000L));
IntList argPositions = new IntList();
argPositions.add(2);
argPositions.add(1);
Function function = factory.newInstance(4, args, argPositions, configuration, sqlExecutionContext);
Assert.assertFalse(function.getBool(null));
Assert.assertTrue(function.isConstant());
}
Aggregations