%Library.AbstractForeignTable
abstract class %Library.AbstractForeignTable
Method Inventory
Parameters
parameter COLUMNS;
String of header names for FILE foreign tables to specify column order in the header
parameter COLUMNSTYPES;
Types specified in the COLUMNS clause; included for parity with LOAD DATA
parameter NUMCOLUMNS;
Number of columns in the table (IRIS side)
parameter PREDICATEPUSHDOWN;
Does this FT support predicated pushdown; taken from SERVER
parameter PROJECTEDBY;
Name of the class that projects this foreign table
parameter QUERY;
Optional user-specified query to send to the external DB
parameter SERVER;
Name of the server this foreign table belongs to
parameter TABLE;
Name of the table as it exists in the external data source
parameter USING;
USING clause at CREATE time
parameter VALUES;
Comma-delimited string of column names as they exist in the external table
Methods
classmethod serializeConfig() as %DynamicObject
Serialize a foreign table class into a %DynamicObject that contains interesting parameters on that class for the purposes
of handing table information to a foreign data wrapper. This table config can be handed to the validateTableConfig()
method of any %SQL.FDW.Wrapper.BaseWrapper subclass in order to validate that it contains sufficient table configuration
information for the wrapper to fulfill its intended purpose. Although parameters are defined on the class in all
upper case as a matter of convention, these parameters are serialized in the config object using camel case, with
the first word lower cased. For example, "table" or "columnsTypes". An example of a serialized table config (in this
case, a CSV foreign table) that may be returned is:
{
"columns": ["header1", "header2", "header3"],
"columnsTypes": ["INT", "INT", "VARCHAR(50)"],
"table": "file.csv",
"using": {"from":{"file":{"header": false}}},
"values": ["header1", "header3"]
}