Salesforce

Can two IDXBUILDS be avoided when doing a dump load conversion to utf-8

« Go Back

Information

 
TitleCan two IDXBUILDS be avoided when doing a dump load conversion to utf-8
URL NameP167374
Article Number000130723
EnvironmentProduct: Progress OpenEdge
Version: All supported versions
OS: All supported platforms
Question/Problem Description
Can two IDXBUILDS be avoided when doing a dump load conversion to utf-8?
Why are special characters added to the database prior to conversion missing after running the conversion without any indexes?
Why is running the conversion after an IDXBUILD necessary to retain special characters and report the number of fields required data translation?
Why do indexes need to be built after binary load and again after loading the _tran.df?
Why do indexes need to be built after binary load prior to running: proutil -C convchar convert UTF-8?
Why does running CONVCHAR CONVERT with inactive indexes falsely report successful completion 3945?
Conversion complete, character encoding conversion successful. (3945)
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Binary load without the build indexes Option does not enforce data integrity because it does not create keys for the records it loads, after the load user is warned with the following message:
            YOU SHOULD REBUILD THE FOLLOWING INDEXES IN TABLE <tablename>.

The index rebuild process after binary load cannot be eliminated prior to converting the database, because CONVCHAR uses an index search to find which record fields need to be converted. Which is why running proutil -C convchar convert without indexes falsely reports successful completion as there are no records to be found:
The following fields contain data requiring translation: (3963) 
Total of 0 fields.
Database is encoded using UTF-8 for character data types. (3939)
Conversion complete, character encoding conversion successful. (3945)
Resolution
No, It is not possible to eliminate the need for two IDXBUILDS when converting a database to utf-8 with binary dump and load (or Bulkload).  

In the case of a binary load (or Bulkload):
  • A full IDXBUILD needs to be run after the load. The proutil convchar convert UTF-8 conversion must be run after building indexes, not before as fields requiring translation are identified by their index entries.
  • A full IDXBUILD will need to be run again after the conversion to utf-8
  1. Create the new database - prostrct create dbname dbname.st -blocksize 8192
  2.  Copy in the empty8 database - procopy dlc/empty8 dbname
  3.  Load in the database definitions - pro dbname -p _dict.p (dictionary/load/df)
  4.  Load all the dumped files - proutil dbname -C load (dumped files) -i
  5.  Index rebuild the database - proutil dbname -C idxbuild all -TM 31 -TB 32 -SG 65 -T /tmp
  6.  Convert the database to UTF-8 - proutil dbname -C convchar convert UTF-8
  7.  Load the word rules for UTF-8 - proutil dbname -C word rules 254
  8.  Load the _tran.df file - pro dbname _dict.p (dictionary/load/df/[dlc/prolang/utf/_tran.df])
  9.  Index rebuild the database - proutil dbname -C idxbuild all -TM 31 -TB 32 -SG 65 -T /tmp

 
Workaround
Notes
Keyword Phrase
Last Modified Date12/8/2017 10:00 PM

Powered by