Mercurial > gemma
view cmd/wfs/main.go @ 4002:eb11ada33fa7
Avoid full sequential scans on some tables for every query
Up to PostgreSQL 11, a CTE is always executed to completion, regardless
of whether the result is actually needed for the calling query. A
sub-select is not 'fenced' that way. Makes some database requests of
GeoServer a lot faster.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 18 Jul 2019 17:33:18 +0200 |
parents | 2b6f73c30016 |
children | 349e409fbbb1 |
line wrap: on
line source
// This is Free Software under GNU Affero General Public License v >= 3.0 // without warranty, see README.md and license for details. // // SPDX-License-Identifier: AGPL-3.0-or-later // License-Filename: LICENSES/AGPL-3.0.txt // // Copyright (C) 2018 by via donau // – Österreichische Wasserstraßen-Gesellschaft mbH // Software engineering by Intevation GmbH // // Author(s): // * Sascha L. Teichmann <sascha.teichmann@intevation.de> package main import ( "flag" "log" "gemma.intevation.de/gemma/pkg/wfs" ) func check(err error) { if err != nil { log.Fatalf("error: %v\n", err) } } func main() { var ( dumpCaps = flag.Bool("dump-caps", false, "Dump capabilities document") featureType = flag.String("features", "", "feature to get") sortBy = flag.String("sortby", "", "Sort features by this property") user = flag.String("user", "", "user name") password = flag.String("password", "", "user password") ) flag.Parse() for _, arg := range flag.Args() { caps, err := wfs.GetCapabilities(arg) check(err) if *dumpCaps { dump(caps) } if *featureType == "" { continue } feature := caps.FindFeatureType(*featureType) if feature == nil { log.Fatalf("Unknown feature type '%s'\n", *featureType) } dl, err := wfs.GetFeatures(caps, *featureType, *sortBy) check(err) parseFeatures(*user, *password, dl, feature.DefaultCRS) } }