diff --git a/src/main/java/uk/ac/ed/pguaglia/real/lang/Equality.java b/src/main/java/uk/ac/ed/pguaglia/real/lang/Equality.java index a83dd11ba1dc5e7f2c21a2a739dc96e6792e2bb1..5b1206f7028b5d645ba676f3bd5e011360607258 100644 --- a/src/main/java/uk/ac/ed/pguaglia/real/lang/Equality.java +++ b/src/main/java/uk/ac/ed/pguaglia/real/lang/Equality.java @@ -54,9 +54,9 @@ public class Equality extends Condition { @Override public String toSQL() { String left = this.left.isAttribute() ? - Database.encode(this.left.getValue()) : "'" + this.left.getValue() + "'"; + Database.encode(this.left.getValue()) : this.left.getValue(); String right = this.right.isAttribute() ? - Database.encode(this.right.getValue()) : "'" + this.right.getValue() + "'"; + Database.encode(this.right.getValue()) : this.right.getValue(); return left + " = " + right; } } diff --git a/src/main/java/uk/ac/ed/pguaglia/real/lang/LessThan.java b/src/main/java/uk/ac/ed/pguaglia/real/lang/LessThan.java index 59f6bf242dc0ddd6308da43f59b56551b31b47e5..6cec205ed00cbcdbc693d392f3bdf1f9e7e5c1c6 100644 --- a/src/main/java/uk/ac/ed/pguaglia/real/lang/LessThan.java +++ b/src/main/java/uk/ac/ed/pguaglia/real/lang/LessThan.java @@ -55,10 +55,19 @@ public class LessThan extends Condition { @Override public String toSQL() { - String left = this.left.isAttribute() ? - Database.encode(this.left.getValue()) : "'" + this.left.getValue() + "'"; - String right = this.right.isAttribute() ? - Database.encode(this.right.getValue()) : "'" + this.right.getValue() + "'"; + // This is a hack TODO: introduce types? + String left = this.left.getValue(); + if (this.left.isAttribute()) { + left = Database.encode(left); + } else if (left.startsWith("'") == false) { + left = "CAST(" + left + " AS int)"; + } + String right = this.right.getValue(); + if (this.right.isAttribute()) { + right = Database.encode(right); + } else if (right.startsWith("'") == false) { + right = "CAST( " + right + " AS int)"; + } return left + " < " + right; } }