Annotation of 43BSD/ingres/doc/quel/modify.nr, revision 1.1

1.1     ! root        1: .th MODIFY QUEL 2/23/79
        !             2: .sh NAME
        !             3: modify \- convert the storage structure of a relation
        !             4: .sh SYNOPSIS
        !             5: .in +5
        !             6: .ti -5
        !             7: .bd modify 
        !             8: relname 
        !             9: .bd to 
        !            10: storage-structure
        !            11: [
        !            12: .bd on 
        !            13: key1 [ :
        !            14: .it sortorder
        !            15: ] [ { , key2 [ :
        !            16: .it sortorder
        !            17: ] } ] ] 
        !            18: [
        !            19: .bd where 
        !            20: [
        !            21: .bd "fillfactor =" 
        !            22: .it n
        !            23: ] [
        !            24: .bd ", minpages =" 
        !            25: .it n
        !            26: ] [
        !            27: .bd ", maxpages =" 
        !            28: .it n
        !            29: ] [
        !            30: .bd ", lidn ="
        !            31: .it lidname
        !            32: ] [
        !            33: .i0
        !            34: .sh DESCRIPTION
        !            35: .it Relname 
        !            36: is modified to the specified storage structure.
        !            37: Only the owner of a relation can modify that relation.
        !            38: This command is used to increase performance when using large
        !            39: or frequently referenced relations.
        !            40: The storage structures are specified as follows:
        !            41: .s3
        !            42: .if n .in +10
        !            43: .if t .in +1i
        !            44: .de xx
        !            45: .if n .ti -5
        !            46: .if t .ti -0.5i
        !            47: ..
        !            48: .xx
        !            49: isam \- indexed sequential storage structure
        !            50: .xx
        !            51: cisam \- compressed isam
        !            52: .xx
        !            53: hash \- random hah storage structure
        !            54: .xx
        !            55: chash \- compressed hash
        !            56: .xx
        !            57: heap \- unkeyed and unstructured
        !            58: .xx
        !            59: cheap \- compressed heap
        !            60: .xx
        !            61: heapsort \- heap with tuples sorted and duplicates removed
        !            62: .xx
        !            63: cheapsort \- compressed heapsort
        !            64: .xx
        !            65: truncated \- heap with all tuples deleted
        !            66: .xx
        !            67: orderedn \- ordered relation where n is the ordering dimension
        !            68: .s3
        !            69: .i0
        !            70: The paper ``Creating and Maintaining a Database in \*(II''
        !            71: (ERL Memo M77\-71)
        !            72: discusses how to select storage structures
        !            73: based on how the relation is used.
        !            74: .s3
        !            75: The current compression algorithm only suppresses trailing
        !            76: blanks in character fields.
        !            77: A more effective compression scheme may be possible,
        !            78: but tradeoffs between that and a larger and slower
        !            79: compression algorithm are not clear.
        !            80: .s3
        !            81: If the 
        !            82: .it on
        !            83: phrase is omitted when modifying to isam, cisam, hash or chash,
        !            84: the relation will automatically be keyed on the first domain.
        !            85: When modifying to heap or cheap the 
        !            86: .it on
        !            87: phrase must be omitted.
        !            88: When modifying to heapsort or cheapsort the 
        !            89: .it on
        !            90: phrase is optional.
        !            91: .s3
        !            92: When a relation is being sorted (isam, cisam, heapsort and cheapsort),
        !            93: the primary sort keys will be those specified in the 
        !            94: .it on
        !            95: phrase (if any).
        !            96: The first key after the 
        !            97: .it on
        !            98: phrase will be the most significant sort key
        !            99: and each successive key specified will be the next most significant
        !           100: sort key.
        !           101: Any domains not specified in the 
        !           102: .it on
        !           103: phrase will be used as least
        !           104: significant sort keys in domain number sequence.
        !           105: .s3
        !           106: When a relation is modified to heapsort or cheapsort,
        !           107: the 
        !           108: .it sortorder
        !           109: can be specified to be 
        !           110: .bd ascending 
        !           111: or
        !           112: .bd descending.
        !           113: The default is always 
        !           114: .bd ascending.
        !           115: Each key given in the
        !           116: .it on
        !           117: phrase can be optionally modified
        !           118: to be:
        !           119: .s1
        !           120: .if n .ti +5
        !           121: .if t .ti +0.5i
        !           122: key:descending
        !           123: .s1
        !           124: which will cause that key to be sorted in descending order.
        !           125: For completeness, 
        !           126: .bd ascending
        !           127: can be specified after the colon (`:'),
        !           128: although this is unnecessary since
        !           129: it is the default.
        !           130: .bd Descending
        !           131: can be abbreviated by a single `\c
        !           132: .bd d\c
        !           133: \&' and, correspondingly,
        !           134: .bd ascending 
        !           135: can be abreviated by a single `\c
        !           136: .bd a\c
        !           137: \&'.
        !           138: .s3
        !           139: When modifying to 
        !           140: .it orderedn,
        !           141: up to n ordering keys can be specified using the
        !           142: .it on
        !           143: clause.
        !           144: Ordering keys are used to specify the ordering of tuples in the new relation.
        !           145: Changes on key field values indicate the incrementing of a
        !           146: lid value for the lid corresponding to the key change.
        !           147: If no ordering keys are specified, only the lid corresponding
        !           148: to the lowest lid level is incremented by one for every new tuple.
        !           149: In this case,the order of the tuples is determined by their sort order on file.
        !           150: However, note that ordering does not destroy any current storage
        !           151: structures on a relation (except secondary indices).
        !           152: .s3
        !           153: .it Lidn
        !           154: can only be specified if modifying to 
        !           155: .it orderedn.
        !           156: Default values are
        !           157: .bd lid1
        !           158: ,
        !           159: .bd lid2
        !           160: , and
        !           161: .bd lid3.
        !           162: .s3
        !           163: .it Fillfactor 
        !           164: specifies the percentage
        !           165: (from 1 to 100)
        !           166: of each primary data page that should be filled
        !           167: with tuples, under ideal conditions.
        !           168: .it Fillfactor
        !           169: may be used with isam, cisam, hash and chash.
        !           170: Care should be taken when using large fillfactors since a non-uniform
        !           171: distribution of key values could cause overflow pages to be created,
        !           172: and thus degrade access performance for the relation.
        !           173: .s3
        !           174: .it Minpages 
        !           175: specifies the minimum number of primary pages a hash or chash
        !           176: relation must have.
        !           177: .it Maxpages
        !           178: specifies the maximum number of primary pages
        !           179: a hash or chash relation may have.
        !           180: .it Minpages 
        !           181: and 
        !           182: .it maxpages 
        !           183: must be at least one.
        !           184: If both 
        !           185: .bd minpages 
        !           186: and 
        !           187: .bd maxpages 
        !           188: are specified in a modify,
        !           189: .bd minpages 
        !           190: cannot exceed 
        !           191: .bd maxpages.
        !           192: .sp
        !           193: Default values for 
        !           194: .bd fillfactor\c
        !           195: , 
        !           196: .bd minpages\c
        !           197: , and 
        !           198: .bd maxpages 
        !           199: are as follows:
        !           200: .if n .ta 5 12 25 35
        !           201: .if t .ta 0.5i 1i 3i 4.5i
        !           202: .nf
        !           203: .ul
        !           204: .s1
        !           205:                FILLFACTOR      MINPAGES        MAXPAGES
        !           206: .s2
        !           207:        hash    50      10      no limit
        !           208:        chash   75      1       no limit
        !           209:        isam    80      NA      NA
        !           210:        cisam   100     NA      NA
        !           211: .fi
        !           212: .dt
        !           213: .sh EXAMPLES
        !           214: .nf
        !           215: /* modify the emp relation to an indexed
        !           216:         sequential storage structure with
        !           217:         "name" as the keyed domain */
        !           218: .s1
        !           219: modify emp to isam on name
        !           220: .s1
        !           221: /* if "name" is the first domain of the emp relation,
        !           222:         the same result can be achieved by */
        !           223: .s1
        !           224: modify emp to isam
        !           225: .s1
        !           226: /* do the same modify but request a 60% occupancy
        !           227:         on all primary pages */
        !           228: .s1
        !           229: modify emp to isam on name where fillfactor = 60
        !           230: 
        !           231: /* modify the supply relation to compressed hash
        !           232:         storage structure with "num" and "quan"
        !           233:         as keyed domains */
        !           234: .s1
        !           235: modify supply to chash on num, quan
        !           236: .s1
        !           237: /* now the same modify but also request 75% occupancy
        !           238:         on all primary, a minimum of 7 primary pages
        !           239:         pages and a maximum of 43 primary pages */
        !           240: .s1
        !           241: modify supply to chash on num, quan
        !           242:         where fillfactor = 75, minpages = 7,
        !           243:         maxpages = 43
        !           244: .s1
        !           245: /* again the same modify but only request a minimum
        !           246:         of 16 primary pages */
        !           247: .s1
        !           248: modify supply to chash on num, quan
        !           249:         where minpages = 16
        !           250: .s1
        !           251: /* modify parts to a heap storage structure */
        !           252: .s1
        !           253: modify parts to heap
        !           254: .s1
        !           255: /* modify parts to a heap again, but have tuples
        !           256:         sorted on "pnum" domain and have any duplicate
        !           257:         tuples removed */
        !           258: .s1
        !           259: modify parts to heapsort on pnum
        !           260: .s1
        !           261: /* modify employee in ascending order by manager,
        !           262:         descending order by salary and have any
        !           263:         duplicate tuples removed */
        !           264: .s1
        !           265: modify employee to heapsort on manager, salary:descending
        !           266: .s1
        !           267: /* ordered relation */
        !           268: .s1
        !           269: modify text to ordered1 on lid where lid1 = lidfield
        !           270: .fi
        !           271: .sh "SEE ALSO"
        !           272: sysmod(unix)
        !           273: ordered(quel)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.