Closed fsteggink closed 2 years ago
Mijn view lp2
is niet helemaal zoals het zou moeten. Het veld waarde
komt in deze definitie ook terecht in de kolommen. Dat is natuurlijk niet de bedoeling. Dat is makkelijk te fixen door ligplaats.*
te bevragen.
Gelijk maar een fix doorgevoerd, omdat ik er nu last van heb. V.w.b. performance zal dit waarschijnlijk niet beter of slechter zijn dan een functie. In onderstaand execution plan is te zien dat nlx_bag_info maar 1x wordt doorgelopen.
Query plan:
Nested Loop (cost=0.00..1306.94 rows=4912 width=396)
Join Filter: ((lig.begindatumtijdvakgeldigheid <= (nlx_bag_info.waarde)::timestamp without time zone) AND ((lig.einddatumtijdvakgeldigheid IS NULL) OR (lig.einddatumtijdvakgeldigheid >= (nlx_bag_info.waarde)::timestamp without time zone)))
-> Seq Scan on nlx_bag_info (cost=0.00..1.11 rows=1 width=32)
Filter: ((sleutel)::text = 'extract_datum'::text)
-> Seq Scan on ligplaats lig (cost=0.00..867.38 rows=17538 width=396)
Filter: (aanduidingrecordinactief IS FALSE)
(6 rows)
De index op sleutel
in nlx_bag_info
wordt niet aangeroepen Ook niet als ik de tekst 'extract_datum'
cast naar varchar. Waarschijnlijk omdat er slechts 9 rijen in de tabel zitten.
Inderdaad gereproduceerd, in standaard schema bagactueel
werkt de query hieronder al niet:
Gebruik van het public schema wordt niet ondersteunt (#316), gebruikers moeten daarom het search_path
configuren, e.g.:
ALTER ROLE <username>
IN DATABASE <database>
SET search_path TO <schema>, public;
Gebruik van het public schema wordt niet ondersteunt (#316), gebruikers moeten daarom het
search_path
configuren, e.g.:ALTER ROLE <username> IN DATABASE <database> SET search_path TO <schema>, public;
Dat maakt het gebruik van de NLExtract database een stuk minder portable. Bij gebruik van een view heb je dat probleem niet.
Als je een van de
_actueel
of_actueelbestaand
views probeert te benaderen, waarbij je search_path niet is ingesteld (dus oppublic
) staat of op iets anders waarbij het BAG v2-schema niet in het search_path staat, dan krijg je de volgende foutmelding:Zodra je het BAG v2-schema aan het search_path toevoegt, werkt deze functie wel en daarmee ook de
_actueel
en_actueelbestaand
views.Is het niet robuuster om ipv deze functie een
with
-statement te gebruiken in de views? Of een view die de extract_datum ophaalt?Vb:
Evt.
timestamp with time zone
gebruiken zoals voorgesteld in issue #340.