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|10627 = "@^@^@^@^@@^@^@^@^@@^@^@^@^@@^@^@^@^@"
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 72 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_calc1 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.