open-insight/SYSPROG/STPROCINS/IDX_SETS.EQU.txt
2024-03-25 15:17:34 -07:00

148 lines
8.1 KiB
Plaintext

Compile Insert IDX_SETS.EQU
!
* $INSERT record for R/BASIC callers of the IDX_SETS function
*
*
* IDX_SETS is a function that performs union, intersection and difference
* of delimited sets of row data. The function has 9 calling modes that
* allow it to create, add data to, intersect, union, differnce, extract
* data from, and clear sets. The parameters for each calling mode are
* specific to the calling mode, but basically the use of IDX_SETS is:
*
* return_parm = IDX_SETS(mode, parm_1,...parm_n)
!
* MrC 06-20-16 Added header guards
* rjc 05-21-09 Copied to SYSPROCS
!
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _IDX_SETS_EQU_
#define _IDX_SETS_EQU_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
!
* Calling modes
!
EQU INIT_SET$ TO 1 ;* Initializes a set returning a
* set_handle (a positive integer) or
* an error code (a negative integer).
* Parameters are: the data, the
* "specification", and the map
EQU ADD_TO_SET$ TO 2 ;* Adds data to an existing set. Returns
* 0 on successful completion or an
* an error code (a negative integer).
* Parameters are: the data, and the
* handle of the set to add to
EQU UNION_SETS$ TO 3 ;* Performs the union of two sets
* returning a set_handle (a positive
* integer) or an error code (a
* negative integer).
* Parameters are: the 1st handle, the
* 2nd handle, and the union spec
EQU INTERSECT_SETS$ TO 4 ;* Performs the intersection of two
* sets returning a set_handle (a
* positive integer) or an error code
* (a negative integer).
* Parameters are: the 1st handle, the
* 2nd handle, and the intersect spec
EQU DIFFERENCE_SETS$ TO 5 ;* Performs the difference of two
* sets returning a set_handle (a
* positive integer) or an error code
* (a negative integer).
* Parameters are: the 1st handle, the
* 2nd handle, and the intersect spec
EQU RESET_EXTRACT$ TO 6 ;* Sets the extract parameters (restart
* the extract or set for desc. extract)
* Parameters are: the handle, and
* a reset specification
EQU EXTRACT_FROM_SET$ TO 7 ;* Extracts row data from a set. Returns
* 1 if more data exists in the set, 0
* if all data has been extracted, or
* an error code (a negative integer).
* Parameter is: the handle. A 3rd
* variable is passed, it is filled
* with data by Set_Lib on "no error".
EQU SET_INFO$ TO 8 ;* Reports data about a set.
* Parameter is: the handle. Set_Lib
* returns the count of all rows in the
* 3rd variable, the count of index
* rows in the 4th variable and the
* MODEFLAGS variable from the handle
* in the 5th variable.
EQU CLEAR_SET$ TO 9 ;* Clears a set_handle from the library's
* storage. Returns 0 always.
!
* Error codes
!
EQU ERR_BAD_MODE$ TO -1 ;* Returned if calling mode is not a
* positive integer >= 1 and <= 9.
EQU ERR_OUT_OF_HANDLES$ TO -2 ;* IDX_SETS supports up to 7 active sets.
* This error is returned when modes
* 1, 3, or 4 cannot create a necessary
* set. Clear and recall.
EQU ERR_BAD_MAP$ TO -3 ;* Returned by mode 1 when the map to a
* set is bad.
EQU ERR_BAD_SET_STR$ TO -4 ;* Returned by modes 1 and 2 when the
* set data passed is corrupt (missing
* a trailing record mark).
EQU ERR_FILE_IO$ TO -5 ;* Returned by modes 1, 2, 3, 4, and 5
* if an error occurs in support file
* I/O. There is nothing you can do
* at this point but blow away the set
* and start again. The most common
* sources for this error are: 1) the
* user's sort path has become corrupt;
* and 2) the user is out of disk space.
EQU ERR_OUT_OF_MEM$ TO -6 ;* Returned by modes 1, 3, 4 or 5 when
* not enough memory for operation.
EQU ERR_BAD_HANDLE$ TO -7 ;* Returned by modes 2, 3, 4, 5 when a
* handle parameter is no good.
EQU ERR_BAD_SRC_HANDLE$ TO -8 ;* Returned by modes 2, 3, 4, 5 when a
* source handle parameter is no good.
EQU ERR_BAD_TGT_HANDLE$ TO -9 ;* Returned by modes 2, 3, 4, 5 when a
* target handle parameter is no good.
EQU ERR_NULL_SET$ TO -20 ;* Currently not returned by Set_Lib but
* used by "wrap around" R/Basic code to
* indicate that the set is NULL (no rows
* match requested criteria).
EQU IS_MORE_ROWS$ TO 1 ;* Returned by extract when more rows
* exist in the set than can be returned
* by the current call to IDX_SETS.
EQU IS_NO_MORE_ROWS$ TO 0 ;* Returned by extract when all rows
* have been returned from the set.
EQU IS_ERR_NONE$ TO 0
!
* Intialization specification equates
!
EQU IS_NULL_SPEC$ TO 0 ;* No user specification
EQU IS_SORTED$ TO 2 ;* User set string is already sorted
EQU IS_UNIQUE$ TO 4 ;* All set items in the user string are
* unique
!
* Extraction specification equates
!
EQU IS_DESC_EXT$ TO 1
EQU IS_RESET_EXT$ TO 2
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////