[
https://issues.apache.org/jira/browse/COUCHDB-2983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232655#comment-15232655
]
ASF GitHub Bot commented on COUCHDB-2983:
-----------------------------------------
GitHub user iilyak opened a pull request:
https://github.com/apache/couchdb-couch/pull/160
Change normalize_dbname semantic add dbname_suffix
normalize_dbname used to return last componenent of the shard path. But
it was doing so only if argument was passed as a binary. We change the
semantic of normalize_dbname so it does following:
1. expects either type binary or list
2. expect any kind of database name
- plain database name
- plain database name with '.couch' extension
- shard name with suffix (creation time)
- shard name with suffix (creation time) and .couch extension
3. always returns a binary containing all components of a database name
4. removes information about shard
5. removes shard's suffix
For cases we need last component of the path (old behaviour) we
intoroduce dbname_suffix/1
COUCHDB-2983
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/cloudant/couchdb-couch
2983-change-semantic-of-normalize_dbname
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/couchdb-couch/pull/160.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #160
----
commit 026c5dabd7c421f483a7fc0fd8fc594831aac018
Author: ILYA Khlopotov <[email protected]>
Date: 2016-04-08T17:47:24Z
Change normalize_dbname semantic add dbname_suffix
normalize_dbname used to return last componenent of the shard path. But
it was doing so only if argument was passed as a binary. We change the
semantic of normalize_dbname so it does following:
1. expects either type binary or list
2. expect any kind of database name
- plain database name
- plain database name with '.couch' extension
- shard name with suffix (creation time)
- shard name with suffix (creation time) and .couch extension
3. always returns a binary containing all components of a database name
4. removes information about shard
5. removes shard's suffix
For cases we need last component of the path (old behaviour) we
intoroduce dbname_suffix/1
COUCHDB-2983
----
> is_replicator_db do not take into account shard's suffix
> --------------------------------------------------------
>
> Key: COUCHDB-2983
> URL: https://issues.apache.org/jira/browse/COUCHDB-2983
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core, Replication
> Reporter: ILYA
> Assignee: ILYA
>
> We use number of ways to detect replicator db:
> 1. [<<"_replicator">> ==
> couch_db:normalize_dbname(Path)|https://github.com/apache/couchdb-fabric/blob/master/src/fabric_util.erl#L289]
> in fabric.
> 2. hardcoded as
> [<<"_replicator">>|https://github.com/apache/couchdb-couch-replicator/blob/master/src/couch_replicator_manager.erl#L166:L167]
> in replicator_manager
> 3. calculated as [lists:last(binary:split(mem3:dbname(DbName), <<"/">>,
> ...))|https://github.com/apache/couchdb-couch-replicator/blob/master/src/couch_replicator_manager.erl#L924]
> in replicator_manager:is_replicator_db
> We need to unify the way we do it. We also would want to make sure we remove
> shard's suffix from the last part of the path.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)