Annotation of 43BSD/ingres/doc/other/v6v61diff.nr, revision 1.1

1.1     ! root        1: .ds HE 'Version 6.1 Changes'INGRES'Page %'
        !             2: .so nmacs
        !             3: Version 6.1 of INGRES is upward compatable with version 6.0
        !             4: of INGRES and contains a number of new features.
        !             5: The most important of these are improved aggregation
        !             6: capabilities,
        !             7: macros in the monitor,
        !             8: full concurrency control,
        !             9: and overall speed
        !            10: improvement.
        !            11: 
        !            12: The only incompatability with version 6.0 is that
        !            13: secondary indices are stored differently internally
        !            14: and the default for "retrieve into" is now "cheapsort".
        !            15: .sh 1
        !            16: Incompatibilities.
        !            17: .dn
        !            18: Secondary Indices.
        !            19: .PS
        !            20: We have learned that the way in which we formed
        !            21: internal tuple identifiers was not
        !            22: optimal for secondary indices.
        !            23: Consequently we have changed the format of
        !            24: tuple identifiers (tid).
        !            25: 
        !            26: Secondary indices must either be
        !            27: destroyed and recreated or else use
        !            28: the program "indconv" to convert the secondary indices.
        !            29: Refer to the accompaning document "indconv(unix)"
        !            30: for details.
        !            31: .sh
        !            32: Retrieve into defaults to cheapsort.
        !            33: .PS
        !            34: On a "retrieve into" the result relation
        !            35: used to be modified to "isam".
        !            36: The default has been changed to be cheapsort.
        !            37: The primary advantage of this is that you
        !            38: don't have the extra processing time needed
        !            39: for the modify to isam.
        !            40: 
        !            41: As in the past the default can be overridden
        !            42: at the time INGRES is invoked by using
        !            43: the "-r" flag.
        !            44: Refer to ingres(unix) for details.
        !            45: .sh 1
        !            46: Monitor
        !            47: .dn
        !            48: Saving and restoring queries.
        !            49: .PS
        !            50: Three new commands have
        !            51: been added to help in saving and
        !            52: restoring queries.
        !            53: They are:
        !            54: .nf
        !            55: 
        !            56:        \\chdir directory       (change directory)
        !            57:        \\include file  (switch input to file)
        !            58:        \\write file    (write query buffer to file)
        !            59: 
        !            60: .fi
        !            61: .sh
        !            62: Alternate Monitor Commands.
        !            63: .PS
        !            64: The Monitor allows you to spell out commands.
        !            65: Thus "\\go" is the same as "\\g".
        !            66: Refer to monitor(quel) for a complete list.
        !            67: .sh 1
        !            68: Parser.
        !            69: .dn
        !            70: Special conversion functions.
        !            71: .PS
        !            72: There are five conversion
        !            73: functions: int1, int2, int4, float4, float8.
        !            74: They allow you to specify the type of
        !            75: any arithmetic expression.
        !            76: For example:
        !            77: 
        !            78: .nf
        !            79: range of e is employee
        !            80: retrieve (total = sum(int4(e.salary)))
        !            81: 
        !            82: .fi
        !            83: This will take each e.salary and convert it
        !            84: to an i4 before summing.
        !            85: The conversion functions can also be used
        !            86: to convert character values to
        !            87: numeric values.
        !            88: .sh
        !            89: Improved range table.
        !            90: .PS
        !            91: The range table is now completely
        !            92: organized according to least recently
        !            93: used.
        !            94: This means that when you declare more
        !            95: than ten tuple variables, the variable
        !            96: least recently referenced is
        !            97: discarded.
        !            98: .sh
        !            99: New Aggregates.
        !           100: Aggregate facilities have been expanded to include
        !           101: countu, sumu, and avgu.
        !           102: These aggregate only unique values.
        !           103: INGRES removes all duplicates before
        !           104: performing the specified aggregate.
        !           105: For example if the query asks for
        !           106: 
        !           107: avgu(p.qoh * p.weight)
        !           108: 
        !           109: Then the average will be performed only
        !           110: on the unique values of the product of
        !           111: p.qoh * p.weight.
        !           112: .sh
        !           113: Bugs involving "NOT" and "OR" fixed.
        !           114: .PS
        !           115: There were several bugs involving
        !           116: queries with NOT and OR in the
        !           117: qualification.
        !           118: Those bugs have all been fixed.
        !           119: .sh
        !           120: Default for INDEX on "-n" flag.
        !           121: .PS
        !           122: When invoking INGRES,
        !           123: the -n flag can be used to specify the default
        !           124: structure for relations created by the "index"
        !           125: command.
        !           126: .sh
        !           127: ASCII command accepts character values.
        !           128: .PS
        !           129: ASCII has been changed to accept and ignore
        !           130: character values.
        !           131: This can be useful for equel programs since
        !           132: ascii(any domain) can always be retrieved
        !           133: into a variable of type character.
        !           134: .sh 1
        !           135: OVQP
        !           136: .dn
        !           137: Correct handling of I1 and F4.
        !           138: .PS
        !           139: In the past, a retrieve to the terminal
        !           140: of an i1 or a f4 domain was handled as if
        !           141: the domain were an i2 or f8 respectively.
        !           142: This mattered only when using the -i1 or -f4
        !           143: flags when invoking INGRES.
        !           144: .sh 1
        !           145: DECOMP
        !           146: .dn
        !           147: Aggregate functions no longer produce a cross-product.
        !           148: .PS
        !           149: In the past,
        !           150: if more than one aggregate function was specified on
        !           151: a variable,
        !           152: the system incorrectly produced a cross product
        !           153: on the resulting aggregates.
        !           154: This bug has been fixed and matching by-lists on
        !           155: aggregate functions are always linked correctly
        !           156: to the rest of the query.
        !           157: .sh
        !           158: Multi-variable and nested aggregates.
        !           159: .PS
        !           160: You can now have aggregates which involve
        !           161: more than one relations.
        !           162: For example, a lot of people have wanted
        !           163: to know how many suppliers supply the
        !           164: central processor:
        !           165: 
        !           166: .nf
        !           167: 
        !           168: range of p is parts
        !           169: range of s is supply
        !           170: retrieve (goodnews = count(s.snum where s.pnum = p.pnum
        !           171:        and p.pname = "central processor"))
        !           172: .fi
        !           173: 
        !           174: .sh
        !           175: Processing of aggregates in parallel.
        !           176: .PS
        !           177: Whenever possible,
        !           178: two or more aggregates
        !           179: are processed
        !           180: on the same pass through the relation.
        !           181: This means that in the query:
        !           182: 
        !           183: .nf
        !           184: range of p is parts
        !           185: retrieve (
        !           186:        p.color,
        !           187:        cnt = count(p.pname by p.color),
        !           188:        wt  = sum(p.weight by p.color)
        !           189:        )
        !           190: 
        !           191: .fi
        !           192: the sum and count would be computed
        !           193: with only one pass over parts.
        !           194: .sh
        !           195: New Definition of Aggregate Functions.
        !           196: .PS
        !           197: In previous versions of INGRES,
        !           198: if a "by-domain" value was excluded
        !           199: by the qualification,
        !           200: the aggregate value of the "by-domain"
        !           201: was undefined.
        !           202: Starting with version 6.1 an
        !           203: undefined value always defaults to zero.
        !           204: 
        !           205: Simple aggregates always defaulted to zero
        !           206: if undefined.
        !           207: Aggregate functions are now consistant with
        !           208: that definition.
        !           209: 
        !           210: For example:
        !           211: 
        !           212: .nf
        !           213: range of e is employee
        !           214: retrieve (e.manager, people =
        !           215:        count(e.name by e.manager where
        !           216:        e.startdate < 1970))
        !           217: .fi
        !           218: 
        !           219: If there is a manager with no employee
        !           220: who started before 1970 then the count will
        !           221: be zero.
        !           222: Previously no value would have appeared
        !           223: for the manager.
        !           224: .sh 1
        !           225: DBU
        !           226: .dn
        !           227: Destroy, Help, and Print can take lists of relations
        !           228: .PS
        !           229: Destroy, help, and print can now take a comma
        !           230: separated list of agruments.
        !           231: .sh
        !           232: System relations cannot be "modified"
        !           233: .PS
        !           234: You can no longer use the modify
        !           235: command on system relations.
        !           236: A separate stand-alone program
        !           237: called "sysmod" must be used
        !           238: to modify the system relations to
        !           239: their optimal structure.
        !           240: .sh
        !           241: Sorting a relation stored as a heap.
        !           242: .PS
        !           243: A heap can be sorted and duplicates
        !           244: removed using the modify command:
        !           245: .br
        !           246: 
        !           247: modify relname to heapsort on domain1, domain2 ...
        !           248: .br
        !           249: 
        !           250: The relation is sorted on the specified domains
        !           251: and left as a heap.
        !           252: This is faster than modifying the relation to isam.
        !           253: 
        !           254: This is useful when it is
        !           255: desired to have the final output sorted
        !           256: in some particular order.
        !           257: .sh
        !           258: Specifing the occupancy of an isam or hash relation
        !           259: .PS
        !           260: The modify command now accepts user information
        !           261: pertaining to how much room to leave when
        !           262: modifing a relation to isam or hash.
        !           263: The new specifications are:
        !           264: 
        !           265: fillfactor (how much empty space to leave on each page.
        !           266: Defaults are hash:50%, chash:75%, isam:80%, cisam:100%)
        !           267: .br
        !           268: minpages (hash only. Minimum number of primary pages desired.
        !           269: Default is ten pages.)
        !           270: .br
        !           271: maxpages (hash only. Maximum number of primary pages desired.
        !           272: Default is 2**24.)
        !           273: 
        !           274: For example:
        !           275: 
        !           276: modify parts to hash on pnum where fillfactor = 100
        !           277: 
        !           278: modify emp to hash on eno where fillfactor = 50
        !           279: and minpages = 300
        !           280: 
        !           281: .sh
        !           282: COPY allows delimitor specifications.
        !           283: .PS
        !           284: The c0 and d0 options on copy have been extended to
        !           285: allow individual delimitor specification.
        !           286: The general format is dom = c0delim.
        !           287: 
        !           288: For example on a copy "from",
        !           289: pname = c0nl will accept only a nl as a delimitor.
        !           290: 
        !           291: On a copy "into" the construction pname = c0nl is
        !           292: functionally identical to asking for
        !           293: pname = c0, nl = d1.
        !           294: .sh 1
        !           295: Miscellaneous.
        !           296: .PS
        !           297: .dn
        !           298: Concurrency Control.
        !           299: .PS
        !           300: INGRES now has full concurrency control.
        !           301: By default all new data bases will have
        !           302: concurrency control turned on.
        !           303: Existing data bases can be easily upgraded
        !           304: to have concurrency control.
        !           305: Refer to creatdb(unix) for details.
        !           306: .sh
        !           307: Pathname can be changed without recompilation.
        !           308: .PS
        !           309: The INGRES pathname "/mnt/ingres" is no
        !           310: longer a defined constant.
        !           311: Instead INGRES scans the /etc/passwd file
        !           312: and uses the initial working
        !           313: directory of the user "ingres".
        !           314: .sh
        !           315: Restore Expanded.
        !           316: .PS
        !           317: Restore has been improved and expanded to
        !           318: provide recovery from modify, index,
        !           319: create, and destroy commands in addition
        !           320: to append, delete, and replace commands.
        !           321: .sh
        !           322: Sysmod.
        !           323: .PS
        !           324: Since the structure of the system relations
        !           325: is extremely important,
        !           326: we now provide a stand-alone program which
        !           327: modifies the relation, attribute, and indexes
        !           328: relations to their optimal structure.
        !           329: 
        !           330: You are no longer allowed to do this
        !           331: using the modify command.
        !           332: This both prevents the relations from being
        !           333: accidentally modified to a useless structure,
        !           334: and allows INGRES to make certain assumptions
        !           335: which improves performance everywhere.

unix.superglobalmegacorp.com

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