[Groonga-commit] groonga/gcs [master] Fix minor bugs around IndexDocuments action

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 6日 (金) 17:21:17 JST


SHIMODA Hiroshi	2012-07-06 17:21:17 +0900 (Fri, 06 Jul 2012)

  New Revision: 851ce2afd6d25639996e69ce206f17fbab4616bc
  https://github.com/groonga/gcs/commit/851ce2afd6d25639996e69ce206f17fbab4616bc

  Log:
    Fix minor bugs around IndexDocuments action

  Modified files:
    lib/api/2011-02-01/configuration.js
    lib/database.js
    test/api-configuration.test.js

  Modified: lib/api/2011-02-01/configuration.js (+5 -5)
===================================================================
--- lib/api/2011-02-01/configuration.js    2012-07-06 17:10:35 +0900 (4f5237b)
+++ lib/api/2011-02-01/configuration.js    2012-07-06 17:21:17 +0900 (806b626)
@@ -203,7 +203,7 @@ handlers.DefineIndexField = function(database, request, response) {
       var termsOptions = {
             table: domain.termsTableName,
             name: field.indexColumnName,
-            flags: Database.COLUMN_INDEX + '|' + Database.WITH_POSITION,
+            flags: Database.INDEX_COLUMN_DEFAULT_FLAGS,
             type: domain.tableName,
             source: field.columnName
           };
@@ -289,9 +289,9 @@ handlers.IndexDocuments = function(database, request, response) {
       database.commandSync('column_create', {
         table: domain.termsTableName,
         name: column.name,
-        flags: column.flags,
-        type: column.type,
-        source: column.source
+        flags: Database.INDEX_COLUMN_DEFAULT_FLAGS,
+        type: column.range,
+        source: column.source[0].replace(column.range + '.', '')
       });
     });
     response.contentType('application/xml');
@@ -300,7 +300,7 @@ handlers.IndexDocuments = function(database, request, response) {
       // However, original field names are completely lost after
       // they are created via the API...
       fieldNames: indexColumns.map(function(column) {
-        return column.source;
+        return column.source[0].replace(column.range + '.', '');
       })
     }));
   } catch(error) {

  Modified: lib/database.js (+7 -0)
===================================================================
--- lib/database.js    2012-07-06 17:10:35 +0900 (0a546b9)
+++ lib/database.js    2012-07-06 17:21:17 +0900 (ca7ced6)
@@ -27,6 +27,10 @@ var WITH_POSITION =
       exports.WITH_POSITION =
       Database.WITH_POSITION = 'WITH_POSITION';
 
+var INDEX_COLUMN_DEFAULT_FLAGS =
+      exports.INDEX_COLUMN_DEFAULT_FLAGS =
+      Database.INDEX_COLUMN_DEFAULT_FLAGS = COLUMN_INDEX + '|' + WITH_POSITION;
+
 var TokenBigram =
       exports.TokenBigram =
       Database.TokenBigram = 'TokenBigram';
@@ -100,6 +104,9 @@ Database.prototype = {
 exports.Database = Database;
 
 exports.formatResults = Database.formatResults = function(results) {
+  if (!results || !results.length)
+    return [];
+
   var columns = {};
   results[0].forEach(function(column, index) {
     columns[index] = column[0];

  Modified: test/api-configuration.test.js (+3 -1)
===================================================================
--- test/api-configuration.test.js    2012-07-06 17:10:35 +0900 (bcd405e)
+++ test/api-configuration.test.js    2012-07-06 17:21:17 +0900 (2dd710b)
@@ -279,7 +279,9 @@ suite('Configuration API', function() {
               body: '<?xml version="1.0"?>\n' +
                     '<IndexDocumentsResponse xmlns="' + XMLNS + '">' +
                       '<IndexDocumentsResult>' +
-                        '<member>name</member>' +
+                        '<FieldNames>' +
+                          '<member>name</member>' +
+                        '</FieldNames>' +
                       '</IndexDocumentsResult>' +
                       '<ResponseMetadata>' +
                         '<RequestId></RequestId>' +
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



Groonga-commit メーリングリストの案内
Back to archive index