1 
  2 09/21/87  linus
  3 Known errors in the current release of linus.
  4 #         Associated TR's
  5 Description
  6 
  7 125  phx20848
  8 Yes, it is true that it outputs a new page character after the report.
  9 This was intentionally done this way.  Now that hardcopy terminals
 10 aren't used much, it seems that perhaps this wasn't the best choice,
 11 and a better way to do this would be to surpress the FF.
 12 
 13 123  phx20420
 14 The linus display request prints a confusing error message under
 15 certain circumstances.  If a user types "display -of foo" and it finds
 16 data, and then after inputting a different selection expression that
 17 doesn't find data types "display -of foo", there will be two error
 18 messages printed.  The first states that there was no data found, and
 19 the second states that the partial report can be found in [pd]>foo.
 20 This is because linus_display.pl1 is testing
 21 report_control_info.no_of_formatted_pages > 0 and printing the error
 22 message based on that.
 23 
 24 122  phx20325
 25 When using the report writer, a case arises where grouped columns are
 26 incorrectly outlined.  This happens when subtotals are being emitted
 27 because the value of a major grouping column has changed.  Minor
 28 grouping columns up to the column being watched should not be outlined
 29 when this happens.  The bug was that the code was still outlining when
 30 the current value and the next value were the same.  The fix is to
 31 change it not to attempt outlining after the major column changes.
 32 
 33 121  phx18362
 34 The problem is that LINUS is messing up when it passes in the relation
 35 names in the -range clause (when it call dsl_$retrieve).  For the test
 36 case in the TR, the following argument list was received by
 37 dsl_$retrieve.  Ignore args 4 and 5, they are output and so haven't
 38 been initialized yet.  The problem is that arg 3 should have been
 39 "A1", or else "A1" should have been put in the -range clause.
 40 
 41  ARG   1 @ 503|0 = 1
 42  ARG   2 @ 433|65706 = "-range (e1 .V.) (e2 A1) -select  e1.nom_etudiant
 43                           e2.nom_etudiant  -where e1.annee = e2.annee"
 44  ARG   3 @ 433|102 = 1
 45  ARG   4 @ 433|103 = "^@^@^@^@^@@^@^@^@^@@^@^@^@^@@^@^@^@^@"
 46  ARG   5 @ 433|106(27) = "@^@^@^@^@@^@^@^@^@@^@^@^@^@@^@^@^@^@"
 47  ARG   6 @ 746|202 = 0
 48 
 49 120  phx19416
 50 The info segment for the set_mode request incorrectly shows the linus
 51 prompt as "?".
 52 
 53 116  phx19041
 54 Entry #43 talks about fixing the sum and avg builtins to accept
 55 character data-type arguments that can be converted to numbers, as a
 56 result of the very old TR 9259.  The person didn't bother fixing the
 57 max and min bultins, as the new phx19041 points out.  I checked out all
 58 of the other builtins and the rest work fine.  Whilst doing the
 59 checkout I tried feeding the sum builtin a character argument that
 60 couldn't be converted to a number, and ran into strange behavours.  The
 61 mainline linus module handles the conversion condition and tried to put
 62 the user back to command level by calling its internal procedure,
 63 "tidy_up".  tidy_up fails and leaves the user up one level, at
 64 command level.  When the user types "release" tidy up is entered
 65 again with more strange behaviour resulting.
 66 
 67 112  phx18619 phx18620
 68 The invoke request is incompatible with LINUS subsystem exec_coms.
 69 This limitation needs to be documented in the LINUS manual.
 70 
 71 111  phx18618
 72 The linus store request was re-written to correct many outstanding TRs.
 73 Some improvements were made to it as part of this process.  One such
 74 improvement was that it counts the number of characters provided for a
 75 column, and checks this against the column width as defined in the
 76 submodel.  If too many characters were provided, it prints a warning
 77 message something like:
 78  Warning: The 15 characters just received will be truncated to 5.
 79 
 80 TR18618 complains that the modify request doesn't also do this.  The
 81 solution is to upgrade the modify request to provide this feature.
 82 
 83 110  phx18602
 84 The sub_error_ handler in linus.pl1 does a non-local goto after
 85 verifying that it was mrds that signalled the condition.  It should
 86 also verify that it was a linus module that called dsl_.  This should
 87 be done by setting a flag in the lcb before each dsl_ call, and
 88 resetting the flag after the call is complete.  The sub_error_ handler
 89 should check the flag and call continue_to_signal_ if it isn't on.  If
 90 it is on, it should turn the flag off before doing the non-local goto.
 91 There appears to be about 49 calls to dsl_ scattered through 22 linus
 92 modules.
 93 
 94 108  phx15909
 95 The same temp table can't be used twice in a lila select experssion.
 96 This is because in linus_lila_get_token, the second time the relation
 97 is looked for it is found in linus_rel_table.  Since it is in the
 98 rel_table, linus assumes it is a MRDS perm.  rel.  The fix is to add a
 99 bit to rel_table that says the relation was orignally a temp relation.
100 A select like the following will fail.
101      select * from a:temp_table b:temp_table
102      where a.one = b.one & a.two = 5 & b.two = 6
103 
104 106  phx17746
105 When a user has a select that looks like
106  select name from employee where city =
107  {select city from employee where state = "ca"
108  differ
109  select city from employee where state = "az"}
110  it gets detected as an invalid statement at the "differ" token.  The
111 parser thinks the only valid thing at that point is "}", and that's why
112 it gives the error when it hits "differ".  Investigation is required to
113 determine if the parser is correct, or if this should be a valid
114 statement.
115 
116 104  phx16087
117 When iteration is turned off and the user has entered a modify request
118 like "modify (salary+salary) -brief", it works fine.  When the user
119 types "modify (salary + salary) -brief", the -brief isn't detected.
120 This is because the code that tries to combine "(salary + salary)" into
121 one argument isn't working correctly.
122 
123 092  phx15155
124 The formatting_options.gi should point the reader to sfo.info for a
125 detailed description of each formatting option, and point the reader to
126 lsfo.info for a brief description of each formatting option.
127 
128 091  phx14897
129 All of the calls to assign_ in dsl_ and mrds_call were changed to
130 assign_round_ so that values like "45.647" stored into a domain of
131 fixed dec (7,2) were converted to 45.65 instead of 45.64.  None of the
132 assign_ entries in linus were changed to assign_round_, making the
133 conversion rules of these two co-operating systems different.  All of
134 the assign_ calls have to be examined and changed to assign_round_ if
135 appropriate.
136 
137 083  phx15052 phx20596
138 The NOT operator doesn't work to negate a parenthesized experssion in
139 the selection expression.  It gives no error either and seems to be
140 simply ignored.
141 
142 075
143 (EXL only) If the command line contains a macro path or the -rq string
144 contains an invoke request, and if prompting is on, 2 prompts are
145 printed upon reaching request level.
146 
147 010
148 The following is a list of static variables used in linus that should be
149 removed so that linus may be recursively invoked:
150 
151 linus.pl1 recursed
152 
153 linus_builtin_.pl1 caound_calc set_fn_real_flaf data_calc(1 2 3 4)
154 
155 linus_lila_get_token.pl1 debug_switch
156 
157 linus_modify.pl1 debug_switch
158 
159 linus_retrieve.pl1 ANOTHER_PTR debug_switch
160 
161 linus_store.pl1 buff_len in_buf_ptr
162 
163 009
164 While the print request apparently will print all of large strings,
165 create_list and write and report apparently don't.  This problem was
166 reported to be by Mary Ward, after encountering some difficulty with her
167 requirements database.