Universe and Unidata subroutine installations
Informer installs subroutines into Universe and Unidata (U2) databases in order to send database queries with the shortest statement length possible. Informer also installs subroutines to initialize the SB+ environment if the database, and the Datasource inside Informer, is SB+ enabled.
What is installed
Informer installs these subroutines in all U2 accounts:
ESC.ALL.V5ESC.AT.V5ESC.V5
Informer installs these subroutines in all U2 accounts that are SB+ enabled:
INFORMER.SB.INITDISPLAYSB.V5SBSETUPSBPLUSINIT(only in Universe)
Informer only installs these subroutines in U2 Datasources. To view their source code, look in the installation directory under node_modules/@entrinsik/i5-ql/lib/i5-uoj/lib/subroutines. On Unidata, Informer installs these subroutines in a DIR type file named INFORMER_BP. On Universe, Informer installs the subroutine source code in a type 19 file named INFORMER_BP, with object code in INFORMER_BP.O.
Installation process
When connecting, Informer verifies that the required subroutines are there. If not, Informer attempts the following. These steps describe what Informer does automatically; they do not need to be run manually unless the account configured inside Informer 5 does not have the proper permissions, outlined in Connection user permissions below.
Universe
Informer checks for the existence of a type 19 file named INFORMER_BP. If the file is not there, Informer creates it:
- In PICK flavor accounts, Informer executes
CREATE.FILE INFORMER_BP 1,1,18 1,1,19 - In IDEAL flavor accounts, Informer executes
CREATE.FILE INFORMER_BP 19
For each subroutine:
- Informer writes the subroutine to
INFORMER_BP - Informer compiles the subroutine with the command
BASIC INFORMER_BP <subroutine-name> - Informer catalogs the subroutine with the command
CATALOG INFORMER_BP <subroutine-name>
Unidata
Informer checks for the existence of a DIR type file named INFORMER_BP. If the file is not there, Informer executes CREATE.FILE DIR INFORMER_BP
For each subroutine:
- Informer writes the subroutine to
INFORMER_BP - Informer compiles the subroutine with the command
BASIC INFORMER_BP <subroutine-name> - Informer catalogs the subroutine with the command
CATALOG INFORMER_BP <subroutine-name> FORCE DIRECT
Connection user permissions
Informer requires these subroutines for certain types of queries. When Informer connects, it attempts to install them. During this process, the connecting U2 user needs permission to create a file, write to that file, and compile and catalog BASIC programs. Once Informer installs these subroutines, the connecting user may be switched back to a user with more restrictive permissions. The minimum permissions are:
Unidata
- Read access to all files in the database account
- Write access to the SAVEDLISTS directory
Universe
- Read access to all DATA files in the database account
- Read/write access to all dictionaries. Informer needs write access because Informer makes heavy use of the
EVALexpression. Universe supports this expression usage by writing temporary ITYPE fields to the dictionary of the file being queried. Note: Informer is not issuing any file writes here; it is Universe's implementation of theEVALkeyword that requires write permissions. - Read/write access to the
&SAVEDLISTS&file.
Differences between Informer 4 and Informer 5
Informer 5 introduced these subroutines as part of the overall query design, whereas Informer 4 only required subroutine installations for SB+ accounts.