Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extract_datum() - gebruik timestamp with time zone #340

Open
justb4 opened this issue Jan 3, 2022 · 4 comments
Open

extract_datum() - gebruik timestamp with time zone #340

justb4 opened this issue Jan 3, 2022 · 4 comments

Comments

@justb4
Copy link
Contributor

justb4 commented Jan 3, 2022

(Vraag van extract dump gebruiker die historische selecties maakt).

De functie extract_datum() geeft een timestamp without time zone terug, maar wordt meestal vergeleken met een timestamp with time zone. Is het niet beter en robuuster om extract_datum() dan ook een timestamp with time zone terug te laten geven?

@justb4 justb4 added this to the Versie 1.5.4 milestone Jan 3, 2022
@fsteggink
Copy link
Member

Lijkt me wel, begindatumtijdvakgeldigheid, etc. is ook een timestamp with time zone

@sebastic
Copy link
Contributor

NLExtract zou geen timestamp with time zone moeten gebruiken, zoals het in het verleden ook niet deed (#238).

Mijn setup heeft changes daarvoor.

Strikt genomen zou extract_datum() gecast moet worden naar DATE omdat het geen tijdscomponent heeft.

@fsteggink
Copy link
Member

Als ik issue #238 teruglees, zijn we daar toentertijd niet uitgekomen en zijn er ook geen wijzigingen geweest. Echter, ondertussen zijn we overgeschakeld op de BAG 2.0 en de LV-BAG driver gebruikt wel timestamp with time zone voor deze velden, dus deze keus is voor anderen door ons gemaakt.

Verder klopt het dat de extract datum geen tijd is, maar een datum. Maar hoe bepaal je dan wat er op bijv. 8 januari de actuele stand is, als er wijzigingen zijn met begin-/einddatum (timestamps) die in de loop van 8 januari zijn geregistreerd? Middernacht (00:00:00), midden op de dag (12:00:00), 1 seconde vlak voor middernacht (23:59:59) of iets anders? We zullen hiervoor een keus moeten maken. Bij een vergelijking tussen een date en een timestamp cast PostgreSQL de datum naar het tijdstip 00:00:00, dus middernacht, maar dat hoeft niet de intentie te zijn van de standdatum in de BAG.

@sebastic
Copy link
Contributor

Echter, ondertussen zijn we overgeschakeld op de BAG 2.0 en de LV-BAG driver gebruikt wel timestamp with time zone voor deze velden, dus deze keus is voor anderen door ons gemaakt.

De LVBAG driver in GDAL gebruikt date voor begingeldigheid & eindgeldigheid kolommen, het gebruikt timestamp with time zone voor de tijdstip kolommen (tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv, tijdstipinactieflv, tijdstipnietbaglv).

Door bagv2/etl/sql/finalize-tables.sql worden de kolommen voor bepaalde tabellen aangepast, e.g.:

ALTER TABLE nummeraanduiding ALTER COLUMN begingeldigheid TYPE timestamp without time zone;
ALTER TABLE nummeraanduiding ALTER COLUMN eindgeldigheid TYPE timestamp without time zone;

Deze BAGv1 compat wordt niet gebruikt in mijn setup, het vereist te veel extra disk space, en m.i. zou NLExtract zo dicht mogelijk bij de structuur van de BAG XML moeten zitten, wat de BAGLV driver ook doet.

@justb4 justb4 modified the milestones: Versie 1.5.4, Versie 1.6.0 Jan 9, 2023
@justb4 justb4 modified the milestones: Versie 1.5.5, Versie 1.6.0 Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants