{"id":62,"date":"2013-12-16T18:28:25","date_gmt":"2013-12-17T02:28:25","guid":{"rendered":"http:\/\/www.isam.ca\/d7\/?page_id=62"},"modified":"2013-12-19T20:11:03","modified_gmt":"2013-12-20T04:11:03","slug":"faqs","status":"publish","type":"page","link":"https:\/\/www.isam.ca\/?page_id=62","title":{"rendered":"DISAM FAQ&#8217;s"},"content":{"rendered":"<p><script>\n  var ajax_url = \"https:\/\/www.isam.ca\/wp-admin\/admin-ajax.php?action\"\n<\/script>\n\t\n\n<style type=\"text\/css\" media=\"screen\">\n.post_content_opened #post_title1 {\n  background-color:#283839!important;\n  border-color:#283841!important;\n}\n#content1{\nwidth: 600px;\n}\n#post_title1 {\nheight: 30px!important;\nwidth: 540px;\nborder-style: none;\nborder-top-style:;\nborder-right-style:;\nborder-width:px;\nborder-color:#FFFFFF;\nbackground-size: ;\nbackground-repeat:no-repeat;\nborder-radius:5px;\nbackground-color:#283841;\ndisplay:table;\n}\t\n\n#tchangeimg1{\ndisplay: table-cell;\nvertical-align: middle;\nwidth: auto;\n}\n\n#tchangeimg1 img{\n\t\n\nmax-width: none\n}\n\n#post_title1 #tchangeimg1 img{\nmargin-left:px;\n}\n\n#post_title1:hover{\n background-color:#283839!important ;\n}\n#date_user1{\nwidth:100%;\nheight:px;\nmargin-left:px;\nfont-size:14px;\ncolor:#969494;\nbackground-color:#DAD7D7;\nborder-style:none;\nborder-width:px;\nborder-color:#FFFFFF;\nborder-radius:px;\nborder-top-style:none;\nborder-bottom-style:none;\ndisplay: inline-table;\n}\n#date1 img\n{\nbox-shadow:none  !important;\npadding-right:3px  !important;\npadding-bottom:2px  !important;\npadding-top:0px  !important;\npadding-left:3px  !important;\nfloat:none !important;\nvertical-align:middle  !important;\n}\n#user1 img\n{\nfloat:none !important;\nbox-shadow:none !important;\npadding:2px !important;\npadding-left:4px !important;\nvertical-align:middle !important;\n}\ndiv.like_hits1{\nwidth:98%;\nbackground-color:#F5F3EB;\nmargin-left:5px;\nfont-size:14px;\nborder-style:none;\nborder-width:1px;\nborder-color:#DAD7D7;\nborder-radius:px;\nborder-top-style:solid;\nborder-bottom-style:none;\ncolor:#969494;\ndisplay: inline-table;\n}\nspan.like_hits_span\n{\ndisplay:table-cell;\nwidth:50%;\ntext-align:right;\npadding:4px;\n}\nimg.like_img{\nbox-shadow:none !important;\nfloat:none !important;\npadding:0px !important;\nvertical-align:top !important;\nmargin-right:2px !important;\ncursor:pointer !important;\n}\nimg.unlike_img{\nvertical-align: bottom !important;\nbox-shadow:none !important;\nfloat:none !important;\npadding:0px !important;\nmargin-right:2px !important;\ncursor:pointer !important;\n}\nspan.sentences\n{\npadding-left:3px\n}\n#date1{\ndisplay: table-cell;\ntext-align: right;\npadding-right: 4px;\nwidth:auto;\n}\nspan.likeimg\n{\nborder-right-style: solid;\nborder-width: 1px;\nborder-color: #737373;\nmargin-right: 6px;\npadding-right: 6px;\n}\n#ttext1{\nwidth:92%;\npadding-left:10px;\nfont-size:18px;\ncolor:#FFFFFF;\ndisplay: table-cell;\nvertical-align: middle;\nfont-family: sans-serif !important;\n}\n\n#post_content_wrapper1 {\nwidth: 525px;\nborder-style: none;\nborder-right-style: ;\nborder-width:px;\nborder-color:#FFFFFF;\nbackground-size: ;\nborder-radius:px;\npadding:px;\n}\n#post_right1 {\nwidth:520px;\n}\ndiv.number1{\nfont-size:  px;\ncolor:  #;\ndisplay: table-cell;\nfont-family: fantasy;\nwidth: 10px;\nfont-family: sans-serif !important;\n}\t\n.post_content_wrapper #imgbefore1 img{\nwidth: px;\nheight: px;\nmargin-top:;\n}\n\n.post_content_wrapper #imgafter1 img {\nwidth: px;\nheight: px;\nmargin-top:;\n}\n\t\n#atext1 p{\nmargin:0px;\nfont-size:14px!important;\n}\n\n#atext1 a{\ncolor:#1982d1 !important;\n}\n\n#atext1 a:hover{\ncolor:#1982d1 !important;\n}\n\na{\ncolor:#1982d1;\n}\n\n#atext1{\npadding:;\nfont-size:14px;\ncolor:#000000;\n}\t\n\n\n#searchform1{\nmargin:;\t\n}\n\n.searchform #skey1 {\nbackground-color: #EBEBEB !important;\npadding:0px;\noutline: none;\nheight: 24px !important;\nwidth:195px !important;\nborder: none;\n\/\/display: block;\n\/\/position:absolute;\n\/\/right:6%;\n\/\/bottom: 40%;\npadding-left:4px!important;\n}\n\n.searchform #srbuts1  {\n\/\/bottom: 40%;\n\/\/right:10% !important;\nbackground-image: url('https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/images\/search-faq.png') !important;\nwidth: 24px !important;\nheight: 24px !important;\nbackground-size: 100% 100%;\n\/\/position:absolute;\nbackground-repeat: no-repeat;\nborder: 0px;\ncursor: pointer;\nmargin-right: 0px !important;\nmargin-top:0px !important;\nmargin-bottom:0px !important;\noutline: none !important;\npadding:0px !important;\nbackground-color:transparent;\n}\n.searchform #srresbuts1  {\n\/\/bottom: 40%;\n\/\/right: 6% !important;\n\/\/position:absolute;\nwidth:24px;\nheight:24px;\nbackground-repeat: no-repeat;\nbackground-image:url('https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/images\/reset-faq.png') !important;\nbackground-size: 100% 100%;\nborder: 0px;\ncursor: pointer;\noutline: none;\nmargin-top:0px !important;\nmargin-bottom:0px !important;\npadding:0px !important;\nbackground-color:transparent;\n}\n\n.sp_search_reset\n{\n\twidth: 51px;\n    float: right;\n    position: relative;\n    left: -56px;\n}\n\n\n\n\n#cattitle1\t{\nbackground-color: #BDBDBD;\n\ncolor: #FFFFFF;\nfont-size:20px;\npadding:11px;\nmargin:1px 37px 1px 1px;\nborder-radius:5px;\nborder-style: none;\nborder-width:px;\nborder-color:#FFFFFF;\n}\n\t\n#catdes1{\nbackground-color: #E7E7E7;\n\ncolor: #000000;\nfont-size:px;\nmargin:10px 90px 14px 30px;\t\npadding:10px;\nborder-radius:5px;\nborder-style: none;\nborder-width:px;\nborder-color:#FFFFFF;\n}\t\n\t\n\ta.post_exp, a.post_coll, #post_expcol1 {\ncolor:#000000 ;\nfont-size:14px;\ntext-decoration: none;\ncursor:pointer;\n}\n\na.post_exp:hover, a.post_coll:hover, #post_expcol1:hover {\ncolor:#CCCCCC !important;\nbackground:none !important;\ntext-decoration: none;\ncursor:pointer;\n}\n\n.expcoll, #expcol1 {\nmargin:10px 40px 14px 0px;\ncolor:#000000 ;\n}\n\na.more-link, #more-link1{\ncolor:#283841 !important; \nfont-size:12px !important; \ntext-decoration: none;\ncursor:pointer;\n}\n\na.more-link, #more-link1:hover{\ncolor:#283841 !important; \ntext-decoration: none;\ncursor:pointer;\n}\n\n\n\n\n\n<\/style>\n\n\t\n<script>\nvar many_myfaq=0;\t\n<\/script>\n\t\n\t\n\n\t\n<script>\nvar change = true;\n\nfunction faq_changesrc1(x)\n{\nif (document.getElementById('stl1'+x))\n{\n\nif(change) {\nchange = false;\n\nif (document.getElementById('stl1'+x).src==\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\")\n{\ndocument.getElementById('stl1'+x).src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18a.png\";\ndocument.getElementById('stl1'+x).style.marginLeft=\"px\";\n\n}\nelse\n{\ndocument.getElementById('stl1'+x).src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\";\ndocument.getElementById('stl1'+x).style.marginLeft=\"px\";\n\n}\n\n}\n\nsetTimeout(\"change=true\",400);\n}\n}\n\n\n\nvar changeall = true;\nfunction faq_changeexp1()\n{\n\nfor (i=0; i<12; i++)\n{\n\nif (document.getElementById('stl1'+i))\n{\n\ndocument.getElementById('stl1'+i).src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18a.png\";\ndocument.getElementById('stl1'+i).style.marginLeft=\"px\";\n\n}\n}\n}\n\n\nfunction faq_changecoll1()\n{\nif(changeall) {\nchangeall = false;\nfor (i=0; i<12; i++)\n{\nif (document.getElementById('stl1'+i))\n{\ndocument.getElementById('stl1'+i).src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\";\ndocument.getElementById('stl1'+i).style.marginLeft=\"px\";\n}\n}\n}\nsetTimeout(\"changeall=true\",400);\n}\n\n<\/script>\t\n\t\t\n\n\t<style>\n\t\n\n\n\t\n\n\t\n\n\n\n@media screen and (max-width: 600px) {\n    #content1 {\n        width: 99%;\n    }\n\t\n\t#post_title1{\n\t\t width: 99%;\n\t\t\n\t}\n\t#post_content_wrapper1{\n\t\t width: 99%;\n\t\t\n\t}\n\t#post_right1{\n\t\t width: 99%;\n\t\t\n\t}\n}\n\n<\/style>\n\t \t\n\n\t\n\n<body>\n\t\t<div id=\"contentOuter\"><div id=\"contentInner\">\n  <div class=\"faq_content\" id=\"content1\" >\n  \n<ul class=\"posts\" style=\" \">\t\t\t\t                                                                             \n\t\t\t<!-- Loop Starts -->\n\t\t\t<li class=\"selected\" id=\"post-1236\" >\n\n\t\t\n<form class=\"searchform\" id=\"searchform1\" action=\"\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F62\" method=\"post\">\n<div style=\"display: block;\">\n<div style=\"position:relative;    text-align: right;\">\n\n<input id=\"skey1\" name=\"search1\"   value=\"Search...\" onfocus=\"(this.value == 'Search...') &amp;&amp; (this.value = '')\" onblur=\"(this.value == '') &amp;&amp; (this.value = 'Search...')\">\n<div class=\"sp_search_reset\">\n<input type=\"submit\" value=\"\" id=\"srbuts1\" name=\"submit1\" >\n\t\n<input type=\"submit\" value=\"\" id=\"srresbuts1\" name=\"reset1\"  >\n\n<\/div>\n<br><br>\n<\/div>\n<\/div>\t\n<\/form><img  style=\"display:none\"  src=\"https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/upload\/ikon\/like_black.png\"><img  style=\"display:none\"  src=\"https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/upload\/ikon\/like_white.png\"><img  style=\"display:none\"  src=\"https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/upload\/ikon\/unlike_black.png\"><img  style=\"display:none\"  src=\"https:\/\/www.isam.ca\/wp-content\/plugins\/spider-faq\/upload\/ikon\/unlike_white.png\"><div class=\"expcoll\" id=\"expcol1\">\n\t\t <a   class=\"post_exp\" id=\"post_expcol1\"><span onclick=\" iiiiiiiiiii=0; faq_changeexp1();expand_hits(1,1,22,'283841','283839')\">Expand All <\/span><\/a><span>|<\/span>\n\t\t <a   class=\"post_coll\" id=\"post_expcol1\"><span onclick=\"jjjjjjjjjjj=0; faq_changecoll1();expand_hits(0,1,22,'283841','283839')\">Collapse All<\/span><\/a><\/div><div class=\"cattitle\" id=\"cattitle1\"><span style=\"float:left\"><\/span>DISAM<\/div><div style=\"padding-top:18px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span21\" onclick=\"faq_changesrc1(0)\"><div onclick=\"hits(2,1,22);edit_title(1,2,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >DISAM History, complete <\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl10\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content2\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><pre>\r\nDISAM History, complete\r\nThe first DISAM was released in March of 1988.\r\nThis hisitory commences with Version 5.\r\n--------------------------------------------------------------------\r\n\r\nseptember 24th, 1995 - version 5.93 - first official release\r\n---------------------------------------------------------------------\r\n\r\n---------------------------------------------------------------------\r\noctober 3rd, 1995 - version 5.94\r\n---------------------------------------------------------------------\r\n\r\nthis version incorporates the initial release of variable length data\r\nrecords, and two minor bug patches relating to data record locks and\r\nnatural order read\/search.\r\n\r\n---------------------------------------------------------------------\r\noctober 8th, 1995 - version 5.95\r\n---------------------------------------------------------------------\r\n\r\nthis version includes an optional administration facility to keep\r\ntrack of active isam file descriptors.\r\n\r\nthe administration facility allows the library to keep track of\r\nduplicate opens on isam files and to share a single pair of system\r\nfile handles between duplicate instances of the same file.\r\n\r\nISMAXFILES and ISMAXLK are now redundant, and the associated tables\r\nare now dynamically allocated, meaning that the number of open files\r\nand the number of active record locks is now only limited by system\r\nresources.\r\n\r\nthe initial beta version of the transaction processing module is\r\nincluded. this version features an enhancement over the original\r\ndisam code in that it supports virtual open\/close within transactions.\r\nany attempt to close a file that is part of an active transaction\r\nwill be deferred until the transaction is complete. if you chose\r\nto reopen the file within the same transaction, the virtual handling\r\nsystem will just pass you back the same handle you were using before.\r\nthis, in theory, should help to correct the EMFILE errors inherent\r\nin the original disam versions. refer to trans.ref for details.\r\n\r\nthe test\/user.c executable has been enhanced slightly in that it can\r\nnow make system calls (sys) and run rudimentary scripts (run).\r\n\r\n---------------------------------------------------------------------\r\noctober 16th, 1995 - version 5.97\r\n---------------------------------------------------------------------\r\n\r\nfeaturing a number of adjustments and enhancements to the variable\r\nlength option, and the implementation of a fairly rigorous storage\r\nchecking\/statistics facility in ascheck.\r\n\r\nthe remainder of the changes cover basic adjustments for portability\r\nand a degree of cleanup and optimisation in the remainder of the code.\r\n\r\n---------------------------------------------------------------------\r\noctober 31st, 1995 - version 5.98\r\n---------------------------------------------------------------------\r\n\r\ninitial beta - threadsafe and threadproof handling - see thread.ref\r\nfor more details.\r\n\r\nimplemented true support for duplicate opens within the same process.\r\nrecord locking on duplicate handles is honoured, and locks will not\r\nbe lost when a duplicate handle is closed.\r\n\r\nisrecover now returns appropriate error codes on failure.\r\n\r\n---------------------------------------------------------------------\r\ndecember 15th, 1995 - version 5.99\r\n---------------------------------------------------------------------\r\n\r\nessentially a collection of adjustments based on beta test reports.\r\nadded isprecious() and islockcheck() options to the wrapper code.\r\n\r\n---------------------------------------------------------------------\r\njanuary 2nd, 1996 - version 6.0\r\n---------------------------------------------------------------------\r\n\r\nthe updates in this version consist of the inclusion of the isCluster\r\nand isAudit calls, documented in base.ref and audit.ref respectively.\r\n\r\n---------------------------------------------------------------------\r\njanuary 28th, 1996 - version 6.1\r\n---------------------------------------------------------------------\r\n\r\nthe transaction processing module has been upgraded to comply with\r\nthe current cisam standard, and includes full support for variable\r\nlength records. disk i\/o has been improved (at the expense of an\r\nextra chunk of memory) and the lock time on the file log reduced.\r\n\r\nadded ISDUPLOCKS option to the configuration options to permit\r\ncisam (non xopen) functionality with regard to duplicate opens\r\nin the same process - see entry for version 5.98 for more detail.\r\nplease note that ISDUPLOCKS should not be set to zero when porting\r\ndo DOS, Windows, OS\/2 or non ELF versions of Linux. if this is a\r\nproblem to you, please contact Byte Designs.\r\n\r\nthe flag structure in the index header that denotes ISMASKED files\r\nhas been changed. this means that masked files built before this\r\nrelease are no longer compatible. the fixflags utility in the util\r\ndirectory will patch existing files to comply with the new method.\r\n\r\nadded isindex, ispop, iscopy and isclone calls - see upgrade.ref\r\nfor further details.\r\n\r\nthe ascheck utility now includes a -B option to allow specific indexes\r\nto be rebuilt without disturbing the remainder. see ascheck.ref for\r\nmore details.\r\n\r\n---------------------------------------------------------------------\r\nfebruary 5th, 1996 - version 6.2\r\n---------------------------------------------------------------------\r\n\r\nisClose now returns a boolean TRUE or FALSE rather than the original\r\nNULL pointer. this change is specific to the base library and does\r\naffect the standard interface.\r\n\r\nbase and wrapper function prototypes are now C++ compatible.\r\n\r\nadded isseekey() to the wrapper library.\r\n\r\nascheck now does index\/data mismatch checking - slower but better.\r\n\r\naslist in the util directory is an incomplete but fully functional\r\nmeans of listing the contents of an isam index file.\r\n\r\nadded isPush and isPop to the base library.\r\n\r\nadded threadsafe isvbuild to the wrapper to allow building variable\r\nlength files without the use of the global isreclen variable.\r\n\r\nadded isWrCurr and iswrcurr to the base and wrap libraries.\r\n\r\nadded isfilter (wrapper only) and islkcall (inhouse only)\r\n\r\npure index files - see pure.ref\r\n\r\ntransparent file links - see link.ref\r\n\r\nstubs for isstat variables - see status.ref\r\n\r\nadded ISRDONLY mode in isopen for handling read only files.\r\n\r\n---------------------------------------------------------------------\r\nfebruary 14th, 1996 - version 6.4\r\n---------------------------------------------------------------------\r\n\r\nnull key masking - see nullkeys.ref\r\n\r\ncustom key extensions - custkeys.ref\r\n\r\nRLE compression option for variable length - ISVARIABLE in install.ref\r\n\r\nrenamed isLockMode and islockmode to isSetMode and issetmode.\r\n\r\nimplemented ISSYNCWR mode in open and build - see base.ref\r\n\r\nupgraded isprecious logic to complete implementation\r\n\r\nadjusted isGoto to not return an error if file not open for reading.\r\n\r\n---------------------------------------------------------------------\r\nversion 6.5 was an interim release, changes from 6.4 covered below.\r\n---------------------------------------------------------------------\r\n\r\n---------------------------------------------------------------------\r\nfebruary 14th, 1996 - version 6.6\r\n---------------------------------------------------------------------\r\n\r\nthreadsafe transaction processing module - beta only - see\r\ntrans.ref for details.\r\n\r\nadded ISVARCMP mode on isbuild to allow runtime compression\r\nflagging on variable length files, adjusted variable length\r\ncompression handling, and added ISNOCARE option to isOpen to\r\nallow easier handling of varlen files - see varlen.ref for\r\ndetails.\r\n\r\nreworked threadsafe duplicate open handling.\r\n\r\nadded EINTR handling to lockmode 2 for threadsafe, and allowed\r\nmultiple lock fail codes to be specified in isport.h\r\n\r\nstchar arguments were reversed, and the float machine independant\r\nroutines now have float arguments rather than double.\r\n\r\nopen and build now allow the lock mode to default to ISMANULOCK\r\nif not specified.\r\n\r\nadjusted isStart behaviour to match cisam standards.\r\n\r\ncleaned up a number of compiler warnings.\r\n\r\n\r\n---------------------------------------------------------------------\r\nmarch 22nd, 1996 - version 6.7\r\n---------------------------------------------------------------------\r\n\r\nallow varlen compression to be specified on a per file basis,\r\nsee varlen.ref\r\n\r\nimplemented ISNOCARE open mode to make it easier to open unknown\r\n(varlen or fixlen) files. also modified isgetmode to get all\r\nopen mode bits rather than masking out only the lock mode, and\r\nadjusted issetmode to accept an unmasked mode value without\r\ncomplaint. see varlen.ref\r\n\r\nadded common dictionary access - see wrap.ref, should be of\r\nvalue to those converting from old disam.\r\n\r\nerror code offset value define - see install.ref\r\n\r\nadded varlen and varcmp mention in ascheck.\r\n\r\ndisplay contents of known key types in aslist.\r\n\r\nuser info pad in index headers - see info.ref\r\n\r\n---------------------------------------------------------------------\r\napril 10th, 1996 - version 6.8\r\n---------------------------------------------------------------------\r\n\r\nadjusted ISDUPLOCKS 1 mode to disallow erase\/rename on files already\r\nopen in the current process - DUPLOCKS 0 retains original behaviour,\r\nbut be warned that a sequence of open, erase, write, close will result\r\nin data loss - see install.ref and caveat.ref for details.\r\n\r\nadded isdi_kdsc() to the wrapper library - see wrap.ref\r\n\r\nlibrary expiration date option - see expire.ref\r\n\r\n---------------------------------------------------------------------\r\nmay 3rd, 1996 - version 6.9\r\n---------------------------------------------------------------------\r\n\r\nadded NPARTS define for cisam\/xopen compatibility.\r\n\r\ncompleted ISDATAVOID conditioning in the wrapper interface.\r\n\r\nadded missing TNULL key compression option.\r\n\r\ncorrected STRINGTYPE key loading bug.\r\n\r\nadded missing key description validity checks.\r\n\r\nno longer legal to erase the last remaining index in a file.\r\n\r\noverflow on opening files with too many indexes no longer fatal.\r\n\r\nisdelcurr will now fail after isstart first\/last.\r\n\r\nadjusted error return code in isrewcurr and isdelcurr on empty file.\r\n\r\ncorrected dislocation problems caused by use of is_recnum().\r\n\r\nrevised error return conditioning in isread and isstart to ensure\r\nappropriate error returns under various conditions.\r\n\r\nisread ISNEXT now returns current after ALL isstart operations\r\nexcept isstart ISNEXT.\r\n\r\ncorrected non-portable bug when selecting descending order indexes.\r\n\r\nadjusted isgoto to handle natural order index properly.\r\n\r\nisolated natural order current.\r\n\r\nnull flag in stfltnull and stdblnull should not have been a pointer.\r\n\r\naspack was not handling null primary indexes properly.\r\n\r\n---------------------------------------------------------------------\r\naugust 18th, 1996 - version 6.10\r\n---------------------------------------------------------------------\r\n\r\nmuch pruning and transplanting..\r\n\r\nthe source is now distributed in two flavours - standard unix format,\r\nand a dos\/win\/os2 version. both are generated from the same meta\r\nsource but contain unique platform extensions.\r\n\r\nbase\/ismemory.c and wrap\/stdmif.c must be added to make\/project.\r\n\r\nnow only four headers. isconfig.h is common to all, isbase.h and\r\niswrap.h as before, iscustom.h is optional.\r\n\r\nisport.h is gone, as is ISPLATFORM. BSD extensions and threadsafe\r\nconfiguration are now in isconfig.h\r\n\r\nadded isLockCheck to the base interface, parallel to islockcheck\r\nin the wrapper.\r\n\r\nthe base now has it's own mif calls - ldInt, stDblNull, etc, and\r\nthese have been wrapped for access from the standard interface.\r\n\r\nadded isErrno, isErrio, isRecNum, isRecLen, isSetRec, isSetLen\r\ncalls to base.\r\n\r\nadditional support for DLL compilation included, see dynamic.ref\r\nfor more details.\r\n\r\nadditional support for microsoft windows added, see windows.ref\r\nfor more details.\r\n\r\nmisc\/dbmemory.c is a debugging replacement for ismemory.c, see\r\nsame for comments and usage.\r\n\r\nadded ISLOCKING 3 for dos based systems and support for 'lowest\r\ncommon denominator' NFS based configurations.\r\n\r\nthe built in check call prototypes, codes and structures are now\r\nincluded in both the base and wrapper headers, and ischeck.h is\r\nno longer provided or required.\r\n\r\nentry function prototyping has been revised to provide more\r\nflexible support for building dynamic link libraries.\r\n\r\nthe general lock handling scheme has been revised somewhat to\r\ncover requirements arising from the ISLOCKING 3 option.\r\n\r\ncorrected a relatively obscure memory under-run bug in the tree\r\npruning module.\r\n\r\nadded isLastRec(), isGetLastRec(), isSetLastRec() to the base,\r\nislastrec(), isgetlastrec(), issetlastrec() to the wrapper. must\r\nadd base\/islast.c and wrap\/stdlast.c respectively to make\/project\r\nto use. undocumented (as yet)\r\n\r\nadded base library file descriptor sanity checks\r\n\r\ncorrected invalid eof on read next after adding records to an\r\nempty file.\r\n\r\npure indexes not following isfirst\/isnext rules after delete\r\nand erase corrected.\r\n\r\ntransaction processing - commit\/rollback was failing when no\r\nupdates made within transaction.\r\n\r\nisStart\/isstart should not allow the user to set keylength greater\r\nthan the length of the selected key.\r\n\r\nisCopy\/iscopy was reporting a bogus error on success.\r\n\r\nbuild and addindex were being a bit too fussy about the contents\r\nof a null key descriptor.\r\n\r\nisindexinfo and related were not counting null primaries.\r\n\r\nlock handling not releasing internal record lock state flags under\r\nsome situations.\r\n\r\n------------------------------------------------------------------------------\r\noctober 16th, 1996 - Version 6.11 - James Knight bids his official farewell\r\n------------------------------------------------------------------------------\r\n\r\nByte Designs assumes ownership of Disam96 - changes to copyright\/banners\r\n\r\nascheck, aspack and aslist references changed to dcheck, dpack and dlist\r\nrespectively\r\n\r\n------------------------------------------------------------------------------\r\nsept 1st, 1997 - Version 6.12\r\n------------------------------------------------------------------------------\r\n\r\ndec modules standardize to fit disam96 function prototyping\r\n\r\nisclone ensures null primary is cloned\r\n\r\ncompnext now returns FALSE if no current record\r\n\r\nisopen reuses system fds on failure\r\n\r\ndpack copies unique ids on rebuild\r\n\r\ndcheck added -q quiet mode option\r\n\r\niserrno initialization on successful return\r\n\r\nint64 support for maintenance of large files, ISHUGE 1 in isconfig.h\r\n\r\ncisam version 7.1 locking concurrency added, C7LOCKING 1 in isconfig.h\r\n\r\nrewnxt\/RewNxt now correctly returns EENDFILE rather than looping on last\r\nrecord\r\n\r\nextensive transaction processing rewrites\r\n\r\ncisam 7.1 no-wait on open and automatic record locks, C7NOWAIT 1 in isconfig.h\r\n\r\ncisam isstat cobol variables implemented\r\n\r\n-------------------------------------------------------------------------------\r\nmay 1st, 1999 - Version 6.13 - Client \/ Server\r\n-------------------------------------------------------------------------------\r\n\r\nclient\/server capability - see client.ref\r\n\r\nfile mirroring capibilty - see mirror.ref\r\n\r\n-------------------------------------------------------------------------------\r\njanuary 15th, 2000\r\n-------------------------------------------------------------------------------\r\n\r\naddtional c-isam behaviour implementations - C7NOWAIT set to 1\r\nISSKIPLOCK and no skip on locked records\r\n\r\nfix to ensure deletions of compressed index values don't cause uncompression\r\nof previous index values to bump past end of node - caused 105 EBADFILE errors\r\n\r\n-------------------------------------------------------------------------------\r\nmay 1st, 2000\r\n-------------------------------------------------------------------------------\r\nc-isam version 7.2x locking concurrency support\r\n\r\nisconfig.h - C7LOCKING setting should be set to 2\r\n\r\n-------------------------------------------------------------------------------\r\njuly 5th, 2000\r\n-------------------------------------------------------------------------------\r\nadded the utility - dsplit - allows a large file to be split into two smaller\r\nfiles.\r\n\r\n------------------------------------------------------------------------------\r\njanuary 16th, 2001\r\n------------------------------------------------------------------------------\r\nadded libinfo structure in association with new subroutines isLibInfo()\r\nand islibinfo(). isLibInfo()\/islibinfo() when called with an empty libinfo\r\npointer, will load the libinfo structure with the expiration date, if set,\r\nthe library compilation date and the number of clients if set.\r\n\r\nadded asplog flag to ensure that socket error reporting within the client\r\ncode, is logged to a file rather than displayed. new functions, AspGet()\r\nand AspSet( int flag ) in the base library code and, aspget() and\r\naspset( int flag ), will set and report the current value of asplog.\r\n\r\nseveral refinements to the client\/server code..extensive log reporting.\r\n\r\nadded dstat utility that reports library statistics, see dstats.ref for\r\nmore information.\r\n\r\n---------------------------------------------------------------------------\r\nmay 1st, 2001\r\n---------------------------------------------------------------------------\r\nadded auto repair for index\/data corruptions that may occur if a process\r\nis killed or if a system failure occurs. see repair.ref and ISREPAIR\r\nsetting in isconfig.h\r\n\r\n----------------------------------------------------------------------------\r\nseptember, 2001\r\n----------------------------------------------------------------------------\r\nadded ISCISAM 2 option - same as ISCISAM 1, ie. mimic C-ISAM behaviours, but\r\nwith the addition of ENOCURR on isread\/ISEQUAL failure.\r\n\r\nduplicate count logic - rev.2 - isgrow.c effected.\r\n\r\nadded check for ISWAIT on AUTOLOCK open with ISCISAM > 0 or ISNOWAIT 1\r\n\r\n----------------------------------------------------------------------------\r\nnovember, 2001\r\n----------------------------------------------------------------------------\r\nisIndexInfo\/isindexinfo - EBADARG(102) when file opened with other than\r\nISINOUT\r\nversions effected: 6.12 unix and MS, 6.13CS unix and MS - isinfo.c\r\n\r\nisupdate.c, isdelete.c - increased allocated size of oldpad buffer\r\ngeneral reorganization of rewrite() and delete() routines for better\r\nefficency.c\r\nversions effected: 6.12 unix and MS, 6.13CS unix and MS\r\n\r\nadded more functionality to ISAUDIT - additional options 2 through 7 see\r\naudit.ref\r\ntune which operations are audited, see audit.ref for options\r\nversions effected: 6.12 unix and MS, 6.13CS unix and MS\r\nisconfig.h, isdelete.c, isupdate.c and iswrite.c\r\n\r\n----------------------------------------------------------------------------\r\njanuary, 2002\r\n----------------------------------------------------------------------------\r\naddition of remote system functions - eg. fread, fwrite etc.\r\n\r\n----------------------------------------------------------------------------\r\nmay, 2002\r\n----------------------------------------------------------------------------\r\nISKCOMP - compile time flag - isconfig.h - see compkey.ref for details\r\n\r\nisprune.c replacement to correct index count and fatal errors encountered\r\nduring continuous rewrite cycles where the key values are effected\r\n\r\n----------------------------------------------------------------------------\r\naug, 2002\r\n----------------------------------------------------------------------------\r\nisadmin.c - correction to reference ADM(id)->isam->openmode should\r\nread ADM(did)->isam->openmode\r\n\r\nisrepair.c - modifications to correct repaired writes\r\n\r\nisadmin.c, iserase.c - iserase() failure caused admin table corruption\r\n\r\nisdelete.c - drop record lock prior to adding record number to free\r\nlist\r\n\r\n----------------------------------------------------------------------------\r\nsep, 2002\r\n----------------------------------------------------------------------------\r\nisprune.c - corrected bug that caused index mismatch errors under\r\ncertain conditions\r\n\r\nISLOCKING 3 on unix platforms would incorrectly initialize isam->iserrno\r\nto 0, overwriting a valid error value\r\n\r\nisadmin.c - dup struct pointer not freed on open failure, corrected\r\n\r\n----------------------------------------------------------------------------\r\nnov, 2002\r\n----------------------------------------------------------------------------\r\nisprune.c - dupnum calculation on insertion into new root corrected\r\n\r\n----------------------------------------------------------------------------\r\njan, 2003\r\n----------------------------------------------------------------------------\r\nisbuild.c, isopen.c, isopen.c and isbase.h - added CISAM compatible\r\nISSEMILOCK. see #define SEMILOCK in isconfig.h\r\n\r\n----------------------------------------------------------------------------\r\nfeb, 2003\r\n----------------------------------------------------------------------------\r\nissystem.c, isconfig.h, iswrap.h, isbase.h, stdwrap.c and stdwrap.h\r\nadded ISEXTENDED compile time option to allow for extended lock\r\nreporting when locks are blocked by other processes. see read\/extended.ref\r\n\r\n----------------------------------------------------------------------------\r\nmar, 2003\r\n----------------------------------------------------------------------------\r\nisIndexInfo\/isindexinfo - EBADARG(102) when file opened with other than\r\nISINOUT\r\nversions effected: 6.12 unix and MS, 6.13CS unix and MS - isinfo.c\r\n\r\n----------------------------------------------------------------------------\r\nmay, 2003\r\n----------------------------------------------------------------------------\r\nISCISAM > 0 check for natural order - isread.c\r\nISCISAM > 0 allow ISOUTPUT record locking, ie. isLock()\/islock()\r\n\r\n----------------------------------------------------------------------------\r\naug, 2003\r\n----------------------------------------------------------------------------\r\nisconfig.h - D3XAUTOLOCK set to 1 in isconfig.h prior to compiling the\r\nlibrary will enable older D-ISAM v3.x behaviour releasing record locks\r\non subsequent read, update or delete\r\n\r\nischeck.c - additional check for last datfree corruption\r\n\r\n----------------------------------------------------------------------------\r\njan, 2004\r\n----------------------------------------------------------------------------\r\nisgrow.c - change to satisfy C-ISAM bcheck higher level node ordering\r\nproblem did not effect the integrity of the isam file or\r\nDisam96's ability to maintain the file.\r\n\r\n----------------------------------------------------------------------------\r\nfeb, 2004\r\n----------------------------------------------------------------------------\r\nisread.c - change to ensure partial key searches are C-ISAM compatible\r\nwhen ISCISAM set to non-zero\r\nNote difference between C-ISAM and Disam96 in the following\r\nscenario.\r\nSet key compare length to partial key length via isstart()\r\nGiven 3 records with key values of 1110, 1120 and 1130\r\nsetting compare length to 1 will result in\r\nisread\/ISFIRST - first record with key 1110 is returned\r\nisread\/ISGREAT - iserrno 111 - ENOREC - Disam96\r\nSince only the first byte of the key is compared and none\r\nare greater than the value of 1. With C-ISAM the isread\/ISGREAT\r\nwill return the key 1120 record, which means the isstart\r\nsetting of partial key length compare to 1 doesn't have any\r\neffect.\r\n\r\n----------------------------------------------------------------------------\r\nmar, 2004\r\n----------------------------------------------------------------------------\r\nisgrow.c - previous change to satisfy C-ISAM bcheck not quite correct\r\nfor uncompressed keys - refined\/corrected. compressed\r\nkey logic correct.\r\n\r\n----------------------------------------------------------------------------\r\njul, 2004\r\n----------------------------------------------------------------------------\r\nisadmin.c - rewrite of dup mutex handling on failure. Mutexes were\r\nbeing unlocked rather than destroyed on function failure, isAdmFail\r\n\r\nisentry.c - reversal of isAdmFail() and isDropLock() in isFail().\r\nmutexes were being destroyed before being unlocked.\r\nThis problem first appeared on Itanium where stricter control\r\nof mutexes exist. All platforms effected.\r\n\r\nisread.c - ISCISAM 2 specific - ensure check for ISPATH->recnum is only\r\ndone when reading by index and not for natural or record number\r\norder reads.\r\n\r\n----------------------------------------------------------------------------\r\nsep, 2004\r\n----------------------------------------------------------------------------\r\niserase.c - Correction of bug that allowed erase\/rename of locked file.\r\n\r\n----------------------------------------------------------------------------\r\nnov, 2004\r\n----------------------------------------------------------------------------\r\nisread.c - change in ISCISAM 2 ENOCURR check\r\n\r\n----------------------------------------------------------------------------\r\naug, 2005\r\n----------------------------------------------------------------------------\r\nisadmin.c, stdextra.c, isbase.h - changes to correct isAdmFail master lock\r\nend rather than drop. addition of new function isThreadedDone()\/\r\nisthreadeddone() to drop master lock. application code should call\r\nisthreadeddone() prior to the application exiting..closing to isthreaded()\r\ncall.\r\n\r\n----------------------------------------------------------------------------\r\noct, 2005\r\n----------------------------------------------------------------------------\r\nisaudit.c - changes to correct behaviour to conform to C-ISAM\/X-OPEN,\r\noriginal behaviour can be reinstated by defining D96ORIG in isaudit.c\r\n\r\n----------------------------------------------------------------------------\r\nfeb, 2006\r\n----------------------------------------------------------------------------\r\nislock.c - correction to only set bit in lkstate for lock all and not\r\nrecord\r\n\r\n----------------------------------------------------------------------------\r\nsep, 2006\r\n----------------------------------------------------------------------------\r\nisprune.c - reset node->recnum after compressed key delete\r\n\r\n----------------------------------------------------------------------------\r\nnov, 2007\r\n----------------------------------------------------------------------------\r\nisbase.h,iswrap.h,isread.c - isStart() added C-ISAM ISKEEPLOCK functionality\r\nisopen.c - ensure isAdmClose if isopen fails while logging in progress\r\n\r\nisvarlen.c - allocation of isam->hashtab changed from hardcoded 4 to\r\nsizeof( long * ), to ensure proper support of platforms where\r\nlong is > 4 bytes, namely native 64bit environments.\r\n\r\n----------------------------------------------------------------------------\r\njan, 2008\r\n----------------------------------------------------------------------------\r\nistrans.c - replaced missing call to isVLread in log_vdel routine to ensure\r\nisrollback() reinserts variable length portion of deleted record.\r\n\r\n----------------------------------------------------------------------------\r\njan, 2009 - offical release of DISAM v7.0 new to this release\r\n----------------------------------------------------------------------------\r\nisopen.c, isbuild.c, isvarlen.c, isvarlen.h and isconfig.h - changes to\r\nvariable length idx file format to allow for > 16777216 record limit when\r\nstoring record numbers in 3 char bytes for varinfo and continuation node\r\npointers. isconfig.h setting ISOLDVARLEN 1 or any non 0 ISCISAM setting\r\nwill maintain old disam\/c-isam variable length file format compatibility.\r\nISCISAM 0 and ISOLDVARLEN 0 ensures new format. new format requires that\r\ndvlrebld( see dvlrebld.ref ) be run on existing variable length files.\r\n\r\nstdextra.c - schema\/record layout support - new wrap functions\r\nload schema from isamfile to path\/filename\r\nISD1 int ISD2 isldschema( int isfd, char *path )\r\ndump schema from isamfile to stdout\r\nISD1 int ISD2 isdpschema( int isfd )\r\nstore schema from loadfile to isamfile\r\nISD1 int ISD2 isstschema( int isfd, char *loadfile )\r\nremove schema from isamfile\r\nISD1 int ISD2 isrmschema( int isfd )\r\n\r\nisschema.c - schema record layout support - new base functions\r\nload schema from isamfile to path\/filename\r\nISD1 int ISD2 isLdSchema( IsFile *isam, char *path )\r\ndump schema from isamfile to stdout\r\nISD1 int ISD2 isDpSchema( isFile *isam )\r\nstore schema from loadfile to isamfile\r\nISD1 int ISD2 isStSchema( IsFile *isam, char *loadfile )\r\nremove schema from isamfile\r\nISD1 int ISD2 isRmSchema( IsFile *isam )\r\n* see read\/schema.ref for function details and schema\/ReadMe for sample programs\r\n\r\ndreport.c - new schema related isam data reporting utility.\r\n\r\nrecord number limit changed from LONG_MAX to ULONG_MAX value\r\n\r\nclient\/server capabilities incorporated into standard DISAM. for a limited single client server program please contact ByteDesigns.\r\n----------------------------------------------------------\r\n<\/pre>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span11\" onclick=\"faq_changesrc1(1)\"><div onclick=\"hits(1,1,22);edit_title(1,1,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >DISAM History, Version 7 <\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl11\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content1\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><pre>\r\nDISAM History, Version 7\r\njan, 2009 - offical release of DISAM v7.0 new to this release\r\n----------------------------------------------------------------------------\r\nisopen.c, isbuild.c, isvarlen.c, isvarlen.h and isconfig.h - changes to\r\nvariable length idx file format to allow for &gt; 16777216 record limit when\r\nstoring record numbers in 3 char bytes for varinfo and continuation node\r\npointers. isconfig.h setting ISOLDVARLEN 1 or any non 0 ISCISAM setting\r\nwill maintain old disam\/c-isam variable length file format compatibility.\r\nISCISAM 0 and ISOLDVARLEN 0 ensures new format. new format requires that\r\ndvlrebld( see dvlrebld.ref ) be run on existing variable length files.\r\n\r\nstdextra.c - schema\/record layout support - new wrap functions\r\nload schema from isamfile to path\/filename\r\nISD1 int ISD2 isldschema( int isfd, char *path )\r\ndump schema from isamfile to stdout\r\nISD1 int ISD2 isdpschema( int isfd )\r\nstore schema from loadfile to isamfile\r\nISD1 int ISD2 isstschema( int isfd, char *loadfile )\r\nremove schema from isamfile\r\nISD1 int ISD2 isrmschema( int isfd )\r\n\r\nisschema.c - schema record layout support - new base functions\r\nload schema from isamfile to path\/filename\r\nISD1 int ISD2 isLdSchema( IsFile *isam, char *path )\r\ndump schema from isamfile to stdout\r\nISD1 int ISD2 isDpSchema( isFile *isam )\r\nstore schema from loadfile to isamfile\r\nISD1 int ISD2 isStSchema( IsFile *isam, char *loadfile )\r\nremove schema from isamfile\r\nISD1 int ISD2 isRmSchema( IsFile *isam )\r\n* see read\/schema.ref for function details and schema\/ReadMe for sample programs\r\n\r\ndreport.c - new schema related isam data reporting utility.\r\n\r\nrecord number limit changed from LONG_MAX to ULONG_MAX value\r\n\r\nclient\/server capabilities incorporated into standard DISAM. for a free limited single client server program please contact ByteDesigns.\r\n-----------------------------------------------------------------------------\r\n<\/pre>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span31\" onclick=\"faq_changesrc1(2)\"><div onclick=\"hits(3,1,22);edit_title(1,3,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >Multi-threading deadlock problems<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl12\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content3\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><p><strong>This problem may be occurring in other Linux type distributions as well.<\/strong><br \/>\nIf you're running a multi-threaded DISAM program on Linux Ubuntu, with multiple processors and are seeing what appears to be a deadlock scenario, try switching to the latest Ubuntu 9.1. We have been able to confirm that some kernel versions that run NPTL threads on multi-processor systems run into what appears to be a bug in the kernel or NPTL threads library, specifically a futex_lock failure that kills the thread leaving other waiting threads in a permanent wait condition. To date we have not been able to duplicate this bug with the latest version of Ubuntu 9.1, specifically kernel 2.6.31-14 server. NPTL version 2.10.1.<\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span41\" onclick=\"faq_changesrc1(3)\"><div onclick=\"hits(4,1,22);edit_title(1,4,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >Is D-ISAM compatible with Informix C-ISAM?<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl13\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content4\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><p><strong>Is D-ISAM compatible with Informix C-ISAM?<\/strong><br \/>\nD-ISAM 3.x, DISAM96 and DISAM7 are all file compatible with C-ISAM. D-ISAM 3.x, DISAM96\/DISAM7 will run concurrent locking with C-ISAM Version 4.1 executables. DISAM96 and DISAM7 allows for configuration settings that will enable concurrent locking with C-ISAM 5.1 and greater. (  Currently this applies to unix fcntl() environments only ) This is only of importance if you are planning to run C-ISAM executables against D-ISAM\/DISAM96\/DISAM7 executables. The D-ISAM 3.x calls and DISAM96\/DISAM7 wrap calls are fully compatible with the standard C-ISAM isam function calls. <\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span51\" onclick=\"faq_changesrc1(4)\"><div onclick=\"hits(5,1,22);edit_title(1,5,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >Performance Comparisons<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl14\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content5\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><div><strong>Performance Comparisons<\/strong><\/div>\n<div>Some Performance Comparisons between D-ISAM Version 3.x, DISAM96 and Informix' C-ISAM 4.x<br \/>\nTests were 15000 cycles run on an Intel Pentium-133 running SCO Unix ODT-5<br \/>\n<img alt=\"\" src=\"http:\/\/www.isam.ca\/support\/faq_files\/pasted-graphic.jpg\" width=\"508\" height=\"340\" \/><\/div>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span61\" onclick=\"faq_changesrc1(5)\"><div onclick=\"hits(6,1,22);edit_title(1,6,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >I'm sure I have compiled the library properly, and I'm sure I have compiled and linked my application properly but nothing seems to work correctly.<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl15\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content6\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><p><strong>I'm sure I have compiled the library properly, and I'm sure I have compiled and linked my application properly but nothing seems to work correctly.<\/strong><br \/>\nA. Ensure your including the correct header information, if compiling or converting from C-ISAM you'll need to change references from isam.h to disam.h ( versions 3.x ) or iswrap.h ( DISAM96\/DISAM7 )..or simply create a dummy isam.h that only includes #include or .<\/p>\n<p>B. Disam requires that that library be compiled with signed char types as the default. Ensure the compiler is defaulting to signed char types on compile or set the compiler flag that generates signed char types by default. <\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span71\" onclick=\"faq_changesrc1(6)\"><div onclick=\"hits(7,1,22);edit_title(1,7,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >I'm sure I have compiled the library properly, and I am sure I have the right linker commands, but I keep getting unresolved references to the base ( isXxxx() ) library functions.<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl16\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content7\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><p><strong>I'm sure I have compiled the library properly, and I am sure I have the right linker commands, but I keep getting unresolved references to the base ( isXxxx() ) library functions.<\/strong><br \/>\nDISAM96\/DISAM7 specific - If you're linking wrap ( isxxxx() ) calls then it is possible your linker resolves references canonically - in a single pass through the listed libraries. Linker objects should be listed in order of precedence - object module(s), wrap lib, base lib. <\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span81\" onclick=\"faq_changesrc1(7)\"><div onclick=\"hits(8,1,22);edit_title(1,8,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >What's involved in converting from C-ISAM or D-ISAM 3.x to DISAM96\/DISAM7?<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl17\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content8\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><p><strong>What's involved in converting from C-ISAM or D-ISAM 3.x to DISAM96\/DISAM7?<\/strong><br \/>\nIf converting from C-ISAM to D-ISAM 3.x the only change you will need to make is to create an isam.h that only includes . Compile the D-ISAM 3.x library and recompile your application code and link to the D-ISAM library.<\/p>\n<p>If converting from C-ISAM or D-ISAM 3.x to DISAM96 or DISAM7, you will need to ensure that references to isam.h or disam.h are replaced with iswrap.h. DISAM96 and DISAM7 no longer use the isfdmap structure that is internal to D-ISAM 3.x, DISAM96 and DISAM7 provide analogs for some of the more common values via common dictionary access routines. <\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span91\" onclick=\"faq_changesrc1(8)\"><div onclick=\"hits(9,1,22);edit_title(1,9,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >What are the maximums allowable with DISAM?<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl18\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content9\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><div><strong>What are the maximums allowable with DISAM?<\/strong><\/div>\n<div>Most maximums such as file sizes\/open files and such are determined by the os. DISAM96\/DISAM7 will allow index sizes limited only by the index block factor, to increase the default maximum for the index size increase the ISIDXBLK default setting by increments of 512 bytes..the default is set to 1024 and allows a max index size of around 990 bytes. DISAM96\/DISAM7 as of version 6.12 allows support for files greater than the standard 2 gig limit for those operating systems that support int64 types.<\/p>\n<p>DISAM sets no limits for the number of indexes in a file or the number of parts per key.\n<\/p><\/div>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span101\" onclick=\"faq_changesrc1(9)\"><div onclick=\"hits(10,1,22);edit_title(1,10,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >What are the differences between DISAM 3.x and DISAM96 and DISAM7?<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl19\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content10\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><div><strong>What are the differences between DISAM 3.x and DISAM96 and DISAM7?<\/strong><\/div>\n<div>DISAM96 is a complete rewrite that resembles D-ISAM 3.x in almost no way as far as the actual code is concerned. DISAM96 is cleaner, more efficient code with many added options such as multithread capabilities, large file support for platforms that allow &gt; 2 gig file sizes, locking compliance with both C-ISAM 4.1 as well as C-ISAM 5.0 and 7.1. (C-ISAM changed locking schemes as of 5.0 ), full cobol isstat variable support, MF cobol filename support, and ease in compilation of both static and dll libraries for MS platforms.<br \/>\nDISAM7 is the latest DISAM next generation of DISAM96. DISAM7 allows twice the number of data records compared with D-ISAM and DISAM96. DISAM7 allows for isam file schema storage within the isam file, formated reported output of data from the file via the schema as well as an enhancement to the C-ISAM limit on variable length record max, see dvlrebld.ref for more details.<\/div>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span111\" onclick=\"faq_changesrc1(10)\"><div onclick=\"hits(11,1,22);edit_title(1,11,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >Rebuilding and reclaiming space using Disam's dpack<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl110\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content11\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><div><strong>Rebuilding and reclaiming space using Disam's dpack<\/strong><\/div>\n<div>When a record is deleted from an isam file, it is marked for deletion in the .dat and the corresponding index values are physically removed from the index node. ( One 512 or 1024 block = one index record ). When an index node becomes empty due to all key values in the node being deleted, then the node itself is removed from the .idx file.<\/p>\n<p>At any time an index node may or may not be full, if a deletion leaves space in an index node..that space will only be reused if a new record insert has a key value that would compare as next or prev against existing key values in that node. In other words an index node (used bytes) shrinks or expands( up to 512 or 1024 max bytes ) due to deletions and insertions. An insertion does not reuse any available index node with available space..it must be the index node where the comparable key values reside.<\/p>\n<p>Depending on the index values on new record inserts, index node space that has been freed from previously deleted entries may not ever be reused unless new key values compare as the next key value to an existing key value in that node.<\/p>\n<p>There is no ratio or percentage that can be assumed about how much unused space is in a index node. That depends on the entries deleted and subsequent inserts if any. If all records in a file are removed the .idx file will shrink in size because nodes will be empty and empty nodes are physically deleted.<\/p>\n<p>The only way to pack both the .dat and .idx is to run Disam96's dpack program.\u00a0<a href=\"http:\/\/www.isam.ca\/support\/faq.html#Rebuilding_and_reclaiming_space_top\"><br \/>\n<\/a><\/div>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><\/li><li id=\"post-1236\" class=\"selected\" style=\"margin-left:2px !important\"><div class=\"post_top\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_right\" >\n\t\t\t\t\t\t\t\t\t\t  <a href=\"#\" class=\"post_ajax_title\"><span id=\"post_span121\" onclick=\"faq_changesrc1(11)\"><div onclick=\"hits(12,1,22);edit_title(1,12,1,'283841','283839')\"  class=\"post_title\" id=\"post_title1\" style=\"padding: 5px;background-color:#283841\">\n\t\t\t\t\t\t\t\t\t\t  <div class=\"ttext1\" id=\"ttext1\" >Size of resulting index versus size of data<\/div><div align=\"right\" class=\"tchangeimg\" id=\"tchangeimg1\"  style=\"padding-right: 6px;padding-left: 5px;\"><img src=\"http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style18\/style18b.png\"  id=\"stl111\" style=\"box-shadow:none;padding:0px;vertical-align: middle;\"\/><\/div><\/div><\/span><\/a>\n\t\t\t\t\t\t\t\t\t<\/div><\/div><div id=\"post_content12\" class=\"post_content\" style=\"padding-left:9px !important;\">\n\t\t\t\t\t\t\t\t\t  <div class=\"post_content_wrapper\" id=\"post_content_wrapper1\" style=\"background-image:url(http:\/\/www.isam.ca\/d7\/wp-content\/plugins\/spider-faq\/upload\/style19\/BG.png)\"><div class=\"post_right\" id=\"post_right1\"><div style=\"border-top:1px;\" class=\"atext\" id=\"atext1\"><div><strong>Size of resulting index versus size of data<\/strong><\/div>\n<p>512 index node size, dup width of 2 bytes and assuming no index compression: 100 byte key value, with 2 keys<\/p>\n<p>one 512 byte node would be allocated for every 4 - 100 byte index values ( there is extra space per node 2 bytes for the #bytes used in node\u00a0 as well as 4 bytes per value for record# and 2 bytes per value for dup# ) so 10 records of 100 bytes would mean 4 index values per node = 3 nodes * 512bytes * # file indexes<\/p>\n<pre>\r\nkey length - 100 bytes + 4 bytes - record# + 2 bytes - dup# ---------- 106 bytes per index value\r\n\r\n512 - index header record + 3 * 512 - 10 index values for key 1\u00a0 + 3 * 512 - 10 index values for key 2 --------- 3584 bytes for index values + header record for .idx file\r\n\r\nand 101 per data record * 10 records = 1010 bytes for the .dat file.\r\n\r\n1024 index block size and 4 byte dup width ( now standard ) 9 index values in 1 node, another node for the 10th value\r\n\r\n1024 - index header record + + 2 * 1024 - 10 index values for key 1 + 2 * 1024 - 10 index values for key 2 --------- 5120 bytes bytes for .idx\r\n<\/pre>\n<p>Once a node is full, that node is split into to 2 nodes and another level node is created. This forms the index chain. The first node is the level 0 node and level 0 nodes point directly to data records. Higher level nodes point to the index record of the lower level node in the index chain.<\/p>\n\t    \n\t\t\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t   <\/div><\/div>\n\t\t\t\t\t\t\t\t\t<\/li><div style=\"padding-bottom:5px\"><\/div><div style=\"padding-bottom:30px;\"><\/div>\t\t<\/ul>\t\t\n\t  <\/div>\n\t  <\/div>\n\t  <\/div> \t\n\n<script type=\"text\/javascript\">\n\tvar gaJsHost = ((\"https:\" == document.location.protocol) ? \"https:\/\/ssl.\" : \"http:\/\/www.\");\n\tdocument.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com\/ga.js' type='text\/javascript'%3E%3C\/script%3E\"));\n<\/script>\n<script type=\"text\/javascript\">\n\t\n\ttry {\n\t\tvar pageTracker = _gat._getTracker(\"UA-9222847-1\");\n\t\t\/\/ Cookied already: \n\t\tpageTracker._trackPageview();\n\t} catch(err) {}\n<\/script>\n<\/body>\n\n<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":54,"menu_order":30,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/pages\/62"}],"collection":[{"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.isam.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":21,"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/pages\/62\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/pages\/62\/revisions\/153"}],"up":[{"embeddable":true,"href":"https:\/\/www.isam.ca\/index.php?rest_route=\/wp\/v2\/pages\/54"}],"wp:attachment":[{"href":"https:\/\/www.isam.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}