<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://certuvia.com/</loc></url><url><loc>https://certuvia.com/git/</loc></url><url><loc>https://certuvia.com/git/lesson/1.1.1-introducing-yourself-to-git</loc></url><url><loc>https://certuvia.com/git/lesson/1.1.2-your-first-repository</loc></url><url><loc>https://certuvia.com/git/lesson/1.1.3-the-three-areas</loc></url><url><loc>https://certuvia.com/git/lesson/1.1.4-making-your-first-commit</loc></url><url><loc>https://certuvia.com/git/lesson/1.2.1-staging-what-you-mean-to</loc></url><url><loc>https://certuvia.com/git/lesson/1.2.2-the-anatomy-of-a-good-commit-message</loc></url><url><loc>https://certuvia.com/git/lesson/1.2.3-partial-staging-with-hunks</loc></url><url><loc>https://certuvia.com/git/lesson/1.2.4-reading-history-like-a-detective</loc></url><url><loc>https://certuvia.com/git/lesson/1.3.1-creating-your-first-branch</loc></url><url><loc>https://certuvia.com/git/lesson/1.3.2-branches-are-just-pointers</loc></url><url><loc>https://certuvia.com/git/lesson/1.3.3-switching-contexts-mid-work</loc></url><url><loc>https://certuvia.com/git/lesson/1.3.4-branch-naming-as-communication</loc></url><url><loc>https://certuvia.com/git/lesson/1.4.1-i-staged-the-wrong-file</loc></url><url><loc>https://certuvia.com/git/lesson/1.4.2-i-committed-with-a-typo-in-the-message</loc></url><url><loc>https://certuvia.com/git/lesson/1.4.3-i-messed-up-a-file-and-want-the-clean-version</loc></url><url><loc>https://certuvia.com/git/lesson/1.4.4-i-don-t-want-this-commit-at-all</loc></url><url><loc>https://certuvia.com/git/lesson/1.5.1-ssh-why-and-how</loc></url><url><loc>https://certuvia.com/git/lesson/1.5.2-ignoring-what-doesn-t-belong</loc></url><url><loc>https://certuvia.com/git/lesson/1.5.3-your-first-push</loc></url><url><loc>https://certuvia.com/git/lesson/1.5.4-remote-vs-local-what-git-knows</loc></url><url><loc>https://certuvia.com/git/lesson/2.1.1-cloning-and-understanding-what-you-got</loc></url><url><loc>https://certuvia.com/git/lesson/2.1.2-fetch-vs-pull-the-critical-difference</loc></url><url><loc>https://certuvia.com/git/lesson/2.1.3-checking-out-a-remote-branch-to-work-on-it</loc></url><url><loc>https://certuvia.com/git/lesson/2.1.4-keeping-up-with-main</loc></url><url><loc>https://certuvia.com/git/lesson/2.2.1-a-feature-branch-from-start-to-finish</loc></url><url><loc>https://certuvia.com/git/lesson/2.2.2-short-lived-branches-as-a-discipline</loc></url><url><loc>https://certuvia.com/git/lesson/2.2.3-managing-multiple-features-in-parallel</loc></url><url><loc>https://certuvia.com/git/lesson/2.2.4-branch-cleanup-hygiene</loc></url><url><loc>https://certuvia.com/git/lesson/2.3.1-fast-forward-when-it-s-trivially-easy</loc></url><url><loc>https://certuvia.com/git/lesson/2.3.2-three-way-merge-when-branches-truly-diverge</loc></url><url><loc>https://certuvia.com/git/lesson/2.3.3-squash-merge-a-clean-story</loc></url><url><loc>https://certuvia.com/git/lesson/2.3.4-merge-strategies-in-practice</loc></url><url><loc>https://certuvia.com/git/lesson/2.4.1-reading-the-conflict-markers</loc></url><url><loc>https://certuvia.com/git/lesson/2.4.2-resolving-your-first-conflict</loc></url><url><loc>https://certuvia.com/git/lesson/2.4.3-using-a-merge-tool</loc></url><url><loc>https://certuvia.com/git/lesson/2.4.4-conflict-during-rebase</loc></url><url><loc>https://certuvia.com/git/lesson/2.4.5-preventing-conflicts</loc></url><url><loc>https://certuvia.com/git/lesson/2.5.1-opening-a-pr-that-deserves-to-be-merged</loc></url><url><loc>https://certuvia.com/git/lesson/2.5.2-reviewing-code-in-a-pr</loc></url><url><loc>https://certuvia.com/git/lesson/2.5.3-iterating-on-feedback</loc></url><url><loc>https://certuvia.com/git/lesson/2.5.4-the-pr-lifecycle-in-a-protected-branch-workflow</loc></url><url><loc>https://certuvia.com/git/lesson/2.6.1-revert-the-safe-public-undo</loc></url><url><loc>https://certuvia.com/git/lesson/2.6.2-reverting-a-merge-commit</loc></url><url><loc>https://certuvia.com/git/lesson/2.6.3-force-push-when-it-s-allowed-and-when-it-s-not</loc></url><url><loc>https://certuvia.com/git/lesson/2.6.4-the-oops-i-committed-to-main-recovery</loc></url><url><loc>https://certuvia.com/git/lesson/3.1.1-squash-and-fixup-combining-related-commits</loc></url><url><loc>https://certuvia.com/git/lesson/3.1.2-reordering-and-splitting-commits</loc></url><url><loc>https://certuvia.com/git/lesson/3.1.3-editing-commit-messages-deeper-in-history</loc></url><url><loc>https://certuvia.com/git/lesson/3.1.4-the-team-contract-when-not-to-rebase</loc></url><url><loc>https://certuvia.com/git/lesson/3.1.5-rebase-onto-moving-a-branch-to-a-new-base</loc></url><url><loc>https://certuvia.com/git/lesson/3.2.1-cherry-picking-a-fix-to-multiple-branches</loc></url><url><loc>https://certuvia.com/git/lesson/3.2.2-cherry-picking-a-range</loc></url><url><loc>https://certuvia.com/git/lesson/3.2.3-format-patch-sharing-changes-without-a-shared-remote</loc></url><url><loc>https://certuvia.com/git/lesson/3.3.1-git-bisect-binary-search-for-bugs</loc></url><url><loc>https://certuvia.com/git/lesson/3.3.2-automated-bisect</loc></url><url><loc>https://certuvia.com/git/lesson/3.3.3-git-blame-who-wrote-this-and-why</loc></url><url><loc>https://certuvia.com/git/lesson/3.3.4-git-log-as-a-search-engine</loc></url><url><loc>https://certuvia.com/git/lesson/3.4.1-reflog-git-s-black-box-recorder</loc></url><url><loc>https://certuvia.com/git/lesson/3.4.2-recovering-a-deleted-branch</loc></url><url><loc>https://certuvia.com/git/lesson/3.4.3-recovering-from-a-bad-reset-hard</loc></url><url><loc>https://certuvia.com/git/lesson/3.4.4-the-detached-head-escape-plan</loc></url><url><loc>https://certuvia.com/git/lesson/3.4.5-recovering-from-a-botched-rebase</loc></url><url><loc>https://certuvia.com/git/lesson/3.5.1-tags-marking-what-matters</loc></url><url><loc>https://certuvia.com/git/lesson/3.5.2-stash-as-a-workbench</loc></url><url><loc>https://certuvia.com/git/lesson/3.5.3-submodules-composing-repositories</loc></url><url><loc>https://certuvia.com/git/lesson/3.5.4-large-file-storage-lfs</loc></url><url><loc>https://certuvia.com/git/lesson/3.6.1-commit-msg-hook-enforcing-message-format</loc></url><url><loc>https://certuvia.com/git/lesson/3.6.2-pre-commit-hook-preventing-common-mistakes</loc></url><url><loc>https://certuvia.com/git/lesson/3.6.3-gitattributes-line-endings-and-diff-drivers</loc></url><url><loc>https://certuvia.com/git/lesson/3.6.4-git-aliases-for-daily-productivity</loc></url><url><loc>https://certuvia.com/git/lesson/3.6.5-ci-cd-integration-git-as-the-source-of-truth</loc></url><url><loc>https://certuvia.com/postgres/</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.1.1-your-first-connection</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.1.2-exploring-the-catalog</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.1.3-creating-your-first-database</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.1.4-roles-and-the-superuser</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.1-create-table-and-data-types</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.2-constraints-that-protect-your-data</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.3-foreign-keys-and-referential-integrity</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.4-altering-tables-safely</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.5-schema-organisation</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.2.6-enum-types-generated-columns-numeric-precision</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.3.1-select-from-where</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.3.2-sorting-and-limiting</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.3.3-pattern-matching-and-text</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.3.4-working-with-dates-and-times</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.3.5-citext-collations-accent-insensitive-search</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.4.1-inner-join</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.4.2-left-join-and-finding-gaps</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.4.3-self-joins-and-complex-joins</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.4.4-subqueries-and-in-exists</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.5.1-count-sum-avg-min-max</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.5.2-group-by-and-having</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.5.3-insert-update-delete-returning</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.5.4-transactions-in-practice</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.5.5-copy-merge-keyset-pagination</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.6.1-jsonb-flexible-payloads-without-losing-structure</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.6.2-arrays-native-multi-valued-columns</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.6.3-range-types-and-exclusion-constraints</loc></url><url><loc>https://certuvia.com/postgres/lesson/1.6.4-full-text-search</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.1.1-cluster-layout</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.1.2-postgresql-conf-deep-dive</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.1.3-pg-hba-conf-who-can-connect</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.1.4-reload-vs-restart</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.1.5-service-management-and-pg-ctl</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.2.1-roles-users-and-role-inheritance</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.2.2-grant-revoke-and-default-privileges</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.2.3-row-level-security</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.2.4-ssl-and-encrypted-connections</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.2.5-extensions-and-pgaudit</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.3.1-logical-backups-with-pg-dump</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.3.2-pg-restore-strategies</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.3.3-pg-dumpall-and-globals</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.3.4-physical-backups-with-pg-basebackup</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.3.5-point-in-time-recovery-pitr</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.1-the-statistics-collector</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.2-long-running-queries-and-locks</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.3-table-and-index-bloat</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.4-autovacuum-behaviour-and-tuning</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.5-log-analysis-without-pgbadger</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.6-pg-buffercache-cache-introspection</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.4.7-pg-stat-io-i-o-breakdown</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.5.1-wal-and-the-replication-protocol</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.5.2-setting-up-streaming-replication</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.5.3-replication-slots</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.5.4-monitoring-replication-lag</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.5.5-logical-replication</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.6.1-vacuum-and-analyze-mechanics</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.6.2-vacuum-full-and-cluster</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.6.3-connection-pooling-with-pgbouncer</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.6.4-major-version-upgrade-with-pg-upgrade</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.6.5-maintenance-scheduling-and-runbooks</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.1-listen-notify-pub-sub-messaging</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.2-advisory-locks-application-level-mutexes</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.3-skip-locked-building-a-job-queue</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.4-event-triggers-ddl-auditing</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.5-foreign-data-wrappers-querying-external-sources</loc></url><url><loc>https://certuvia.com/postgres/lesson/2.7.6-stored-functions-procedures-in-pl-pgsql</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.1.1-explain-and-explain-analyze</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.1.2-planner-statistics-and-bad-estimates</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.1.3-join-strategies</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.1.4-planner-configuration-and-query-rewrites</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.1.5-parallel-query-and-jit</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.1-b-tree-internals-and-multi-column-indexes</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.2-partial-and-expression-indexes</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.3-covering-indexes-and-index-only-scans</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.4-gin-for-full-text-search-and-jsonb</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.5-brin-hash-and-choosing-the-right-index-type</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.6-index-maintenance-and-bloat</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.2.7-bloom-indexes-multi-column-equality-at-minimal-cost</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.1-ctes-and-recursive-queries</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.2-window-functions</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.3-lateral-joins</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.4-jsonb-documents-in-postgresql</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.5-arrays-and-range-types</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.6-writeable-ctes-atomic-data-pipelines</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.3.7-window-frames-crosstab-advanced-analytics</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.4.1-table-partitioning</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.4.2-toast-and-large-column-storage</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.4.3-hot-updates-and-fillfactor</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.4.4-materialized-views-and-refresh-strategies</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.4.5-tablespaces-and-storage-placement</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.5.1-memory-tuning</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.5.2-wal-and-checkpoint-tuning</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.5.3-parallel-query-tuning</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.5.4-connections-timeouts-and-deadlocks</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.6.1-pg-stat-statements-finding-the-real-slow-queries</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.6.2-lock-contention-diagnosis</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.6.3-auto-explain-and-slow-query-forensics</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.6.4-pgbouncer-tuning-and-connection-storms</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.6.5-disaster-scenario-labs</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.7.1-fuzzy-search-toolkit-pg-trgm-unaccent-fuzzystrmatch</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.7.2-geospatial-queries-without-postgis</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.7.3-custom-aggregates-ordered-set-hypothetical-set-aggregates</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.7.4-table-defragmentation-vacuum-full-s-real-lock-cost</loc></url><url><loc>https://certuvia.com/postgres/lesson/3.7.5-logical-decoding-change-data-capture</loc></url><url><loc>https://certuvia.com/blog/</loc></url><url><loc>https://certuvia.com/blog/postgres-19/</loc></url></urlset>
