Annotation of 42BSD/ingres/doc/quel/modify.nr, revision 1.1.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: .i0
                     31: .sh DESCRIPTION
                     32: .it Relname 
                     33: is modified to the specified storage structure.
                     34: Only the owner of a relation can modify that relation.
                     35: This command is used to increase performance when using large
                     36: or frequently referenced relations.
                     37: The storage structures are specified as follows:
                     38: .s3
                     39: .if n .in +10
                     40: .if t .in +1i
                     41: .de xx
                     42: .if n .ti -5
                     43: .if t .ti -0.5i
                     44: ..
                     45: .xx
                     46: isam \- indexed sequential storage structure
                     47: .xx
                     48: cisam \- compressed isam
                     49: .xx
                     50: hash \- random hah storage structure
                     51: .xx
                     52: chash \- compressed hash
                     53: .xx
                     54: heap \- unkeyed and unstructured
                     55: .xx
                     56: cheap \- compressed heap
                     57: .xx
                     58: heapsort \- heap with tuples sorted and duplicates removed
                     59: .xx
                     60: cheapsort \- compressed heapsort
                     61: .xx
                     62: truncated \- heap with all tuples deleted
                     63: .s3
                     64: .i0
                     65: The paper ``Creating and Maintaining a Database in \*(II''
                     66: (ERL Memo M77\-71)
                     67: discusses how to select storage structures
                     68: based on how the relation is used.
                     69: .s3
                     70: The current compression algorithm only suppresses trailing
                     71: blanks in character fields.
                     72: A more effective compression scheme may be possible,
                     73: but tradeoffs between that and a larger and slower
                     74: compression algorithm are not clear.
                     75: .s3
                     76: If the 
                     77: .it on
                     78: phrase is omitted when modifying to isam, cisam, hash or chash,
                     79: the relation will automatically be keyed on the first domain.
                     80: When modifying to heap or cheap the 
                     81: .it on
                     82: phrase must be omitted.
                     83: When modifying to heapsort or cheapsort the 
                     84: .it on
                     85: phrase is optional.
                     86: .s3
                     87: When a relation is being sorted (isam, cisam, heapsort and cheapsort),
                     88: the primary sort keys will be those specified in the 
                     89: .it on
                     90: phrase (if any).
                     91: The first key after the 
                     92: .it on
                     93: phrase will be the most significant sort key
                     94: and each successive key specified will be the next most significant
                     95: sort key.
                     96: Any domains not specified in the 
                     97: .it on
                     98: phrase will be used as least
                     99: significant sort keys in domain number sequence.
                    100: .s3
                    101: When a relation is modified to heapsort or cheapsort,
                    102: the 
                    103: .it sortorder
                    104: can be specified to be 
                    105: .bd ascending 
                    106: or
                    107: .bd descending.
                    108: The default is always 
                    109: .bd ascending.
                    110: Each key given in the
                    111: .it on
                    112: phrase can be optionally modified
                    113: to be:
                    114: .s1
                    115: .if n .ti +5
                    116: .if t .ti +0.5i
                    117: key:descending
                    118: .s1
                    119: which will cause that key to be sorted in descending order.
                    120: For completeness, 
                    121: .bd ascending
                    122: can be specified after the colon (`:'),
                    123: although this is unnecessary since
                    124: it is the default.
                    125: .bd Descending
                    126: can be abbreviated by a single `\c
                    127: .bd d\c
                    128: \&' and, correspondingly,
                    129: .bd ascending 
                    130: can be abreviated by a single `\c
                    131: .bd a\c
                    132: \&'.
                    133: .s3
                    134: .it Fillfactor 
                    135: specifies the percentage
                    136: (from 1 to 100)
                    137: of each primary data page that should be filled
                    138: with tuples, under ideal conditions.
                    139: .it Fillfactor
                    140: may be used with isam, cisam, hash and chash.
                    141: Care should be taken when using large fillfactors since a non-uniform
                    142: distribution of key values could cause overflow pages to be created,
                    143: and thus degrade access performance for the relation.
                    144: .s3
                    145: .it Minpages 
                    146: specifies the minimum number of primary pages a hash or chash
                    147: relation must have.
                    148: .it Maxpages
                    149: specifies the maximum number of primary pages
                    150: a hash or chash relation may have.
                    151: .it Minpages 
                    152: and 
                    153: .it maxpages 
                    154: must be at least one.
                    155: If both 
                    156: .bd minpages 
                    157: and 
                    158: .bd maxpages 
                    159: are specified in a modify,
                    160: .bd minpages 
                    161: cannot exceed 
                    162: .bd maxpages.
                    163: .sp
                    164: Default values for 
                    165: .bd fillfactor\c
                    166: , 
                    167: .bd minpages\c
                    168: , and 
                    169: .bd maxpages 
                    170: are as follows:
                    171: .if n .ta 5 12 25 35
                    172: .if t .ta 0.5i 1i 3i 4.5i
                    173: .nf
                    174: .ul
                    175: .s1
                    176:                FILLFACTOR      MINPAGES        MAXPAGES
                    177: .s2
                    178:        hash    50      10      no limit
                    179:        chash   75      1       no limit
                    180:        isam    80      NA      NA
                    181:        cisam   100     NA      NA
                    182: .fi
                    183: .dt
                    184: .sh EXAMPLES
                    185: .nf
                    186: /* modify the emp relation to an indexed
                    187:         sequential storage structure with
                    188:         "name" as the keyed domain */
                    189: .s1
                    190: modify emp to isam on name
                    191: .s1
                    192: /* if "name" is the first domain of the emp relation,
                    193:         the same result can be achieved by */
                    194: .s1
                    195: modify emp to isam
                    196: .s1
                    197: /* do the same modify but request a 60% occupancy
                    198:         on all primary pages */
                    199: .s1
                    200: modify emp to isam on name where fillfactor = 60
                    201: 
                    202: /* modify the supply relation to compressed hash
                    203:         storage structure with "num" and "quan"
                    204:         as keyed domains */
                    205: .s1
                    206: modify supply to chash on num, quan
                    207: .s1
                    208: /* now the same modify but also request 75% occupancy
                    209:         on all primary, a minimum of 7 primary pages
                    210:         pages and a maximum of 43 primary pages */
                    211: .s1
                    212: modify supply to chash on num, quan
                    213:         where fillfactor = 75, minpages = 7,
                    214:         maxpages = 43
                    215: .s1
                    216: /* again the same modify but only request a minimum
                    217:         of 16 primary pages */
                    218: .s1
                    219: modify supply to chash on num, quan
                    220:         where minpages = 16
                    221: .s1
                    222: /* modify parts to a heap storage structure */
                    223: .s1
                    224: modify parts to heap
                    225: .s1
                    226: /* modify parts to a heap again, but have tuples
                    227:         sorted on "pnum" domain and have any duplicate
                    228:         tuples removed */
                    229: .s1
                    230: modify parts to heapsort on pnum
                    231: .s1
                    232: /* modify employee in ascending order by manager,
                    233:         descending order by salary and have any
                    234:         duplicate tuples removed */
                    235: .s1
                    236: modify employee to heapsort on manager, salary:descending
                    237: .fi
                    238: .sh "SEE ALSO"
                    239: sysmod(unix)

unix.superglobalmegacorp.com

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