You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/06/29 19:40:20 UTC
[40/41] incubator-ignite git commit: #ignite-496: add type to sql
query.
#ignite-496: add type to sql query.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2a245b29
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2a245b29
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2a245b29
Branch: refs/heads/ignite-964
Commit: 2a245b2906043704f6b2dcafda64952b33c1353c
Parents: 7dbdc6a
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jun 29 19:30:11 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jun 29 19:30:11 2015 +0300
----------------------------------------------------------------------
.../handlers/query/QueryCommandHandler.java | 2 +-
.../rest/request/RestSqlQueryRequest.java | 17 ++++
modules/nodejs/src/main/js/cache.js | 17 +++-
modules/nodejs/src/main/js/server.js | 4 -
modules/nodejs/src/main/js/sql-query.js | 85 +++++++++++++++++++-
.../testsuites/IgniteNodeJsTestSuite.java | 1 +
modules/nodejs/src/test/js/test-query.js | 2 +
.../http/jetty/GridJettyRestHandler.java | 1 +
8 files changed, 118 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
index 82f3726..60efbd2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
@@ -114,7 +114,7 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
/** {@inheritDoc} */
@Override public GridRestResponse call() throws Exception {
try {
- SqlQuery<String, String> qry = new SqlQuery(String.class, req.sqlQuery());
+ SqlQuery<String, String> qry = new SqlQuery(req.typeName(), req.sqlQuery());
Iterator<Cache.Entry<String, String>> cur =
ctx.grid().cache(req.cacheName()).query(qry).iterator();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestSqlQueryRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestSqlQueryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestSqlQueryRequest.java
index 3a0005c..09b2fa3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestSqlQueryRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/request/RestSqlQueryRequest.java
@@ -36,6 +36,9 @@ public class RestSqlQueryRequest extends GridRestRequest {
/** Query id. */
private Long qryId;
+ /** Query type name. */
+ private String typeName;
+
/**
* @param sqlQry Sql query.
*/
@@ -105,4 +108,18 @@ public class RestSqlQueryRequest extends GridRestRequest {
public Long queryId() {
return qryId;
}
+
+ /**
+ * @param typeName Query type name.
+ */
+ public void typeName(String typeName) {
+ this.typeName = typeName;
+ }
+
+ /**
+ * @return Query type name.
+ */
+ public String typeName() {
+ return typeName;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/nodejs/src/main/js/cache.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/cache.js b/modules/nodejs/src/main/js/cache.js
index 56a2def..03f9231 100644
--- a/modules/nodejs/src/main/js/cache.js
+++ b/modules/nodejs/src/main/js/cache.js
@@ -155,11 +155,22 @@ Cache.prototype.query = function(qry) {
}
}
- this._server.runCommand("qryexecute", [
- Server.pair("cacheName", this._cacheName),
+ var params = [Server.pair("cacheName", this._cacheName),
Server.pair("qry", qry.query()),
Server.pair("arg", qry.arguments()),
- Server.pair("psz", qry.pageSize())],
+ Server.pair("psz", qry.pageSize())]
+
+ if (qry.returnType() != null) {
+ params.push(Server.pair("type", qry.returnType()));
+ }
+ else {
+ qry.error("No type for sql query.");
+ qry.end();
+
+ return;
+ }
+
+ this._server.runCommand("qryexecute", params,
onQueryExecute.bind(this, qry));
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/nodejs/src/main/js/server.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/server.js b/modules/nodejs/src/main/js/server.js
index 376e981..d0ce68f 100644
--- a/modules/nodejs/src/main/js/server.js
+++ b/modules/nodejs/src/main/js/server.js
@@ -87,10 +87,6 @@ Server.prototype.runCommand = function(cmdName, params, callback) {
});
response.on('end', function () {
- console.log("END " + response);
- console.log("End status code " + response.statusCode);
- console.log("Full response " + fullResponseString);
-
if (response.statusCode !== 200) {
if (response.statusCode === 401) {
callback.call(null, "Authentication failed. Status code 401.");
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/nodejs/src/main/js/sql-query.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/sql-query.js b/modules/nodejs/src/main/js/sql-query.js
index ba554a3..0c57638 100644
--- a/modules/nodejs/src/main/js/sql-query.js
+++ b/modules/nodejs/src/main/js/sql-query.js
@@ -23,11 +23,19 @@ function SqlQuery(sql) {
this._sql = sql;
this._arg = [];
this._pageSz = 1;
+ this._type = null;
this._endFunc = function(res) {console.log("Empty end function is called [res=" + res + "]")};
this._pageFunc = function(res) {console.log("Empty page function is called [res=" + res + "]")}
this._errFunc = function(err) {console.log("Empty error function is called [err=" + err + "]")}
}
+/**
+ * Set the callbacks for query events.
+ *
+ * @this {SqlQuery}
+ * @param {string} code Function code could be "end", "page", "error"
+ * @param function Functions "error" and "page" are one argument functions and "end" is function without arguments.
+ */
SqlQuery.prototype.on = function(code, f) {
switch(code) {
case "end":
@@ -47,28 +55,99 @@ SqlQuery.prototype.on = function(code, f) {
}
}
+/**
+ * @this {SqlQuery}
+ * @param res Query result
+ */
SqlQuery.prototype.end = function(res) {
- return this._endFunc(res);
+ this._endFunc(res);
}
+/**
+ * @this {SqlQuery}
+ * @param err Query error
+ */
SqlQuery.prototype.error = function(err) {
- return this._errFunc(err);
+ this._errFunc(err);
}
+/**
+ * @this {SqlQuery}
+ * @param res Query data
+ */
SqlQuery.prototype.page = function(res) {
- return this._pageFunc(res);
+ this._pageFunc(res);
}
+/**
+ * @this {SqlQuery}
+ * @param {int} pageSz Page size.
+ */
+SqlQuery.prototype.setPageSize = function(pageSz) {
+ this._pageSize = pageSz;
+}
+
+/**
+ * @this {SqlQuery}
+ * @param args Arguments
+ */
+SqlQuery.prototype.setArguments = function(args) {
+ this._arg = args;
+}
+
+/**
+ * @this {SqlQuery}
+ * @param type Return class name
+ */
+SqlQuery.prototype.setReturnType = function(type) {
+ this._type = type;
+}
+
+/**
+ * @this {SqlQuery}
+ * @returns Sql query
+ */
SqlQuery.prototype.query = function() {
return this._sql;
}
+/**
+ * @this {SqlQuery}
+ * @returns arguments
+ */
SqlQuery.prototype.arguments = function() {
return this._arg;
}
+/**
+ * @this {SqlQuery}
+ * @returns pageSize
+ */
SqlQuery.prototype.pageSize = function() {
return this._pageSz;
}
+/**
+ * @this {SqlQuery}
+ * @returns Return class name
+ */
+SqlQuery.prototype.returnType = function() {
+ return this._type;
+}
+
+/**
+ * @this {SqlQuery}
+ * @returns "Sql"
+ */
+SqlQuery.prototype.type = function() {
+ return SqlQuery.type();
+}
+
+/**
+ * @returns "Sql"
+ */
+SqlQuery.type = function() {
+ return "Sql"
+}
+
exports.SqlQuery = SqlQuery;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/nodejs/src/test/java/org/apache/ignite/testsuites/IgniteNodeJsTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/test/java/org/apache/ignite/testsuites/IgniteNodeJsTestSuite.java b/modules/nodejs/src/test/java/org/apache/ignite/testsuites/IgniteNodeJsTestSuite.java
index 62360f2..f848b43 100644
--- a/modules/nodejs/src/test/java/org/apache/ignite/testsuites/IgniteNodeJsTestSuite.java
+++ b/modules/nodejs/src/test/java/org/apache/ignite/testsuites/IgniteNodeJsTestSuite.java
@@ -36,6 +36,7 @@ public class IgniteNodeJsTestSuite extends TestSuite {
suite.addTest(new TestSuite(NodeJsSecretKeySelfTest.class));
suite.addTest(new TestSuite(NodeJsComputeSelfTest.class));
suite.addTest(new TestSuite(NodeJsIgniteSelfTest.class));
+ suite.addTest(new TestSuite(NodeJsSqlQuery.class));
return suite;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/nodejs/src/test/js/test-query.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/test/js/test-query.js b/modules/nodejs/src/test/js/test-query.js
index bc0fdc2..cb97619 100644
--- a/modules/nodejs/src/test/js/test-query.js
+++ b/modules/nodejs/src/test/js/test-query.js
@@ -28,6 +28,8 @@ testSqlQuery = function() {
var qry = new SqlQuery("select * from String");
+ qry.setReturnType("String");
+
var fullRes = [];
qry.on("error", function(err) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2a245b29/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
----------------------------------------------------------------------
diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index 361b713..27db356 100644
--- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -476,6 +476,7 @@ public class GridJettyRestHandler extends AbstractHandler {
restReq0.sqlQuery((String)params.get("qry"));
restReq0.arguments(params.get("arg"));
+ restReq0.typeName((String)params.get("type"));
restReq0.pageSize(Integer.parseInt((String) params.get("psz")));
restReq0.cacheName((String)params.get("cacheName"));