[
https://issues.apache.org/jira/browse/COUCHDB-1654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13570470#comment-13570470
]
Jan Lehnardt commented on COUCHDB-1654:
---------------------------------------
I had a stab at it. Here’s the plan:
in 1.3.x and later:
- before opening a view index
- if the index file exists, open that, end of story
- if the index file doesn’t exist,
- see if the old-style index file exists
- if it does, copy it to the new location
(.dbname_deign/mrview/newsignature.view)
- if it doesn’t, ignore.
- when opening a view index
- when the header can be read
- if the header matches the 1.2.x and lower #index_header
- extract its values and splice them into the new #mrheader
- the next time the view file header is flushed to disk, we have upgraded.
- if we crash any time before that, the procedure can be repeated.
This branch is a first stab at this:
https://github.com/janl/couchdb/compare/1654-fix-view-signature-change
It calculates the old view signature wrong, I might be missing something
subtle, if you find it, let me know.
> couchdb view sig changed
> ------------------------
>
> Key: COUCHDB-1654
> URL: https://issues.apache.org/jira/browse/COUCHDB-1654
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core
> Reporter: Robert Newson
> Priority: Blocker
> Fix For: 1.3
>
>
> view sigs and location changed between 1.2.x and 1.3.x, which would cause
> full rebuilds.
> to be clear: upgrading to 1.3 should not cause a view to rebuild from scratch.
> ➜ couchdb git:(1.3.x) find tmp
> tmp
> tmp/lib
> tmp/lib/.db1_design
> tmp/lib/.db1_design/0761939631be54bf36d3ed9172bcf689.view
> tmp/lib/.delete
> tmp/lib/_replicator.couch
> tmp/lib/_users.couch
> tmp/lib/db1.couch
> tmp/log
> tmp/log/couch.log
> tmp/run
> tmp/run/couch.uri
> tmp/run/couchdb
> ➜ couchdb git:(1.3.x) find tmp
> tmp
> tmp/lib
> tmp/lib/.db1_design
> tmp/lib/.db1_design/0761939631be54bf36d3ed9172bcf689.view
> tmp/lib/.db1_design/mrview
> tmp/lib/.db1_design/mrview/641ce136c0f1dbe93aa94d3a419a0efe.view
> tmp/lib/.delete
> tmp/lib/_replicator.couch
> tmp/lib/_users.couch
> tmp/lib/db1.couch
> tmp/log
> tmp/log/couch.log
> tmp/run
> tmp/run/couch.uri
> tmp/run/couchdb
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira