Stenogram Sejmu · 2026-06-19

Wioletta Maria Kulpa

Kadencja 10 · posiedzenie 60 · wypowiedź 64

Profil posła

Klub podany w głosowaniu imiennym tego posła w tym samym dniu i posiedzeniu: PiS · dowód głosu. Nie jest to pełna historia członkostwa.

Pełna wypowiedź

10. kadencja, 60. posiedzenie, 3. dzień (19-06-2026) 26. punkt porządku dziennego: Pierwsze czytanie poselskiego projektu ustawy o zmianie ustawy - Kodeks pracy (druk nr 2623). Poseł Wioletta Maria Kulpa: Panie Marszałku! Wysoka Izbo! Zacznę od pierwszego wystąpienia pani Barbary Bartuś, która wypowiadała się w imieniu Klubu Parlamentarnego Prawo i Sprawiedliwość. Oczywiście trudno nie zgodzić się z głównymi tezami: feminatywy nie są głównym problemem rynku pracy. Jest tutaj młodzież na sali, którą pozdrawiam bardzo serdecznie. Mam nadzieję, że mi przynajmniej przyznacie rację, bo tak naprawdę problemy rynku pracy są zdecydowanie inne, nie chodzi tu o to, jak będziemy formułować ogłoszenie, czy będzie tam forma żeńska czy męska. Trzeba rzeczywiście prawo upraszczać, ale nie powinno mieć to charakteru tylko i wyłącznie pozornego, a tak robi to właśnie opcja, która w tej chwili rządzi, koalicja 13 grudnia. Feminatywy oczywiście nie powinny stanowić celu prawa pracy, to powinien być przede wszystkim krok w stronę racjonalnego uproszczenia prawa pracy. Powinniśmy iść w tę stronę, nie powinniśmy tworzyć sztucznych zapisów ustawowych, które zdecydowanie nie pomagają pracodawcom. Natomiast nie mogę zgodzić się z tezami wypowiadanymi przez panią Jolantę Niezgodzką, reprezentującą klub Koalicji Obywatelskiej, która twierdzi, że chodzi tu o ograniczenie stereotypów. O jakim my ograniczeniu stereotypów rozmawiamy? Czy kiedy pracodawca chce zatrudnić spawacza, to zatrudni panią na to stanowisko? Czy wiecie, panie, o tym, jak trudna jest to praca, jak trudny jest to zawód? Czy zdajecie sobie sprawę, jakie są tu konsekwencje, nawet w kontekście zdrowia i życia kobiet? Jak wy sobie wyobrażacie, drogie panie, wykonywanie takich obowiązków przez kobietę? Również to, co powiedziała pani poseł Jolanta Niezgodzka, iż kwestia tego feminatywu ogranicza się wyłącznie do publikacji, że później, po rekrutacji pracodawcy nie umieszczają tego w regulaminach wewnętrznych, w przepisach, jest kompletną bzdurą. Wyobraźcie sobie państwo, że ja wielokrotnie spotykam się z tabliczkami na drzwiach pokojów... Zresztą nie trzeba daleko szukać, panie marszałku. Tu też mamy ministry, marszałkinie. Nie trzeba też iść daleko. Można przejść się po wszystkich ministerstwach i zobaczyć, jak wyglądają te tabliczki. To jest coś, co jest niezgodne również z Konstytucją Rzeczypospolitej Polskiej, bo nie ma takich stanowisk. Mimo tego to wprowadzono. Jest tak również w przedsiębiorstwach. Jeśli bowiem ktoś zatrudnia osobę, która będzie wykonywała teraz obowiązki, o których zawsze było pisane... Załóżmy, że jest to pielęgniarz i musi być teraz forma żeńska. Nie wiem, jak to będzie wyglądało. Albo np. dyrektorka zamiast dyrektora. Zawsze była forma: dyrektor niezależnie od tego, czy to była kobieta czy mężczyzna. Forma czy to w szkole, czy to w innych instytucjach zawsze brzmiała: dyrektor. A więc chyba nie do końca panie odzwierciedlają rzeczywistość, w której żyją, prezentując takie stanowiska. Chyba najbardziej dobitnie pokazuje to pani poseł Jolanta Niezgodzka, która twierdzi, że przez odwrócenie zapisów wcześniej przyjętej ustawy o zmianie Kodeksu pracy w zakresie neutralności stanowisk chcemy wrócić do czasów PRL-u. Po prostu oniemiałam. Dla mnie ostatnie wydarzenia, czyli VIP roomy, to jest właśnie powrót do czasów PRL-u, a nie odwrócenie tego przepisu, co do którego zresztą słusznie pan poseł Witold Tumanowicz powiedział, że jest po prostu głupi i trzeba go cofnąć. Jaki sens jest tkwić w głupocie i dalej w to brnąć i tego bronić? Nawet trudno tego bronić. A więc absolutnie nie mam wrażenia, żebyśmy wracali do czasów PRL-u. Myślę, że wiele PRL-owskich elementów jest wprowadzanych do przepisów prawa, a nawet na podstawie zachowań wielu polityków Koalicji Obywatelskiej można byłoby ich porównać do dygnitarzy PRL-owskich. Ten akurat zapis, który chcemy cofnąć, nie ma nic wspólnego z PRL. Pani poseł Barbara Oliwiecka reprezentująca klub Centrum podnosiła temat polskich firm i mówiła, że tak naprawdę one już przyjęły te przepisy i z tym się godzą. Nie wiem, z kim pani rozmawia i o jakich aspektach, ale sądzę, że z głupimi przepisami, tak jak powiedziałam, trudno się zgadzać. Pani poseł mówi, że my jako wnioskodawcy wątpimy w pracodawców i w to, że sobie poradzą. Tak, oni sobie poradzili, bo z każdym głupim przepisem trzeba sobie jakoś poradzić. Muszą żyć w rzeczywistości, którą stworzył im parlament, a przynajmniej ta większość parlamentarna, która głosowała za tą zmianą przepisu. Trudno jednak w tym wszystkim się odnaleźć. Natomiast jednego zarówno pani poseł Niezgodzka, jak i pani poseł Oliwiecka nie dostrzegają. To nie jest tylko kwestia formułowania ogłoszenia i stosowania również form neutralnych, z którymi często się teraz spotykamy. Jak przedstawiano nam na posiedzeniu komisji kontroli państwa, w której kontrolujemy organy typu Państwowa Inspekcja Pracy, Państwowa Inspekcja Pracy ma teraz w swoich zadaniach analizowanie ogłoszeń o pracę. Czyli czym ma się teraz zajmować Państwowa Inspekcja Pracy? Ma zajmować się przestrzeganiem przepisów prawa dotyczących bezpieczeństwa i higieny pracy oraz mobbingiem w miejscach pracy, czy ma analizować ogłoszenia rekrutacyjne i nakładać na pracodawców, uwaga, 5 tys. kary? Czy tym ma się zajmować Państwowa Inspekcja Pracy? Czy na to powinny iść nasze pieniądze, nasze podatki? Na zajmowanie się głupimi przepisami, które wprowadziła większość tej koalicji w Sejmie, i nazywanie czegoś, co nie powinno być tak nazywane, inną formą feminatywu? Pani poseł Niezgodzka i poseł Oliwiecka nie są w stanie przymusić danego pracodawcy, żeby na stanowisko spawacza zatrudnił akurat kobietę, a nie mężczyznę. Nie, bo predyspozycje, fizjologia i wszystkie inne uwarunkowania wskazują, że na tym stanowisku trudno jest zatrudnić kobietę, bo byłaby to najzwyczajniej w świecie krzywda dla niej i dla jej zdrowia. Trzeba w tym wszystkim widzieć logikę, a nie brnąć w głupotę. Szczerze mówiąc, jestem pod wrażeniem wypowiedzi pana posła Marcina Józefaciuka. Cieszę się z tego głosu rozsądku i za niego dziękuję. Trzeba przyznać, że nawet gdy się głosuje za jakimiś przepisami, a później przyznaje się do tego, że nie do końca miało się rację, to jest to dobre wyjście z sytuacji. W rozmowie z pracodawcami, z przedsiębiorcami dostrzega się pewne błędy. Pani poseł Bożena Lisowska mówiła o tym, że te przepisy zaskoczą pracodawców, bo w projekcie, który złożyliśmy, jest za krótkie vacatio legis. Niech pani poseł Bożena Lisowska popatrzy, jakie było vacatio legis, jeśli chodzi o przepisy, za którymi zapewne głosowała i które weszły w życie. To mogło być zaskoczenie dla pracodawców, bo weszły w życie w Wigilię ubiegłego roku. To dopiero mogło być zaskoczenie dla przedsiębiorcy. Odpowiadając na pytanie pana posła Józefaciuka, powiem, że jesteśmy gotowi do podjęcia dalszych prac w komisji i do ewentualnych dyskusji. Jesteśmy gotowi rozszerzać te zapisy, by rzeczywiście gwarantowały w sposób rozsądny pewne działania, które będą mogły tę, w cudzysłowie, neutralność stanowisk zabezpieczyć. Tu jednak nie chodzi o kwestie językowe. Trudno się nie zgodzić z wypowiedziami zarówno pani poseł Schmidt, jak i pani poseł Bartuś. To oczywiście były wypowiedzi, które popierają ten projekt zmian ustawowych. Zgodzę się też oczywiście z panem posłem Tumanowiczem, że nie są problemem dla przedsiębiorców w tej chwili zmiany, które chcemy cofnąć, bo to jest jakby naturalne. Problematyczne są zapisy wprowadzone przez poprzednią zmianę ustawową, która weszła w życie, o tym, że ogłoszenia powinny być jasne, zwięzłe i czytelne. Powinny jasno precyzować, kogo oczekują, jakiego pracownika. Zarówno dla jednej, jak i drugiej strony powinno to być dobre rozwiązanie. Pracownik powinien wiedzieć, na jakie stanowisko ma aplikować, czy jego kwalifikacje są odpowiednie, a pracodawca na tyle zwięźle powinien to formułować, żeby nie płacić horrendalnych pieniędzy za ogłoszenia. Tak, jak najbardziej, zgadzam się z tym. To tyle. Jeszcze pan poseł. Dziękuję bardzo, panie marszałku. (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ź 62 Barbara Bartuś 10. kadencja, 60. posiedzenie, 3. dzień (19-06-2026) 26. punkt porządku dziennego: Pierwsze czytanie poselskiego projektu ustawy o zmianie ustawy - Kodeks pracy (druk nr 2623). Poseł Barbara Bartuś: Bardzo dziękuję. Panie Marszałku! W zasad
  2. Wcześniej · wypowiedź 63 Witold Tumanowicz 10. kadencja, 60. posiedzenie, 3. dzień (19-06-2026) 26. punkt porządku dziennego: Pierwsze czytanie poselskiego projektu ustawy o zmianie ustawy - Kodeks pracy (druk nr 2623). Poseł Witold Tumanowicz: Panie Marszałku! Wysoka Izbo! Chciałem
  3. Później · wypowiedź 65 Rafał Weber 10. kadencja, 60. posiedzenie, 3. dzień (19-06-2026) 26. punkt porządku dziennego: Pierwsze czytanie poselskiego projektu ustawy o zmianie ustawy - Kodeks pracy (druk nr 2623). Poseł Rafał Weber: Dziękuję bardzo. Panie Marszałku! Wysoka Izb
  4. Później · wypowiedź 66 Lidia Czechak 10. kadencja, 60. posiedzenie, 3. dzień (19-06-2026) 26. punkt porządku dziennego: Pierwsze czytanie poselskiego projektu ustawy o zmianie ustawy - Kodeks pracy (druk nr 2623). Poseł Lidia Czechak (tekst niewygłoszony): Pytania Panie Marsza
1. (3.48ms; exec 3.42 + fetch 0.06; 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. (1.68ms; exec 1.66 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (1.04ms; exec 1.01 + fetch 0.03; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6753 ORDER BY ordinal
4. (1.4ms; exec 1.36 + fetch 0.04; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (1.27ms; exec 1.25 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (1.72ms; exec 1.69 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (1.25ms; exec 1.24 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6751 ORDER BY ordinal
8. (1.61ms; exec 1.6 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (0.97ms; exec 0.95 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (0.81ms; exec 0.74 + fetch 0.06; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6752 ORDER BY ordinal
11. (1.22ms; exec 1.2 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (1.08ms; exec 1.06 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (0.85ms; exec 0.8 + fetch 0.05; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6754 ORDER BY ordinal
14. (1.17ms; exec 1.16 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (0.91ms; exec 0.9 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
16. (0.6ms; exec 0.59 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6755 ORDER BY ordinal
17. (14.69ms; exec 14.61 + fetch 0.08; rows 17) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (3.48ms; exec 3.42 + fetch 0.06; 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 = 23103 LIMIT 1
2. (1.68ms; exec 1.66 + fetch 0.03; 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 = 25397 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. (1.04ms; exec 1.01 + fetch 0.03; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6753 ORDER BY ordinal
4. (1.4ms; exec 1.36 + fetch 0.04; 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 = 23038 AND dayStatement.day_revision_id = 22731 AND dayStatement.ordinal BETWEEN 62 AND 66 AND statement.object_id <> 23103 ORDER BY dayStatement.ordinal
5. (1.27ms; exec 1.25 + fetch 0.02; 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 = 23038 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 62) LIMIT 1
6. (1.72ms; exec 1.69 + fetch 0.03; 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 = 25338 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. (1.25ms; exec 1.24 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6751 ORDER BY ordinal
8. (1.61ms; exec 1.6 + 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 = 23038 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 63) LIMIT 1
9. (0.97ms; exec 0.95 + fetch 0.02; 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 = 25339 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.81ms; exec 0.74 + fetch 0.06; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6752 ORDER BY ordinal
11. (1.22ms; exec 1.2 + fetch 0.02; 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 = 23038 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 65) LIMIT 1
12. (1.08ms; exec 1.06 + fetch 0.02; 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 = 25398 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.85ms; exec 0.8 + fetch 0.05; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6754 ORDER BY ordinal
14. (1.17ms; exec 1.16 + 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 = 23038 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 66) LIMIT 1
15. (0.91ms; exec 0.9 + 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 = 25399 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. (0.6ms; exec 0.59 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 6755 ORDER BY ordinal
17. (14.69ms; exec 14.61 + fetch 0.08; rows 17) 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 = 476 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-06-19' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
Top slow:
14.69ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
3.48ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
1.72ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run …
toggle
14.69ms 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 = 476 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-06-19' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
3.48ms 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 = 23103 LIMIT 1
1.72ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 25338 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
N+1 candidates:
5× (6.36ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (4.55ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.27ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (6.36ms) 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.55ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.27ms) 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: 43.7ms | App: 43.5ms | DB: 35.8ms (17, rows: 36) [exec: 35.2ms, fetch: 0.5ms] | View: 0.5ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.45ms) /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