Licensing options for this format begin with FME Professional Edition.
Ingres Spatial is a geometric library built into Ingres Relational Database Management System (RDBMS) since version 10S (10.1) that provides geometry and Spatial Reference System (SRS) handling. The Ingres Spatial reader/writer module enables FME to read geometric Ingres data as well as underlying attribute data stored in Ingres.
The Ingres Spatial reader/writer is specifically designed to handle the geometric and SRS portions of the data. When reading attribute-only tables from Ingres, the Ingres Non-Spatial reader/writer should be used instead. The Ingres Spatial reader/writer uses the Ingres JDBC driver.
This chapter assumes familiarity with Ingres Spatial and Ingres, the attribute and geometry types supported, and its indexing mechanisms.
For more information, please see the Ingres home at
and the Ingres Spatial Documentation at
The performance of this format is dependent on the amount of memory allocated to the Java Virtual Machine (JVM). The following environment variables allow you to specify memory available to Java Plugins:
- FME_JVM_MIN_HEAP_SIZE: Initial heap size for initializing the JVM.
FME32_JVM_MIN_HEAP_SIZE: Same as FME_JVM_MIN_HEAP_SIZE, but applies to 32-bit FME Desktop on Windows, and takes precedence over FME_JVM_MIN_HEAP_SIZE.
- FME_JVM_MAX_HEAP_SIZE: Maximum heap size for initializing the JVM.
FME32_JVM_MAX_HEAP_SIZE: Same as FME_JVM_MAX_HEAP_SIZE, but applies to 32-bit FME Desktop on Windows, and takes precedence over FME_JVM_MAX_HEAP_SIZE.
These variables must be set for FME to honor them, and must be multiples of 1024K (for example, 4M and 64M, or 4096K and 32768K).
Note: To pass additional parameters used by FME to the Java Virtual Machine, use the JAVA_TOOL_OPTIONS environment variable.
FME considers an Ingres Spatial dataset to be a database containing a collection of relational tables together with their corresponding geometries. The tables must be defined in the workspace before they can be read.
Arbitrary WHERE clauses and joins are fully supported, as well as an entire arbitrary SQL SELECT statement; however, the user then assumes responsibility for the correctness of the statement or clause including quoting where necessary.
When reading from the Ingres database, each table is considered a feature type in FME and each row of a table at least one feature in FME. In the case of heterogeneous geometry collections, they may become more than one FME feature.
The basic reading process involves opening a connection to the database, querying metadata, and querying data. The data is read using a cursor and rows are fetched to the client machine individually. By default, there is one cursor per input table.
If null geometries are read, they are treated as non-geometry features and the attributes are preserved.
Table and column names are truncated at 256 characters. If duplicate names are produced by truncation, the behavior is undetermined. Please ensure that table names comply with Ingres naming conventions.
Spaces and special characters are permissible in both table and column names. Table and column names are case insensitive and always lowercase.
UNICODE support is enabled either via your databases CHARSET or Unicode char type columns. The client is assumed to have entered data and created tables and columns in the encoding of their operating system.
The user that the client uses to log in with is the schema used for all tables. Specifying schema is not supported.
The Ingres Spatial writer stores both geometry and attributes into an Ingres database.
Note: Attribute case is not preserved, and all names are lowercase.
The Ingres Spatial writer provides the following capabilities:
- Transaction Support: The Ingres Spatial writer provides transaction support that eases the data loading process. Occasionally, a data load operation terminates prematurely due to data difficulties. The transaction support provides a mechanism for reloading corrected data without data loss or duplication.
- Bulk Loading: By default, the Ingres writer uses a bulk loading technique to ensure speedy data loading.