You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by se...@apache.org on 2021/05/19 14:51:34 UTC

[incubator-nlpcraft] branch NLPCRAFT-271 created (now 4f2de07)

This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a change to branch NLPCRAFT-271
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git.


      at 4f2de07  WIP.

This branch includes the following new commits:

     new 4f2de07  WIP.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[incubator-nlpcraft] 01/01: WIP.

Posted by se...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-271
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git

commit 4f2de07ac3fcd76b1f4da865d687c7c1c949c7d1
Author: Sergey Kamov <sk...@gmail.com>
AuthorDate: Wed May 19 17:51:19 2021 +0300

    WIP.
---
 nlpcraft/src/main/resources/sql/create_schema.sql       |  2 +-
 .../org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala  |  2 +-
 .../nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala       | 17 +++++++++--------
 .../apache/nlpcraft/server/rest/NCBasicRestApi.scala    |  2 +-
 .../org/apache/nlpcraft/server/sql/NCSqlManager.scala   |  2 +-
 sql/mysql/schema.sql                                    |  4 ++--
 sql/oracle/schema.sql                                   |  7 ++++---
 sql/postgres/schema.sql                                 |  4 ++--
 8 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/nlpcraft/src/main/resources/sql/create_schema.sql b/nlpcraft/src/main/resources/sql/create_schema.sql
index 1965ca0..b652c51 100644
--- a/nlpcraft/src/main/resources/sql/create_schema.sql
+++ b/nlpcraft/src/main/resources/sql/create_schema.sql
@@ -111,7 +111,7 @@ CREATE TABLE feedback (
     srv_req_id VARCHAR NOT NULL,
     user_id LONG NOT NULL,
     score DOUBLE NOT NULL,
-    comment VARCHAR NULL,
+    feedback_comment VARCHAR NULL,
     created_on TIMESTAMP NOT NULL
 );
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
index a2782de..d89f7da 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/NCFeedbackMdo.scala
@@ -31,7 +31,7 @@ case class NCFeedbackMdo(
     @NCMdoField(column = "srv_req_id") srvReqId: String,
     @NCMdoField(column = "user_id") userId: Long,
     @NCMdoField(column = "score") score: Double,
-    @NCMdoField(column = "comment") comment: Option[String],
+    @NCMdoField(column = "feedback_comment") feedbackComment: Option[String],
     @NCMdoField(column = "created_on") createdOn: Timestamp
 ) extends NCAnnotatedMdo[NCFeedbackMdo]
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
index 283a4ab..8e26fe1 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/mdo/impl/NCAnnotatedMdo.scala
@@ -188,16 +188,17 @@ object NCAnnotatedMdo {
             val (p, cls) = t
             val col = p.ann.column()
 
-            cls match {
-                // Special handling for options.
-                case x if x == classOf[Option[_]] ⇒
-                    val obj = rs.getObject(col)
+            // Special handling for options.
+            def getOption(rs: ResultSet, get: ResultSet ⇒ AnyRef): Option[AnyRef] = {
+                val obj = get(rs)
 
-                    if (rs.wasNull())
-                        None
-                    else
-                        Some(obj)
+                if (rs.wasNull()) None else Some(obj)
+            }
 
+            cls match {
+                // String processed special way because CLOB, TEXT etc nullable fields processing of different databases.
+                case x if x == classOf[Option[String]] ⇒ getOption(rs, rs ⇒ rs.getString(col))
+                case x if x == classOf[Option[_]] ⇒ getOption(rs, rs ⇒ rs.getObject(col))
                 // Handle AnyVals manually to get proper values in case of `NULL`s.
                 case x if x == classOf[Long] ⇒ rs.getLong(col)
                 case x if x == classOf[Int] ⇒ rs.getInt(col)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 4d9750b..8690d41 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -1257,7 +1257,7 @@ class NCBasicRestApi extends NCRestApi with LazyLogging with NCOpenCensusTrace w
                             f.srvReqId,
                             f.userId,
                             f.score,
-                            f.comment,
+                            f.feedbackComment,
                             f.createdOn.getTime
                         )
                     )
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
index 50ef05d..2914024 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSqlManager.scala
@@ -917,7 +917,7 @@ object NCSqlManager extends NCService with NCIgniteInstance {
     def addFeedback(id: Long, srvReqId: String, userId: Long, score: Double, comment: Option[String], parent: Span): Long = {
         startScopedSpan("addFeedback", parent, "srvReqId" → srvReqId, "userId" → userId) { _ ⇒
             NCSql.insert(
-                "INSERT INTO feedback(id, srv_req_id, user_id, score, comment, created_on) VALUES(?, ?, ?, ?, ?, ?)",
+                "INSERT INTO feedback(id, srv_req_id, user_id, score, feedback_comment, created_on) VALUES(?, ?, ?, ?, ?, ?)",
                 id, srvReqId, userId, score, comment.orNull, U.nowUtcTs()
             )
 
diff --git a/sql/mysql/schema.sql b/sql/mysql/schema.sql
index 9022ab6..9f208e6 100644
--- a/sql/mysql/schema.sql
+++ b/sql/mysql/schema.sql
@@ -98,7 +98,7 @@ CREATE TABLE proc_log (
     -- Result parts.
     res_type VARCHAR(32) NULL,
     res_body_gzip TEXT NULL, -- GZIP-ed result body.
-    res_body_meta TEXT NULL, -- GZIP-ed result meta.
+    res_meta_gzip TEXT NULL, -- GZIP-ed result meta.
     intent_id VARCHAR(256) NULL,
     error TEXT NULL,
     -- Probe information for this request.
@@ -132,7 +132,7 @@ CREATE TABLE feedback (
     srv_req_id VARCHAR(64) NOT NULL,
     user_id BIGINT NOT NULL,
     score DECIMAL NOT NULL,
-    comment VARCHAR(1024) NULL,
+    feedback_comment VARCHAR(1024) NULL,
     created_on TIMESTAMP(3) NOT NULL DEFAULT current_timestamp(3)
 );
 
diff --git a/sql/oracle/schema.sql b/sql/oracle/schema.sql
index da243b9..577c11f 100644
--- a/sql/oracle/schema.sql
+++ b/sql/oracle/schema.sql
@@ -66,7 +66,8 @@ CREATE TABLE nc_user (
 );
 
 CREATE UNIQUE INDEX nc_user_idx_1 ON nc_user(email);
-CREATE UNIQUE INDEX nc_user_idx_2 ON nc_user(company_id, ext_id);
+-- Drop it if your Oracle version doesn't support this syntax.
+CREATE UNIQUE INDEX nc_user_idx_2 ON nc_user(CASE WHEN ext_id IS NOT NULL THEN company_id END, CASE WHEN ext_id IS NOT NULL THEN ext_id END);
 CREATE INDEX nc_user_idx_3 ON nc_user(company_id);
 
 --
@@ -97,7 +98,7 @@ CREATE TABLE proc_log (
     -- Result parts.
     res_type VARCHAR2(32) NULL,
     res_body_gzip CLOB NULL, -- GZIP-ed result body.
-    res_body_meta CLOB NULL, -- GZIP-ed result meta.
+    res_meta_gzip CLOB NULL, -- GZIP-ed result meta.
     intent_id VARCHAR2(256) NULL,
     error CLOB NULL,
     -- Probe information for this request.
@@ -131,7 +132,7 @@ CREATE TABLE feedback (
     srv_req_id VARCHAR2(64) NOT NULL,
     user_id NUMBER NOT NULL,
     score NUMBER NOT NULL,
-    comment VARCHAR2(1024) NULL,
+    feedback_comment VARCHAR2(1024) NULL,
     created_on DATE DEFAULT sysdate NOT NULL
 );
 
diff --git a/sql/postgres/schema.sql b/sql/postgres/schema.sql
index 8329ed7..4edf3e2 100644
--- a/sql/postgres/schema.sql
+++ b/sql/postgres/schema.sql
@@ -98,7 +98,7 @@ CREATE TABLE proc_log (
     -- Result parts.
     res_type VARCHAR(32) NULL,
     res_body_gzip TEXT NULL, -- GZIP-ed result body.
-    res_body_meta TEXT NULL, -- GZIP-ed result body.
+    res_meta_gzip TEXT NULL, -- GZIP-ed result body.
     intent_id VARCHAR(256) NULL,
     error TEXT NULL,
     -- Probe information for this request.
@@ -132,7 +132,7 @@ CREATE TABLE feedback (
     srv_req_id VARCHAR(64) NOT NULL,
     user_id BIGINT NOT NULL,
     score NUMERIC NOT NULL,
-    comment VARCHAR(1024) NULL,
+    feedback_comment VARCHAR(1024) NULL,
     created_on TIMESTAMP(3) NOT NULL DEFAULT current_timestamp(3)
 );