[ https://issues.apache.org/jira/browse/DERBY-1520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12483260 ]
A B commented on DERBY-1520: ---------------------------- Hi Laura, Thank you for addressing my first set of comments--the second version of the new page is looking a lot better. I know it's late, but I finally got around to doing a more extensive review of the latest changes (which you've already committed) and I have the following suggestions. Is it possible for you to address these in a follow-up patch? ---- #1) -- Suggested change: Reword There are two types of table expressions in Derby: to be There are two kinds of diagnostic table expressions in Derby: -- Why? First, the word "type" often has specific connotations in the context of SQL, so I think replacing it with "kind" is a cosmetic but still useful change. More importantly, the original makes it sound like there are only two kinds of table expressions in *all* of Derby and that both are related to diagnostics--but of course that's not true. There are a variety of table expressions available to a user and most of them have nothing to do with the built-in diagnostic expressions. The latter are simply specialized table expressions with specific built-in functionality. #2) -- Suggested change: Reword The diagnostic table functions require one or more arguments. to be Diagnostic table functions can accept zero or more arguments, depending on the table function in question. -- Why? It is not true that all table functions require one or more arguments. For example, as the document itself says later on, the following is valid: SELECT * FROM TABLE (SYSCS_DIAG.ERROR_LOG_READER()) AS T1 As we can see, the table function in this example does not have an argument. So it is incorrect to say that one or more arguments is required. Instead, the unifying characteristic of the table functions is that they all *can* accept one or more arguments--but it's not a requirement. #3) -- Suggested change: Reword The following table shows the types and names of the Derby table expressions. to be The following table shows the types and names of the Derby diagnostic table expressions. i.e. add the word "diagnostic". -- Why? I think it's clearer to include the word "diagnostic" for reasons similar to those outlined in #1 above: namely, the sentence as it is currently makes it sound like we're talking about *all* of Derby, but that is not the case. #4) -- Suggested change: Reword Table 1. System table expressions provided by Derby to be Table 1. System diagnostic table expressions provided by Derby i.e. add the word "diagnostic". -- Why? Without the word "diagnostic" it sounds like we're listing *all* of the available system table expressions in Derby, but that's not true. There are other non-diagnostic system table expressions--esp. system tables in the SYS schema--that are not listed here (and should not be). #5) -- Suggested change: I wonder if it would be better to either separate the table into two different tables (one for "tables", one for "table functions") or else make the table two-columned as follows: Diagnostic table expression | Table or Table Function ---------------------------------------------------------- SYSCS_DIAG.ERROR_MESSAGES | table ... ... SYSCS_DIAG.ERROR_LOG_READER | table function -- Why? I realize it's a bit picky, but with the two-column table as it is right now, I think it gives the impression that there is some kind of correlation between the "table" on the left and the "table function" on the right (esp. given the way the names line up), but that's not actually the case. #6) -- Suggested change: Reword To use SYSCS_DIAG.ERROR_LOG_READER diagnostic table function, you specify the name of the function in the table function syntax. to be To access the SYSCS_DIAG.ERROR_LOG_READER diagnostic table function, you must use the SQL table function syntax. -- Why? Just personal opinion: the phrasing of "specify the name of the function in the table function syntax" sounds awkward to me. Note that a similar change would be good for all other table functions, as well... #7) -- Suggested change: Reword To specify a log file name, the file name must ... to be You can specify a log file name by passing it in as an argument to the SYSCS_DIAG.ERROR_LOG_READER table function. When specifying such an argument, the file name must ... -- Why? I think it is a bit clearer to explicitly mention that the log file name is an (optional) argument to the table function... #8) -- Suggested change: Delete Use single quotation marks when you specify the log file name to ensure that the argument is read as string, otherwise a syntax error is thrown. -- Why? String literals are just one example of "an expression whose data type maps to Java string." String literals always have single quotation marks around them. In the example you give you are specifying a string literal, so the single quotations are required. But if you were to specify some other, non-literal expression, then the single quotes may not be necessary. Thus it is not correct to say that the quotation marks are required. I thought about rewriting the sentence so that it only applies to string literals, but in the end my feeling is that the use of single quotes is implied for string literals--and is emphasized by the example itself. So I don't think we really need to include this sentence. #9) -- Suggested change: Reword You can use the SYSCS_DIAG.SPACE_TABLE diagnostics table function to determine if space might be saved by compressing the table and indexes. to be You can use this diagnostic table function to determine if space might be saved by compressing the table and indexes. i.e. change "SYSCS_DIAG.SPACE_TABLE diagnostics" with "this diagnostic". -- Why? Just being picky: the above sentence is the second of three sentences in a row that explicitly spell out "SYSCS_DIAG.SPACE_TABLE". That seems rather awkward to me.. #10) -- Suggested change: Same as #6 above, except for SYSCS_DIAG.SPACE_TABLE. #11) -- Suggested change: Same as #8 above, except for SYSCS_DIAG.SPACE_TABLE. #12) -- Suggested change: Remove the first example in the "SYSCS_DIAG.SAPCE_TABLE" section. -- Why? The example is not entirely correct (it throws an error) and does not show anything more than the second example does. I think it's best to delete the first example, describe the possible arguments (see #13 below), mention that they (the arguments) must be expressions whose data types map to Java strings, and *then* give the second example. #13) -- Suggested change: Instead of the first example in the "SYSCS_DIAG.SPACE_TABLE" section I think it would be good to mention that there there are two variations of this method: 1. Single argument: the argument specifies the table name. 2. Two arguments: first argument specifies the schema name, the second argument specifies the table name. Then, after mentioning that the arguments must be expressions whose data types map to Java strings, we should give an example of each (one of those examples would be the second example that is already there). -- Why? It is not currently clear that this table function can be called with one *or* two arguments. There is one sentence saying "If you do not specify the schemaName, the current schema is is used", but I don't think that in itself is clear enough. I think this needs to be made explicit. #14) -- Suggested change: Reword You can use the SYSCS_DIAG.STATEMENT_DURATION diagnostic table function to get a indication of where the bottlenecks are in the JDBC code for an application. to be You can also use this diagnostic table function to get an indication of where the bottlenecks are in the JDBC code for an application. i.e.: a - add the word "also" after "you can". b - replace SYSCS_DIAG.STATEMENT_DURATION with "this" (similar to #9 above) c - change "a" to "an" before the word "indication". -- Why? Fix some typos, plus argument for #9 above. #15) -- Suggested change: Same as #6 above, except for SYSCS_DIAG.STATEMENT_DURATION. #16) -- Suggested change: Same as #7 above, except for SYSCS_DIAG.STATEMENT_DURATION. #17) -- Suggested change: Same as #8 above, except for SYSCS_DIAG.STATEMENT_DURATION. ---- Thanks a ton for your patience and thoroughness here... > Document new SYSCS_DIAG tables > ------------------------------ > > Key: DERBY-1520 > URL: https://issues.apache.org/jira/browse/DERBY-1520 > Project: Derby > Issue Type: Sub-task > Components: Documentation > Affects Versions: 10.2.1.6 > Reporter: Stan Bradbury > Assigned To: Laura Stewart > Attachments: derby1520_1.diff, derby1520_2.diff, derby1520_3.diff, > derby1520_4.diff, refderby.ditamap, rrefsyscsdiagtables.html, > rrefsyscsdiagtables.html > > > See comments for DERBY-571 for initial documentation discussion. The new > tables (mapped to the old Diagnostic VTIs) are: > The old style syntax will remain in place for 10.2, but become deprecated. > The tables to be implemented in this change are: > SYSCS_DIAG.LOCK_TABLE replaces org.apache.derby.diag.LockTable > SYSCS_DIAG.STATEMENT_CACHE replaces org.apache.derby.diag.StatementCache > SYSCS_DIAG.TRANSACTION_TABLE replaces org.apache.derby.diag.TransactionTable > SYSCS_DIAG.ERROR_MESSAGES replaces org.apache.derby.diag.ErrorMessages > The information about the tables can be found in the javadoc for the class > listed above. > That can be found at: > http://db.apache.org/derby/javadoc/engine/ > click on the org.apache.derby.diag link in the Packages table, then select > each class, e.g. LockTable to see the info. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.