metamodel git commit: METAMODEL-200: Fixed Fixes #62

2015-10-25 Thread kaspersor
Repository: metamodel
Updated Branches:
  refs/heads/master 9de5b7711 -> bec25c455


METAMODEL-200: Fixed
Fixes #62

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/bec25c45
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/bec25c45
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/bec25c45

Branch: refs/heads/master
Commit: bec25c455e20aa4ddb50d448593fa781a601b58a
Parents: 9de5b77
Author: Kasper Sørensen 
Authored: Sun Oct 25 16:06:13 2015 +0100
Committer: Kasper Sørensen 
Committed: Sun Oct 25 16:06:13 2015 +0100

--
 .../org/apache/metamodel/query/SelectItem.java   | 19 ---
 .../metamodel/query/parser/SelectItemParser.java | 19 +--
 .../apache/metamodel/query/SelectItemTest.java   |  6 ++
 .../metamodel/query/parser/QueryParserTest.java  |  6 ++
 4 files changed, 41 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/metamodel/blob/bec25c45/core/src/main/java/org/apache/metamodel/query/SelectItem.java
--
diff --git a/core/src/main/java/org/apache/metamodel/query/SelectItem.java 
b/core/src/main/java/org/apache/metamodel/query/SelectItem.java
index b9883f8..287d1a6 100644
--- a/core/src/main/java/org/apache/metamodel/query/SelectItem.java
+++ b/core/src/main/java/org/apache/metamodel/query/SelectItem.java
@@ -47,6 +47,8 @@ import org.slf4j.LoggerFactory;
  */
 public class SelectItem extends BaseObject implements QueryItem, Cloneable {
 
+public static final String FUNCTION_APPROXIMATION_PREFIX = "APPROXIMATE ";
+
 private static final long serialVersionUID = 317475105509663973L;
 private static final Logger logger = 
LoggerFactory.getLogger(SelectItem.class);
 
@@ -331,7 +333,10 @@ public class SelectItem extends BaseObject implements 
QueryItem, Cloneable {
 } else if (_column != null) {
 final StringBuilder sb = new StringBuilder();
 if (_function != null) {
-sb.append(_function.toString());
+if (_functionApproximationAllowed) {
+sb.append(FUNCTION_APPROXIMATION_PREFIX);
+}
+sb.append(_function.getFunctionName());
 sb.append('(');
 }
 if (includeQuotes) {
@@ -364,7 +369,11 @@ public class SelectItem extends BaseObject implements 
QueryItem, Cloneable {
 sb.append(columnPrefix);
 sb.append(_column.getQuotedName());
 if (_function != null) {
-sb.insert(0, _function + "(");
+if (_functionApproximationAllowed) {
+sb.insert(0, FUNCTION_APPROXIMATION_PREFIX + 
_function.getFunctionName() + "(");
+} else {
+sb.insert(0, _function.getFunctionName() + "(");
+}
 sb.append(")");
 }
 return sb.toString();
@@ -412,7 +421,11 @@ public class SelectItem extends BaseObject implements 
QueryItem, Cloneable {
 sb.append(_subQuerySelectItem.getSuperQueryAlias());
 }
 if (_function != null) {
-sb.insert(0, _function.getFunctionName() + "(");
+if (_functionApproximationAllowed) {
+sb.insert(0, FUNCTION_APPROXIMATION_PREFIX + 
_function.getFunctionName() + "(");
+} else {
+sb.insert(0, _function.getFunctionName() + "(");
+}
 sb.append(")");
 }
 return sb;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/bec25c45/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
--
diff --git 
a/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java 
b/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
index 9e87e1d..9cea18e 100644
--- a/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
+++ b/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
@@ -106,19 +106,24 @@ public final class SelectItemParser implements 
QueryPartProcessor {
 
 final String unmodifiedExpression = expression;
 
+final boolean functionApproximation;
 final FunctionType function;
 final int startParenthesis = expression.indexOf('(');
 if (startParenthesis > 0 && expression.endsWith(")")) {
-String functionName = expression.substring(0, startParenthesis);
+functionApproximation = 
(expression.startsWith(SelectItem.FUNCTION_APPROXIMATION_PREFIX));
+final String functionName = 

metamodel git commit: METAMODEL-199: Fixed Fixes #63

2015-10-25 Thread kaspersor
Repository: metamodel
Updated Branches:
  refs/heads/master 9553357cd -> 9de5b7711


METAMODEL-199: Fixed
Fixes #63

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/9de5b771
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/9de5b771
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/9de5b771

Branch: refs/heads/master
Commit: 9de5b7711d36470cd6b88f6d037e0bab46b8147a
Parents: 9553357
Author: Kasper Sørensen 
Authored: Sun Oct 25 15:57:44 2015 +0100
Committer: Kasper Sørensen 
Committed: Sun Oct 25 15:57:44 2015 +0100

--
 core/src/main/java/org/apache/metamodel/query/Query.java  | 5 +++--
 .../org/apache/metamodel/query/parser/QueryParserTest.java| 7 +++
 2 files changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/metamodel/blob/9de5b771/core/src/main/java/org/apache/metamodel/query/Query.java
--
diff --git a/core/src/main/java/org/apache/metamodel/query/Query.java 
b/core/src/main/java/org/apache/metamodel/query/Query.java
index 1fdb6da..209e71f 100644
--- a/core/src/main/java/org/apache/metamodel/query/Query.java
+++ b/core/src/main/java/org/apache/metamodel/query/Query.java
@@ -294,7 +294,7 @@ public final class Query extends BaseObject implements 
Cloneable, Serializable {
 }
 
 private FilterItem findFilterItem(String expression) {
-String _upperExpression = expression.toUpperCase();
+String upperExpression = expression.toUpperCase();
 
 final QueryPartCollectionProcessor collectionProcessor = new 
QueryPartCollectionProcessor();
 new QueryPartParser(collectionProcessor, expression, " AND ", " OR 
").parse();
@@ -303,6 +303,7 @@ public final class Query extends BaseObject implements 
Cloneable, Serializable {
 final List delims = collectionProcessor.getDelims();
 if (tokens.size() == 1) {
 expression = tokens.get(0);
+upperExpression = expression.toUpperCase();
 } else {
 final LogicalOperator logicalOperator = 
LogicalOperator.valueOf(delims.get(1).trim());
 
@@ -328,7 +329,7 @@ public final class Query extends BaseObject implements 
Cloneable, Serializable {
 } else {
 searchStr = operatorCandidate.toSql();
 }
-final int operatorIndex = _upperExpression.indexOf(searchStr);
+final int operatorIndex = upperExpression.indexOf(searchStr);
 if (operatorIndex > 0) {
 operator = operatorCandidate;
 leftSide = expression.substring(0, operatorIndex).trim();

http://git-wip-us.apache.org/repos/asf/metamodel/blob/9de5b771/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
--
diff --git 
a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java 
b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
index f83d4ff..d1c198f 100644
--- a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
@@ -51,6 +51,13 @@ public class QueryParserTest extends TestCase {
 col.setType(ColumnType.INTEGER);
 };
 
+   public void testQueryWithParenthesisAnd() throws Exception {
+Query q = MetaModelHelper.parseQuery(dc,
+"select foo from sch.tbl where (foo= 1) and (foo=2)");
+assertEquals("SELECT tbl.foo FROM sch.tbl WHERE tbl.foo = '1' AND 
tbl.foo = '2'",
+q.toSql());
+}
+
 public void testQueryInLowerCase() throws Exception {
 Query q = MetaModelHelper.parseQuery(dc,
 "select a.foo as f from sch.tbl a inner join sch.tbl b on 
a.foo=b.foo order by a.foo asc");



metamodel git commit: Updated CHANGES.md with recently merged patches

2015-10-25 Thread kaspersor
Repository: metamodel
Updated Branches:
  refs/heads/master bec25c455 -> 180057b49


Updated CHANGES.md with recently merged patches

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/180057b4
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/180057b4
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/180057b4

Branch: refs/heads/master
Commit: 180057b49a6e3f5d8b46a222998691d9b1a097b3
Parents: bec25c4
Author: Kasper Sørensen 
Authored: Sun Oct 25 16:10:30 2015 +0100
Committer: Kasper Sørensen 
Committed: Sun Oct 25 16:10:30 2015 +0100

--
 CHANGES.md | 4 
 1 file changed, 4 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/metamodel/blob/180057b4/CHANGES.md
--
diff --git a/CHANGES.md b/CHANGES.md
index ea13708..433bd72 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,10 @@
 ### Apache MetaModel (work in progress)
 
  * [METAMODEL-198] - Fixed support for JDBC TIMESTAMP precision to match the 
underlying database's precision.
+ * [METAMODEL-200] - Added optional "APPROXIMATE" keyword to query syntax for 
aggregate functions.
+ * [METAMODEL-144] - Automated binary packaging of the MetaModel project.
+ * [METAMODEL-197] - ElasticSearch schema update/change after CREATE TABLE 
statements.
+ * [METAMODEL-199] - Fixed a bug in query parser when parsing two consecutive 
WHERE items with parentheses around them.
 
 ### Apache MetaModel 4.4.0