<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://articles.9j.nz/tags/aggregation/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/algorithms/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/arithmetic/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-fuzzer-drifts-its-query-grammar/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/cardinality/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/categories/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/cli/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/categories/clickhouse/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/clickhouse/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-flushes-the-query-log-into-a-real-mergetree/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-chooses-what-goes-into-prewhere/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-composes-aggregate-functions-with-suffix-combinators/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-estimates-join-cardinality-from-ndv/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-approximates-topk-with-space-saving/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-fuzzes-itself-with-query-oracles/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-hashes-map-keys-into-buckets/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-keeps-a-column-compressed-until-something-reads-it/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-keeps-aggregate-state-in-an-arena/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-names-a-part-after-its-partition-and-block-range/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-puts-the-time-zone-in-the-type-not-the-value/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-reorders-joins-with-a-query-graph/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-replicates-a-column-with-an-index-instead-of-copying-it/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-searches-join-orders-with-dynamic-programming/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-stores-a-parts-metadata-in-plain-text-files/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-stores-vectors-as-bit-planes/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-sums-floats-with-kahan-compensation/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-system-tables-are-storages-with-a-source/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-does-decimal-arithmetic/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-splits-json-into-typed-paths-and-shared-data/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/compression/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/datetime/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/decimal/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/design/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/dynamic-programming/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/float/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/fuzzing/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-rebuilds-a-vector-from-bit-planes/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-client-cancels-a-query-without-losing-sync/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-client-splits-a-script-into-queries/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/internals/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/join/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/joins/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/json/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/map/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/memory/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/mergetree/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/networking/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/numerics/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/observability/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/optimizer/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/parsing/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/performance/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/prewhere/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/protocol/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/query-planning/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/simd/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/statistics/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/storage/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/streaming/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/system-tables/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/testing/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/timezone/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/types/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/vector-search/</loc><lastmod>2026-10-24T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/aggregatingmergetree/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/async/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/backups/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/batching/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bit-tricks/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/buffer/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/caching/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-builds-an-actions-dag-once-and-runs-it-per-block/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-coordinates-a-cluster-wide-backup-with-zookeeper/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-deletes-expired-ttl-rows-only-when-parts-merge/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-generates-an-unbounded-number-stream/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-incremental-backups-store-only-a-files-tail/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-keeper-carries-a-tree-digest-in-every-raft-log-entry/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-packs-a-hyperloglog-rank-into-five-bits/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-pushes-order-by-into-the-storage-read/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-recycles-small-objects-through-size-class-free-lists/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-rewrites-the-query-before-it-plans-it/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-runs-distributed-ddl-through-a-zookeeper-queue/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-short-circuits-and-or-with-a-mask/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-lru-cache-keeps-its-order-in-a-linked-list/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-slru-cache-protects-hot-entries-from-a-scan/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/context/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/data-structures/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/ddl/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/distributed/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-batches-async-inserts-in-a-per-key-queue/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-maps-an-insert-onto-the-tables-schema/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-picks-a-projection-to-read/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-recompresses-a-part-when-its-ttl-expires/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-splits-a-session-context-from-a-query-context/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-injects-row-level-security-as-a-filter/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-mergetree-summing-and-aggregating-engines-collapse-rows/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-buffers-writes-in-ram-and-flushes-in-the-background/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-kafka-commits-offsets-after-the-block-is-written/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-logs-store-rows-in-append-only-files-with-a-marks-index/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/incremental/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/insert/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/kafka/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/keeper/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/log/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/optimization/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/pipeline/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/projections/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/query-plan/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/query-planner/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/raft/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/row-policies/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/schema/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/security/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/settings/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/short-circuit/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/storage-engines/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/summingmergetree/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/table-functions/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/ttl/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/zookeeper/</loc><lastmod>2026-10-23T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bloom-filter/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-batches-distributed-inserts-into-files/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-buffers-io-with-a-pos-end-invariant/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-caches-remote-objects-as-local-file-segments/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-compiles-a-date-format-string-into-a-program/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-computes-window-frames-incrementally/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-deletes-rows-with-a-row-exists-mask/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-encrypts-files-at-rest-with-a-64-byte-header/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-makes-a-mergetree-part-visible-with-one-rename/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-parses-urls-with-a-hand-written-state-machine/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-bloom-filter-skip-index-prunes-granules/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-runs-regular-expressions-four-different-ways/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-limits-query-concurrency-with-cpu-slots/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-hash-join-stores-the-right-table-as-64-bit-row-words/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-merge-join-walks-two-sorted-streams/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-native-protocol-interleaves-results-and-cancellation/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-thread-pool-wakes-threads-and-counts-events/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-throttles-io-with-a-token-bucket/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/codecs/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/concurrency/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/csv/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/dates/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/deduplication/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/deletes/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/dictionaries/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/disks/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/distinct/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/durability/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/encryption/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/final/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/formats/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/hash-tables/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-compresses-columns-with-codec-pipelines/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-deduplicates-retried-inserts-with-a-content-hash/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-parses-csv-in-parallel/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-replicates-mergetree-with-a-log-and-hash-dedup/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-resolves-a-scalar-function-call/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-rewrites-a-distributed-query-for-every-shard/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-runs-union-distinct-and-intersect-except/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-spreads-parts-across-disks-with-a-storage-policy/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-stores-dictionaries-in-sharded-hash-tables/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-writes-the-native-format-column-at-a-time/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-replacingmergetree-collapses-duplicates/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/indexes/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/io/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/jit/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/merge-join/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/mutations/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/object-storage/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/parallelism/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/regexp/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/reliability/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/replacingmergetree/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/replication/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/scheduling/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/serialization/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/set-operations/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/sql/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/thread-pool/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/throttling/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/window-functions/</loc><lastmod>2026-10-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/background-jobs/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-optimizes-aggregation-in-order/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-chooses-which-parts-to-merge/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-estimates-distinct-counts-by-thinning-a-hash-table/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-evaluates-in-with-hash-sets/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-jit-compiles-expressions-with-llvm/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-marks-empty-hash-table-cells-with-zeroed-memory/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-merges-columns-one-at-a-time-vertical-merge/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-packs-short-strings-into-hash-table-keys/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-plans-distributed-queries-with-cascades/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-parallelizes-a-query-pipeline-across-threads/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-skips-granules-with-marks-and-bit-packed-indexes/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-sorts-in-parallel-and-merges-sorted-streams/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-splits-group-by-into-256-buckets-for-parallel-merges/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-lowcardinality-saves-memory-with-one-dictionary/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-caches-query-condition-granule-verdicts/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-runs-a-query-pipeline-with-ports-and-status/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-caches-query-results-in-memory-and-on-disk/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-variant-column-uses-a-discriminator-byte/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/hash-table/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-stores-a-column-in-a-padded-pod-array/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-clickhouse-sparse-column-stores-only-non-default-rows/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/llvm/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/merge-tree/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/probabilistic/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/query-execution/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/set/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/sorting/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/storage-engine/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/strings/</loc><lastmod>2026-10-21T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/</loc><lastmod>2026-10-20T09:02:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bool/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/buffer-protocol/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bytearray/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bytes/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/capsule/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/cell/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/code/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/collections/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/complex/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/coroutine/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/cpython/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-async-generator-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-bool-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-method-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-bytearray-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-bytes-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-cell-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-code-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-complex-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-coroutine-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-descriptor-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-dict-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-ellipsis-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-enumerate-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-exceptions-are-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-float-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-frame-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-function-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-generator-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-int-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-iterator-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-lazyimport-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-list-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-memoryview-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-module-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-nonetype-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-notimplemented-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-object-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-odict-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-picklebuf-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-capsule-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-range-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-sentinel-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-set-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-namespace-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-slice-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-str-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-structseq-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-super-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-template-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-tuple-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-type-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-genericalias-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-typevar-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-union-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-weakref-is-implemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/descriptor/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/dict/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/ellipsis/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/enumerate/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/exceptions/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/frame/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/frames/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/function/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/generator/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/generators/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/genericalias/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/import/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/int/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/categories/internals/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/iterator/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/lazy-import/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/list/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/memoryview/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/metaclass/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/method/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/module/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/mro/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/namespace/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/none/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/nonetype/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/notimplemented/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/object/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/ordereddict/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/pickle/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/postgres/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-stores-a-row/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/property/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/categories/python/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/python/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/range/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/reversed/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/sentinel/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/slice/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/str/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/structseq/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/super/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/template/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/tuple/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/type/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/typevar/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/typing/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/unicode/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/union/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/weakref/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/zip/</loc><lastmod>2026-10-20T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-garbage-collector-works/</loc><lastmod>2026-10-16T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/garbage-collection/</loc><lastmod>2026-10-16T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/python-3.15/</loc><lastmod>2026-10-15T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/whats-new-in-python-3-15/</loc><lastmod>2026-10-15T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-time-and-timetz-in-c/</loc><lastmod>2026-10-12T10:21:30+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/time/</loc><lastmod>2026-10-12T10:21:30+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/timetz/</loc><lastmod>2026-10-12T10:21:30+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/input/</loc><lastmod>2026-10-11T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/categories/tmux/</loc><lastmod>2026-10-11T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/tmux/</loc><lastmod>2026-10-11T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-parses-escape-sequences-fast/</loc><lastmod>2026-10-11T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/executor/</loc><lastmod>2026-10-11T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-speeds-up-hash-joins/</loc><lastmod>2026-10-11T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/numeric/</loc><lastmod>2026-10-08T10:09:37+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-numeric-in-c/</loc><lastmod>2026-10-08T10:09:37+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/architecture/</loc><lastmod>2026-10-06T11:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/layout/</loc><lastmod>2026-10-06T11:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-splits-the-terminal-into-panes/</loc><lastmod>2026-10-06T11:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-waits-for-locks/</loc><lastmod>2026-10-06T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-timestamp-and-timestamptz-in-c/</loc><lastmod>2026-10-06T06:17:33+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/timestamp/</loc><lastmod>2026-10-06T06:17:33+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/timestamptz/</loc><lastmod>2026-10-06T06:17:33+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-bool-in-c/</loc><lastmod>2026-10-04T04:06:31+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-locks-buffers-without-lwlocks/</loc><lastmod>2026-10-02T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/sanitisation/</loc><lastmod>2026-10-02T08:30:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-sanitises-window-names-against-injection/</loc><lastmod>2026-10-02T08:30:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/oid/</loc><lastmod>2026-10-01T08:19:40+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/oid8/</loc><lastmod>2026-10-01T08:19:40+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-oid-in-c/</loc><lastmod>2026-10-01T08:19:40+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/terminal/</loc><lastmod>2026-09-28T15:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/why-tmux-needs-its-own-terminal-emulator/</loc><lastmod>2026-09-28T15:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/float4/</loc><lastmod>2026-09-22T06:53:25+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/float8/</loc><lastmod>2026-09-22T06:53:25+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-float4-and-float8-in-c/</loc><lastmod>2026-09-22T06:53:25+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/control-mode/</loc><lastmod>2026-09-19T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-allocates-memory-fast/</loc><lastmod>2026-09-19T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-control-mode-is-an-unauthenticated-command-channel/</loc><lastmod>2026-09-19T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/pty/</loc><lastmod>2026-09-12T16:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-runs-real-ptys-for-every-pane/</loc><lastmod>2026-09-12T16:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-groups-commits/</loc><lastmod>2026-09-12T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/wal/</loc><lastmod>2026-09-12T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bit/</loc><lastmod>2026-09-08T08:34:05+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-bit-and-varbit-in-c/</loc><lastmod>2026-09-08T08:34:05+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/varbit/</loc><lastmod>2026-09-08T08:34:05+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/interval/</loc><lastmod>2026-09-07T01:55:11+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-interval-in-c/</loc><lastmod>2026-09-07T01:55:11+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bytea/</loc><lastmod>2026-09-05T17:41:12+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-bytea-in-c/</loc><lastmod>2026-09-05T17:41:12+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-batches-terminal-output/</loc><lastmod>2026-09-05T13:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/tty/</loc><lastmod>2026-09-05T13:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-computes-page-checksums-fast/</loc><lastmod>2026-09-05T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/int2/</loc><lastmod>2026-09-03T15:13:13+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/int4/</loc><lastmod>2026-09-03T15:13:13+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/int8/</loc><lastmod>2026-09-03T15:13:13+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-integer-types-in-c/</loc><lastmod>2026-09-03T15:13:13+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/btree/</loc><lastmod>2026-09-01T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/index/</loc><lastmod>2026-09-01T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-deduplicates-btree-entries/</loc><lastmod>2026-09-01T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/multirange/</loc><lastmod>2026-08-31T11:06:16+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-multirange-types-in-c/</loc><lastmod>2026-08-31T11:06:16+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-works-around-terminal-bugs/</loc><lastmod>2026-08-30T12:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/workarounds/</loc><lastmod>2026-08-30T12:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-does-async-io-with-io-uring/</loc><lastmod>2026-08-27T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/redraw/</loc><lastmod>2026-08-21T14:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-redraws-only-what-changed/</loc><lastmod>2026-08-21T14:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/macaddr/</loc><lastmod>2026-08-21T07:34:39+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/macaddr8/</loc><lastmod>2026-08-21T07:34:39+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-macaddr-and-macaddr8-in-c/</loc><lastmod>2026-08-21T07:34:39+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/char/</loc><lastmod>2026-08-20T11:01:41+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/name/</loc><lastmod>2026-08-20T11:01:41+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-char-and-name-in-c/</loc><lastmod>2026-08-20T11:01:41+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-hashes-lookups/</loc><lastmod>2026-08-19T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/ipc/</loc><lastmod>2026-08-14T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-uses-simd-for-fast-string-scanning/</loc><lastmod>2026-08-14T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/why-tmux-is-a-server-and-not-a-terminal-program/</loc><lastmod>2026-08-14T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/daterange/</loc><lastmod>2026-08-13T21:37:21+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/int4range/</loc><lastmod>2026-08-13T21:37:21+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-range-types-in-c/</loc><lastmod>2026-08-13T21:37:21+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bpchar/</loc><lastmod>2026-08-10T15:27:20+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-text-varchar-and-bpchar-in-c/</loc><lastmod>2026-08-10T15:27:20+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/text/</loc><lastmod>2026-08-10T15:27:20+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/varchar/</loc><lastmod>2026-08-10T15:27:20+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/geometric/</loc><lastmod>2026-08-09T18:27:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/point/</loc><lastmod>2026-08-09T18:27:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/polygon/</loc><lastmod>2026-08-09T18:27:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-geometric-types-in-c/</loc><lastmod>2026-08-09T18:27:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-locks-tables-fast/</loc><lastmod>2026-08-06T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-secures-its-unix-socket/</loc><lastmod>2026-08-04T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/unix/</loc><lastmod>2026-08-04T10:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/jsonpath/</loc><lastmod>2026-08-04T08:55:15+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-jsonpath-in-c/</loc><lastmod>2026-08-04T08:55:15+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/jsonb/</loc><lastmod>2026-07-28T22:45:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-json-and-jsonb-in-c/</loc><lastmod>2026-07-28T22:45:02+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-defers-tuple-deformation/</loc><lastmod>2026-07-28T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-format-expansion-runs-shell-commands/</loc><lastmod>2026-07-27T11:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/date/</loc><lastmod>2026-07-27T01:19:06+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-date-in-c/</loc><lastmod>2026-07-27T01:19:06+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-sorts-rows-fast/</loc><lastmod>2026-07-25T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/sort/</loc><lastmod>2026-07-25T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/cidr/</loc><lastmod>2026-07-24T02:35:53+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/inet/</loc><lastmod>2026-07-24T02:35:53+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgres-implements-inet-and-cidr-in-c/</loc><lastmod>2026-07-24T02:35:53+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-postgresql-skip-scans-btree-indexes/</loc><lastmod>2026-07-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-tmux-stores-grid-cells-in-five-bytes/</loc><lastmod>2026-07-22T08:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-caches-small-integers/</loc><lastmod>2026-05-02T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/integers/</loc><lastmod>2026-05-02T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-reuses-objects-with-free-lists/</loc><lastmod>2026-03-14T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/calls/</loc><lastmod>2026-03-02T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-makes-python-calls-fast-with-vectorcall/</loc><lastmod>2026-03-02T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-interns-strings/</loc><lastmod>2026-01-22T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-allocates-small-objects-with-pymalloc/</loc><lastmod>2025-11-11T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/tags/bytecode/</loc><lastmod>2025-08-05T09:00:00+00:00</lastmod></url><url><loc>https://articles.9j.nz/posts/how-cpython-specializes-bytecode-with-inline-caches/</loc><lastmod>2025-08-05T09:00:00+00:00</lastmod></url></urlset>