Stenogram Sejmu · 2026-06-18

Paweł Kowal

Kadencja 10 · posiedzenie 60 · wypowiedź 101

Profil posła

Brak głosu imiennego z tego dnia, który potwierdzałby klub mówcy.

Pełna wypowiedź

10. kadencja, 60. posiedzenie, 2. dzień (18-06-2026) 18. punkt porządku dziennego: Sprawozdanie Komisji Spraw Zagranicznych o komisyjnym projekcie uchwały w sprawie uczczenia 35. rocznicy podpisania Traktatu między Rzecząpospolitą Polską a Republiką Federalną Niemiec o dobrym sąsiedztwie i przyjaznej współpracy (druki nr 2713 i 2714). Poseł Sprawozdawca Paweł Kowal: Panie Marszałku! Wysoki Sejmie! To zaszczyt prezentować sprawozdanie komisji z wczorajszych prac nad uchwałą, która dotyczy 35. rocznicy podpisania traktatu, który miał dla Polski historyczne znaczenie. Kiedy cofamy się do lat 60., do pierwszych tekstów wybitnego Polaka Zbigniewa Brzezińskiego, widzimy połączenie dwóch kwestii: przełamania żelaznej kurtyny i zjednoczenia Niemiec. Kiedy śledzimy myśl polityczną ˝Solidarności˝ i polskich ruchów niezależnych, widzimy, jak dojrzewała zgoda na zjednoczenie Niemiec wraz z pragnieniem wolności dla państw środkowoeuropejskich i rozpadu sowieckiego systemu władzy. Kiedy wracamy do orędzia biskupów z 1965 r., które zostało wspomniane w uchwale, widzimy w nim nie tylko akt religijny, ale także element tej strategicznej myśli, która widziała synergicznie kluczowe procesy w Europie opanowanej do połowy przez komunizm. Właśnie w tym duchu pracowaliśmy nad uchwałą, pokazując jej strategiczne znaczenie i to, że sam fakt zawarcia traktatu i wola układania stosunków z sąsiadem, z którym mieliśmy i mamy długą, ale trudną historię, był sygnałem, że Polska odzyskała wolność, że Polska jest niepodległa. W tym duchu nie tylko dyskutowaliśmy o wydarzeniach historycznych, ale też staraliśmy się zobaczyć ten traktat jako dokument żywy. Uchwała zawiera to wyraźne wskazanie. Ten traktat jest dokumentem, który wciąż podlega realizacji. Dostrzegamy trudne kwestie w relacjach polsko-niemieckich. Przecież to Wysoka Izba podejmowała w tej sprawie uchwały w 2004 r., a później w 2022 r., wskazując na odpowiedzialność strony niemieckiej za wszystkie polityczne, prawne i finansowe skutki II wojny światowej. Traktat był również jednym z etapów, które pozwalały niepodległemu państwu polskiemu w imię swojej suwerenności domagać się odszkodowań, reparacji wspomnianych w dokumencie z 2004 r., a przyjętych zdecydowaną większością przez Wysoki Sejm. Zatem uchwała Sejmu, którą podejmujemy z okazji rocznicy, jest też kolejną uchwałą pokazującą naszą wolę budowania relacji polsko-niemieckich, nasze zrozumienie strategicznego znaczenia tych relacji, ale jednocześnie wolę tej Izby, by wspierać rząd, ten i następne rządy, w domaganiu się zamknięcia, jeśli chodzi o wszelkie negatywne konsekwencje II wojny światowej w odniesieniu do wszystkich dziedzin życia. Z tego punktu widzenia część dyskusji, która odbyła się wczoraj podczas posiedzenia komisji, dla mnie osobiście, panie marszałku, Wysoka Izbo, mówię to otwarcie, była gorsząca. Doskonale pamiętam, nie było to dawno, kiedy z tej trybuny w imieniu klubu Koalicji Obywatelskiej deklarowałem, że jesteśmy gotowi w uchwale do tego przeznaczonej domagać się reparacji, dlatego że Polska jako państwo niepodległe ma prawo liczyć swoje straty i domagać się wszelkich odszkodowań. W świetle wczorajszej dyskusji podczas posiedzenia komisji godzi się przypomnieć, że ówczesna większość kierowana przez Prawo i Sprawiedliwość zdecydowała się zrezygnować z pojęcia: reparacje, a następnie wprowadziła Rzeczpospolitą na ścieżkę szachrowania, celowego mieszania rozmaitych kategorii prawnych po to, żeby tak naprawdę nie było wiadomo, o co chodzi. W tle było coś, co absolutnie nie służy polskim interesom. W tle było antyniemieckie fiksum-dyrdum połączone z jednoczesną niechęcią do poważnego, prawnego zajmowania się skutkami II wojny światowej. Przypominam to nie z obowiązku kronikarza. Mówię tylko o zmarnowanej szansie, kiedy zaproponowaliśmy, by wspólnie, w synergii narodowej wystąpić w tej samej sprawie. Wspominam to także dlatego, że wówczas ministrem spraw zagranicznych był pan prof. Rau, który tutaj siedzi i nigdy tej sprawy do końca nie wyjaśnił, więc nigdy się nie dowiedzieliśmy, skąd się brała ta gra wokół uchwały z 2022 r. Korzystam więc z tej okazji i zwracam się z prośbą o to, by w pełni wyjaśnić, na czym ta gra wówczas polegała. Panie i Panowie Posłowie! Można by dzisiejsze relacje polsko-niemieckie ująć za pomocą obrazka, który widzę, kiedy wychodzę ze swojego rzeszowskiego domu. Tuż obok, dosłownie kilkadziesiąt metrów od mojego domu, przez długi czas w hotelu mieszkali żołnierze Bundeswehry, żołnierze, którzy bronią polskiego nieba. Są oczywiście wśród mieszkańców Nowego Miasta w Rzeszowie tacy, którzy spotykają tych żołnierzy i dziwią się, że dzisiaj są w takiej roli. Ale przecież są szczęśliwi. Nie chodzi tylko o Wysoką Izbę, o głosy polityków. Ci realni żołnierze dają poczucie bezpieczeństwa Polakom, którzy czują się zagrożeni dzisiejszym rosyjskim imperializmem. Ci żołnierze są jasnym sygnałem skutków tamtego traktatu podpisanego z polskiej strony przez Jana Krzysztofa Bieleckiego jako premiera i Krzysztofa Skubiszewskiego jako ministra spraw zagranicznych. Jeśli ktoś ma takie wątpliwości, jakie wczoraj były podnoszone podczas posiedzenia komisji, jeśli ktoś nie rozumie, na czym polega strategiczne znaczenie relacji polsko-niemieckich w odniesieniu do naszego bezpieczeństwa narodowego, to może oczywiście udać się w tej sprawie na debatę intelektualną na uniwersytet, ale może też po prostu przyjechać do Rzeszowa, na Nowe Miasto i pogadać o tym z moimi sąsiadami. Oni mu to jasno i niedwuznacznie wytłumaczą. Wtedy sprawa, na czym polega strategiczne znaczenie relacji polsko-niemieckich, natychmiast stanie się absolutnie jasna i klarowna. W tej krótkiej wizycie będzie też zawarta odpowiedź na to, dlaczego dzisiaj zajmujemy się 35-leciem podpisania traktatu między Rzecząpospolitą Polską a Republiką Federalną Niemiec. Panie i Panowie! Podsumowując ten fragment dyskusji, trzeba powiedzieć tak: nasze oczekiwania wobec rozliczeń związanych z napaścią III Rzeszy, Rzeszy Niemieckiej, na Polskę i skutkami II wojny światowej, które do dzisiaj nie zostały przezwyciężone, są oczywiste. Mówi o tym każdy polski polityk. Budowanie wśród poważnej części polskiej klasy politycznej pozornego sporu wokół tego tylko po to, by zyskać poklask na antyniemieckim fiksum-dyrdum, nie ma żadnego sensu. My w tej sprawie możemy znaleźć wspólny język. Ponieważ na tym polegają moje obowiązki sprawozdawcy wobec pana marszałka i wobec Wysokiej Izby, to uprzejmie informuję, że w sprawie tej uchwały byliśmy gotowi pracować wspólnie, przyjmować niektóre poprawki i poważnie dyskutować. Uprzejmie także informuję, bo to jest mój obowiązek sprawozdawcy, że w tym wypadku nie znaleźliśmy w opozycji poważnego partnera, który chciałby zrozumieć, o czym mówimy, po co to robimy i dlaczego odnosimy się do naszych sąsiadów, z którymi jesteśmy połączeni w ramach NATO i Unii Europejskiej, a nie po prostu skorzystać z okazji, żeby robić dodatkową hecę. Tego nie chcieliśmy. Przedstawiamy zatem panu marszałkowi i Wysokiej Izbie projekt uchwały o traktacie, który widzimy jako traktat żywy. Tak, to jest oczywiste, że ten traktat, który jest bazowym dokumentem relacji polsko-niemieckich, odwołuje się do rok wcześniej podpisanego traktatu granicznego i jest częścią procesu, od którego zacząłem to wystąpienie. Odwołuje się także do tego podstawowego faktu, że nie mamy do czynienia z dokumentem historycznym, o czym już mówiłem, ale z dokumentem, który wciąż domaga się wypełniania i realizacji, także jeżeli chodzi o prawa Polaków w Niemczech, prawa do języka i do własności. Wszystkie te sprawy są przedmiotem troski Wysokiej Izby i niejednokrotnie znajdowało to wyraz zarówno w działaniach posłów wszystkich klubów, jak i w aktywności na forum tej Izby. Są problemy, ale dzisiaj, w obliczu zagrożenia imperializmem rosyjskim i tego, że Polska codziennie jest poddawana ogromnym atakom hybrydowym, najważniejsze jest to, że nasza ojczyzna, inaczej niż w latach 30., nie jest osamotniona. Ma sojuszników, a wśród tych sojuszników są także Niemcy - ba, są jednym z głównych sojuszników w ramach Unii Europejskiej i NATO. Niemcy, do czego dał podstawę ten traktat, popierały to, żebyśmy byli częścią Zachodu... (Poseł Dariusz Matecki: Ale my jesteśmy częścią Zachodu...) ...żebyśmy w obliczu zagrożenia nie byli sami. Mamy prawo dzisiaj, jako posłowie na Sejm Rzeczypospolitej, podkreślić ten fakt i zaznaczyć to, że w obliczu ogromnych zagrożeń, przed którymi przecież stoimy od kilku lat, Niemcy są po naszej stronie, a my jesteśmy po stronie Niemiec. (Oklaski) Te podstawowe fakty muszą znajdować odzwierciedlenie w naszym strategicznym myśleniu, a osoby takie jak prof. Rau i inni członkowie naszej komisji stoją dzisiaj przed wyborem, czy bliżej im do tego, o czym ja mówię, czy do tego, o czym mówi poseł Matecki. Tak, przed takim wyborem stoicie i wobec takich dylematów was stawiam. Zastanówcie się jeszcze, jak będziecie nad tym głosowali. Dyskutujcie poważnie o strategii Rzeczypospolitej. Tu nie ma... (Poseł Dorota Arciszewska-Mielewczyk: Ta uchwała to kompromitacja.) Pani poseł musi mieć pretensje do posłów ze swojego klubu i panią także wzywam do tego... (Gwar na sali, dzwonek) (Poseł Dorota Arciszewska-Mielewczyk: Kompromitacja.) (Poseł Dariusz Matecki: Z banderyzmu się tłumacz.) Wicemarszałek Piotr Zgorzelski: Proszę nie przeszkadzać. Poseł Sprawozdawca Paweł Kowal: Pani poseł musi mieć pretensje do swojego klubu o to, jak zachowywał się w tych sprawach w poprzedniej kadencji. Panie i Panowie! Jest jeszcze czas na refleksję, dyskusję oraz poprawki i jest jeszcze czas na myślenie strategiczne w kategoriach interesu państwa, interesu Rzeczypospolitej, a nie antyniemieckiego fiksum-dyrdum. Dziękuję bardzo. (Oklaski) Przebieg posiedzenia

Otwórz zachowany oryginał · Źródło urzędowe

Dowód treści wypowiedzi

Dowód kolejności na liście dnia

Kontekst w stenogramie

  1. Wcześniej · wypowiedź 99 Fryderyk Sylwester Kapinos 10. kadencja, 60. posiedzenie, 2. dzień (18-06-2026) 12. punkt porządku dziennego: Informacja bieżąca. Poseł Fryderyk Sylwester Kapinos (tekst niewygłoszony): Pytania Panie Ministrze! Czy ministerstwo uważa za właściwe, że miliardy złotych
  2. Wcześniej · wypowiedź 100 Dorota Marek 10. kadencja, 60. posiedzenie, 2. dzień (18-06-2026) 12. punkt porządku dziennego: Informacja bieżąca. Poseł Dorota Marek (tekst niewygłoszony): Pytania Transformacja energetyczna i programy realizowane przez ministerstwo oraz fundusze ochr
  3. Później · wypowiedź 102 Zbigniew Rau 10. kadencja, 60. posiedzenie, 2. dzień (18-06-2026) 18. punkt porządku dziennego: Sprawozdanie Komisji Spraw Zagranicznych o komisyjnym projekcie uchwały w sprawie uczczenia 35. rocznicy podpisania Traktatu między Rzecząpospolitą Polską a
  4. Później · wypowiedź 103 Marek Krząkała 10. kadencja, 60. posiedzenie, 2. dzień (18-06-2026) 18. punkt porządku dziennego: Sprawozdanie Komisji Spraw Zagranicznych o komisyjnym projekcie uchwały w sprawie uczczenia 35. rocznicy podpisania Traktatu między Rzecząpospolitą Polską a
1. (2.35ms; exec 2.31 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, d…
2. (0.96ms; exec 0.95 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (0.67ms; exec 0.65 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6242 ORDER BY ordinal
4. (0.85ms; exec 0.83 + fetch 0.02; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (1.04ms; exec 1.01 + fetch 0.03; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (0.79ms; exec 0.78 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (0.53ms; exec 0.52 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6240 ORDER BY ordinal
8. (0.82ms; exec 0.81 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (0.48ms; exec 0.47 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6241 ORDER BY ordinal
11. (0.88ms; exec 0.87 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (0.71ms; exec 0.7 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6243 ORDER BY ordinal
14. (1.28ms; exec 1.27 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (0.98ms; exec 0.96 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
16. (2.01ms; exec 2 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6244 ORDER BY ordinal
17. (3.15ms; exec 3.13 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (2.35ms; exec 2.31 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 16241 LIMIT 1
2. (0.96ms; exec 0.95 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17048 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
3. (0.67ms; exec 0.65 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6242 ORDER BY ordinal
4. (0.85ms; exec 0.83 + fetch 0.02; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcript_day_statements dayStatement JOIN sejm_statements statement ON statement.object_id = dayStatement.statement_id WHERE dayStatement.day_id = 16139 AND dayStatement.day_revision_id = 15745 AND dayStatement.ordinal BETWEEN 99 AND 103 AND statement.object_id <> 16241 ORDER BY dayStatement.ordinal
5. (1.04ms; exec 1.01 + fetch 0.03; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 16139 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 99) LIMIT 1
6. (0.79ms; exec 0.78 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17046 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
7. (0.53ms; exec 0.52 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6240 ORDER BY ordinal
8. (0.82ms; exec 0.81 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 16139 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 100) LIMIT 1
9. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17047 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
10. (0.48ms; exec 0.47 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6241 ORDER BY ordinal
11. (0.88ms; exec 0.87 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 16139 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 102) LIMIT 1
12. (0.71ms; exec 0.7 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17049 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
13. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6243 ORDER BY ordinal
14. (1.28ms; exec 1.27 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 16139 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 103) LIMIT 1
15. (0.98ms; exec 0.96 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17050 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
16. (2.01ms; exec 2 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6244 ORDER BY ordinal
17. (3.15ms; exec 3.13 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 60 AND individual.mp_number = 178 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-06-18' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
Top slow:
3.15ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
2.35ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
2.01ms SELECT source_text FROM text_segments WHERE extraction_id = 6244 ORDER BY ordinal
toggle
3.15ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 60 AND individual.mp_number = 178 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-06-18' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
2.35ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 16241 LIMIT 1
2.01ms SELECT source_text FROM text_segments WHERE extraction_id = 6244 ORDER BY ordinal
N+1 candidates:
5× (4.11ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (4.36ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (4.02ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (4.11ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = ? AND run.state = ? ORDER BY CASE extraction.quality_state WHEN ? THEN ? WHEN ? THEN ? ELSE ? END, run.finished_at DESC, extraction.id DESC LIMIT ?
5× (4.36ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (4.02ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = ? AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = ? AND document.document_kind = ? AND document.source_document_key = CONCAT(?, ?) LIMIT ?
PHP: 25.1ms | App: 25ms | DB: 18.8ms (17, rows: 19) [exec: 18.6ms, fetch: 0.3ms] | View: 0.5ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.49ms) /app/templates/speeches/show.php
/app/public/index.php
/app/vendor/autoload.php
/app/vendor/composer/autoload_real.php
/app/vendor/composer/platform_check.php
/app/vendor/composer/ClassLoader.php
/app/vendor/composer/autoload_static.php
/app/vendor/symfony/deprecation-contracts/function.php
/app/vendor/symfony/polyfill-php83/bootstrap.php
/app/lib/PFrame.php
/app/config/credentials/local.php
/app/src/Http/PublicResponseCache.php
/app/src/Http/AuthRoutes.php
/app/src/Http/ReviewDecisionRoutes.php
/app/src/Http/TopicDecisionRoutes.php
/app/src/Http/WatchRoutes.php
/app/src/Http/SpeechController.php
/app/src/Overview/SpeechReadModel.php
/app/src/Text/TextSearch.php
/app/templates/layout.php