added QDateTime and QString expression libraries

updated tests for HSQLDB and MySQL
This commit is contained in:
Timo Westkämper 2009-01-20 12:27:58 +00:00
parent e8a6ea727d
commit bfb0fd8e83
2 changed files with 24 additions and 32 deletions

View File

@ -57,19 +57,19 @@ public class HqlGrammar extends GrammarWithAlias{
}
public static EComparable<Date> current_date(){
return createComparable(OpHql.CURRENT_DATE);
return createComparable(Date.class,Ops.OpDateTime.CURRENT_DATE);
}
public static EComparable<Date> current_time(){
return createComparable(OpHql.CURRENT_TIME);
return createComparable(Date.class,Ops.OpDateTime.CURRENT_TIME);
}
public static EComparable<Date> current_timestamp(){
return createComparable(OpHql.CURRENT_TIMESTAMP);
return createComparable(Date.class,Ops.OpDateTime.CURRENT_TIMESTAMP);
}
public static EComparable<Date> day(Expr<Date> date){
return createComparable(OpHql.DAY, date);
return createComparable(Date.class,Ops.OpDateTime.DAY, date);
}
public static <T> Expr<T> distinct(Path<T> left){
@ -85,7 +85,7 @@ public class HqlGrammar extends GrammarWithAlias{
}
public static EComparable<Date> hour(Expr<Date> date){
return createComparable(OpHql.HOUR, date);
return createComparable(Date.class,Ops.OpDateTime.HOUR, date);
}
public static PComponentCollection<Integer> indices(PCollection<?> col){
@ -145,11 +145,11 @@ public class HqlGrammar extends GrammarWithAlias{
}
public static EComparable<Date> minute(Expr<Date> date){
return createComparable(OpHql.MINUTE, date);
return createComparable(Date.class,Ops.OpDateTime.MINUTE, date);
}
public static EComparable<Date> month(Expr<Date> date){
return createComparable(OpHql.MONTH, date);
return createComparable(Date.class,Ops.OpDateTime.MONTH, date);
}
public static <A> Expr<A> newInstance(Class<A> a, Expr<?>... args){
@ -161,7 +161,7 @@ public class HqlGrammar extends GrammarWithAlias{
}
public static EComparable<Date> second(Expr<Date> date){
return createComparable(OpHql.SECOND, date);
return createComparable(Date.class,Ops.OpDateTime.SECOND, date);
}
public static <A> SubQuery<HqlJoinMeta,A> select(Expr<A> select){
@ -173,15 +173,15 @@ public class HqlGrammar extends GrammarWithAlias{
}
public static <D extends Number & Comparable<D>> ENumber<D> sum(Expr<D> left){
return createNumber(left.getType(), OpHql.SUM, left);
return createNumber(left.getType(), HqlOps.OpHql.SUM, left);
}
public static EComparable<Date> sysdate(){
return createComparable(OpHql.SYSDATE);
return createComparable(Date.class,Ops.OpDateTime.SYSDATE);
}
public static EComparable<Date> year(Expr<Date> date){
return createComparable(OpHql.YEAR, date);
return createComparable(Date.class,Ops.OpDateTime.YEAR, date);
}
}

View File

@ -63,16 +63,18 @@ public class HqlOps extends OperationPatterns {
// HQL specific
add(OpHql.SUM, "sum(%s)");
add(OpHql.SYSDATE, "sysdate");
add(OpHql.CURRENT_DATE, "current_date()");
add(OpHql.CURRENT_TIME, "current_time()");
add(OpHql.CURRENT_TIMESTAMP, "current_timestamp()");
add(OpHql.SECOND, "second(%s)");
add(OpHql.MINUTE, "minute(%s)");
add(OpHql.HOUR, "hour(%s)");
add(OpHql.DAY, "day(%s)");
add(OpHql.MONTH, "month(%s)");
add(OpHql.YEAR, "year(%s)");
// date time
add(Ops.OpDateTime.SYSDATE, "sysdate");
add(Ops.OpDateTime.CURRENT_DATE, "current_date()");
add(Ops.OpDateTime.CURRENT_TIME, "current_time()");
add(Ops.OpDateTime.CURRENT_TIMESTAMP, "current_timestamp()");
add(Ops.OpDateTime.SECOND, "second(%s)");
add(Ops.OpDateTime.MINUTE, "minute(%s)");
add(Ops.OpDateTime.HOUR, "hour(%s)");
add(Ops.OpDateTime.DAY, "day(%s)");
add(Ops.OpDateTime.MONTH, "month(%s)");
add(Ops.OpDateTime.YEAR, "year(%s)");
// quantified expressions
add(OpQuant.AVG_IN_COL, "avg(%s)");
@ -105,19 +107,9 @@ public class HqlOps extends OperationPatterns {
* The Interface OpHql.
*/
public interface OpHql{
Op<java.util.Date> CURRENT_DATE = new Op<java.util.Date>();
Op<java.util.Date> CURRENT_TIME = new Op<java.util.Date>();
Op<java.util.Date> CURRENT_TIMESTAMP = new Op<java.util.Date>();
Op<java.util.Date> DAY = new Op<java.util.Date>();
Op<java.util.Date> HOUR = new Op<java.util.Date>();
Op<java.lang.Boolean> ISEMPTY = new Op<java.lang.Boolean>();
Op<java.lang.Boolean> ISNOTEMPTY = new Op<java.lang.Boolean>();
Op<java.util.Date> MINUTE = new Op<java.util.Date>();
Op<java.util.Date> MONTH = new Op<java.util.Date>();
Op<java.util.Date> SECOND = new Op<java.util.Date>();
Op<java.lang.Number> SUM = new Op<java.lang.Number>();
Op<java.util.Date> SYSDATE = new Op<java.util.Date>();
Op<java.util.Date> YEAR = new Op<java.util.Date>();
Op<Number> SUM = new Op<Number>();
}
/**