SQL

Hier werden die Besonderheiten des SQL-Feature-Providers beschrieben.

NameDefaultBeschreibungTypSeit
connectionInfo
object
v2.0
sourcePathDefaults
Defaults für die Pfad-Ausdrücke in sourcePath, für Details siehe SQL-Pfad-Defaults.
object
v2.0
queryGeneration
Einstellungen für die Query-Generierung, für Details siehe Query-Generierung.
object
v2.0

Connection Info

Das Connection-Info-Objekt für SQL-Datenbanken wird wie folgt beschrieben:

NameDefaultBeschreibungTypSeit
dialect
PGIS
PGIS für PostgreSQL/PostGIS, GPKG für GeoPackage oder SQLite/SpatiaLite.
string
v2.0
database
Der Name der Datenbank. Für GPKG ein relativer Pfad zu einer Ressource mit Typ features * im Store (neu).
string
v2.0
host
Der Datenbankhost. Wird ein anderer Port als der Standardport verwendet, ist dieser durch einen Doppelpunkt getrennt anzugeben, z.B. db:30305. Nicht relevant für GPKG.
string
v2.0
user
Der Benutzername. Nicht relevant für GPKG.
string
v2.0
password
Das mit base64 kodierte Passwort des Benutzers. Nicht relevant für GPKG.
string
v2.0
schemas
[]
Die Namen der Schemas in der Datenbank, auf die zugegriffen werden soll. Nicht relevant für GPKG.
array
v2.0
pool
see below
Einstellungen für den Connection-Pool, für Details siehe Pool.
object
v2.0
driverOptions
{}
Einstellungen für den JDBC-Treiber. Für PGIS werden gssEncMode, ssl, sslmode, sslcert, sslkey, sslrootcert und sslpassword durchgereicht. Für Details siehe die Dokumentation des Treibersopen in new window.
object
v2.0
maxConnections
dynamic
Deprecated Siehe pool.maxConnections.
number
v2.0
maxThreads
dynamic
Deprecated Siehe maxConnections.
number
v2.0
minConnections
maxConnections
Deprecated Siehe pool.minConnections.
number
v2.0
initFailFast
true
Deprecated Siehe pool.initFailFast.
boolean
v2.0
computeNumberMatched
true
Deprecated Siehe Query-Generierung.
boolean
v2.0
pathSyntax
Deprecated Siehe SQL-Pfad-Defaults.
object
v2.0

Pool

Einstellungen für den Connection-Pool.

NameDefaultBeschreibungTypSeit
maxConnections
dynamic
Steuert die maximale Anzahl von Verbindungen zur Datenbank. Der Default-Wert ist abhängig von der Anzahl der Prozessorkerne und der Anzahl der Joins in der Types-Konfiguration. Der Default-Wert wird für optimale Performanz unter Last empfohlen. Der kleinstmögliche Wert ist ebenfalls von der Anzahl der Joins abhängig, kleinere Werte werden zurückgewiesen.
number
v2.0
minConnections
maxConnections
Steuert die minimale Anzahl von Verbindungen zur Datenbank, die jederzeit offen gehalten werden.
number
v2.0
initFailFast
true
Steuert, ob das Starten des Feature-Providers abgebrochen werden soll, wenn der Aufbau der ersten Connection länger dauert. Hat keinen Effekt bei minConnections: 0. Diese Option sollte in der Regel nur auf Entwicklungssystemen deaktiviert werden.
boolean
v2.0
idleTimeout
10m
Die maximale Zeit die eine Connection unbeschäftigt im Pool verbleibt. Bezieht sich nur auf Connections über der minConnections Grenze. Ein Wert von 0 bedeutet, dass unbeschäftigte Connections niemals aus dem Pool entfernt werden.
string
v2.0
shared
false
Wenn shared für mehrere Provider mit übereinstimmenden host, database und user aktiviert ist, teilen sich diese Provider einen Connection-Pool. Wenn eine der anderen Optionen in connectionInfo nicht übereinstimmt, schlägt der Start des Providers fehl.
boolean
v2.0

SQL-Pfad-Defaults

Defaults für die Pfad-Ausdrücke in sourcePath, siehe auch SQL-Pfad-Syntax.

NameDefaultBeschreibungTypSeit
primaryKey
id
Die Standard-Spalte die zur Analyse von Joins verwendet wird, wenn keine abweichende Spalte in sourcePath gesetzt wird.
string
v2.0
defaultPrimaryKey
id
Deprecated Siehe primaryKey.
string
v2.0
sortKey
id
Die Standard-Spalte die zur Sortierung von Reihen verwendet wird, wenn keine abweichende Spalte in sourcePath gesetzt wird. Es wird empfohlen, dass als Datentyp eine Ganzzahl verwendet wird.
string
v2.0
defaultSortKey
id
Deprecated Siehe sortKey.
string
v2.0
schema
null
Das Standard-Schema das Tabellen ohne Präfix in sourcePath vorangestellt wird.
string
v3.3

SQL-Pfad-Syntax

In dem Beispiel oben sind die wesentlichen Elemente der Pfadsyntax in der Datenbank bereits erkennbar. Der Pfad zu einer Eigenschaft ergibt sich immer als Konkatenation der relativen Pfadangaben (sourcePath), jeweils ergänzt um ein "/". Die Eigenschaft sourcePath ist beim ersten Objekt, das die Objektart repräsentiert, angegeben und bei allen untergeordneten Schemaobjekten, außer es handelt sich um einen festen Wert.

Auf der obersten Ebene entspricht der Pfad einem "/" gefolgt vom Namen der Tabelle zur Objektart. Jede Zeile in der Tabelle entsprich einem Feature. Beispiel: /kita.

Bei nachgeordneten relativen Pfadangaben zu einem Feld in derselben Tabelle wird einfach der Spaltenname angeben, z.B. name. Daraus ergibt sich der Gesamtpfad /kita/name.

Ein Join wird nach dem Muster [id=fk]tab angegeben, wobei id der Primärschlüssel der Tabelle aus dem übergeordneten Schemaobjekt ist, fk der Fremdschlüssel aus der über den Join angebundenen Tabelle und tab der Tabellenname. Siehe [oid=kita_fk]plaetze in dem Beispiel oben. Bei der Verwendung einer Zwischentabelle werden zwei dieser Joins aneinandergehängt, z.B. [id=fka]a_2_b/[fkb=id]tab_b.

Auf einer Tabelle (der Haupttabelle eines Features oder einer über Join-angebundenen Tabelle) kann zusätzlich ein einschränkender Filter durch den Zusatz {filter=ausdruck} angegeben werden, wobei ausdruck das Selektionskriertium in CQL2 Textopen in new window spezifiziert. Für Details siehe das Modul Filter / CQL, welches die Implementierung bereitstellt, aber nicht aktiviert sein muss.

Wenn z.B. in dem Beispiel oben nur Angaben zur Belegungskapazität selektiert werden sollen, deren Wert nicht NULL und gleichzeitig größer als Null ist, dann könnte man schreiben: [oid=kita_fk]plaetze{filter=anzahl IS NOT NULL AND anzahl> 0}.

Ein vom Standard abweichender sortKey kann durch den Zusatz von {sortKey=Spaltenname} nach dem Tabellennamen angegeben werden. Wenn dieser nicht eindeutig ist, kann {sortKeyUnique=false} hinzugefügt werden.

Ein vom Standard abweichender primaryKey kann durch den Zusatz von {primaryKey=Spaltenname} nach dem Tabellennamen angegeben werden.

Query-Generierung

Optionen für die Query-Generierung in queryGeneration.

NameDefaultBeschreibungTypSeit
computeNumberMatched
true
Steuert, ob bei Abfragen die Anzahl der selektierten Features berechnet und in numberMatched zurückgegeben werden soll oder ob dies aus Performancegründen unterbleiben soll. Bei großen Datensätzen empfiehlt es sich in der Regel, die Option zu deaktivieren.
boolean
v2.0