Copy disabled (too large)
Download .txt
Showing preview only (16,289K chars total). Download the full file to get everything.
Repository: timescale/timescaledb
Branch: main
Commit: 32a3cd5f1f8a
Files: 2739
Total size: 37.2 MB
Directory structure:
gitextract_w6vwqnet/
├── .clang-format
├── .codecov.yml
├── .dir-locals.el
├── .editorconfig
├── .git-blame-ignore-revs
├── .github/
│ ├── CODE_OF_CONDUCT.md
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── enhancement.yml
│ │ └── feature.yml
│ ├── PULL_REQUEST_TEMPLATE/
│ │ └── pull_request_template.md
│ ├── ci_settings.py
│ ├── codespell-ignore-words
│ ├── filters.yaml
│ ├── gh_config_reader.py
│ ├── gh_matrix_builder.py
│ └── workflows/
│ ├── abi.yaml
│ ├── apt-installcheck.yaml
│ ├── apt-packages.yaml
│ ├── backport-trigger.yaml
│ ├── backport.yaml
│ ├── catalog-updates-check.yaml
│ ├── changelog-check.yaml
│ ├── claude-code-review.yaml
│ ├── coccinelle.yaml
│ ├── code_style.yaml
│ ├── coverity.yaml
│ ├── docker-images.yaml
│ ├── extras-diagnostic.yaml
│ ├── homebrew.yaml
│ ├── issue-handling.yaml
│ ├── label-handling.yaml
│ ├── label-released-prs.yaml
│ ├── libfuzzer.yaml
│ ├── linux-32bit-build-and-test.yaml
│ ├── linux-build-and-test.yaml
│ ├── loader_check.yml
│ ├── memory-tests.yaml
│ ├── nightly_cloud_smoke_test.yaml
│ ├── pg_ladybug.yaml
│ ├── pg_upgrade-test.yaml
│ ├── pgspot.yaml
│ ├── pr-approvals.yaml
│ ├── pr-handling.yaml
│ ├── pr-validation.yaml
│ ├── prerelease-sanity.yaml
│ ├── release_build_packages.yml
│ ├── release_feature_freeze_ceremony.yaml
│ ├── release_post_release_ceremony.yaml
│ ├── rpm-packages.yaml
│ ├── sanitizer-build-and-test.yaml
│ ├── shellcheck.yaml
│ ├── snapshot-abi.yaml
│ ├── sqlsmith.yaml
│ ├── stalebot.yaml
│ ├── tests-fail-on-old-code.yaml
│ ├── trigger-package-tests.yaml
│ ├── trigger-prerelease-tests.yaml
│ ├── update-test.yaml
│ ├── windows-build-and-test.yaml
│ └── windows-packages.yaml
├── .gitignore
├── .perltidyrc
├── .pull-review
├── .unreleased/
│ ├── chunk-param
│ ├── columnar-function
│ ├── constant-gapfill
│ ├── direct-loss
│ ├── in-any-chunk-exclusion
│ ├── parameterized-merge
│ ├── pr_8983
│ ├── pr_9142
│ ├── pr_9238
│ ├── pr_9253
│ ├── pr_9266
│ ├── pr_9267
│ ├── pr_9312
│ ├── pr_9334
│ ├── pr_9372
│ ├── pr_9374
│ ├── pr_9376
│ ├── pr_9378
│ ├── pr_9382
│ ├── pr_9399
│ ├── pr_9413
│ ├── pr_9414
│ ├── pr_9417
│ ├── saop-pushdown
│ ├── text-minmax
│ └── wrong-partition
├── .yamllint.yaml
├── CHANGELOG.md
├── CMakeLists.txt
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE-APACHE
├── NOTICE
├── README.md
├── SECURITY.md
├── bootstrap
├── bootstrap.bat
├── cmake/
│ ├── GenerateScripts.cmake
│ ├── GenerateTestSchedule.cmake
│ ├── GitCommands.cmake
│ └── ScriptFiles.cmake
├── coccinelle/
│ ├── README.md
│ ├── attrnumbergetattroffset.cocci
│ ├── bms_result.cocci
│ ├── hash_create.cocci
│ ├── heap_freetuple.cocci
│ ├── hypertable_cache.cocci
│ ├── hypertable_cache2.cocci
│ ├── mcxt.cocci
│ ├── namedata.cocci
│ └── oidisvalid.cocci
├── coverage/
│ ├── CMakeLists.txt
│ └── README.md
├── docs/
│ ├── BuildSource.md
│ ├── MultiNodeDeprecation.md
│ ├── StyleGuide.md
│ └── getting-started/
│ ├── README.md
│ ├── events-uuidv7/
│ │ └── README.md
│ ├── financial-ticks/
│ │ └── README.md
│ └── nyc-taxi/
│ ├── README.md
│ ├── nyc-taxi-queries.sql
│ ├── nyc-taxi-sample.csv
│ └── nyc-taxi-schema.sql
├── scripts/
│ ├── CMakeLists.txt
│ ├── backport.py
│ ├── bundle_coredumps.sh
│ ├── c_license_header-apache.h
│ ├── c_license_header-timescale.h
│ ├── changelog/
│ │ ├── generate.sh
│ │ └── template.rfc822
│ ├── check_changelog_format.py
│ ├── check_file_license.sh
│ ├── check_license.sh
│ ├── check_license_all.sh
│ ├── check_missing_gitignore_for_template_tests.sh
│ ├── check_orphaned_test_output_files.sh
│ ├── check_sql_script.py
│ ├── check_unnecessary_template_tests.sh
│ ├── check_unreferenced_files.sh
│ ├── check_updates.py
│ ├── clang_format_all.sh
│ ├── clang_format_wrapper.sh
│ ├── cmake_format_all.sh
│ ├── coccinelle.sh
│ ├── delete_released_change_logs.sh
│ ├── docker-build.sh
│ ├── docker-run-tests.sh
│ ├── dump_meta_data.sql
│ ├── export_prefix_check.sh.in
│ ├── githooks/
│ │ ├── .gitignore
│ │ ├── commit_msg.py
│ │ └── commit_msg_tests.py
│ ├── label-released.py
│ ├── license_apache.spec
│ ├── license_tsl.spec
│ ├── memory_leaks.sql
│ ├── out_of_order_random_direct.sql
│ ├── perltidy_format_all.sh
│ ├── release/
│ │ ├── build_post_release_artefacts.sh
│ │ ├── build_release_artefacts.sh
│ │ ├── create_minor_release_branch.sh
│ │ └── ready_fork_for_commit.sh
│ ├── run_sql.sh
│ ├── shellcheck-ci.sh
│ ├── sql_license_apache.sql
│ ├── sql_license_tsl.sql
│ ├── start-local-docker.ps1
│ ├── start-local-docker.sh
│ ├── suppressions/
│ │ ├── README.md
│ │ ├── suppr_asan.txt
│ │ ├── suppr_leak.txt
│ │ └── suppr_ub.txt
│ ├── test_downgrade.sh
│ ├── test_license.sql
│ ├── test_memory_spikes.py
│ ├── test_pg_upgrade.py
│ ├── test_regressions.sh
│ ├── test_sanitizers.sh
│ ├── test_update_from_version.sh
│ ├── test_update_smoke.sh
│ ├── test_updates.sh
│ ├── ts_dump.sh
│ ├── ts_restore.sh
│ └── upload_ci_stats.sh
├── sql/
│ ├── CMakeLists.txt
│ ├── bgw_scheduler.sql
│ ├── bgw_startup.sql
│ ├── bookend.sql
│ ├── cagg_utils.sql
│ ├── cat.cmake
│ ├── chunk.sql
│ ├── chunk_constraint.sql
│ ├── comment_apache.sql
│ ├── comment_tsl.sql
│ ├── compat.sql
│ ├── compression.sql
│ ├── compression_defaults.sql
│ ├── ddl_api.sql
│ ├── ddl_triggers.sql
│ ├── debug_build_utils.sql
│ ├── debug_utils.sql
│ ├── gapfill.sql
│ ├── header.sql
│ ├── histogram.sql
│ ├── hypertable.sql
│ ├── job_api.sql
│ ├── job_stat_history_log_retention.sql
│ ├── maintenance_utils.sql
│ ├── metadata.sql
│ ├── notice.sql
│ ├── osm_api.sql
│ ├── partitioning.sql
│ ├── policy_api.sql
│ ├── policy_internal.sql
│ ├── pre_install/
│ │ ├── cache.sql
│ │ ├── insert_data.sql
│ │ ├── schemas.sql
│ │ ├── tables.sql
│ │ ├── types.functions.sql
│ │ ├── types.post.sql
│ │ └── types.pre.sql
│ ├── restoring.sql
│ ├── size_utils.sql
│ ├── sparse_index.sql
│ ├── time_bucket.sql
│ ├── updates/
│ │ ├── 2.10.0--2.9.3.sql
│ │ ├── 2.10.1--2.10.0.sql
│ │ ├── 2.10.1--2.10.2.sql
│ │ ├── 2.10.2--2.10.1.sql
│ │ ├── 2.10.2--2.10.3.sql
│ │ ├── 2.10.3--2.10.2.sql
│ │ ├── 2.10.3--2.11.0.sql
│ │ ├── 2.11.0--2.10.3.sql
│ │ ├── 2.11.0--2.11.1.sql
│ │ ├── 2.11.1--2.11.0.sql
│ │ ├── 2.11.1--2.11.2.sql
│ │ ├── 2.11.2--2.11.1.sql
│ │ ├── 2.11.2--2.12.0.sql
│ │ ├── 2.12.0--2.11.2.sql
│ │ ├── 2.12.0-2.12.1.sql
│ │ ├── 2.12.1--2.12.0.sql
│ │ ├── 2.12.1--2.12.2.sql
│ │ ├── 2.12.2--2.12.1.sql
│ │ ├── 2.12.2--2.13.0.sql
│ │ ├── 2.13.0--2.12.2.sql
│ │ ├── 2.13.0--2.13.1.sql
│ │ ├── 2.13.1--2.13.0.sql
│ │ ├── 2.13.1--2.14.0.sql
│ │ ├── 2.14.0--2.13.1.sql
│ │ ├── 2.14.0--2.14.1.sql
│ │ ├── 2.14.1--2.14.0.sql
│ │ ├── 2.14.1--2.14.2.sql
│ │ ├── 2.14.2--2.14.1.sql
│ │ ├── 2.14.2--2.15.0.sql
│ │ ├── 2.15.0--2.14.2.sql
│ │ ├── 2.15.0--2.15.1.sql
│ │ ├── 2.15.1--2.15.0.sql
│ │ ├── 2.15.1--2.15.2.sql
│ │ ├── 2.15.2--2.15.1.sql
│ │ ├── 2.15.2--2.15.3.sql
│ │ ├── 2.15.3--2.15.2.sql
│ │ ├── 2.15.3--2.16.0.sql
│ │ ├── 2.16.0--2.15.3.sql
│ │ ├── 2.16.0--2.16.1.sql
│ │ ├── 2.16.1--2.16.0.sql
│ │ ├── 2.16.1--2.17.0.sql
│ │ ├── 2.17.0--2.16.1.sql
│ │ ├── 2.17.0--2.17.1.sql
│ │ ├── 2.17.1--2.17.0.sql
│ │ ├── 2.17.1--2.17.2.sql
│ │ ├── 2.17.2--2.17.1.sql
│ │ ├── 2.17.2--2.18.0.sql
│ │ ├── 2.18.0--2.17.2.sql
│ │ ├── 2.18.0--2.18.1.sql
│ │ ├── 2.18.1--2.18.0.sql
│ │ ├── 2.18.1--2.18.2.sql
│ │ ├── 2.18.2--2.18.1.sql
│ │ ├── 2.18.2--2.19.0.sql
│ │ ├── 2.19.0--2.18.2.sql
│ │ ├── 2.19.0--2.19.1.sql
│ │ ├── 2.19.1--2.19.0.sql
│ │ ├── 2.19.1--2.19.2.sql
│ │ ├── 2.19.2--2.19.1.sql
│ │ ├── 2.19.2--2.19.3.sql
│ │ ├── 2.19.3--2.19.2.sql
│ │ ├── 2.19.3--2.20.0.sql
│ │ ├── 2.20.0--2.19.3.sql
│ │ ├── 2.20.0--2.20.1.sql
│ │ ├── 2.20.1--2.20.0.sql
│ │ ├── 2.20.1--2.20.2.sql
│ │ ├── 2.20.2--2.20.1.sql
│ │ ├── 2.20.2--2.20.3.sql
│ │ ├── 2.20.3--2.20.2.sql
│ │ ├── 2.20.3--2.21.0.sql
│ │ ├── 2.21.0--2.20.3.sql
│ │ ├── 2.21.0--2.21.1.sql
│ │ ├── 2.21.1--2.21.0.sql
│ │ ├── 2.21.1--2.21.2.sql
│ │ ├── 2.21.2--2.21.1.sql
│ │ ├── 2.21.2--2.21.3.sql
│ │ ├── 2.21.3--2.21.2.sql
│ │ ├── 2.21.3--2.21.4.sql
│ │ ├── 2.21.4--2.22.0.sql
│ │ ├── 2.22.0--2.21.3.sql
│ │ ├── 2.22.0--2.22.1.sql
│ │ ├── 2.22.1--2.22.0.sql
│ │ ├── 2.22.1--2.23.0.sql
│ │ ├── 2.23.0--2.22.1.sql
│ │ ├── 2.23.0--2.23.1.sql
│ │ ├── 2.23.1--2.23.0.sql
│ │ ├── 2.23.1--2.24.0.sql
│ │ ├── 2.24.0--2.23.1.sql
│ │ ├── 2.24.0--2.25.0.sql
│ │ ├── 2.25.0--2.24.0.sql
│ │ ├── 2.25.0--2.25.1.sql
│ │ ├── 2.25.1--2.25.0.sql
│ │ ├── 2.25.1--2.25.2.sql
│ │ ├── 2.25.2--2.25.1.sql
│ │ ├── 2.9.0--2.8.1.sql
│ │ ├── 2.9.0--2.9.1.sql
│ │ ├── 2.9.1--2.9.0.sql
│ │ ├── 2.9.1--2.9.2.sql
│ │ ├── 2.9.2--2.9.1.sql
│ │ ├── 2.9.2--2.9.3.sql
│ │ ├── 2.9.3--2.10.0.sql
│ │ ├── 2.9.3--2.9.2.sql
│ │ ├── README.md
│ │ ├── latest-dev.sql
│ │ ├── post-update.sql
│ │ ├── pre-update.sql
│ │ ├── pre-version-change.sql
│ │ ├── reverse-dev.sql
│ │ ├── set_post_update_stage.sql
│ │ ├── unset_update_stage.sql
│ │ └── version_check.sql
│ ├── util_internal_table_ddl.sql
│ ├── util_time.sql
│ ├── uuidv7.sql
│ ├── version.sql
│ ├── views.sql
│ ├── views_experimental.sql
│ ├── with_telemetry.sql
│ └── without_telemetry.sql
├── src/
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── adts/
│ │ ├── README.md
│ │ ├── bit_array.h
│ │ ├── bit_array_impl.h
│ │ ├── char_vec.h
│ │ ├── uint64_vec.h
│ │ └── vec.h
│ ├── agg_bookend.c
│ ├── annotations.h
│ ├── bgw/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── job.c
│ │ ├── job.h
│ │ ├── job_stat.c
│ │ ├── job_stat.h
│ │ ├── job_stat_history.c
│ │ ├── job_stat_history.h
│ │ ├── launcher_interface.c
│ │ ├── launcher_interface.h
│ │ ├── scheduler.c
│ │ ├── scheduler.h
│ │ ├── timer.c
│ │ ├── timer.h
│ │ └── worker.h
│ ├── bgw_policy/
│ │ ├── CMakeLists.txt
│ │ ├── chunk_stats.c
│ │ ├── chunk_stats.h
│ │ ├── policy.c
│ │ └── policy.h
│ ├── bmslist_utils.c
│ ├── bmslist_utils.h
│ ├── build-defs.cmake
│ ├── cache.c
│ ├── cache.h
│ ├── cache_invalidate.c
│ ├── cache_invalidate.h
│ ├── chunk.c
│ ├── chunk.h
│ ├── chunk_adaptive.c
│ ├── chunk_adaptive.h
│ ├── chunk_constraint.c
│ ├── chunk_constraint.h
│ ├── chunk_index.c
│ ├── chunk_index.h
│ ├── chunk_insert_state.c
│ ├── chunk_insert_state.h
│ ├── chunk_scan.c
│ ├── chunk_scan.h
│ ├── chunk_tuple_routing.c
│ ├── chunk_tuple_routing.h
│ ├── compat/
│ │ ├── CMakeLists.txt
│ │ ├── compat-msvc-enter.h
│ │ ├── compat-msvc-exit.h
│ │ └── compat.h
│ ├── config.h.in
│ ├── constraint.c
│ ├── constraint.h
│ ├── copy.c
│ ├── copy.h
│ ├── cross_module_fn.c
│ ├── cross_module_fn.h
│ ├── custom_type_cache.c
│ ├── custom_type_cache.h
│ ├── debug_assert.h
│ ├── debug_point.c
│ ├── debug_point.h
│ ├── dimension.c
│ ├── dimension.h
│ ├── dimension_slice.c
│ ├── dimension_slice.h
│ ├── dimension_vector.c
│ ├── dimension_vector.h
│ ├── error_utils.h
│ ├── errors.h
│ ├── estimate.c
│ ├── estimate.h
│ ├── event_trigger.c
│ ├── event_trigger.h
│ ├── export.h
│ ├── expression_utils.c
│ ├── expression_utils.h
│ ├── extension.c
│ ├── extension.h
│ ├── extension_constants.c
│ ├── extension_constants.h
│ ├── extension_utils.c
│ ├── foreach_ptr.h
│ ├── foreign_key.c
│ ├── foreign_key.h
│ ├── func_cache.c
│ ├── func_cache.h
│ ├── gapfill.c
│ ├── gitcommit.cmake
│ ├── gitcommit.h.in
│ ├── guc.c
│ ├── guc.h
│ ├── histogram.c
│ ├── hypercube.c
│ ├── hypercube.h
│ ├── hypertable.c
│ ├── hypertable.h
│ ├── hypertable_cache.c
│ ├── hypertable_cache.h
│ ├── hypertable_restrict_info.c
│ ├── hypertable_restrict_info.h
│ ├── import/
│ │ ├── allpaths.c
│ │ ├── allpaths.h
│ │ ├── heapswap.c
│ │ ├── heapswap.h
│ │ ├── list.c
│ │ ├── list.h
│ │ ├── planner.c
│ │ ├── planner.h
│ │ ├── ts_explain.c
│ │ └── ts_explain.h
│ ├── indexing.c
│ ├── indexing.h
│ ├── init.c
│ ├── jsonb_utils.c
│ ├── jsonb_utils.h
│ ├── license_guc.c
│ ├── license_guc.h
│ ├── loader/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── bgw_counter.c
│ │ ├── bgw_counter.h
│ │ ├── bgw_interface.c
│ │ ├── bgw_interface.h
│ │ ├── bgw_launcher.c
│ │ ├── bgw_launcher.h
│ │ ├── bgw_message_queue.c
│ │ ├── bgw_message_queue.h
│ │ ├── function_telemetry.c
│ │ ├── function_telemetry.h
│ │ ├── loader.c
│ │ ├── loader.h
│ │ ├── lwlocks.c
│ │ └── lwlocks.h
│ ├── net/
│ │ ├── CMakeLists.txt
│ │ ├── conn.c
│ │ ├── conn.h
│ │ ├── conn_internal.h
│ │ ├── conn_plain.c
│ │ ├── conn_plain.h
│ │ ├── conn_ssl.c
│ │ ├── http.c
│ │ ├── http.h
│ │ ├── http_request.c
│ │ └── http_response.c
│ ├── nodes/
│ │ ├── CMakeLists.txt
│ │ ├── chunk_append/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── chunk_append.c
│ │ │ ├── chunk_append.h
│ │ │ ├── exec.c
│ │ │ ├── planner.c
│ │ │ ├── transform.c
│ │ │ └── transform.h
│ │ ├── constraint_aware_append/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── constraint_aware_append.c
│ │ │ └── constraint_aware_append.h
│ │ ├── modify_hypertable.c
│ │ ├── modify_hypertable.h
│ │ ├── modify_hypertable_exec.c
│ │ └── vector_agg.h
│ ├── osm_callbacks.c
│ ├── osm_callbacks.h
│ ├── partition_chunk.c
│ ├── partition_chunk.h
│ ├── partitioning.c
│ ├── partitioning.h
│ ├── planner/
│ │ ├── CMakeLists.txt
│ │ ├── agg_bookend.c
│ │ ├── constify_now.c
│ │ ├── constraint_cleanup.c
│ │ ├── expand_hypertable.c
│ │ ├── planner.c
│ │ ├── planner.h
│ │ └── space_constraint.c
│ ├── process_utility.c
│ ├── process_utility.h
│ ├── scan_iterator.c
│ ├── scan_iterator.h
│ ├── scanner.c
│ ├── scanner.h
│ ├── sort_transform.c
│ ├── sort_transform.h
│ ├── subspace_store.README.md
│ ├── subspace_store.c
│ ├── subspace_store.h
│ ├── telemetry/
│ │ ├── CMakeLists.txt
│ │ ├── functions.c
│ │ ├── functions.h
│ │ ├── replication.c
│ │ ├── replication.h
│ │ ├── stats.c
│ │ ├── stats.h
│ │ ├── telemetry.c
│ │ ├── telemetry.h
│ │ ├── telemetry_metadata.c
│ │ └── telemetry_metadata.h
│ ├── time_bucket.c
│ ├── time_bucket.h
│ ├── time_utils.c
│ ├── time_utils.h
│ ├── timezones.c
│ ├── timezones.h
│ ├── trigger.c
│ ├── trigger.h
│ ├── ts_catalog/
│ │ ├── CMakeLists.txt
│ │ ├── array_utils.c
│ │ ├── array_utils.h
│ │ ├── catalog.c
│ │ ├── catalog.h
│ │ ├── chunk_column_stats.c
│ │ ├── chunk_column_stats.h
│ │ ├── chunk_rewrite.c
│ │ ├── chunk_rewrite.h
│ │ ├── compression_chunk_size.c
│ │ ├── compression_chunk_size.h
│ │ ├── compression_settings.c
│ │ ├── compression_settings.h
│ │ ├── continuous_agg.c
│ │ ├── continuous_agg.h
│ │ ├── continuous_aggs_watermark.c
│ │ ├── continuous_aggs_watermark.h
│ │ ├── metadata.c
│ │ ├── metadata.h
│ │ ├── tablespace.c
│ │ └── tablespace.h
│ ├── tss_callbacks.c
│ ├── tss_callbacks.h
│ ├── utils.c
│ ├── utils.h
│ ├── uuid.c
│ ├── uuid.h
│ ├── version.c
│ ├── version.h
│ └── with_clause/
│ ├── CMakeLists.txt
│ ├── alter_table_with_clause.c
│ ├── alter_table_with_clause.h
│ ├── create_materialized_view_with_clause.c
│ ├── create_materialized_view_with_clause.h
│ ├── create_table_with_clause.c
│ ├── create_table_with_clause.h
│ ├── with_clause_parser.c
│ └── with_clause_parser.h
├── test/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── ci_rerun.sh
│ ├── expected/
│ │ ├── agg_bookends-15.out
│ │ ├── agg_bookends-16.out
│ │ ├── agg_bookends-17.out
│ │ ├── agg_bookends-18.out
│ │ ├── alter.out
│ │ ├── alternate_users.out
│ │ ├── append-15.out
│ │ ├── append-16.out
│ │ ├── append-17.out
│ │ ├── append-18.out
│ │ ├── baserel_cache.out
│ │ ├── bgw_launcher.out
│ │ ├── c_unit_tests.out
│ │ ├── catalog_corruption.out
│ │ ├── chunk_adaptive.out
│ │ ├── chunk_merge.out
│ │ ├── chunk_publication.out
│ │ ├── chunk_utils.out
│ │ ├── chunks.out
│ │ ├── cluster.out
│ │ ├── constraint.out
│ │ ├── copy.out
│ │ ├── copy_memory_usage.out
│ │ ├── copy_where.out
│ │ ├── create_chunks.out
│ │ ├── create_hypertable.out
│ │ ├── create_table.out
│ │ ├── create_table_with.out
│ │ ├── cursor.out
│ │ ├── custom_type.out
│ │ ├── ddl.out
│ │ ├── ddl_errors.out
│ │ ├── ddl_extra.out
│ │ ├── debug_utils.out
│ │ ├── delete.out
│ │ ├── drop_extension.out
│ │ ├── drop_hypertable.out
│ │ ├── drop_owned-15.out
│ │ ├── drop_owned-16.out
│ │ ├── drop_owned-17.out
│ │ ├── drop_owned-18.out
│ │ ├── drop_rename_hypertable.out
│ │ ├── drop_schema.out
│ │ ├── dump_meta.out
│ │ ├── extension_scripts.out
│ │ ├── generated_as_identity.out
│ │ ├── grant_hypertable-15.out
│ │ ├── grant_hypertable-16.out
│ │ ├── grant_hypertable-17.out
│ │ ├── grant_hypertable-18.out
│ │ ├── hash.out
│ │ ├── histogram_test-15.out
│ │ ├── histogram_test-16.out
│ │ ├── histogram_test-17.out
│ │ ├── histogram_test-18.out
│ │ ├── index.out
│ │ ├── information_views.out
│ │ ├── insert-15.out
│ │ ├── insert-16.out
│ │ ├── insert-17.out
│ │ ├── insert-18.out
│ │ ├── insert_many.out
│ │ ├── insert_returning.out
│ │ ├── insert_returning_old_new.out
│ │ ├── insert_single.out
│ │ ├── lateral.out
│ │ ├── license.out
│ │ ├── loader-oss.out
│ │ ├── loader-tsl.out
│ │ ├── merge.out
│ │ ├── metadata.out
│ │ ├── multi_transaction_index.out
│ │ ├── net.out
│ │ ├── null_exclusion-15.out
│ │ ├── null_exclusion-16.out
│ │ ├── null_exclusion-17.out
│ │ ├── null_exclusion-18.out
│ │ ├── parallel-15.out
│ │ ├── parallel-16.out
│ │ ├── parallel-17.out
│ │ ├── parallel-18.out
│ │ ├── partition.out
│ │ ├── partition_coercion.out
│ │ ├── partitioned_hypertable.out
│ │ ├── partitioning.out
│ │ ├── partitionwise-15.out
│ │ ├── partitionwise-16.out
│ │ ├── partitionwise-17.out
│ │ ├── partitionwise-18.out
│ │ ├── partitionwise.out
│ │ ├── pg_dump.out
│ │ ├── pg_dump_unprivileged.out
│ │ ├── pg_join.out
│ │ ├── plain.out
│ │ ├── plan_expand_hypertable-15.out
│ │ ├── plan_expand_hypertable-16.out
│ │ ├── plan_expand_hypertable-17.out
│ │ ├── plan_expand_hypertable-18.out
│ │ ├── plan_hashagg-15.out
│ │ ├── plan_hashagg-16.out
│ │ ├── plan_hashagg-17.out
│ │ ├── plan_hashagg-18.out
│ │ ├── plan_hypertable_inline.out
│ │ ├── plan_ordered_append-15.out
│ │ ├── plan_ordered_append-16.out
│ │ ├── plan_ordered_append-17.out
│ │ ├── plan_ordered_append-18.out
│ │ ├── query.out
│ │ ├── relocate_extension.out
│ │ ├── reloptions.out
│ │ ├── repair.out
│ │ ├── rowsecurity-15.out
│ │ ├── rowsecurity-16.out
│ │ ├── rowsecurity-17.out
│ │ ├── rowsecurity-18.out
│ │ ├── size_utils.out
│ │ ├── sort_optimization.out
│ │ ├── sql_query.out
│ │ ├── symbol_conflict.out
│ │ ├── tableam.out
│ │ ├── tableam_alter.out
│ │ ├── tableam_alter_defaults.out
│ │ ├── tablespace.out
│ │ ├── telemetry.out
│ │ ├── test_tss_callbacks.out
│ │ ├── test_utils.out
│ │ ├── timestamp-15.out
│ │ ├── timestamp-16.out
│ │ ├── timestamp-17.out
│ │ ├── timestamp-18.out
│ │ ├── triggers.out
│ │ ├── truncate.out
│ │ ├── trusted_extension.out
│ │ ├── ts_merge-15.out
│ │ ├── ts_merge-16.out
│ │ ├── ts_merge-17.out
│ │ ├── ts_merge-18.out
│ │ ├── update.out
│ │ ├── upsert.out
│ │ ├── util.out
│ │ ├── uuid.out
│ │ ├── vacuum.out
│ │ ├── vacuum_parallel.out
│ │ └── version.out
│ ├── isolation/
│ │ ├── CMakeLists.txt
│ │ ├── expected/
│ │ │ ├── concurrent_add_dimension.out
│ │ │ ├── concurrent_query_and_drop_chunks.out
│ │ │ ├── deadlock_dropchunks_select.out
│ │ │ ├── dropchunks_race.out
│ │ │ ├── insert_dropchunks_race.out
│ │ │ ├── isolation_nop.out
│ │ │ ├── multi_transaction_indexing.out
│ │ │ ├── read_committed_insert.out
│ │ │ ├── read_uncommitted_insert.out
│ │ │ ├── repeatable_read_insert.out
│ │ │ ├── serializable_insert.out
│ │ │ └── serializable_insert_rollback.out
│ │ └── specs/
│ │ ├── CMakeLists.txt
│ │ ├── concurrent_add_dimension.spec
│ │ ├── concurrent_query_and_drop_chunks.spec
│ │ ├── deadlock_dropchunks_select.spec
│ │ ├── dropchunks_race.spec
│ │ ├── insert_dropchunks_race.spec
│ │ ├── isolation_nop.spec
│ │ ├── multi_transaction_indexing.spec
│ │ ├── read_committed_insert.spec
│ │ ├── read_uncommitted_insert.spec
│ │ ├── repeatable_read_insert.spec
│ │ ├── serializable_insert.spec
│ │ └── serializable_insert_rollback.spec
│ ├── perl/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ └── TimescaleNode.pm
│ ├── pg_prove.sh
│ ├── pg_regress.sh
│ ├── pgpass.conf.in
│ ├── pgtest/
│ │ ├── CMakeLists.txt
│ │ └── README.md
│ ├── pgtest.conf.in
│ ├── postgres-asan-instrumentation-PG18GE.patch
│ ├── postgres-asan-instrumentation.patch
│ ├── postgresql.conf.in
│ ├── runner.sh
│ ├── runner_cleanup_output.sh
│ ├── runner_isolation.sh
│ ├── runner_shared.sh
│ ├── sql/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── agg_bookends.sql.in
│ │ ├── alter.sql
│ │ ├── alternate_users.sql
│ │ ├── append.sql.in
│ │ ├── baserel_cache.sql
│ │ ├── bgw_launcher.sql
│ │ ├── c_unit_tests.sql
│ │ ├── catalog_corruption.sql
│ │ ├── chunk_adaptive.sql
│ │ ├── chunk_publication.sql
│ │ ├── chunk_utils.sql
│ │ ├── chunks.sql
│ │ ├── cluster.sql
│ │ ├── constraint.sql
│ │ ├── copy.sql
│ │ ├── copy_memory_usage.sql
│ │ ├── copy_where.sql
│ │ ├── create_chunks.sql
│ │ ├── create_hypertable.sql
│ │ ├── create_table.sql
│ │ ├── create_table_with.sql
│ │ ├── cursor.sql
│ │ ├── custom_type.sql
│ │ ├── data/
│ │ │ ├── alter.tsv
│ │ │ ├── copy_data.csv
│ │ │ ├── ds1_dev1_1.tsv
│ │ │ ├── onek.data
│ │ │ └── tenk.data
│ │ ├── ddl.sql
│ │ ├── ddl_errors.sql
│ │ ├── ddl_extra.sql
│ │ ├── debug_utils.sql
│ │ ├── delete.sql
│ │ ├── drop_extension.sql
│ │ ├── drop_hypertable.sql
│ │ ├── drop_owned.sql.in
│ │ ├── drop_rename_hypertable.sql
│ │ ├── drop_schema.sql
│ │ ├── dump_meta.sql
│ │ ├── extension_scripts.sql
│ │ ├── generated_as_identity.sql
│ │ ├── grant_hypertable.sql.in
│ │ ├── hash.sql
│ │ ├── histogram_test.sql.in
│ │ ├── include/
│ │ │ ├── agg_bookends_load.sql
│ │ │ ├── agg_bookends_query.sql
│ │ │ ├── append_load.sql
│ │ │ ├── append_query.sql
│ │ │ ├── bgw_launcher_utils.sql
│ │ │ ├── bgw_launcher_utils_cleanup.sql
│ │ │ ├── ddl_ops_1.sql
│ │ │ ├── ddl_ops_2.sql
│ │ │ ├── insert_single.sql
│ │ │ ├── insert_two_partitions.sql
│ │ │ ├── join_load.sql
│ │ │ ├── join_query.sql
│ │ │ ├── plan_expand_hypertable_load.sql
│ │ │ ├── plan_expand_hypertable_query.sql
│ │ │ ├── plan_hashagg_load.sql
│ │ │ ├── plan_hashagg_query.sql
│ │ │ ├── plan_ordered_append_load.sql
│ │ │ ├── plan_ordered_append_query.sql
│ │ │ ├── query_load.sql
│ │ │ ├── query_query.sql
│ │ │ ├── query_result_test_equal.sql
│ │ │ ├── test_utils.sql
│ │ │ ├── ts_merge_load.sql
│ │ │ ├── ts_merge_load_ht.sql
│ │ │ └── ts_merge_query.sql
│ │ ├── index.sql
│ │ ├── information_views.sql
│ │ ├── insert.sql.in
│ │ ├── insert_many.sql
│ │ ├── insert_returning.sql
│ │ ├── insert_returning_old_new.sql
│ │ ├── insert_single.sql
│ │ ├── lateral.sql
│ │ ├── license.sql
│ │ ├── loader/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── timescaledb--0.0.0.sql
│ │ │ ├── timescaledb--mock-1--mock-2.sql
│ │ │ ├── timescaledb--mock-1.sql
│ │ │ ├── timescaledb--mock-2--mock-3.sql
│ │ │ ├── timescaledb--mock-2.sql
│ │ │ ├── timescaledb--mock-3--mock-4.sql
│ │ │ ├── timescaledb--mock-3.sql
│ │ │ ├── timescaledb--mock-4.sql
│ │ │ ├── timescaledb--mock-5--mock-6.sql
│ │ │ ├── timescaledb--mock-5.sql
│ │ │ ├── timescaledb--mock-6.sql
│ │ │ ├── timescaledb--mock-broken--mock-5.sql
│ │ │ ├── timescaledb--mock-broken.sql
│ │ │ ├── timescaledb_osm--mock-1.sql
│ │ │ └── timescaledb_osm.control
│ │ ├── loader.sql.in
│ │ ├── merge.sql
│ │ ├── metadata.sql
│ │ ├── multi_transaction_index.sql
│ │ ├── net.sql
│ │ ├── null_exclusion.sql.in
│ │ ├── parallel.sql.in
│ │ ├── partition.sql
│ │ ├── partition_coercion.sql
│ │ ├── partitioned_hypertable.sql
│ │ ├── partitioning.sql
│ │ ├── partitionwise.sql.in
│ │ ├── pg_dump.sql
│ │ ├── pg_dump_unprivileged.sql
│ │ ├── pg_join.sql
│ │ ├── plain.sql
│ │ ├── plan_expand_hypertable.sql.in
│ │ ├── plan_hashagg.sql.in
│ │ ├── plan_hypertable_inline.sql
│ │ ├── plan_ordered_append.sql.in
│ │ ├── query.sql
│ │ ├── relocate_extension.sql
│ │ ├── reloptions.sql
│ │ ├── repair.sql
│ │ ├── rowsecurity.sql.in
│ │ ├── size_utils.sql
│ │ ├── sort_optimization.sql
│ │ ├── sql_query.sql
│ │ ├── symbol_conflict.sql
│ │ ├── tableam.sql
│ │ ├── tableam_alter.sql
│ │ ├── tableam_alter_defaults.sql
│ │ ├── tablespace.sql
│ │ ├── telemetry.sql
│ │ ├── test_tss_callbacks.sql
│ │ ├── test_utils.sql
│ │ ├── timestamp.sql.in
│ │ ├── triggers.sql
│ │ ├── truncate.sql
│ │ ├── trusted_extension.sql
│ │ ├── ts_merge.sql.in
│ │ ├── update.sql
│ │ ├── updates/
│ │ │ ├── catalog_missing_columns.sql
│ │ │ ├── cleanup.bigint.sql
│ │ │ ├── cleanup.chunk_skipping.sql
│ │ │ ├── cleanup.compression.sql
│ │ │ ├── cleanup.constraints.sql
│ │ │ ├── cleanup.continuous_aggs.v2.sql
│ │ │ ├── cleanup.policies.sql
│ │ │ ├── cleanup.sparse_index.sql
│ │ │ ├── cleanup.timestamp.sql
│ │ │ ├── cleanup.v10.sql
│ │ │ ├── cleanup.v7.sql
│ │ │ ├── cleanup.v8.sql
│ │ │ ├── cleanup.v9.sql
│ │ │ ├── post.catalog.sql
│ │ │ ├── post.chunk_skipping.sql
│ │ │ ├── post.compression.sql
│ │ │ ├── post.continuous_aggs.sql
│ │ │ ├── post.continuous_aggs.v2.sql
│ │ │ ├── post.continuous_aggs.v3.sql
│ │ │ ├── post.functions.sql
│ │ │ ├── post.insert.sql
│ │ │ ├── post.integrity_test.sql
│ │ │ ├── post.pg_upgrade.sql
│ │ │ ├── post.policies.sql
│ │ │ ├── post.repair.hierarchical_cagg.sql
│ │ │ ├── post.repair.sql
│ │ │ ├── post.sequences.sql
│ │ │ ├── post.sparse_index.sql
│ │ │ ├── post.v10.sql
│ │ │ ├── post.v7.sql
│ │ │ ├── post.v8.sql
│ │ │ ├── post.v9.sql
│ │ │ ├── pre.cleanup.sql
│ │ │ ├── pre.smoke.sql
│ │ │ ├── pre.testing.sql
│ │ │ ├── setup.bigint.sql
│ │ │ ├── setup.catalog.sql
│ │ │ ├── setup.check.sql
│ │ │ ├── setup.chunk_skipping.sql
│ │ │ ├── setup.compression.sql
│ │ │ ├── setup.constraints.sql
│ │ │ ├── setup.continuous_aggs.sql
│ │ │ ├── setup.databases.sql
│ │ │ ├── setup.drop_meta.sql
│ │ │ ├── setup.fix_sparse_index_migration.sql
│ │ │ ├── setup.insert_bigint.v1.sql
│ │ │ ├── setup.insert_bigint.v2.sql
│ │ │ ├── setup.insert_timestamp.sql
│ │ │ ├── setup.pg_upgrade.sql
│ │ │ ├── setup.policies.sql
│ │ │ ├── setup.post-downgrade.sql
│ │ │ ├── setup.repair.sql
│ │ │ ├── setup.roles.sql
│ │ │ ├── setup.sparse_index.sql
│ │ │ ├── setup.timestamp.sql
│ │ │ ├── setup.v10.sql
│ │ │ ├── setup.v7.sql
│ │ │ ├── setup.v8.sql
│ │ │ └── setup.v9.sql
│ │ ├── upsert.sql
│ │ ├── util.sql
│ │ ├── utils/
│ │ │ ├── pg_dump_aux_dump.sh
│ │ │ ├── pg_dump_aux_plain_dump.sh
│ │ │ ├── pg_dump_aux_restore.sh
│ │ │ ├── pg_dump_unprivileged.sh
│ │ │ ├── test_fatal_command.sh
│ │ │ ├── testsupport.sql
│ │ │ └── testsupport_init.sql
│ │ ├── uuid.sql
│ │ ├── vacuum.sql
│ │ ├── vacuum_parallel.sql
│ │ └── version.sql
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── adt_tests.c
│ │ ├── bgw/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── log.c
│ │ │ ├── log.h
│ │ │ ├── params.c
│ │ │ ├── params.h
│ │ │ ├── scheduler_mock.c
│ │ │ ├── test_job_refresh.c
│ │ │ ├── test_job_utils.c
│ │ │ ├── timer_mock.c
│ │ │ └── timer_mock.h
│ │ ├── loader/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── config.h
│ │ │ ├── init.c
│ │ │ └── osm_init.c
│ │ ├── metadata.c
│ │ ├── net/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── conn_mock.c
│ │ │ ├── conn_mock.h
│ │ │ ├── test_conn.c
│ │ │ └── test_http.c
│ │ ├── symbol_conflict.c
│ │ ├── telemetry/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── test_privacy.c
│ │ │ └── test_telemetry.c
│ │ ├── test_bmslist_utils.c
│ │ ├── test_compression_settings.c
│ │ ├── test_jsonb_utils.c
│ │ ├── test_scanner.c
│ │ ├── test_time_to_internal.c
│ │ ├── test_time_utils.c
│ │ ├── test_tss_callbacks.c
│ │ ├── test_utils.c
│ │ ├── test_utils.h
│ │ └── test_with_clause_parser.c
│ ├── t/
│ │ ├── 001_replication_telemetry.pl
│ │ └── CMakeLists.txt
│ └── test-defs.cmake
├── timescaledb.control.in
├── tsl/
│ ├── CMakeLists.txt
│ ├── LICENSE-TIMESCALE
│ ├── README.md
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── README.module.md
│ │ ├── bgw_policy/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── compression_api.c
│ │ │ ├── compression_api.h
│ │ │ ├── continuous_aggregate_api.c
│ │ │ ├── continuous_aggregate_api.h
│ │ │ ├── job.c
│ │ │ ├── job.h
│ │ │ ├── job_api.c
│ │ │ ├── job_api.h
│ │ │ ├── policies_v2.c
│ │ │ ├── policies_v2.h
│ │ │ ├── policy_config.c
│ │ │ ├── policy_config.h
│ │ │ ├── policy_utils.c
│ │ │ ├── policy_utils.h
│ │ │ ├── process_hyper_inval_api.c
│ │ │ ├── process_hyper_inval_api.h
│ │ │ ├── reorder_api.c
│ │ │ ├── reorder_api.h
│ │ │ ├── retention_api.c
│ │ │ └── retention_api.h
│ │ ├── build-defs.cmake
│ │ ├── chunk.c
│ │ ├── chunk.h
│ │ ├── chunk_api.c
│ │ ├── chunk_api.h
│ │ ├── chunk_merge.c
│ │ ├── chunk_split.c
│ │ ├── chunkwise_agg.c
│ │ ├── chunkwise_agg.h
│ │ ├── compression/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── algorithms/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── array.c
│ │ │ │ ├── array.h
│ │ │ │ ├── bool_compress.c
│ │ │ │ ├── bool_compress.h
│ │ │ │ ├── datum_serialize.c
│ │ │ │ ├── datum_serialize.h
│ │ │ │ ├── deltadelta.c
│ │ │ │ ├── deltadelta.h
│ │ │ │ ├── deltadelta_impl.c
│ │ │ │ ├── dictionary.c
│ │ │ │ ├── dictionary.h
│ │ │ │ ├── dictionary_hash.h
│ │ │ │ ├── float_utils.h
│ │ │ │ ├── gorilla.c
│ │ │ │ ├── gorilla.h
│ │ │ │ ├── gorilla_impl.c
│ │ │ │ ├── null.c
│ │ │ │ ├── null.h
│ │ │ │ ├── simple8b_rle.h
│ │ │ │ ├── simple8b_rle_bitarray.h
│ │ │ │ ├── simple8b_rle_bitmap.h
│ │ │ │ ├── simple8b_rle_decompress_all.h
│ │ │ │ ├── uuid_compress.c
│ │ │ │ └── uuid_compress.h
│ │ │ ├── api.c
│ │ │ ├── api.h
│ │ │ ├── arrow_c_data_interface.h
│ │ │ ├── batch_metadata_builder.h
│ │ │ ├── batch_metadata_builder_bloom1.c
│ │ │ ├── batch_metadata_builder_minmax.c
│ │ │ ├── batch_metadata_builder_minmax.h
│ │ │ ├── city_combine.h
│ │ │ ├── compression.c
│ │ │ ├── compression.h
│ │ │ ├── compression_dml.c
│ │ │ ├── compression_dml.h
│ │ │ ├── compression_scankey.c
│ │ │ ├── compression_storage.c
│ │ │ ├── compression_storage.h
│ │ │ ├── create.c
│ │ │ ├── create.h
│ │ │ ├── recompress.c
│ │ │ ├── recompress.h
│ │ │ ├── sparse_index_bloom1.h
│ │ │ └── wal_utils.h
│ │ ├── continuous_aggs/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── common.c
│ │ │ ├── common.h
│ │ │ ├── create.c
│ │ │ ├── create.h
│ │ │ ├── finalize.c
│ │ │ ├── finalize.h
│ │ │ ├── insert.c
│ │ │ ├── insert.h
│ │ │ ├── invalidation.c
│ │ │ ├── invalidation.h
│ │ │ ├── invalidation_threshold.c
│ │ │ ├── invalidation_threshold.h
│ │ │ ├── materialize.c
│ │ │ ├── materialize.h
│ │ │ ├── options.c
│ │ │ ├── options.h
│ │ │ ├── planner.c
│ │ │ ├── planner.h
│ │ │ ├── refresh.c
│ │ │ ├── refresh.h
│ │ │ ├── utils.c
│ │ │ └── utils.h
│ │ ├── import/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ts_like_match.c
│ │ │ ├── umash.c
│ │ │ └── umash.h
│ │ ├── init.c
│ │ ├── nodes/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── columnar_index_scan/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── columnar_index_scan.c
│ │ │ │ ├── columnar_index_scan.h
│ │ │ │ └── columnar_index_scan_exec.c
│ │ │ ├── columnar_scan/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── batch_array.c
│ │ │ │ ├── batch_array.h
│ │ │ │ ├── batch_queue.h
│ │ │ │ ├── batch_queue_fifo.c
│ │ │ │ ├── batch_queue_fifo.h
│ │ │ │ ├── batch_queue_heap.c
│ │ │ │ ├── batch_queue_heap.h
│ │ │ │ ├── columnar_scan.c
│ │ │ │ ├── columnar_scan.h
│ │ │ │ ├── compressed_batch.c
│ │ │ │ ├── compressed_batch.h
│ │ │ │ ├── decompress_context.h
│ │ │ │ ├── detoaster.c
│ │ │ │ ├── detoaster.h
│ │ │ │ ├── exec.c
│ │ │ │ ├── exec.h
│ │ │ │ ├── planner.c
│ │ │ │ ├── planner.h
│ │ │ │ ├── pred_text.c
│ │ │ │ ├── pred_text.h
│ │ │ │ ├── pred_vector_array.c
│ │ │ │ ├── pred_vector_const_arithmetic_all.c
│ │ │ │ ├── pred_vector_const_arithmetic_single.c
│ │ │ │ ├── pred_vector_const_arithmetic_type_pair.c
│ │ │ │ ├── qual_pushdown.c
│ │ │ │ ├── qual_pushdown.h
│ │ │ │ ├── vector_dict.h
│ │ │ │ ├── vector_predicates.c
│ │ │ │ ├── vector_predicates.h
│ │ │ │ └── vector_quals.h
│ │ │ ├── gapfill/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── gapfill.h
│ │ │ │ ├── gapfill_exec.c
│ │ │ │ ├── gapfill_functions.c
│ │ │ │ ├── gapfill_functions.h
│ │ │ │ ├── gapfill_internal.h
│ │ │ │ ├── gapfill_plan.c
│ │ │ │ ├── interpolate.c
│ │ │ │ ├── interpolate.h
│ │ │ │ ├── locf.c
│ │ │ │ └── locf.h
│ │ │ ├── skip_scan/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── exec.c
│ │ │ │ ├── planner.c
│ │ │ │ └── skip_scan.h
│ │ │ └── vector_agg/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── exec.c
│ │ │ ├── exec.h
│ │ │ ├── filter_word_iterator.h
│ │ │ ├── function/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── agg_many_vector_helper.c
│ │ │ │ ├── agg_scalar_helper.c
│ │ │ │ ├── agg_vector_validity_helper.c
│ │ │ │ ├── float48_accum_single.c
│ │ │ │ ├── float48_accum_templates.c
│ │ │ │ ├── float48_accum_types.c
│ │ │ │ ├── functions.c
│ │ │ │ ├── functions.h
│ │ │ │ ├── int128_accum_single.c
│ │ │ │ ├── int128_accum_templates.c
│ │ │ │ ├── int24_avg_accum_single.c
│ │ │ │ ├── int24_avg_accum_templates.c
│ │ │ │ ├── int24_sum_single.c
│ │ │ │ ├── int24_sum_templates.c
│ │ │ │ ├── minmax_arithmetic_single.c
│ │ │ │ ├── minmax_arithmetic_types.c
│ │ │ │ ├── minmax_templates.c
│ │ │ │ ├── minmax_text.c
│ │ │ │ ├── sum_float_single.c
│ │ │ │ ├── sum_float_templates.c
│ │ │ │ └── template_helper.h
│ │ │ ├── grouping_policy.h
│ │ │ ├── grouping_policy_batch.c
│ │ │ ├── grouping_policy_hash.c
│ │ │ ├── grouping_policy_hash.h
│ │ │ ├── hashing/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── batch_hashing_params.h
│ │ │ │ ├── hash64.h
│ │ │ │ ├── hash_strategy_common.c
│ │ │ │ ├── hash_strategy_impl.c
│ │ │ │ ├── hash_strategy_impl_single_fixed_key.c
│ │ │ │ ├── hash_strategy_serialized.c
│ │ │ │ ├── hash_strategy_single_fixed_2.c
│ │ │ │ ├── hash_strategy_single_fixed_4.c
│ │ │ │ ├── hash_strategy_single_fixed_8.c
│ │ │ │ ├── hash_strategy_single_text.c
│ │ │ │ ├── hashing_strategy.h
│ │ │ │ ├── template_helper.h
│ │ │ │ └── umash_fingerprint_key.h
│ │ │ ├── plan.c
│ │ │ ├── plan.h
│ │ │ ├── plan_columnar_scan.c
│ │ │ └── vector_slot.h
│ │ ├── planner.c
│ │ ├── planner.h
│ │ ├── process_utility.c
│ │ ├── process_utility.h
│ │ ├── reorder.c
│ │ └── reorder.h
│ └── test/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── expected/
│ │ ├── agg_partials_pushdown.out
│ │ ├── attach_chunk.out
│ │ ├── bgw_custom.out
│ │ ├── bgw_db_scheduler.out
│ │ ├── bgw_db_scheduler_fixed.out
│ │ ├── bgw_job_ddl.out
│ │ ├── bgw_job_stat_history.out
│ │ ├── bgw_job_stat_history_errors.out
│ │ ├── bgw_job_stat_history_errors_permissions.out
│ │ ├── bgw_policy.out
│ │ ├── bgw_reorder_drop_chunks.out
│ │ ├── bgw_scheduler_control.out
│ │ ├── bgw_scheduler_restart.out
│ │ ├── bgw_security.out
│ │ ├── bgw_telemetry.out
│ │ ├── cagg-15.out
│ │ ├── cagg-16.out
│ │ ├── cagg-17.out
│ │ ├── cagg-18.out
│ │ ├── cagg_bgw-15.out
│ │ ├── cagg_bgw-16.out
│ │ ├── cagg_bgw-17.out
│ │ ├── cagg_bgw-18.out
│ │ ├── cagg_bgw_drop_chunks.out
│ │ ├── cagg_ddl-15.out
│ │ ├── cagg_ddl-16.out
│ │ ├── cagg_ddl-17.out
│ │ ├── cagg_ddl-18.out
│ │ ├── cagg_deprecated_bucket_ng.out
│ │ ├── cagg_direct_compress.out
│ │ ├── cagg_drop_chunks.out
│ │ ├── cagg_dump.out
│ │ ├── cagg_errors.out
│ │ ├── cagg_exp_monthly.out
│ │ ├── cagg_exp_next_gen.out
│ │ ├── cagg_exp_origin.out
│ │ ├── cagg_exp_timezone.out
│ │ ├── cagg_invalidation.out
│ │ ├── cagg_invalidation_variable_bucket.out
│ │ ├── cagg_joins.out
│ │ ├── cagg_multi.out
│ │ ├── cagg_on_cagg.out
│ │ ├── cagg_on_cagg_joins.out
│ │ ├── cagg_permissions-15.out
│ │ ├── cagg_permissions-16.out
│ │ ├── cagg_permissions-17.out
│ │ ├── cagg_permissions-18.out
│ │ ├── cagg_planning.out
│ │ ├── cagg_policy.out
│ │ ├── cagg_policy_concurrent.out
│ │ ├── cagg_policy_incremental.out
│ │ ├── cagg_policy_move.out
│ │ ├── cagg_policy_run.out
│ │ ├── cagg_query-15.out
│ │ ├── cagg_query-16.out
│ │ ├── cagg_query-17.out
│ │ ├── cagg_query-18.out
│ │ ├── cagg_query_using_merge-15.out
│ │ ├── cagg_query_using_merge-16.out
│ │ ├── cagg_query_using_merge-17.out
│ │ ├── cagg_query_using_merge-18.out
│ │ ├── cagg_refresh_using_merge.out
│ │ ├── cagg_refresh_using_trigger.out
│ │ ├── cagg_tableam.out
│ │ ├── cagg_union_view-15.out
│ │ ├── cagg_union_view-16.out
│ │ ├── cagg_union_view-17.out
│ │ ├── cagg_union_view-18.out
│ │ ├── cagg_usage-15.out
│ │ ├── cagg_usage-16.out
│ │ ├── cagg_usage-17.out
│ │ ├── cagg_usage-18.out
│ │ ├── cagg_utils.out
│ │ ├── cagg_uuid.out
│ │ ├── cagg_watermark.out
│ │ ├── chunk_api.out
│ │ ├── chunk_column_stats.out
│ │ ├── chunk_merge.out
│ │ ├── chunk_publication_compression.out
│ │ ├── chunk_utils_compression.out
│ │ ├── chunk_utils_internal.out
│ │ ├── columnar_index_scan-15.out
│ │ ├── columnar_index_scan-16.out
│ │ ├── columnar_index_scan-17.out
│ │ ├── columnar_index_scan-18.out
│ │ ├── columnar_scan_cost.out
│ │ ├── columnstore_aliases.out
│ │ ├── compress_auto_sparse_index.out
│ │ ├── compress_batch_size.out
│ │ ├── compress_bgw_reorder_drop_chunks.out
│ │ ├── compress_bitmap_scan.out
│ │ ├── compress_bloom_dml.out
│ │ ├── compress_bloom_hash.out
│ │ ├── compress_bloom_hash_1.out
│ │ ├── compress_bloom_legacy_v1.out
│ │ ├── compress_bloom_sparse-15.out
│ │ ├── compress_bloom_sparse-16.out
│ │ ├── compress_bloom_sparse-17.out
│ │ ├── compress_bloom_sparse-18.out
│ │ ├── compress_bloom_sparse_debug.out
│ │ ├── compress_compbloom_basics.out
│ │ ├── compress_compbloom_config.out
│ │ ├── compress_compbloom_index_add.out
│ │ ├── compress_compbloom_index_drop.out
│ │ ├── compress_compbloom_manual_config.out
│ │ ├── compress_compbloom_upsert.out
│ │ ├── compress_composite_bloom_debug.out
│ │ ├── compress_default.out
│ │ ├── compress_dml_copy.out
│ │ ├── compress_explain.out
│ │ ├── compress_float8_corrupt.out
│ │ ├── compress_qualpushdown_complex.out
│ │ ├── compress_qualpushdown_saop.out
│ │ ├── compress_sort_transform.out
│ │ ├── compress_sparse_config.out
│ │ ├── compress_unordered_sort.out
│ │ ├── compressed_collation.out
│ │ ├── compressed_detoaster.out
│ │ ├── compression.out
│ │ ├── compression_algos.out
│ │ ├── compression_allocation.out
│ │ ├── compression_bgw.out
│ │ ├── compression_bool_vectorized.out
│ │ ├── compression_bools.out
│ │ ├── compression_conflicts.out
│ │ ├── compression_constraints.out
│ │ ├── compression_create_compressed_table.out
│ │ ├── compression_ddl.out
│ │ ├── compression_defaults.out
│ │ ├── compression_delete_bitmapscan-15.out
│ │ ├── compression_delete_bitmapscan-16.out
│ │ ├── compression_delete_bitmapscan-17.out
│ │ ├── compression_delete_bitmapscan-18.out
│ │ ├── compression_errors.out
│ │ ├── compression_fks.out
│ │ ├── compression_hypertable.out
│ │ ├── compression_indexcreate.out
│ │ ├── compression_indexscan.out
│ │ ├── compression_insert.out
│ │ ├── compression_merge.out
│ │ ├── compression_null_dump_restore.out
│ │ ├── compression_nulls_and_defaults.out
│ │ ├── compression_permissions-15.out
│ │ ├── compression_permissions-16.out
│ │ ├── compression_permissions-17.out
│ │ ├── compression_permissions-18.out
│ │ ├── compression_policy.out
│ │ ├── compression_qualpushdown.out
│ │ ├── compression_segment_meta.out
│ │ ├── compression_sequence_num_removal.out
│ │ ├── compression_settings.out
│ │ ├── compression_sorted_merge.out
│ │ ├── compression_sorted_merge_columns.out
│ │ ├── compression_sorted_merge_distinct.out
│ │ ├── compression_sorted_merge_filter.out
│ │ ├── compression_sorted_merge_unordered.out
│ │ ├── compression_trigger.out
│ │ ├── compression_update_delete-15.out
│ │ ├── compression_update_delete-16.out
│ │ ├── compression_update_delete-17.out
│ │ ├── compression_update_delete-18.out
│ │ ├── compression_uuid.out
│ │ ├── create_table_with.out
│ │ ├── decompress_index.out
│ │ ├── decompress_memory.out
│ │ ├── decompress_vector_qual.out
│ │ ├── detach_chunk.out
│ │ ├── direct_compress_copy.out
│ │ ├── direct_compress_insert.out
│ │ ├── feature_flags.out
│ │ ├── fixed_schedules.out
│ │ ├── foreign_keys_test-15.out
│ │ ├── foreign_keys_test-16.out
│ │ ├── foreign_keys_test-17.out
│ │ ├── foreign_keys_test-18.out
│ │ ├── hypertable_generalization.out
│ │ ├── information_view_chunk_count.out
│ │ ├── insert_memory_usage.out
│ │ ├── jit.out
│ │ ├── license_tsl.out
│ │ ├── merge_append_partially_compressed.out
│ │ ├── merge_chunks.out
│ │ ├── merge_compress.out
│ │ ├── modify_exclusion-15.out
│ │ ├── modify_exclusion-16.out
│ │ ├── modify_exclusion-17.out
│ │ ├── modify_exclusion-18.out
│ │ ├── move.out
│ │ ├── ordered_append-15.out
│ │ ├── ordered_append-16.out
│ │ ├── ordered_append-17.out
│ │ ├── ordered_append-18.out
│ │ ├── plan_skip_scan-15.out
│ │ ├── plan_skip_scan-16.out
│ │ ├── plan_skip_scan-17.out
│ │ ├── plan_skip_scan-18.out
│ │ ├── plan_skip_scan_dagg-15.out
│ │ ├── plan_skip_scan_dagg-16.out
│ │ ├── plan_skip_scan_dagg-17.out
│ │ ├── plan_skip_scan_dagg-18.out
│ │ ├── plan_skip_scan_dagg.out
│ │ ├── plan_skip_scan_notnull.out
│ │ ├── policy_generalization.out
│ │ ├── privilege_maintain.out
│ │ ├── read_only.out
│ │ ├── rebuild_columnstore_tests.out
│ │ ├── recompress_chunk_segmentwise.out
│ │ ├── recompression_integrity_tests.out
│ │ ├── recompression_integrity_unordered.out
│ │ ├── reorder.out
│ │ ├── scheduler_fixed.out
│ │ ├── size_utils_tsl.out
│ │ ├── skip_scan.out
│ │ ├── skip_scan_dagg.out
│ │ ├── split_chunk.out
│ │ ├── telemetry_stats.out
│ │ ├── transparent_decompression-15.out
│ │ ├── transparent_decompression-16.out
│ │ ├── transparent_decompression-17.out
│ │ ├── transparent_decompression-18.out
│ │ ├── transparent_decompression_join_index.out
│ │ ├── transparent_decompression_ordered_index-15.out
│ │ ├── transparent_decompression_ordered_index-16.out
│ │ ├── transparent_decompression_ordered_index-17.out
│ │ ├── transparent_decompression_ordered_index-18.out
│ │ ├── transparent_decompression_queries-15.out
│ │ ├── transparent_decompression_queries-16.out
│ │ ├── transparent_decompression_queries-17.out
│ │ ├── transparent_decompression_queries-18.out
│ │ ├── tsl_tables.out
│ │ ├── uncompressed_size.out
│ │ ├── unlogged.out
│ │ ├── uuid_policies.out
│ │ ├── vacuum.out
│ │ ├── vector_agg_byte.out
│ │ ├── vector_agg_default.out
│ │ ├── vector_agg_expr.out
│ │ ├── vector_agg_filter.out
│ │ ├── vector_agg_functions.out
│ │ ├── vector_agg_groupagg.out
│ │ ├── vector_agg_grouping.out
│ │ ├── vector_agg_memory.out
│ │ ├── vector_agg_modify_hypertable.out
│ │ ├── vector_agg_param.out
│ │ ├── vector_agg_planning-15.out
│ │ ├── vector_agg_planning-16.out
│ │ ├── vector_agg_planning-17.out
│ │ ├── vector_agg_planning-18.out
│ │ ├── vector_agg_segmentby.out
│ │ ├── vector_agg_text.out
│ │ ├── vector_agg_uuid.out
│ │ ├── vector_qual_default.out
│ │ └── vectorized_aggregation.out
│ ├── fuzzing/
│ │ └── compression/
│ │ ├── array-bool/
│ │ │ └── empty
│ │ ├── array-text/
│ │ │ ├── 01accf1c403c681e8ccc10349c97a28ef2afbdd3
│ │ │ ├── 0d699bc41031c7525fa65c0ab267f34f608eef6a
│ │ │ ├── 0dbf553220bcd27478f10999d679d564a11632a1
│ │ │ ├── 0e356ba505631fbf715758bed27d503f8b260e3a
│ │ │ ├── 0f873e20f9cc905c940207795842a8f89598bb78
│ │ │ ├── 13f402104e20e5a38290bdc5fec85a46ae36bd73
│ │ │ ├── 143a44ebe20d00b1c6bdf12487758974467b504f
│ │ │ ├── 1641a06baa3defcf9a1b704cb94ea3387f40f2ad
│ │ │ ├── 2123898ce1d45564480b9ff51cf391b87dcc5a07
│ │ │ ├── 22e70b0d023eac54b28a067aac0ab8e4eb75887b
│ │ │ ├── 3862930f38ef2ac7387e3e47191234094aee7c0a
│ │ │ ├── 3f82cf837a5f3fae26f7cbb25ed3d903eed71687
│ │ │ ├── 428361124252a8847f1182747c936696bc43543b
│ │ │ ├── 4cd1b3841a01a3abc7f1cec6325130fd109dee84
│ │ │ ├── 513033f491e3f9ae4cf779c239158c9063f2af4d
│ │ │ ├── 58420143cbcd2fe40fd1409948b6a78d3bf14a32
│ │ │ ├── 592e2bafa4637d9786e9d14c5f1ca512e0076940
│ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f
│ │ │ ├── 5d1be7e9dda1ee8896be5b7e34a85ee16452a7b4
│ │ │ ├── 6a126964d691ada7de1d25c976c4e7b481858665
│ │ │ ├── 6c0295b5f6b25ca492bafd609ba5c9494785651f
│ │ │ ├── 76023b236d960f02d7fb41c7a1fa4d28dafa7c2d
│ │ │ ├── 9159cb8bcee7fcb95582f140960cdae72788d326
│ │ │ ├── 98e49024fd7e15859ec345ee83a01fec0656ad94
│ │ │ ├── a24f8ad32bdadaee87b839765599bc63dfcbd62a
│ │ │ ├── a3d453f14af5370aae60089101d659fb12c3aff4
│ │ │ ├── a42c6cf1de3abfdea9b95f34687cbbe92b9a7383
│ │ │ ├── array1
│ │ │ ├── b6f695dd09d681d144c71e52ebe565a2567a23f9
│ │ │ ├── b71fa13e7c2fee50d39a87fc927c31256f8c4af3
│ │ │ ├── bc6960f7ed1b4b216c5cbc2721ea5136ffb80aae
│ │ │ ├── c13eaced24e2a5039d3fbeef655fc3cf827a2be7
│ │ │ ├── c2588a11e70caad0b9c91272f81d48348b94f938
│ │ │ ├── c88b988789743b6aad8ef68278fc383847a37ddf
│ │ │ ├── crash-1ac67d1b8ebedeb93c515b5244f6e60613c1af0b
│ │ │ ├── crash-b6cfa8632a8bf28e90198ec167f3f63258880f77
│ │ │ ├── d57ef126bce1cf2bb5a63addf172a9cf9bedb7da
│ │ │ ├── ebddebf24b791e82c4ac007197581ec4fa2886ee
│ │ │ ├── ec536d9d30f08137531d4bfe676a545d897ae98b
│ │ │ ├── ede4129ca9c4d8dbd649aa6f2d5c0038e1537716
│ │ │ ├── ef519c31ea5d415293021b0ca83dd655701d2c13
│ │ │ ├── f2f014ef49bdaf4ff29d4a7116feff81e7015283
│ │ │ ├── f41f46df995dd4c7690f27978152ead25ccd5c75
│ │ │ ├── length-saw
│ │ │ └── with-nulls
│ │ ├── array-uuid/
│ │ │ └── empty
│ │ ├── bool-bool/
│ │ │ ├── 0187ae825e656c01623dd6d982ab50d490c0c417
│ │ │ ├── 03fa95c77415b6c8691a0dc1d13e195ccd1b897c
│ │ │ ├── 050a6450bd7d5dfb7504532cee17be1b973174bc
│ │ │ ├── 0699e368418710fc791c8301af3df8895bcfb10e
│ │ │ ├── 0bcdbd74d4c3526b71a46282bcfecd7554e70cd9
│ │ │ ├── 11f4de6b8b45cf8051b1d17fa4cde9ad935cea41
│ │ │ ├── 168bf1eed49508508684c0f0f00b3bca3ed1de9c
│ │ │ ├── 1957b4d9af53d57c71ce03fe726f3dd55cc5e495
│ │ │ ├── 1f3a7fa8e785a9db380099f29b52ef4598eade72
│ │ │ ├── 34a3bedc4867e71ae61074746c225378159130b2
│ │ │ ├── 3542b3da299b536e44e55dca08549bb5ae401461
│ │ │ ├── 3e8a424e6e48bde8488851a191893d2aab7fa962
│ │ │ ├── 50f65669e0378f3764acc65e9ec8664db7b77a63
│ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f
│ │ │ ├── 5e1dbb627121d05e51a038be3425414bc3d463f7
│ │ │ ├── 6326b8e4ed85d653f9a043fca18c638dd4df6d43
│ │ │ ├── 662b18f40ac12457327499dbe84ad32e1a995540
│ │ │ ├── 8dc00598417d4eb788a77ac6ccef3cb484905d8b
│ │ │ ├── 96ddb4dc6bf60a475735388b8da21dc601275c4c
│ │ │ ├── a26c1d3763601a41dc1e36869238eb2986cd1972
│ │ │ ├── ac6f615983f527a43aff8bbf3edebef8cc881c33
│ │ │ ├── e287fdeb24184e2c2f8e162ba90b1fe2dec90dcc
│ │ │ └── empty
│ │ ├── deltadelta-int8/
│ │ │ ├── 000226b14bbb5e685204e626484dba42d8996992
│ │ │ ├── 0005721f2bceba264a5cd791cf6a1e36aaed780e
│ │ │ ├── 001edd3c9db1c2fe30c9f9d446a0b42b58569ddd
│ │ │ ├── 002007b1d394a27c4332710e3af9c00dae04aac5
│ │ │ ├── 0043fbabf9a4d188fb2b4654914a2da5db3d7485
│ │ │ ├── 005c46a47f8bf11c68af4134ce6eb0c22db620ee
│ │ │ ├── 00617fee7e086d32d20dd281ddafa8a726646744
│ │ │ ├── 00742699a5aad2ead456e90d61c5f9faba0293a6
│ │ │ ├── 0076eef47ad215c435ecdb57e2494af0f55fd81a
│ │ │ ├── 008110c25d8a3a8a8170b7d3ba621cf06d4853c0
│ │ │ ├── 0081a9f0f585a9b67b2103220cc60d36e2dbbd03
│ │ │ ├── 0088c8e6e015602ba5e40a90986019b4ad512f65
│ │ │ ├── 009ffc43f38a56a761e7b83b0f2c8bd026a563bb
│ │ │ ├── 00a2eb7a7e3fdc3bfcac0045554586d5fb5502f3
│ │ │ ├── 00d5f2c9add73bceda87ef3acd392122d8adb3e4
│ │ │ ├── 00f85251b4c47fb81acc131a198a1bc98ca779a1
│ │ │ ├── 015c684cdef94cdf964d0800d325c6849d014324
│ │ │ ├── 016dd5961834fbbcc799ffa91004247e868e2781
│ │ │ ├── 01e3938a0dcce30f75133d8ad80220d2d613f008
│ │ │ ├── 01ec3391b4d39420ac8414c675fc1269955e3c57
│ │ │ ├── 02484d2db80b46ff0ae20eafddb5dc45a53140b6
│ │ │ ├── 0270028dc334db0bd34fca6e6abbcb9ecdfac57a
│ │ │ ├── 029aaf2ff41035a0bf05a6f97fb68d6a62e32974
│ │ │ ├── 02cabee9534673ed1f5b4ce6dc957952166cbe1b
│ │ │ ├── 02d459bcf9a9e071c18db18c808245c16833ca09
│ │ │ ├── 02eb701fa0ab34abda28be9fbba19582790432ad
│ │ │ ├── 03607062b7b4b60f979bdd121981128b7002a561
│ │ │ ├── 039c250391321f58181a4cf10a804f6e529eb57e
│ │ │ ├── 03f6be1bf6529592f3e57d28e1e8ad46953f7c51
│ │ │ ├── 04096d38044e4074f2b0541b455ed0ecc9a059fe
│ │ │ ├── 041ef2e92911ab4633fbc16bf5457fe25d723ae8
│ │ │ ├── 044d5359fc697f71c9f1cd7ab773f025f38ccae6
│ │ │ ├── 0459cc74fd756782cfb3c84c956abf1df632d453
│ │ │ ├── 04826e1568e927a9de9d23e013fac8f4704d230e
│ │ │ ├── 048b8752a6490e051d3b4a9ac3c6279953cc8279
│ │ │ ├── 04bdfef2ca95152c9a0525bee938b2ed74c316e9
│ │ │ ├── 04f3abff8e30697834380a3c2f0e238cab099e2b
│ │ │ ├── 05f24e5eb37b55471dd9eae8c4194b4f65e25067
│ │ │ ├── 05fb4342fad4ba26e0e2d21742bc65fe70cf3ff5
│ │ │ ├── 06033906c750496425efa6b85c31caa8b7781f34
│ │ │ ├── 063e248ade3d6d40b6cf4c96ef4ff0164c099f7c
│ │ │ ├── 06449ffa405bcd2cf8652e4fc82f93fb701f053c
│ │ │ ├── 0663f93bee6cc22be2a74ffd2719d6296e74334d
│ │ │ ├── 0688f3c387bbd17d82c2b3f7dadf3042f768887b
│ │ │ ├── 06905c0515b1cc8f21c39c69adf954607aa1ef97
│ │ │ ├── 06f2e370b0e257bc75726698ff4b05d31fbc82ca
│ │ │ ├── 070b4ae2222399e9432f58f67029a7794526a992
│ │ │ ├── 0720f498d7a2de389fee84f09d7d5f8decfa76bd
│ │ │ ├── 0761d21c1bed0dc463b92f5c114d170293f17735
│ │ │ ├── 078dd3d695a19d89d78ca5ce6cb5ad394b72800f
│ │ │ ├── 07946f273216738b476a364fedf5eaae34c08ecc
│ │ │ ├── 07c4739c2e79966c2678d5189115d31469f6cfa6
│ │ │ ├── 07d34e1cb03d70ba8e83a11c1cddad7fcb083855
│ │ │ ├── 07ddb4cff1428ceb1fc0edb6dc8ad7bfadcb8233
│ │ │ ├── 07e310a31ea039330c339d6a5140c067dee5b44f
│ │ │ ├── 081e0108c111c717c98f33c9af02b536eaf50349
│ │ │ ├── 083014d7487b279086470af22a3716c7bfc00630
│ │ │ ├── 08e95e19e9ff57fc53b0959896df624e02fdf75f
│ │ │ ├── 090a8933ed1391740a094bb7a19e913db10ca6c9
│ │ │ ├── 094f5fdd281c4a9d67f1fac1179708a0753071b3
│ │ │ ├── 09808f60497dfc988e43f40c8dcfc864b46e4c23
│ │ │ ├── 09c504d74d0697ff4bb25681dbd5f9bbe603154b
│ │ │ ├── 0a1054b55fab3e07cb841de17cf76a14937f2d49
│ │ │ ├── 0a4e527b4885a1a89b1f7b899282c09023184075
│ │ │ ├── 0a606eef286c1a80546c24253468898684b711f4
│ │ │ ├── 0aa2ce83cc47ebd7457452ee44eec44ef5ae8945
│ │ │ ├── 0b4693f634921fc1aff558120380550054c7dc79
│ │ │ ├── 0b4c9c405bc395ee2064a3790820618c62af22eb
│ │ │ ├── 0b8493a4edb47558fa3dfa9cb3b3ca0d3af16971
│ │ │ ├── 0b9dbabf75544aeaeb4301aa3e3b367681eee4bd
│ │ │ ├── 0bb58d3d928b75d5bbbb534d8fbcc02e7cec61b7
│ │ │ ├── 0c1bf5358361ad43e3718d79b16153c848257dbc
│ │ │ ├── 0c2cf9c105698a12da9f7c1de00897a6039adbd9
│ │ │ ├── 0ceae4f10fc61a7f91b69b3481882a5ce5e57c38
│ │ │ ├── 0d48d19aef5682445e6b8724da523f6ad334d5c8
│ │ │ ├── 0d87d016d0e51c749adb95b1192d3cbdacd8ff96
│ │ │ ├── 0da96dc1d241308ec033b9628a519fda371defc6
│ │ │ ├── 0dc7fd92992bdf76b8a7edf1819ebfbb1a7b6382
│ │ │ ├── 0e039859b8723df22cb8f4cf0831efd10f7df2d3
│ │ │ ├── 0e6947636358abbcaf4704335de9ce6bf1b3bb37
│ │ │ ├── 0ea3cbbe4df13a9c00137579b048da07ac4620da
│ │ │ ├── 0f069ba7b764acb518096d549c272968ef139baf
│ │ │ ├── 0f24070fee9fd323f32004b8a19e19e4899669c5
│ │ │ ├── 0f5b129fcbfde4a2b74de973536594536a702b17
│ │ │ ├── 0f6b55a491e86c632769c11bcd0e401e8d736c17
│ │ │ ├── 0fbc8b98efd055002d0a9b1f1585c16e1bcafbf5
│ │ │ ├── 0fe403cf9e514edaba7624592e57dedd44d8f974
│ │ │ ├── 10cb10b75109d9f5a51df8cc25e5922ab9304486
│ │ │ ├── 1234967d87289b5476e82e03a5fdaddfb2d89f5d
│ │ │ ├── 12429bc13e7a80e8566e6355325baba779106594
│ │ │ ├── 12af146da39094e9e46dd07e119ef8104840a0d8
│ │ │ ├── 13197c60bcdca232644653ced7bea29b141dc3d0
│ │ │ ├── 133c2effbe5ad58905ac393dfdd16ca1fa2c7eb7
│ │ │ ├── 134b9385f7a8269fa53a25d14207c72ec1088f81
│ │ │ ├── 13f9787e9557c5d37424143c6bb87a34a91dc233
│ │ │ ├── 14259b5a7c8b7095dd40e602ce8fdc4d208c00a3
│ │ │ ├── 14964c2e5d120c7acf5fca81233b916b3b3016fc
│ │ │ ├── 1573858c8eb6d027bbdaa303eaf5d57c978b3465
│ │ │ ├── 1669aab7adfb7e65162eda52612d49e0f252d270
│ │ │ ├── 1697392b1fb9f4b49c80030d6b3017d72d4ede4c
│ │ │ ├── 176236dd152ebf4fa259212b539fbc49d9dd1799
│ │ │ ├── 17896100eabd31d729b38a703da3f31e57fdf4b8
│ │ │ ├── 17af15070570b101ef4c57ade5ad766e4924aabc
│ │ │ ├── 17e00a1df1c9b937d50a5a890562587f1196b646
│ │ │ ├── 18c4bd81a648ee9d7db0dc68c4615a22ffd4cd72
│ │ │ ├── 19308702d029cceef2220db8c57fbae88ef17f44
│ │ │ ├── 1937ed2d8de2d8577fc48a407ded56d272e40096
│ │ │ ├── 1a8f7f5dd5f42e1ae89b55a47e1fa45cab816e62
│ │ │ ├── 1b110f70f70d47d01b6f55110d5719e3dd19d893
│ │ │ ├── 1b1f4b7a41866daf1fd4f2aaeb6aaecea3bea926
│ │ │ ├── 1b2d9c2d949b251a2ca3eecd2d8f29cf96334611
│ │ │ ├── 1b53e293c41a7b6bd041098fa91aab2e5ef4ab16
│ │ │ ├── 1ba5cd685ecccdac9caa92377346315ce6d6c293
│ │ │ ├── 1bc1d2f6da12c6cd0eaab779fe69b872c1b427b0
│ │ │ ├── 1c66535a7d66622db6aac4ee1df14b1db1369b41
│ │ │ ├── 1d1ae6b78379f1aea79abee08338cd4762ebab3c
│ │ │ ├── 1d2e73934349bc80d13e3c1581eb915d7e658666
│ │ │ ├── 1d7c3373fc113bbe6f4eb12600fddde935ec69bb
│ │ │ ├── 1dbe1fffa3a5edddbc95ecf5e496236386b1b928
│ │ │ ├── 1e783d97191cec0a7095c81805cc5de7a5d1355c
│ │ │ ├── 1ea298a60f91377c5e8852dab8a10cdbc66a7702
│ │ │ ├── 1fce78dca10eecad74006cda5b0619c1530a90dd
│ │ │ ├── 21d3312341b1626ba6bfd29568e2ef50c60538d8
│ │ │ ├── 2263ed26b47e2066384bab5c098b26f13faf5ee1
│ │ │ ├── 2344a89366d1eee87d8bb3e54b620b02c68abc96
│ │ │ ├── 237df2b50d5437a256391b6efde8d6ced3a006e4
│ │ │ ├── 2453ff3b056ab95e17a1d7dd99c82defc2b597d0
│ │ │ ├── 2477ff336402e5de52445520eb15e8704343ed00
│ │ │ ├── 24b6413c3745f8b7b2f729bae89ee399b0641beb
│ │ │ ├── 24e6190084fd40e44ff278c02fb4e43c8cd29836
│ │ │ ├── 269f91653f9bbac218dfe0884c8c43ebbeccbcaf
│ │ │ ├── 2723b24f11843b73282f94931b3f3ed696963ee2
│ │ │ ├── 275315c1e29d2d7fb15810a3d66953d5d68d8d62
│ │ │ ├── 2b20144d0f616bd4695c236e15ebaded83f5b598
│ │ │ ├── 2b40483bd9238d7036d56fa6dcd735fc52fbe195
│ │ │ ├── 2c6bd6e0bb02871d00ea542c1702fd81a0a86d21
│ │ │ ├── 2cbd4f4b339c999597a58fc5af53e4bfffc2b78c
│ │ │ ├── 2cf2b0ae879c5a9120263a5ecb793425def7a8b0
│ │ │ ├── 2d9c2be54686acf5d5b2755384dd52ff4d19ee02
│ │ │ ├── 2dc8f286c1ea4f3dbdabc059f3a1243080cd62f8
│ │ │ ├── 2e18a24e3c46167c0f3d368b75760abdf8fac401
│ │ │ ├── 307ea4e260815f6a9e8b129307a38452976b692b
│ │ │ ├── 311f3dceb49012061d4b72a831e347133c92bcdb
│ │ │ ├── 313644ec39dc8694c470ab757ba111838ee53b1c
│ │ │ ├── 31ae44f31abd373f0ff481806d3157f85ccae710
│ │ │ ├── 324102241d71e8c8a37d543dea5cb99ac7ae7c8d
│ │ │ ├── 324ec9cb002617a880a56eb07f49657fc4483505
│ │ │ ├── 3493fcabf43e379422d876938aefff76d611ab95
│ │ │ ├── 349cbb7c3e3812603d102a39ed82b0bdac61410c
│ │ │ ├── 350699ee4c96235151a3b75fdf0d54d482f71218
│ │ │ ├── 3625c8ad48799bd41b23ff6bc8a3c487702b3f00
│ │ │ ├── 36c0f8e79ee0a971f51204923c2f06cef5ae86e7
│ │ │ ├── 39764a75e150887f1b3d6c15ff2883112bce78d0
│ │ │ ├── 39d95b1ac8f9a92f57162e173e809bfd24dc38d8
│ │ │ ├── 3a2fa560af8026b2342777bf91ccd155a71af6d4
│ │ │ ├── 3c3b7a908a6b8303cc2ced4cdc2c548cedbb760f
│ │ │ ├── 3c81c456a004ec4ccd7c80fe2eea2f0ef7ab7473
│ │ │ ├── 3cd038948d733c0b49ba6c78452cbd03186c69bb
│ │ │ ├── 3d657fe063550eb5f8d8ef40b55590b321aa20f4
│ │ │ ├── 3da8fb2b32486ad7c716c76458668a6acfdf5f0e
│ │ │ ├── 3e30f3f570dfee8350064c138494bd670d2fc795
│ │ │ ├── 3e8153e9034c230c77afe71a541d4f85ef1aefb8
│ │ │ ├── 3f8b816713d67daeb3c9a6dfd6a1fa9e651c96e7
│ │ │ ├── 40c238a192c1a36484f359cbf87e4a3c4cea8bd3
│ │ │ ├── 416d8c8f3c970b609e07c225a93db937ab8fd7a0
│ │ │ ├── 41ebd242b789740786e3ece0d4117dcadbf6a37e
│ │ │ ├── 421c2d863ad0ae5d339f9a18293a38bc4b24d0fb
│ │ │ ├── 444dc80536559d07351b2d3616cb40c3c1a9dcbd
│ │ │ ├── 445df2c7e19680732514c77c9b4e8554dfd58a69
│ │ │ ├── 4815d6ffa9e96eac844fc31289df2d00932c95c1
│ │ │ ├── 487e4c6fb01756b58d769ca4a0015b5cb1017b7b
│ │ │ ├── 48843aedaa180a1bb3b5106e8b55352276d0c586
│ │ │ ├── 492d805d4c8fdbc70e597d8d6e601238a3be324e
│ │ │ ├── 4b81c48b8d565a4dcecfe7d694ea47a69deec3fa
│ │ │ ├── 4c06c923331191aff0ec6cd7c19536e311be6d59
│ │ │ ├── 4c5b635d4e0e7685b5b3b3fe67fe1ead7aa8cb87
│ │ │ ├── 4c92c44bdf911e127f98b1f741a9429a416404b7
│ │ │ ├── 4cd9c9085b3974be6114e9c96b385fd5928169b3
│ │ │ ├── 4d56d33e33ce1f0d3a6e3e5582bd28665e3fa65a
│ │ │ ├── 4d80df18bb50e97b97b10fe7ff50065944df7973
│ │ │ ├── 4e22436534f7ddda6023610945ad3fb84b08d5f2
│ │ │ ├── 4ed47503b5d6a6a97de63384162805adf4cc1a58
│ │ │ ├── 4ed96db01a061c6cf9f3236f9254989d12f65315
│ │ │ ├── 527d035f3b7718f9a3fc2ea09e79803d5169fc0a
│ │ │ ├── 53157896277c12aaf92e63bd6eba876823c53644
│ │ │ ├── 5369e602a569f72fb2398c3dfa65806f870a4330
│ │ │ ├── 54acea7c142b7d17006615be6d40591bfdf6280c
│ │ │ ├── 54f997c30666b3519baabf15d055a8468795076a
│ │ │ ├── 55eb87d57c0f0f7fd3ea9d63c1eac58ee00199dd
│ │ │ ├── 5958b905c02f53a22cdfabb51cd2823d13650241
│ │ │ ├── 5af121503212bc786fef31e2e3a51ce2031b1b84
│ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f
│ │ │ ├── 5de1bb11c456a3b400a4fd2b3c419ca129f099c5
│ │ │ ├── 62bad82a78a7694bf9f72575622d90eae3c1cba8
│ │ │ ├── 62dc4d708eb260cf29f94e5a9c65f89f6dd3fa43
│ │ │ ├── 640126de1ef49506804ad2af892b39fe0af37aa6
│ │ │ ├── 6565683c7f1f07d7cfa27c84426e1c386425a931
│ │ │ ├── 6629278a4f5b5143bac025355a79df241d0d32db
│ │ │ ├── 673be270a1d5f97382728953dcbc1a749b8191fb
│ │ │ ├── 67871c4d2cfe8eb0807cc8fc7c2b423d2c4be5d2
│ │ │ ├── 6bd8cd832b15cf0d5e3eea310d97b737faf8ee43
│ │ │ ├── 6c7b212dd6e420cc250464ab9517d2168e6c5edf
│ │ │ ├── 6ddcfcba54e660ad5fca1bfc91670823cb71f1d2
│ │ │ ├── 6f0935dd5c60572c57d7bb0f5896da83cf4657a9
│ │ │ ├── 6f21d6eb06123ef2835d168b44b7574c39b06fc6
│ │ │ ├── 6fb7b33d08c092caa76e11decfc4e9431ace8d32
│ │ │ ├── 756e189c2c25c94854325a4c948a6df1181c1c13
│ │ │ ├── 75deb85a67a4c6b8a087733ba3a0cd938e63a41f
│ │ │ ├── 79b7cb1655367697a866f041f8d7bca70b87ea5f
│ │ │ ├── 7ca47c2e3eecc2acf0c7a0655af7c51546bde6d5
│ │ │ ├── 7d197122c22bef9423f360691dcb78dedd2c0c99
│ │ │ ├── 7d1aebf64a30affed22e9f885a0af617ef5bd572
│ │ │ ├── 7d2b0e79c750d7a3fa52f27aefb85a165b4b7133
│ │ │ ├── 7dd097f27180debdc68621b74e84cc448102d92e
│ │ │ ├── 7e38e6f71b4a050f3fecdc08d51e3d1418f3fb0f
│ │ │ ├── 80117ddd69955929af3ca5f981ba98a48012260b
│ │ │ ├── 87446dfd5404badf9eddff3d071218025166ea84
│ │ │ ├── 8a7f547660cec12461032cfda4d1caf55bb07dec
│ │ │ ├── 8d50f8e07c30c3521ccf5f399e3667d6da593ddf
│ │ │ ├── 93012fe6454ae8c2c9049e784fdc31b444f31f69
│ │ │ ├── 94e9fdedcab956cafdb52ad634cf54487d840e3e
│ │ │ ├── 96f00344ba748469ee00ffd0c2d3191a7978b644
│ │ │ ├── 9842926af7ca0a8cca12604f945414f07b01e13d
│ │ │ ├── 99d7208df7ea6e626fa9c888e582f7c5432b243b
│ │ │ ├── 9ff89f6c4cc178a314ac0b40ad0d823748491bd0
│ │ │ ├── a42c6cf1de3abfdea9b95f34687cbbe92b9a7383
│ │ │ ├── a58d0fc75ead12a9c29063a1d0db8fb80f395c31
│ │ │ ├── a7e9dc04db4e4b11302187e182dd349b563494df
│ │ │ ├── ac2f350f4fa2ff262cb01d9d97974df5a2dff0be
│ │ │ ├── af11ea42436ef96d9d8ffe0387fb5782ddbb348a
│ │ │ ├── b2cf8461474181d99198df332c5dca521c64de2c
│ │ │ ├── b461b7d5a152d72fe425d130a6181ea7b0b05f12
│ │ │ ├── b4f3a185d32f5ebe2b85bd678bba599d76f70a7a
│ │ │ ├── ba00242b72f56b5d07786b7af10b9749a59a15ba
│ │ │ ├── ba3d618f85780af05ad8e9ae2069603006ae9bbb
│ │ │ ├── bcd8a144287c2ad0ca47a66cc3606aed7192d5ce
│ │ │ ├── bde3b51ae38da58047d42a41371a217827d31f75
│ │ │ ├── c0df86d6b43ad023227f4618429d963fdc360e44
│ │ │ ├── c20513576febd09086017080392adbf18f0aabe7
│ │ │ ├── c39a1c24b6aabfd2656ac84c5c8fed16eede528e
│ │ │ ├── c3b2bc6acbc107d0e9403e61661887935b73ce0c
│ │ │ ├── c3e25a84177c1317713c0fa1ddcbaa90a7a9f1cc
│ │ │ ├── c40202c42aa92830d9d7d3f2157a4fb0b53fbf11
│ │ │ ├── c67117cd08df138c69184b8717979f297eb3fced
│ │ │ ├── c851a06d9dc94b4589a7dae6c527b747e1e474f6
│ │ │ ├── ce6480edc36e784863ce3125c7dbcf95f9cd20ca
│ │ │ ├── d3130220f9b81ee04247af415825ddd82fdef93e
│ │ │ ├── ddec96652840748881a1e8894c92f7fc3ada74be
│ │ │ ├── debbb602a0332ccb345fb31c8c26db33eb8755d6
│ │ │ ├── defd2d06b29a1f7458ae0ee09a4d8551a7e13aec
│ │ │ ├── e5137c545032f0c8c5ae6cabc5bbc2ede6370b06
│ │ │ ├── ed0f301384e5530814f95de4c53ac7e7301d35a5
│ │ │ ├── f2048a5d9e7244812355acd3308fe9758b84ef6a
│ │ │ ├── f2076dbdb823721d4d275ee0d63c625d4e07d6cd
│ │ │ ├── f3543673cd7f732b6680878a993b33199623cf62
│ │ │ ├── f39742a8bb9ccb0675a05436d4bdb86da25a9d2b
│ │ │ ├── f8515665b1a6e5bd47075c62b27c76d612e45d8b
│ │ │ └── fa0efb79a43b42c1f4ecfaed81dab190b9546bb8
│ │ ├── dictionary-bool/
│ │ │ └── empty
│ │ ├── dictionary-text/
│ │ │ ├── 00e8dce1331978dafd0c87d03898913a00d5f427
│ │ │ ├── 03be2aaf02e2f78738dcd55209eb660c63460f73
│ │ │ ├── 06a9bb98f465ce2136ba9c5c3b15912de9101d7b
│ │ │ ├── 0ce9675bea488114cd61e0902df0f65bb266b414
│ │ │ ├── 127d1cd7df6314984a355234cad8daee2a0a6f85
│ │ │ ├── 193ff1ad23aaeaa8feafcbe7168f259e5063e715
│ │ │ ├── 1a155dbc0885a4ce404a03ccad4f90e8dfb6838b
│ │ │ ├── 1bdd8892fa9cd727ebf1b97101a04456b8ba7bc2
│ │ │ ├── 20294feb1598e5893bda9b1fe7b9568ea0af237c
│ │ │ ├── 24a09483ef45200b6ed894e43934767755155e3d
│ │ │ ├── 27de45122a7e9da969165f24f6942fc131cb17df
│ │ │ ├── 29e8abf085d862cb208f5e476f628644de1c22a0
│ │ │ ├── 2a0fa91e546f986d25159ed1e7507ec4793df3a4
│ │ │ ├── 2d79b560f5c1dde8b7841ae6d77d616f26f5b3ab
│ │ │ ├── 2dd04d16222832a133c966eb5e9c4e7ae4d31059
│ │ │ ├── 2e10aad1b62e9ad833ea94af977cd498ba7da057
│ │ │ ├── 2ee77e4ad0a5c13eb219c48f0e8964d9f6124737
│ │ │ ├── 3716f49a4dc3a527cc3682d04ae2036204c406ce
│ │ │ ├── 373e78bec9ac0a14383172c8613ac9c3fbb04349
│ │ │ ├── 3902e1ec9e8894b6befc97144a957e69f696bc75
│ │ │ ├── 391c64d022add4f53fcc55761febf54e86465604
│ │ │ ├── 39e6777ccb030519cefc62205e2df23e703aa9fa
│ │ │ ├── 3b2185a90d32decad650ceb443751a4023368cdd
│ │ │ ├── 3e8223a2a8a5034ca9935ccb1a9c8f41f4dfd782
│ │ │ ├── 3f1762bf4bdff8f21a3de2f04afe2cc9bfd538a5
│ │ │ ├── 446dbbeac1d19ca3ac51def5be4e9fcccf97cdc6
│ │ │ ├── 44991dd092a92994af67db1b51c9ca42261c27d3
│ │ │ ├── 44a171e481ef28ccd2fa0cef7666d8107489c25b
│ │ │ ├── 44dae141798a56015e84bb90b8d47f2d1d9db66e
│ │ │ ├── 4875bd67fa63473075333ca3ccbc86eecf90fb49
│ │ │ ├── 48ddda607e4778f35289784b3f6c80234660856d
│ │ │ ├── 4979455aba5b4c7d302af47c4fd941214e16d3a9
│ │ │ ├── 4e4ec17ed15eab3b2aaee34c46ca44e72789f384
│ │ │ ├── 4e8af02cd72c9425df8c3164b3a14bc1b70c6498
│ │ │ ├── 559b65125ca556ff1a57f82f9ae55a86b71c6296
│ │ │ ├── 55b0c7dbbd7470a644c43aaf8aaaa520631e3bb5
│ │ │ ├── 57a99548ae911ad4a20406a03b0a0ac7a9adc63a
│ │ │ ├── 5a72bac420b736c0d530a9d4c861a374ad32f5a5
│ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f
│ │ │ ├── 5c9409528b92b40afa79d037eadcb73b859e94e6
│ │ │ ├── 5c99325fac6e6a77d673cf223fb3b3e62fb1e07e
│ │ │ ├── 5e81672e813bd1e06ecba224f520328498f27ea8
│ │ │ ├── 626bf1b65f1a0c5fba061fac07a711f970b07a80
│ │ │ ├── 62ca0c60044ab7f33aa33d10a4ae715ee06b7748
│ │ │ ├── 6407ff9cce2be245bacff6693615b8e382ba2a96
│ │ │ ├── 664e56319f5a1ffc9bd3e9554f2358ace5a739ca
│ │ │ ├── 66a4327f1269b132279cd6bedd1b82f5f112eda9
│ │ │ ├── 687464af84370f5d43d25acba442acc7fd14beec
│ │ │ ├── 68c94392b09d47edea2a48f62808073bf83448f3
│ │ │ ├── 6af6e86bfe31a3941d3085227f051c05777657de
│ │ │ ├── 6f04561347c9100edce326d87e065789d2d56185
│ │ │ ├── 726be829733ebbca258b51fc29a79e543de46677
│ │ │ ├── 75fc076b6fc8dac4f65c31fa4fd34ad236530422
│ │ │ ├── 76bbc1ead78624711303acd22377969f0962736b
│ │ │ ├── 76fa9dc37fc42934404c72df57d296c663ee807d
│ │ │ ├── 79ef4a8ba594c7a2b611bc33fc8b83fe8ac14998
│ │ │ ├── 7bbc7585698a7c3375bea9c3bcff8838722d8f64
│ │ │ ├── 7be90a9058961ac6ee07f764618805dfe8b6cfae
│ │ │ ├── 8127c19b14b9a5750a4731aef2f900a72ec6d802
│ │ │ ├── 8426e28aabe6684eb7200bd032ff0dad5a5169af
│ │ │ ├── 85e53271e14006f0265921d02d4d736cdc580b0b
│ │ │ ├── 8a5c3216797d7a54adeafc86b708b942a9894b2f
│ │ │ ├── 8c92cd8b3e908dad0b490baa09ee984fdf224b21
│ │ │ ├── 8f1eab4f75b343ac81f12c926a077aaa572cd002
│ │ │ ├── 910ae695ec5c0972098df24b9e4a910ef2c36959
│ │ │ ├── 91b36d91365f1f59f8874170ecde945d9eeb1316
│ │ │ ├── 95f1a48e7e1cbe4b91461f1251416245497ff131
│ │ │ ├── 9936dc85a37671ac657693400f490966090e391f
│ │ │ ├── 994cc577406fe37f59e27ea1028a9d0a814af721
│ │ │ ├── 9a78211436f6d425ec38f5c4e02270801f3524f8
│ │ │ ├── 9a88a0ae40cf185ed2c9bf4ebde71b048030211d
│ │ │ ├── 9b99593353a610c4bee0d6a94a01a3296080c0fb
│ │ │ ├── a42f35cc555c689a38ef471b21fad93692f36a9c
│ │ │ ├── a54a56388dd751dc1ea1727f8e2965b349b54800
│ │ │ ├── a707473dd0d734a745a15b98f20645839d69a660
│ │ │ ├── ae02ec1f395c202f6cd2965ea34d73dc35e10fdf
│ │ │ ├── af094ea4a3607992332e87dbe90f1a0f0cf82e09
│ │ │ ├── af33a704edf520f6ccc1c6c51b06d39b5a7e82f8
│ │ │ ├── b18ecac8feda2826b91131b386b8842a1fca17e5
│ │ │ ├── b1eb62fe7596e0f62ef933c269b429851f73853b
│ │ │ ├── b8f87323f660b627117ced725f6278ca8dc7fe42
│ │ │ ├── b931131d935fb27ebf7977285299dcf11bb52eb4
│ │ │ ├── ba200d8a4886abcdba4174f4b131db56e9128785
│ │ │ ├── bf8b4530d8d246dd74ac53a13471bba17941dff7
│ │ │ ├── c74adbd5fe4690b76e721fe2de60f04c5d494eae
│ │ │ ├── c78643e37119bb0f817531ba2ff265d6ef53c64e
│ │ │ ├── c92920944247d80c842eaa65fd01efec1c84c342
│ │ │ ├── crash-49789ae0866d7d630f2075dc26812433f4af1db3
│ │ │ ├── crash-5eeac6ca5053992914dfb318e02e4c657a65c7cf
│ │ │ ├── crash-707526606a02c72364e1c8ea82357eead6c74f60
│ │ │ ├── crash-b0db762535226b28c0b55ffe00d5537fd8ef7e39
│ │ │ ├── crash-bd6e8aa1ebeb96cf8aa644c5ef6eb2214dee0ffc
│ │ │ ├── crash-e5143387e8896dcfb0f95f8111538502cee38ce0
│ │ │ ├── d0f63f55c89c3220cd326e9395c12e2f4bd57942
│ │ │ ├── d421e94ef02d0e45a2f783b63f3fe6622b6776cd
│ │ │ ├── dict1
│ │ │ ├── e0485f22a1d04b0df70035eafa33f1278a52b8a6
│ │ │ ├── e5c4a84e1935991b3103fecf70bf563eb82f7936
│ │ │ ├── e767ec96033f7d9da306711adab0a6557fd4b71e
│ │ │ ├── eaafc08a833a503cc25218c854bc70b9655d6b38
│ │ │ ├── eb02ce7f9339084b7dfa707b412ee1b1f7046885
│ │ │ ├── ecbd22c462813a437898cfe2848a46e5d6a460c5
│ │ │ ├── eddf750270b16df6744f3bbfa6ee82271961f573
│ │ │ ├── ef8c99ef78bd1d6410375edc127cf4e708dc63e3
│ │ │ ├── efb13296f8f471aadfdf8083380d1e7ac9a6bbc5
│ │ │ ├── f0f2e7efda77af51c83fe7870bd04d1b93556116
│ │ │ ├── f2d42e12fb2ed451e7ba0b270a9065916a391fb1
│ │ │ ├── f6377e2f32fd888f1877518c26bf6be4e24f92bd
│ │ │ ├── fc8f69146bf6f556444c5acd8053537a292db418
│ │ │ ├── fe56cff03603408c02ef6579df1958ba3cdbdd48
│ │ │ ├── fee17c65913f4eddcae3f69d1c2b6f318b938af2
│ │ │ └── with-nulls
│ │ ├── dictionary-uuid/
│ │ │ ├── 31bba5d620d39268ee0d0b4acaf0b48ab78e7376
│ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f
│ │ │ ├── 974a2356cb6d533bc0c421623eae03c5f645cf64
│ │ │ ├── 9b99593353a610c4bee0d6a94a01a3296080c0fb
│ │ │ ├── c4ea21bb365bbeeaf5f2c654883e56d11e43c44e
│ │ │ └── empty
│ │ ├── gorilla-float8/
│ │ │ ├── 000335f765ced2a4f901ac182723f543d684e01a
│ │ │ ├── 001123a617c5cd66ad7122a7bf5a4df193fec5c5
│ │ │ ├── 0018f597ee9cd81341f63167e437891935ded799
│ │ │ ├── 008f5da38ab688b5013799fa2078080b87d1315a
│ │ │ ├── 00c229a7320c63a40c31ea1268814fc13b15de90
│ │ │ ├── 00fa51c6e24f79b0ba39dd32e9f3b68561ae2eff
│ │ │ ├── 00ffbad9a023d169b2b1943887702b3cac8b045c
│ │ │ ├── 010e7a5025e9ff7ffacf3ce3e2176bcb8c29617b
│ │ │ ├── 0189f688b66865cd51637e2f5f8347431fcc54ad
│ │ │ ├── 018c00c72b324da47458186f1f1527945de2b3d7
│ │ │ ├── 019e2ae7986441e1220e4060aeee97063e5f5f7f
│ │ │ ├── 01beb9afee5bdd566eebc3e11ab9a2bf937af072
│ │ │ ├── 01d284d9abc6f8798411204503b6e7092294497a
│ │ │ ├── 01ee785469f584519839126202f99e66e0f6b62f
│ │ │ ├── 02118691c5748861f850a0ddc6504520e9cf9d59
│ │ │ ├── 02210f01b6e9d651caacb78cbe1981c3d7d948cf
│ │ │ ├── 025fa6c86875979f9890fd5821994db68b0d9e0d
│ │ │ ├── 026d5ea723c4995420f38fc8e2f41f52fdc8934f
│ │ │ ├── 02819a1d54865c2b35eb888056fa9d88d7da99a2
│ │ │ ├── 030401af4fb4f96e77e95d08e12261897120bfe8
│ │ │ ├── 0316e3ffcaf4e49f3ce450a4681df2010192c3d8
│ │ │ ├── 032a566a41de14096cb32800aa07ea600a9dc74d
│ │ │ ├── 032d6f047e5c6e1f3cc3816ee1b8da3c8971bcbb
│ │ │ ├── 033b463a196126041ec08b6e61b189973f1627f6
│ │ │ ├── 03b2ca74225ae7011134f9aa114040b106ec8caf
│ │ │ ├── 03cda3811ac87f97a957ece7d963db8dda7aaa8d
│ │ │ ├── 03e931d374e50b3e6612eb4a7b4eb6707c75f2ce
│ │ │ ├── 043d96b51ea12b68bbbdc1f9bbe69bc3e29163b5
│ │ │ ├── 046d94fe08c43ec5b3ead226ef0206eb5c501e4b
│ │ │ ├── 04867457469f20f351b2863fa3197d79d739d20b
│ │ │ ├── 04f6eecba790bef1c51a27366a658141f06f765f
│ │ │ ├── 055f0d536e9e4af4b9769b2fc4504d00516034f4
│ │ │ ├── 0561d22c62592505cf5bd0a3943cf9aae716e5ae
│ │ │ ├── 05a4b23a5b4806fadc1512f3962eacfd56b0b00b
│ │ │ ├── 05a5a98579e2643e226e5571ba5d24339d622641
│ │ │ ├── 05ad10df436f072a5bcae26764ce310ec7ce6e6b
│ │ │ ├── 05e1c72278fac592cb882971bab84d568799ca57
│ │ │ ├── 06498d96e93a66c56b0b5cb271fc67e7dbaefad0
│ │ │ ├── 06512255ce67fd4de2b6472be237c8dc9375d1b9
│ │ │ ├── 068dd3742f3f3beb0d9a00141a05ec1f16054373
│ │ │ ├── 06e255ce19ca34158bb0ac82bcef108367ca3267
│ │ │ ├── 06e51dd399ecef706d99060188e41dccb79be52f
│ │ │ ├── 06f43a625eaf0da2f2bf2fa9143a659fd5b2ff0b
│ │ │ ├── 070bd26d7cc8fcba32ef29da3ad625824c38d343
│ │ │ ├── 07419f558bfcb7a18c7fa7598a9bda076e3bfe39
│ │ │ ├── 07574d2f3e74a3bc135f59c033cd37482bd4c521
│ │ │ ├── 07707fa8bdb6bd86a827d7a4822dc25d8ea58f8b
│ │ │ ├── 078bb3b1836c346eb4025764c06c1c94da8aed31
│ │ │ ├── 07fcc85472883b813b69b0e4e4a795c9a9b1a3c6
│ │ │ ├── 08291961257285a1e2137a0bce9ea3b262f164ef
│ │ │ ├── 08bf43b8834a2a3663d2c6d287628816347eddc4
│ │ │ ├── 08f9d53a5a7d64f61b817786ac3acff477f8cbf7
│ │ │ ├── 0933cb848b5bab240adf85aa088d013c633283e5
│ │ │ ├── 0942e894b6559b62b4b52f2df1b409f4a7de53b0
│ │ │ ├── 0943eafc6afd3a6ade048635011c148db8f4d8d0
│ │ │ ├── 0982c40ef6669e243d31221b3e54e4eb58fd6609
│ │ │ ├── 0998446366e5a5f8d4d1ed817ebdf627df5bf145
│ │ │ ├── 09b35f10899c4282030d0fc8dfadff0a1366ed2c
│ │ │ ├── 09f6ee62d7b28e763bc3dcddb730b233650b757a
│ │ │ ├── 0a062e7146194e5149c24338b968ee5bbaafd40d
│ │ │ ├── 0b0ed38d0ad51a990cf2b16c727bca9f385046e1
│ │ │ ├── 0b2cfbcda117da0fb38239e0bbd69149bc4be902
│ │ │ ├── 0b4534d5ccbde3ccb4ffedf6c35f1c151371b81e
│ │ │ ├── 0b88c467e94529331ef6b9672a55c0917048ac36
│ │ │ ├── 0bb1287fc41b93ec186a6cd0a4e2abbe5ac25d20
│ │ │ ├── 0bdbb69df444c03dffdf45540b123857e8d52c41
│ │ │ ├── 0cf821743f73799451e8bd59b4493a2af6af993e
│ │ │ ├── 0dab00d8d9d07f05544561f2184043891ac024c1
│ │ │ ├── 0e229390a2419e54659c91fac8fda3776c8d3597
│ │ │ ├── 0e5a473aa26bb4611426ff7c887793ab5bb11b00
│ │ │ ├── 0ecd6dd291cd9f1ff004dbf59deeaae538be0d5e
│ │ │ ├── 0ed43cdbd0d48f987df9e39916fe6d7dca351372
│ │ │ ├── 0f4095e80f0972faa28e52867819e9ad4def29cf
│ │ │ ├── 1013fec78493721af7513209cc4208d26ec828f2
│ │ │ ├── 103541e080d45c3543c343127acae3b09e9f7947
│ │ │ ├── 103e54b97fda4fb0ccdbb6eefb570786f8b06c3d
│ │ │ ├── 1070cb122d3b0f16e90476d2756732c5faef9180
│ │ │ ├── 10cbc61c2d50941b8ee84950485330b51020b8ca
│ │ │ ├── 112faf041b40f005bf544dfad5f108aebfe9932c
│ │ │ ├── 113bd1949f408fed9ee1bf839de2e7f7a93c841f
│ │ │ ├── 114fd66ac1f1853ed91e1cf08abb64b9cf24ba24
│ │ │ ├── 125897cf81e066dcf7a848a33d66e32c65aeb5ad
│ │ │ ├── 125b7489711c008100163278833976214efd3c06
│ │ │ ├── 129c9ac9ab87801820904a3b64bd6754e7de31cf
│ │ │ ├── 12da17d3510e43fa87404a6cc4e89590b7ab7b6f
│ │ │ ├── 12f2a8f93e7fdd944afbee2fbd14575db669d350
│ │ │ ├── 1326a4ac09a56678f346f2b1d6370f73b4a6391d
│ │ │ ├── 13fbb8bb9ace2fee070b0a57cc23297e3929a2e3
│ │ │ ├── 14f5a764478056056709a1adf56bf1c4f844be46
│ │ │ ├── 14fa52c7a0e0f2dac186cc477b8590bd7ed5d5de
│ │ │ ├── 150d861d63105edb32e1c8b9962228c6f0471bfc
│ │ │ ├── 156ef15ae5a6999bdd7672a6659f1733e74fd268
│ │ │ ├── 158c9040ac3b2284eddb47727edb1ad8e64aaee2
│ │ │ ├── 15d9f065256954141540c7973b69945361a1779d
│ │ │ ├── 161f9d06c9fbad0fdcd36f26d39872902081bd7c
│ │ │ ├── 1632c0af768ebd94edd01ed87e4e6a22d38b9443
│ │ │ ├── 16e7bd9816834e5b609f45262f76eab1b6ec40b9
│ │ │ ├── 17a72a1d905026efdf6c6323d9f006002ab85980
│ │ │ ├── 17a9a0cda279f524a28f5f30e851116e072418d4
│ │ │ ├── 180e4be371f1056fc2144de0c0bf19805e4d608d
│ │ │ ├── 189dcbb43b973255710dde7497763ea8a046ac16
│ │ │ ├── 1910a16a432c3dcc21d2646244678b93756aa1a0
│ │ │ ├── 19167267fdc1593d4be0c4cb3b601932c3f3adfc
│ │ │ ├── 1acda981777221e8e6eaea2c496c7f876519d564
│ │ │ ├── 1aff404a6311174ae5eccd28a1aa2ad2d738e866
│ │ │ ├── 1b0af5886bcea028cd013ace38242c2a09614ec0
│ │ │ ├── 1b211d33180b5e5cda190ecd00168bb4948f4ea8
│ │ │ ├── 1b7bd0d9995cd6c889dfa823565c6d490ec5be8e
│ │ │ ├── 1c66f09df9136cbf6cd9c0e9c85f4fe1e12700d1
│ │ │ ├── 1cb6ea9ed7ae98362e6fa46cbd0bb0e977fb24db
│ │ │ ├── 1cd4b5622701839c902ccc031af388cf995f863b
│ │ │ ├── 1d172fbc7ae373610545d1436e0a17dcccc5e055
│ │ │ ├── 1e809f15bc387deff02d07edd0b9b3011a172d3d
│ │ │ ├── 1ebe7bc218890b4a5419154c4f8042d35c760ccb
│ │ │ ├── 1ec71769042da0bfbad6967d3a9af3d5637966bd
│ │ │ ├── 1f09f12d930daae8e5fd34e11e7b2303e1705b2e
│ │ │ ├── 1f3237efa553f6f82174223a1c5df78475ef25a0
│ │ │ ├── 1f5cb95a3f9af8efe74c41ba64bcdf3e12da81f2
│ │ │ ├── 1f6810f6f160b2e7d5f27822be00fccda2c0d9ce
│ │ │ ├── 1fadee5ce81d5a4ede3b8d2d508eada6aa3e5fdc
│ │ │ ├── 20149c9075b835532b9903e2d838432de7c4c82b
│ │ │ ├── 207f681dda06e17d6fb16b89274720956e5315b8
│ │ │ ├── 208964be3ec654f18b77217d9d5dc908ef8eff6e
│ │ │ ├── 20bec61757d2a6e9ccf5674424f23d8dd4c59821
│ │ │ ├── 213bd18eb8b9792f5ba8d6453e7b0b74f0d2a12c
│ │ │ ├── 217bf330784989cf4c3e21bcbe0d1adeed7dec2e
│ │ │ ├── 224b4677ce8e3065a8be0e661b5d3be49602680e
│ │ │ ├── 224d47f68da20713449bf600b84a3d750d495ed6
│ │ │ ├── 229389eeb6f917a0db71fcadbc97cf3432357ba6
│ │ │ ├── 2397935ec2daeeea90cc7530afb1bfa490d21607
│ │ │ ├── 239d654fb97da7931b992a93b3c51be8912cdc0d
│ │ │ ├── 23a46cbb1893e9284d06e72558317d95ecee8e74
│ │ │ ├── 23c3074517a019bd7edd8d8b71fb159980a10ec0
│ │ │ ├── 24c3c3a4c50155712005e5fa934a99a3ec803318
│ │ │ ├── 24f67fc225eeebfcd06f121effe46d26251e785e
│ │ │ ├── 26338cbc8a2c58872d0df57b1231785ba53c5128
│ │ │ ├── 276129fc7c40928aa2743aff77c15bfac126c00d
│ │ │ ├── 27fff07708997c5e6e07a0f83406683a7d36daa9
│ │ │ ├── 2839e34ab20fb0105de4ebec1a25a807ba7642c9
│ │ │ ├── 28ac5313c590ed2b28e1ed0fc22f2bd1eab0df51
│ │ │ ├── 28e31c10ef08fdecf629dd265116e0f833cd57cd
│ │ │ ├── 29b15bb9cb49218df433c4fe27794615c3a4451b
│ │ │ ├── 2a221a24ad464e8da7ee51105400f1670b4320a1
│ │ │ ├── 2a86bc754e5703e9d6101f64eb5e06ccbd261952
│ │ │ ├── 2ad4a333d74699bc03523cba5cb3c108a2bc9527
│ │ │ ├── 2bf57e68f7436d449f0486a2c1ae3a281458bdcd
│ │ │ ├── 2c0d33ffce3a3e585c845cf7c6aebd5f4917fddc
│ │ │ ├── 2d0ff967eccc17e5d165712c758681ef3fe51caf
│ │ │ ├── 2d3db2cf9bcfec159f6bccf801d74a1ce610013f
│ │ │ ├── 2e29d5f8ccf89cf55a1876623bbbc0a2a0e76032
│ │ │ ├── 2e485e5fe51b9824721a41a67dfc1fd9ab8eb3f1
│ │ │ ├── 2e64ef301925f827368cf80e67a858f9c1906b44
│ │ │ ├── 2eb732cc04c8a4259763abb8c02b633c484aa08b
│ │ │ ├── 3000a8aa02ef08fd7105151982b709ca87702b2a
│ │ │ ├── 30b30fb9ab1f1031139fc72d478b5cf6fde75f70
│ │ │ ├── 30cb23ea8ce282a984424ba74cf9e692a0ea95c2
│ │ │ ├── 322398e8d8eec282d54ecf8270285109012daafa
│ │ │ ├── 3488d3837745952ffee80820a15f98f3f39bacbd
│ │ │ ├── 35551262d560ddd52f1b8ba9039b0ac05932e7f3
│ │ │ ├── 3579bff2e768d34cc21071a22ca286c84bdeb0be
│ │ │ ├── 35cdca75d22e73fa72051421f170698c4c526838
│ │ │ ├── 360ce4c914f52af71a7f1f165b579b263aef7224
│ │ │ ├── 3612694abd743a7e55e65aa65263520ad36fab1d
│ │ │ ├── 3661b2541a41109436af57eed8cd81f2b077dc64
│ │ │ ├── 36a015ecabd510fc11470a8ee201f74c98a752cb
│ │ │ ├── 378b0717ae8bca467ed4ee58212ca50ceae5ec7d
│ │ │ ├── 384e73c939df5029d4a47e7446f57a279e0f4e6d
│ │ │ ├── 3890191defea00490c16ad251b95f9e07b4c74c9
│ │ │ ├── 38a0feff4559737aeed5f72ee302a3a0ed8629bb
│ │ │ ├── 38cc6d4e011e8685c88b2f60ae85df9b6edf06d4
│ │ │ ├── 39e5a474f4810a8abd8b966bdf6a407e20501b25
│ │ │ ├── 39fbdcdb86bc1205438c1a8327ec6668ff0bc009
│ │ │ ├── 3a56ebf0102f26bc48241309d90eedb53bc5599b
│ │ │ ├── 3bfafbcc633c3b157ca48d686020d806a9238d9a
│ │ │ ├── 3c2a06759b1f89f8e8bf0d01162558169ccfcdb0
│ │ │ ├── 3c4845d3eab256e1cd051b0e02c954e9feb5d689
│ │ │ ├── 3dd30028e1743600a71c84026e90af3f7bb3181e
│ │ │ ├── 3e1105e64284eed8dc2bccbe18ec3e6de2a082a0
│ │ │ ├── 4181be0e85942f5aaa5f9785e51b4a72055ab5d6
│ │ │ ├── 42805756addc26eff319d88bf58e37887339eb41
│ │ │ ├── 4463475e7855ef5ca2229888df0624efd85493c8
│ │ │ ├── 44dadbb9d63786197f95408954423a2490e54a72
│ │ │ ├── 45e5d985b27fb2210ba470b892756eaf053194e4
│ │ │ ├── 46945e0bf54f1dc350c0d9ec9b670cf687445be0
│ │ │ ├── 4780df7420a24ebae8d9bcacf6c62c27e0c2e811
│ │ │ ├── 47f3c798199bb53546b443fba5dc925d08d37718
│ │ │ ├── 4957a6bc77cc14caae8682e4499cafca63ac12b4
│ │ │ ├── 498988babdc605e5d03ed9448af24a714ff69e72
│ │ │ ├── 4a5a4312137e693b8122b4426d54fc6444cefb4d
│ │ │ ├── 4a81750c78f1acc88612777149b7d47b27d1d58d
│ │ │ ├── 4bc7279fedba6ac6deb9be39476e43dce7d69525
│ │ │ ├── 4be8eb811a92f7221820a72185b76e32ab95edf4
│ │ │ ├── 4bea5a628cf732e42825e3bcfb0d0f63819c37a8
│ │ │ ├── 4ca579f0ff4d06f56eebb6b94c1303de1ea289b4
│ │ │ ├── 4ca93515d0cb2e30ac9a09bc6917cf2f4041e309
│ │ │ ├── 4dbe572a6b29c977ba4f132bf27330f5bce8bbb4
│ │ │ ├── 4e452a93754eec25673cc41def71f43e12d6ad44
│ │ │ ├── 4edbe8bce1dd60b4447731e0183305889971ce1c
│ │ │ ├── 4ef3a46a40596d12420c9acc7827a7956b93eff2
│ │ │ ├── 4f039fecd3612031008b5ac1ec016a9db9a0afe2
│ │ │ ├── 4f1ee2f2a2b9499943d866a11c5eb73dbb5578a6
│ │ │ ├── 4fcb4525eae80e58e4c0dafcad5dbf9bd6ed8800
│ │ │ ├── 514e88c8fedf058601f8c1a3857405a72bafd346
│ │ │ ├── 51628c735c1dfa273dd79264ffdff1de023ded3b
│ │ │ ├── 5181e1d782cae994672eb604f0b88720d4171a6b
│ │ │ ├── 5593e1771829808b4c1c17a151f5807590c87060
│ │ │ ├── 56152748eafa8a23aca552d2c63aefd328ef9d1c
│ │ │ ├── 583bd88280acbe57634a229531e50afea8977c5e
│ │ │ ├── 5b989097db45b584bfdfd0ea0eeb6e484b04ffa4
│ │ │ ├── 5b9f71ff1bb5eb987287e97e9223ad2ee384d043
│ │ │ ├── 5bcb10fcf0de7e1f1eea8b2a6c97b9f2efb38cfe
│ │ │ ├── 5bdb91298fe95bcd0fd59b077e9b03708352adc0
│ │ │ ├── 5bf5ba2025d12dff0f8cf646bc0a67e512781a78
│ │ │ ├── 5cbe78de4aa4595bfd13dfc8f9d88bc740bda660
│ │ │ ├── 5d53743f0f6877c631ba1b78a2546351ffd945a5
│ │ │ ├── 5ddb48bfb461a6f541ea5263c124fafc84228405
│ │ │ ├── 5fcca6becd914f5a66441e491bb460cc0d399798
│ │ │ ├── 61b0a7eb4b781e6e980620119029784028b0dd02
│ │ │ ├── 638ee93f6f582a08b54e2d904b6e703e975fb779
│ │ │ ├── 63ddefed7ec1d06bb8e65ef0446fd66247ad9e5f
│ │ │ ├── 640783010f7d68e0dd208d742c0ae5dcc35bca18
│ │ │ ├── 6409f517d99779cf628cec89e0ea781800ec1673
│ │ │ ├── 6472b46069dcd29079a739cd9f4d043d77b9db2b
│ │ │ ├── 64e26698d0ae69059a828a29619dbb220834ce0b
│ │ │ ├── 64ec1601cf03b88a5c1032569dc861d156d706ec
│ │ │ ├── 65440ab3f4518a75309ca81383e9f4e6a60bbd6c
│ │ │ ├── 669710a353b5b72bcf14eb140b57b0a6be809e7b
│ │ │ ├── 683ee9ae1a3ddbdbee2336af93e7f408f5cc42b5
│ │ │ ├── 688934845f22049cb14668832efa33d45013b6b9
│ │ │ ├── 68cdb6aea2466f9256dc371bdcd482b139d28d1c
│ │ │ ├── 68f451a137e92f09cfd5eb88a04dbd0b8798bb92
│ │ │ ├── 69bb7cec8b07da9cb2bd3d0aba9f55b0f41f65cc
│ │ │ ├── 6b0165838e17a7309a523a909b6f83de6b46f51c
│ │ │ ├── 6b49f3fa96695a790faa6eb4f051e5cf2c471209
│ │ │ ├── 6b85b749998063c521ffdb3faf1823f20e85d5e7
│ │ │ ├── 6f924d014dc9bc839ea89f3b98217f262b27c231
│ │ │ ├── 71c2d79e816ce7ffee8d3ac90eedb3159dea7fac
│ │ │ ├── 735de4ce401995f6a6e4c47039ac8940bdc1ec8b
│ │ │ ├── 778c71afaf6c5a1d3b1c045788d668189adbf96e
│ │ │ ├── 77a4c5e5039c7180b2217342711f214970bea74a
│ │ │ ├── 781835ce31e3ba1b697c5a40b8447f6b7f7a0144
│ │ │ ├── 78d4981a356b7e21562982b8cd64af8d7f9ff62b
│ │ │ ├── 79f08f3117e3d9c49e1e12727b5bc72692a41bad
│ │ │ ├── 7c5f32cd666fb03e67aa75a34b889236b40a0eb6
│ │ │ ├── 7c6d18a6fc69526d5c30f4cbd24725fea7423515
│ │ │ ├── 7e6f7bfb1169a82fc31aa11c760b1b1699d7b3a4
│ │ │ ├── 7ee8badf61cd2a56bcd4c5fdafe9395eb733e22a
│ │ │ ├── 869028f499a7faea4cf993eb867ea9fd1c3f58e6
│ │ │ ├── 87330cfd941fe956757bce61baa636e6a6b7a0ad
│ │ │ ├── 8887779003e7ccbdbc95ba305c34aa75fb255d69
│ │ │ ├── 8bec4981ecd6533ecadf49b978e34e2cdea28e67
│ │ │ ├── 8c08c6739ba900dd00089e5eb7e15c43b5d76e91
│ │ │ ├── 8e6d821b0593f6e74635125f995af5ce4daace70
│ │ │ ├── 94972df24f18202ef83823f34daf4225cac60c13
│ │ │ ├── 95873ef906927ff752a0f48e4fbed36b15003e14
│ │ │ ├── 9881ea067ad96598ca5de7dd0ddfb41a629f776e
│ │ │ ├── 9c479051463aa32bdf5fe7ff36258586ea5606d4
│ │ │ ├── 9c5eba1b6a51edabf204e3c2c3e5358604f04c74
│ │ │ ├── 9dbe4a4d6f17605da53c17dcb26c3e5ee30b442b
│ │ │ ├── 9f10b850126a00b70b0c7389754b3af7a78efd78
│ │ │ ├── a636879bbc41a43a4748f1aec41c5b8535f95ffb
│ │ │ ├── a6c2d09ad472092bfa8e82470f1f493e0e2867a4
│ │ │ ├── a95439dceaaf041214315966c319d4bd99fad3b8
│ │ │ ├── a9fd565873b81f9bc753ef9ffb01279e58b8e995
│ │ │ ├── aa2fc4a7eb7ef7b4db1d14abba054bf82bc99708
│ │ │ ├── abfe928debc5210e137f2ccb2e35afba1fba01f4
│ │ │ ├── ad3f5bbed8a7c1aa1b1d37d9274e51f04ad9d793
│ │ │ ├── af5fe18bf35c2ce1542515dfd0a2187a912efed8
│ │ │ ├── b1951c3ecea275b55530cd1a7dee87896cba3af8
│ │ │ ├── b32871f39219d46cc598467522717179035628a2
│ │ │ ├── b5af72dc2bcef16a9533f28db6764b41e1dec249
│ │ │ ├── b71d21118459e909a1d13dd39c98bf324746204c
│ │ │ ├── b961201e6499ce99d9809e6c45e2d3cb6c25368c
│ │ │ ├── bbcd55dd0ecf9385e265652b46670796cfb06866
│ │ │ ├── bbe1e29361b5d285b1e3a796d9ea7a6ad330679d
│ │ │ ├── bdd340d8b3d28bbd6352fe82bc946b8b662707f6
│ │ │ ├── c1240cef7cf639125a64e8471db1fb7977d2f090
│ │ │ ├── c4ddbbe3d51294ee8e9ad9476b74cea7024b928a
│ │ │ ├── c5bd074e83ef42d118f9508c5fd5de1ecc77eb7f
│ │ │ ├── c7470bb0cba41502153de8ba1dccfcb415ec37bf
│ │ │ ├── c87f1ba99e627af168ddd46ec94d7f7c08a05c07
│ │ │ ├── c90fb91bdb14d13df37727cf0af752161786f9ee
│ │ │ ├── cafcf0638aa1531c76b3da2ee1f7a3ce9a22c0cc
│ │ │ ├── cbf49a84c11c6c588ae0d298407c77c05775e303
│ │ │ ├── cd4e9ead434c68f2162aace95bb32d69bcd441f3
│ │ │ ├── d1f6b7119295f8823e331ad4f26e8272b6b608e2
│ │ │ ├── d2860d9b6b66d6fc1515ee7e73432da15a2e3d6d
│ │ │ ├── d325fb86fbb09b1410f4d2d7d2e9552206bbe4f1
│ │ │ ├── d36ce05a4a02233c33f3c5deb7559e0816b4b10b
│ │ │ ├── d3708428e4607ba37bfb13ee8ba2dd236755adbd
│ │ │ ├── d71949b44c5e54a1c86336f522a28b281860397f
│ │ │ ├── d834d51078ec5d4319c520766d35faae90554491
│ │ │ ├── dbbfd75cb69ba487c576d62261849af7fee58b61
│ │ │ ├── dc17f72fa3dc031b3e2059844d774fc889ad9f93
│ │ │ ├── dc288af0c1589727824c9f9014b81fbc800f97c0
│ │ │ ├── dc9041a71824c1034bb22589a8e340b23c4e90d3
│ │ │ ├── e1e359dab552ab2d41d035879cf66261e9312d64
│ │ │ ├── e1e6fecdf18b3a1375531bbf5a103c2d8f56cdf0
│ │ │ ├── e229b64d990b03a9f44cbd00e71d3d8baa4319ab
│ │ │ ├── e5ed00680dfe3dd03c24932186d653ad0dcf676c
│ │ │ ├── e7b835e207feecbece96967fc8a45c3c8484c99e
│ │ │ ├── ea35f5785fb9f197b4f308eb0e33bf2e51ed3853
│ │ │ ├── f0da90d63a403203967ac12b90eb9d63f0f4ceeb
│ │ │ ├── f0ecab55d82b763c44cf359fcc00e191a96d70e7
│ │ │ ├── f29494e8b1819543bd357029a0de41a3eda2d451
│ │ │ ├── f3c4c54e20e1b109c2211ea1c75e448fca92d94b
│ │ │ ├── f41088954ca36155c47d16133b8c7c472a50a211
│ │ │ ├── f6dde08a505b30f15b89ff107fffe86418e107c3
│ │ │ ├── f79f35266d31ad7f640363bdd2965e714625ac2d
│ │ │ └── f8bf4cc7cb83512b86997321687281890693f5dd
│ │ └── uuid-uuid/
│ │ ├── 00204831b0ca9ea0e111df6cef4b9d5d7baacda4
│ │ ├── 03e9ded76e11c2ab56b2b64783f9d5eab0f41e45
│ │ ├── 04ba82c9afdc3ec29f62660df56ce9a07f0c7c4e
│ │ ├── 07f74222f10552358f3d355b18b317d94d47ffa8
│ │ ├── 0857d325561ee6748b28d758a8cd56537f2e591f
│ │ ├── 0bebd7d18520dee5aa81b3759fbc531c2285e989
│ │ ├── 0e4bbd6dbf3ddae0d2615789ee20b4aa7e7bd098
│ │ ├── 125f55cce23c378eec2f06aa3b0e56337faaa870
│ │ ├── 13aadea7f739db7b7b613ded4f2d9f80c3a1cb2f
│ │ ├── 1593b53d6247286af0708369568b11009e81a643
│ │ ├── 1add81bd28c7e785fcaec8a0e5a525d8443d1844
│ │ ├── 1fae8d67d206d97677ef96ad645fcded48950dfc
│ │ ├── 264cc1c0f5af787d5803675e1ad1771250fd21a9
│ │ ├── 278f798603ac73124fe61d7a3c04475122a1886d
│ │ ├── 29d118681004d0a5837ce19e1c83f8d32723607e
│ │ ├── 2d2814db73500b8103051a18a69b28c921ef8f86
│ │ ├── 325fcbfdacebcf2259e782cc363e73c857482faf
│ │ ├── 39cd2aeafea74e6f19c4aec657fb7ffa73262927
│ │ ├── 39deb22a28b76c591e8f277ead182d3c56409f12
│ │ ├── 3c651559e8fb3923967b977dcbeb3b742591e267
│ │ ├── 3cdf2936da2fc556bfa533ab1eb59ce710ac80e5
│ │ ├── 3f342aaf5a895c87a09dcff4608482ab3adf6d42
│ │ ├── 4820348eb8d1d6257f21e82769043a3f02fe4d05
│ │ ├── 4967f66d5fceaa599c1877d83aa24e5ed568029f
│ │ ├── 4b02658a763a2875b5f1e7000154d9a6726393e8
│ │ ├── 4ee2d3a264bee8637d869d828e2ac90008ee03bb
│ │ ├── 5ab314d48a22d74c0c6b025954cd3e54e18475d4
│ │ ├── 5d1be7e9dda1ee8896be5b7e34a85ee16452a7b4
│ │ ├── 6f7133c510007b76d2bcc3d85d1980e85fad67a4
│ │ ├── 7638706b19c5bbcf956375eb0c8b489187b2cca1
│ │ ├── 926eb1d08171eaf3c6f49b059133ebce13780c9b
│ │ ├── a545d616805bfdc85a040218fc435bda325d8586
│ │ ├── a58315ace7c70ef7844b17b0985c9ff05fd85b8e
│ │ ├── abc9df7cd29252cbe7b79407192c89d3c9a00d5b
│ │ ├── acc9a1ac056149e11830bfbf59e3ee16226fe6c4
│ │ ├── c1cbd4f3b9b55ef1fbcba2ca8615aa139aea57aa
│ │ ├── cd829577a89686ff93bd3d895a7ee384319668f1
│ │ ├── d0b5cf5009aedc6c54b6e0a8221cac55c943fb19
│ │ ├── de6c21a05e80a0be02b7cde74fc3629ef1d11499
│ │ ├── ec8eabcbce8137c58679fd59db76f92f0554867a
│ │ └── empty
│ ├── isolation/
│ │ ├── CMakeLists.txt
│ │ ├── expected/
│ │ │ ├── attach_chunk_isolation.out
│ │ │ ├── bgw_job_duplicate_race.out
│ │ │ ├── bgw_job_stat_history_retention_isolation.out
│ │ │ ├── cagg_concurrent_invalidation.out
│ │ │ ├── cagg_concurrent_move.out
│ │ │ ├── cagg_concurrent_refresh.out
│ │ │ ├── cagg_insert.out
│ │ │ ├── cagg_multi_iso.out
│ │ │ ├── cagg_watermark_concurrent_update.out
│ │ │ ├── cagg_watermark_concurrent_update_1.out
│ │ │ ├── compression_chunk_race.out
│ │ │ ├── compression_conflicts_iso.out
│ │ │ ├── compression_ddl_iso.out
│ │ │ ├── compression_dml_iso.out
│ │ │ ├── compression_freeze.out
│ │ │ ├── compression_merge_race.out
│ │ │ ├── compression_recompress.out
│ │ │ ├── concurrent_decompress_update.out
│ │ │ ├── deadlock_drop_chunks_compress.out
│ │ │ ├── deadlock_drop_index_vacuum.out
│ │ │ ├── deadlock_recompress_chunk.out
│ │ │ ├── decompression_chunk_and_parallel_query.out
│ │ │ ├── decompression_chunk_and_parallel_query_wo_idx.out
│ │ │ ├── delete_job_deadlock.out
│ │ │ ├── detach_chunk_isolation.out
│ │ │ ├── direct_compress_copy.out
│ │ │ ├── fk_hypertable_lock.out
│ │ │ ├── freeze_chunk.out
│ │ │ ├── hypertable_row_lock.out
│ │ │ ├── merge_chunks_concurrent.out
│ │ │ ├── osm_range_updates_iso.out
│ │ │ ├── parallel_compression.out
│ │ │ ├── reorder_deadlock.out
│ │ │ ├── reorder_vs_insert.out
│ │ │ ├── reorder_vs_insert_other_chunk.out
│ │ │ ├── reorder_vs_select.out
│ │ │ └── split_chunk_concurrent.out
│ │ └── specs/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── attach_chunk_isolation.spec
│ │ ├── bgw_job_duplicate_race.spec
│ │ ├── bgw_job_stat_history_retention_isolation.spec
│ │ ├── cagg_concurrent_invalidation.spec
│ │ ├── cagg_concurrent_move.spec
│ │ ├── cagg_concurrent_refresh.spec
│ │ ├── cagg_insert.spec
│ │ ├── cagg_multi_iso.spec
│ │ ├── cagg_watermark_concurrent_update.spec
│ │ ├── compression_chunk_race.spec
│ │ ├── compression_conflicts_iso.spec
│ │ ├── compression_ddl_iso.spec
│ │ ├── compression_dml_iso.spec
│ │ ├── compression_freeze.spec
│ │ ├── compression_merge_race.spec
│ │ ├── compression_recompress.spec
│ │ ├── concurrent_decompress_update.spec
│ │ ├── deadlock_drop_chunks_compress.spec
│ │ ├── deadlock_drop_index_vacuum.spec
│ │ ├── deadlock_recompress_chunk.spec
│ │ ├── decompression_chunk_and_parallel_query.in
│ │ ├── decompression_chunk_and_parallel_query_wo_idx.spec
│ │ ├── delete_job_deadlock.spec
│ │ ├── detach_chunk_isolation.spec
│ │ ├── direct_compress_copy.spec
│ │ ├── fk_hypertable_lock.spec
│ │ ├── freeze_chunk.spec
│ │ ├── hypertable_row_lock.spec
│ │ ├── merge_chunks_concurrent.spec
│ │ ├── osm_range_updates_iso.spec
│ │ ├── parallel_compression.spec
│ │ ├── reorder_deadlock.spec.in
│ │ ├── reorder_vs_insert.spec.in
│ │ ├── reorder_vs_insert_other_chunk.spec.in
│ │ ├── reorder_vs_select.spec.in
│ │ └── split_chunk_concurrent.spec
│ ├── postgresql.conf.in
│ ├── shared/
│ │ ├── CMakeLists.txt
│ │ ├── expected/
│ │ │ ├── build_info.out
│ │ │ ├── cagg_compression.out
│ │ │ ├── chunk_append_merge_append.out
│ │ │ ├── chunkwise_agg_gather_sort.out
│ │ │ ├── classify_relation.out
│ │ │ ├── compat.out
│ │ │ ├── compress_bloom_sparse_compat.out
│ │ │ ├── compress_unique_index.out
│ │ │ ├── compression_dml.out
│ │ │ ├── compression_nulls_not_distinct.out
│ │ │ ├── constify_now-15.out
│ │ │ ├── constify_now-16.out
│ │ │ ├── constify_now-17.out
│ │ │ ├── constify_now-18.out
│ │ │ ├── constify_timestamptz_op_interval-15.out
│ │ │ ├── constify_timestamptz_op_interval-16.out
│ │ │ ├── constify_timestamptz_op_interval-17.out
│ │ │ ├── constify_timestamptz_op_interval-18.out
│ │ │ ├── constraint_aware_append.out
│ │ │ ├── constraint_exclusion_prepared-15.out
│ │ │ ├── constraint_exclusion_prepared-16.out
│ │ │ ├── constraint_exclusion_prepared-17.out
│ │ │ ├── constraint_exclusion_prepared-18.out
│ │ │ ├── decompress_join.out
│ │ │ ├── decompress_placeholdervar.out
│ │ │ ├── decompress_tracking.out
│ │ │ ├── extension.out
│ │ │ ├── gapfill-15.out
│ │ │ ├── gapfill-16.out
│ │ │ ├── gapfill-17.out
│ │ │ ├── gapfill-18.out
│ │ │ ├── gapfill_bug.out
│ │ │ ├── generated_columns.out
│ │ │ ├── lateral_subquery-15.out
│ │ │ ├── lateral_subquery-16.out
│ │ │ ├── lateral_subquery-17.out
│ │ │ ├── lateral_subquery-18.out
│ │ │ ├── memoize.out
│ │ │ ├── merge_dml.out
│ │ │ ├── ordered_append_join-15.out
│ │ │ ├── ordered_append_join-16.out
│ │ │ ├── ordered_append_join-17.out
│ │ │ ├── ordered_append_join-18.out
│ │ │ ├── parameterized_chunkappend.out
│ │ │ ├── security_barrier.out
│ │ │ ├── space_constraint-15.out
│ │ │ ├── space_constraint-16.out
│ │ │ ├── space_constraint-17.out
│ │ │ ├── space_constraint-18.out
│ │ │ ├── subtract_integer_from_now.out
│ │ │ ├── timestamp_limits.out
│ │ │ ├── transparent_decompress_chunk-15.out
│ │ │ ├── transparent_decompress_chunk-16.out
│ │ │ ├── transparent_decompress_chunk-17.out
│ │ │ ├── transparent_decompress_chunk-18.out
│ │ │ └── with_clause_parser.out
│ │ └── sql/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── build_info.sql
│ │ ├── cagg_compression.sql
│ │ ├── chunk_append_merge_append.sql
│ │ ├── chunkwise_agg_gather_sort.sql
│ │ ├── classify_relation.sql
│ │ ├── compat.sql
│ │ ├── compress_bloom_sparse_compat.sql
│ │ ├── compress_unique_index.sql
│ │ ├── compression_dml.sql
│ │ ├── compression_nulls_not_distinct.sql
│ │ ├── constify_now.sql.in
│ │ ├── constify_timestamptz_op_interval.sql.in
│ │ ├── constraint_aware_append.sql
│ │ ├── constraint_exclusion_prepared.sql.in
│ │ ├── decompress_join.sql
│ │ ├── decompress_placeholdervar.sql
│ │ ├── decompress_tracking.sql
│ │ ├── extension.sql
│ │ ├── gapfill.sql.in
│ │ ├── gapfill_bug.sql
│ │ ├── generated_columns.sql
│ │ ├── include/
│ │ │ ├── cagg_compression_query.sql
│ │ │ ├── cagg_compression_setup.sql
│ │ │ ├── constraint_exclusion_prepared_query.sql
│ │ │ ├── gapfill_metrics_query.sql
│ │ │ ├── memoize_query.sql
│ │ │ ├── ordered_append_join.sql
│ │ │ └── shared_setup.sql
│ │ ├── lateral_subquery.sql.in
│ │ ├── memoize.sql
│ │ ├── merge_dml.sql
│ │ ├── ordered_append_join.sql.in
│ │ ├── parameterized_chunkappend.sql
│ │ ├── security_barrier.sql
│ │ ├── space_constraint.sql.in
│ │ ├── subtract_integer_from_now.sql
│ │ ├── timestamp_limits.sql
│ │ ├── transparent_decompress_chunk.sql.in
│ │ └── with_clause_parser.sql
│ ├── sql/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── agg_partials_pushdown.sql
│ │ ├── attach_chunk.sql
│ │ ├── bgw_custom.sql
│ │ ├── bgw_db_scheduler.sql
│ │ ├── bgw_db_scheduler_fixed.sql
│ │ ├── bgw_job_ddl.sql
│ │ ├── bgw_job_stat_history.sql
│ │ ├── bgw_job_stat_history_errors.sql
│ │ ├── bgw_job_stat_history_errors_permissions.sql
│ │ ├── bgw_policy.sql
│ │ ├── bgw_reorder_drop_chunks.sql
│ │ ├── bgw_scheduler_control.sql
│ │ ├── bgw_scheduler_restart.sql
│ │ ├── bgw_security.sql
│ │ ├── bgw_telemetry.sql
│ │ ├── cagg.sql.in
│ │ ├── cagg_bgw.sql.in
│ │ ├── cagg_bgw_drop_chunks.sql
│ │ ├── cagg_ddl.sql.in
│ │ ├── cagg_direct_compress.sql
│ │ ├── cagg_drop_chunks.sql
│ │ ├── cagg_dump.sql
│ │ ├── cagg_errors.sql
│ │ ├── cagg_invalidation.sql
│ │ ├── cagg_invalidation_variable_bucket.sql
│ │ ├── cagg_joins.sql
│ │ ├── cagg_multi.sql
│ │ ├── cagg_on_cagg.sql
│ │ ├── cagg_on_cagg_joins.sql
│ │ ├── cagg_permissions.sql.in
│ │ ├── cagg_planning.sql
│ │ ├── cagg_policy.sql
│ │ ├── cagg_policy_concurrent.sql
│ │ ├── cagg_policy_incremental.sql
│ │ ├── cagg_policy_move.sql
│ │ ├── cagg_policy_run.sql
│ │ ├── cagg_query.sql.in
│ │ ├── cagg_query_using_merge.sql.in
│ │ ├── cagg_refresh_using_merge.sql
│ │ ├── cagg_refresh_using_trigger.sql
│ │ ├── cagg_tableam.sql
│ │ ├── cagg_union_view.sql.in
│ │ ├── cagg_usage.sql.in
│ │ ├── cagg_utils.sql
│ │ ├── cagg_uuid.sql
│ │ ├── cagg_watermark.sql
│ │ ├── chunk_api.sql
│ │ ├── chunk_column_stats.sql
│ │ ├── chunk_merge.sql
│ │ ├── chunk_publication_compression.sql
│ │ ├── chunk_utils_compression.sql
│ │ ├── chunk_utils_internal.sql
│ │ ├── columnar_index_scan.sql.in
│ │ ├── columnar_scan_cost.sql
│ │ ├── columnstore_aliases.sql
│ │ ├── compress_auto_sparse_index.sql
│ │ ├── compress_batch_size.sql
│ │ ├── compress_bgw_reorder_drop_chunks.sql
│ │ ├── compress_bitmap_scan.sql
│ │ ├── compress_bloom_dml.sql
│ │ ├── compress_bloom_hash.sql
│ │ ├── compress_bloom_legacy_v1.sql
│ │ ├── compress_bloom_sparse.sql.in
│ │ ├── compress_bloom_sparse_debug.sql
│ │ ├── compress_compbloom_basics.sql
│ │ ├── compress_compbloom_config.sql
│ │ ├── compress_compbloom_index_add.sql
│ │ ├── compress_compbloom_index_drop.sql
│ │ ├── compress_compbloom_manual_config.sql
│ │ ├── compress_compbloom_upsert.sql
│ │ ├── compress_composite_bloom_debug.sql
│ │ ├── compress_default.sql
│ │ ├── compress_dml_copy.sql
│ │ ├── compress_explain.sql
│ │ ├── compress_float8_corrupt.sql
│ │ ├── compress_qualpushdown_complex.sql
│ │ ├── compress_qualpushdown_saop.sql
│ │ ├── compress_sort_transform.sql
│ │ ├── compress_sparse_config.sql
│ │ ├── compress_unordered_sort.sql
│ │ ├── compressed_collation.sql
│ │ ├── compressed_detoaster.sql
│ │ ├── compression.sql
│ │ ├── compression_algos.sql
│ │ ├── compression_allocation.sql
│ │ ├── compression_bgw.sql
│ │ ├── compression_bool_vectorized.sql
│ │ ├── compression_bools.sql
│ │ ├── compression_conflicts.sql
│ │ ├── compression_constraints.sql
│ │ ├── compression_create_compressed_table.sql
│ │ ├── compression_ddl.sql
│ │ ├── compression_defaults.sql
│ │ ├── compression_delete_bitmapscan.sql.in
│ │ ├── compression_errors.sql
│ │ ├── compression_fks.sql
│ │ ├── compression_hypertable.sql
│ │ ├── compression_indexcreate.sql
│ │ ├── compression_indexscan.sql
│ │ ├── compression_insert.sql
│ │ ├── compression_merge.sql
│ │ ├── compression_null_dump_restore.sql
│ │ ├── compression_nulls_and_defaults.sql
│ │ ├── compression_permissions.sql.in
│ │ ├── compression_policy.sql
│ │ ├── compression_qualpushdown.sql
│ │ ├── compression_segment_meta.sql
│ │ ├── compression_sequence_num_removal.sql
│ │ ├── compression_settings.sql
│ │ ├── compression_sorted_merge.sql
│ │ ├── compression_sorted_merge_columns.sql
│ │ ├── compression_sorted_merge_distinct.sql
│ │ ├── compression_sorted_merge_filter.sql
│ │ ├── compression_sorted_merge_unordered.sql
│ │ ├── compression_trigger.sql
│ │ ├── compression_update_delete.sql.in
│ │ ├── compression_uuid.sql
│ │ ├── create_table_with.sql
│ │ ├── data/
│ │ │ ├── copy_data.csv
│ │ │ └── magic.csv
│ │ ├── decompress_index.sql
│ │ ├── decompress_memory.sql
│ │ ├── decompress_vector_qual.sql
│ │ ├── detach_chunk.sql
│ │ ├── direct_compress_copy.sql
│ │ ├── direct_compress_insert.sql
│ │ ├── feature_flags.sql
│ │ ├── fixed_schedules.sql
│ │ ├── foreign_keys_test.sql.in
│ │ ├── hypertable_generalization.sql
│ │ ├── include/
│ │ │ ├── aggregate_queries.sql
│ │ │ ├── aggregate_table_create.sql
│ │ │ ├── aggregate_table_populate.sql
│ │ │ ├── cagg_on_cagg_common.sql
│ │ │ ├── cagg_on_cagg_setup.sql
│ │ │ ├── cagg_on_cagg_validations.sql
│ │ │ ├── cagg_planning_query.sql
│ │ │ ├── cagg_query_common.sql
│ │ │ ├── cagg_refresh_common.sql
│ │ │ ├── chunk_utils_internal_orderedappend.sql
│ │ │ ├── cluster_test_setup.sql
│ │ │ ├── columnar_index_scan_query.sql
│ │ │ ├── compression_alter.sql
│ │ │ ├── compression_test.sql
│ │ │ ├── compression_test_hypertable.sql
│ │ │ ├── compression_test_hypertable_segment_meta.sql
│ │ │ ├── compression_test_merge.sql
│ │ │ ├── compression_test_segment_meta.sql
│ │ │ ├── compression_utils.sql
│ │ │ ├── cont_agg_equal.sql
│ │ │ ├── cont_agg_equal_deprecated.sql
│ │ │ ├── cont_agg_test_equal.sql
│ │ │ ├── debugsupport.sql
│ │ │ ├── filter_exec.sql
│ │ │ ├── foreign_keys.sql
│ │ │ ├── jit_cleanup.sql
│ │ │ ├── jit_load.sql
│ │ │ ├── jit_query.sql
│ │ │ ├── modify_exclusion_load.sql
│ │ │ ├── ordered_append.sql
│ │ │ ├── ordered_append_load.sql
│ │ │ ├── rand_generator.sql
│ │ │ ├── recompress_basic.sql
│ │ │ ├── recompression_integrity_check.sql
│ │ │ ├── scheduler_fixed_common.sql
│ │ │ ├── skip_scan_comp_query.sql
│ │ │ ├── skip_scan_dagg_comp_query.sql
│ │ │ ├── skip_scan_dagg_load_comp_query.sql
│ │ │ ├── skip_scan_dagg_query.sql
│ │ │ ├── skip_scan_dagg_query_ht.sql
│ │ │ ├── skip_scan_load.sql
│ │ │ ├── skip_scan_load_comp_query.sql
│ │ │ ├── skip_scan_multi_load.sql
│ │ │ ├── skip_scan_multi_query.sql
│ │ │ ├── skip_scan_notnull.sql
│ │ │ ├── skip_scan_notnull_setup.sql
│ │ │ ├── skip_scan_query.sql
│ │ │ ├── skip_scan_query_ht.sql
│ │ │ ├── transparent_decompression_constraintaware.sql
│ │ │ ├── transparent_decompression_ordered.sql
│ │ │ ├── transparent_decompression_ordered_index.sql
│ │ │ ├── transparent_decompression_ordered_indexplan.sql
│ │ │ ├── transparent_decompression_query.sql
│ │ │ ├── transparent_decompression_systemcolumns.sql
│ │ │ ├── transparent_decompression_undiffed.sql
│ │ │ └── vector_agg_planning_query.sql
│ │ ├── information_view_chunk_count.sql
│ │ ├── insert_memory_usage.sql
│ │ ├── jit.sql
│ │ ├── license_tsl.sql
│ │ ├── merge_append_partially_compressed.sql
│ │ ├── merge_chunks.sql
│ │ ├── merge_compress.sql
│ │ ├── modify_exclusion.sql.in
│ │ ├── move.sql
│ │ ├── ordered_append.sql.in
│ │ ├── plan_skip_scan.sql.in
│ │ ├── plan_skip_scan_dagg.sql.in
│ │ ├── plan_skip_scan_notnull.sql
│ │ ├── policy_generalization.sql
│ │ ├── privilege_maintain.sql
│ │ ├── read_only.sql
│ │ ├── rebuild_columnstore_tests.sql
│ │ ├── recompress_chunk_segmentwise.sql
│ │ ├── recompression_integrity_tests.sql
│ │ ├── recompression_integrity_unordered.sql
│ │ ├── reorder.sql
│ │ ├── scheduler_fixed.sql
│ │ ├── size_utils_tsl.sql
│ │ ├── skip_scan.sql
│ │ ├── skip_scan_dagg.sql
│ │ ├── split_chunk.sql
│ │ ├── telemetry_stats.sql
│ │ ├── transparent_decompression.sql.in
│ │ ├── transparent_decompression_join_index.sql
│ │ ├── transparent_decompression_ordered_index.sql.in
│ │ ├── transparent_decompression_queries.sql.in
│ │ ├── tsl_tables.sql
│ │ ├── uncompressed_size.sql
│ │ ├── unlogged.sql
│ │ ├── uuid_policies.sql
│ │ ├── vacuum.sql
│ │ ├── vector_agg_byte.sql
│ │ ├── vector_agg_default.sql
│ │ ├── vector_agg_expr.sql
│ │ ├── vector_agg_filter.sql
│ │ ├── vector_agg_functions.sql
│ │ ├── vector_agg_groupagg.sql
│ │ ├── vector_agg_grouping.sql
│ │ ├── vector_agg_memory.sql
│ │ ├── vector_agg_modify_hypertable.sql
│ │ ├── vector_agg_param.sql
│ │ ├── vector_agg_planning.sql.in
│ │ ├── vector_agg_segmentby.sql
│ │ ├── vector_agg_text.sql
│ │ ├── vector_agg_uuid.sql
│ │ ├── vector_qual_default.sql
│ │ └── vectorized_aggregation.sql
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── compression_sql_test.c
│ │ ├── compression_sql_test.h
│ │ ├── compression_unit_test.c
│ │ ├── decompress_arithmetic_test_impl.c
│ │ ├── decompress_text_test_impl.c
│ │ ├── test_chunk_stats.c
│ │ ├── test_continuous_agg.c
│ │ └── test_merge_chunk.c
│ └── t/
│ ├── 001_job_crash_log.pl
│ ├── 002_logrepl_decomp_marker.pl
│ ├── 003_mvcc_cagg.pl
│ ├── 004_truncate_or_delete_spin_lock.pl
│ ├── 005_recompression_spin_lock_test.pl
│ └── CMakeLists.txt
└── version.config
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
# AlwaysBreakAfterDefinitionReturnType: None # option is deprecated
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: false
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false # N/A C++
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false # N/A Java
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ TS Pragma:' #For future proofing
CompactNamespaces: false # N/A c++
ConstructorInitializerAllOnOneLineOrOnePerLine: false # N/A C++
ConstructorInitializerIndentWidth: 40 # N/A C++
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false # see catalog.c array struct assigns for an example
DerivePointerAlignment: false # always use Right
DisableFormat: false # haha
# ExperimentalAutoDetectBinPacking: false #the docs say not to have this in config file
FixNamespaceComments: true # N/A C++
ForEachMacros:
- foreach
- forboth
- for_each_cell
- for_both_cell
- forthree
IncludeBlocks: Preserve # separate include blocks will not be merged
IncludeCategories: # we want to ensure c.h and postgres.h appear first
- Regex: '^<(string|unistd)\.h>'
Priority: -2
- Regex: '^<postgres\.h>'
Priority: -1
- Regex: '^(<|")compat/compat\.h'
Priority: -2
- Regex: '^"compat/compat-msvc-enter\.h'
Priority: -1
- Regex: '^"compat/compat-msvc-exit\.h'
Priority: 2000000000
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '' # filename_<suffix> will be seen as the primary include
IndentCaseLabels: true
IndentPPDirectives: None # do not indent preprocessor directives after the '#'
IndentWidth: 4
IndentWrappedFunctionNames: false # we do not indent the function name in the declaration
JavaScriptQuotes: Double # N/A js
JavaScriptWrapImports: true # N/A js
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: '' # regex of macros that behave like '{'
MacroBlockEnd: '' # regex of macros that behave like '}'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None # N/A c++
ObjCBinPackProtocolList: Auto # N/A objC
ObjCBlockIndentWidth: 2 # N/A objC
ObjCSpaceAfterProperty: false # N/A objC
ObjCSpaceBeforeProtocolList: true # N/A objC
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 10000
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right # as in char *foo;
ReflowComments: true # break up long comments into multiple lines
SortIncludes: CaseInsensitive # sort includes
SortUsingDeclarations: false # N/A c++
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false # N/A c++
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true # N/A c++
SpaceBeforeInheritanceColon: false # N/A c++
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true # N/A C++
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false # N/A c++
SpacesInContainerLiterals: true # N/A c++
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Always
...
================================================
FILE: .codecov.yml
================================================
# If it says that commit YAML is invalid again,
# validate it with:
# curl --data-binary @.codecov.yml https://codecov.io/validate
# More docs: https://docs.codecov.com/docs/codecov-yaml#repository-yaml
ignore:
- "test/src"
coverage:
status:
project:
default:
flags:
- pr
================================================
FILE: .dir-locals.el
================================================
;; see also src/tools/editors/emacs.samples in the PostgreSQL source
;; tree for more complete settings
((c-mode . ((c-basic-offset . 4)
(c-file-style . "bsd")
(fill-column . 78)
(indent-tabs-mode . t)
(tab-width . 4)))
(diff-mode . ((tab-width . 4)))
(dsssl-mode . ((indent-tabs-mode . nil)))
(nxml-mode . ((indent-tabs-mode . nil)))
(perl-mode . ((perl-indent-level . 4)
(perl-continued-statement-offset . 4)
(perl-continued-brace-offset . 4)
(perl-brace-offset . 0)
(perl-brace-imaginary-offset . 0)
(perl-label-offset . -2)
(indent-tabs-mode . t)
(tab-width . 4)))
(sgml-mode . ((fill-column . 78)
(indent-tabs-mode . nil)))
(sql-mode . ((sql-product . postgres)))
)
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
[*.{c,h}]
indent_style = tab
indent_size = 4
[*.out]
trim_trailing_whitespace = false
insert_final_newline = false
================================================
FILE: .git-blame-ignore-revs
================================================
# This file contains a list of commits that are not likely what you
# are looking for in a blame, such as mass reformatting or renaming.
# You can set this file as a default ignore file for blame by running
# the following command.
#
# $ git config blame.ignoreRevsFile .git-blame-ignore-revs
# formatting with pgindent
32c45b75b27e3f690236a9d1c8d13a025316ad2f
# Fix formatting to comply with pgindent
2ec065b53823e50dd1ac1d7cf925ae5f90e293ea
# Fix formatting issues
3e42150e3b0402ae865d9a827d8d178568a0d27e
# Run clang-format on code
34edba16a9385a4b0353e8e07a19dba98d7e3fb9
# Run pg_format on SQL files
3f5872ec61650519e2c5e6fe1dfb60d07696cac7
# Fix various misspellings
68aec9593c0f37dddbaa4f2e2b34a9ba3f5b11d9
# Switch to clang-format-14
7758f5959c8ed64499ab0e6bb66c30464b11dd81
# Remove trailing whitespaces from test code
a4356f342f1732857a1d8057f71219b50f1919b2
# Cosmetic changes to create.c
230f368f4e5d146ce5f919cc5999b236997befaf
# Adding python and yaml linters
9133319081aef92705f1405087822fc281d215d4
44cd71a602ba96029001de6e97a1b44488730080
f75a51def79796ff7fef58ec950c859fe4e71618
21a3f8206c0de98932867096637c7d1e3d04d925
# Clang-tidy
f862212c8ca19b1af56c7608a68f22b7dd0c985e
05ba1cf22f0dc9232069b566dd23c3edb2cbaee4
ecf34132c69e1709cd393eab43b5fcbfd7c201db
e75274ee7c6eef1dafc9b4f4d9f71e8e88f76813
a3ef0384655d57200e83ad7b13c91a31177b97c1
================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
The Timescale Code of Conduct can be found at <https://www.timescale.com/code-of-conduct>.
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
---
name: Bug report
description: Is something not working? Help us fix it!
title: "[Bug]: <Title>"
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: dropdown
id: type
attributes:
label: What type of bug is this?
multiple: true
options:
- Configuration
- Crash
- Data corruption
- Incorrect result
- Locking issue
- Performance issue
- Unexpected error
- Other
validations:
required: true
- type: dropdown
id: subsystem
attributes:
label: What subsystems and features are affected?
description: You can pick multiple subsystems and features.
multiple: true
options:
- Adaptive chunking
- Background worker
- Backup
- Build system
- Command processing
- Compression
- Configuration
- Continuous aggregate
- Data ingestion
- Gapfill
- Packaging
- Partitioning
- Platform/OS
- Policy
- Query executor
- Query planner
- Replication
- Restore
- SkipScan
- Telemetry
- User-Defined Action (UDA)
- Other
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: |
Tell us what happened and also what you would have expected to
happen instead.
placeholder: "Describe the bug"
validations:
required: true
- type: input
id: timescaledb-version
attributes:
label: TimescaleDB version affected
description: Let us know what version of TimescaleDB you are running.
placeholder: "2.5.0"
validations:
required: true
- type: input
id: postgresql-version
attributes:
label: PostgreSQL version used
description: Let us know what version of PostgreSQL you are running.
placeholder: "17.4"
validations:
required: true
- type: input
id: os
attributes:
label: What operating system did you use?
description: |
Please provide OS, version, and architecture. For example:
Windows 10 x64, Ubuntu 21.04 x64, Mac OS X 10.5 ARM, Rasperry
Pi i386, etc.
placeholder: "Ubuntu 21.04 x64"
validations:
required: true
- type: dropdown
id: installation
attributes:
label: What installation method did you use?
multiple: true
options:
- Deb/Apt
- Docker
- Homebrew
- RPM
- Source
- Other
- Not applicable
validations:
required: true
- type: dropdown
id: platform
attributes:
label: What platform did you run on?
multiple: true
options:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Managed Service for TimescaleDB (MST/Aiven)
- Microsoft Azure Cloud
- On prem/Self-hosted
- Timescale Cloud
- Other
- Not applicable
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output and stack trace
description: |
Please copy and paste any relevant log output or a stack
trace. This will be automatically formatted into code, so no
need for backticks.
render: bash
- type: textarea
id: reproduce
attributes:
label: How can we reproduce the bug?
description: |
Please try to provide step-by-step instructions how to
reproduce the issue. If possible, provide scripts that we can
run to trigger the bug.
render: bash
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: true
contact_links:
- name: Support Request
url: https://www.timescale.com/support
about: Support request or question relating to TimescaleDB
- name: Timescale Community Slack
url: https://slack.timescale.com/
about: Get free help from the TimescaleDB community
- name: Timescale Community Forum
url: https://forum.timescale.com/
about: Get free help from the TimescaleDB community
- name: Documentation request
url: https://github.com/timescale/docs/issues/new/choose
about: Request a change to our documentation
================================================
FILE: .github/ISSUE_TEMPLATE/enhancement.yml
================================================
---
name: Enhancement
description: Suggest an enhancement to existing functionality
title: "[Enhancement]: <Title>"
labels: [ "enhancement" ]
body:
- type: dropdown
id: type
attributes:
label: What type of enhancement is this?
multiple: true
options:
- API improvement
- Configuration
- Performance
- Refactor
- Tech debt reduction
- User experience
- Other
validations:
required: true
- type: dropdown
id: subsystem
attributes:
label: What subsystems and features will be improved?
description: You can pick multiple subsystems and features.
multiple: true
options:
- Adaptive chunking
- Background worker
- Build system
- Command processing
- Compression
- Configuration
- Continuous aggregate
- Data ingestion
- Gapfill
- Packaging
- Partitioning
- Platform/OS
- Policy
- Query executor
- Query planner
- Replication
- SkipScan
- Telemetry
- User-Defined Action (UDA)
- Other
validations:
required: true
- type: textarea
id: what
attributes:
label: What does the enhancement do?
description: |
Give a high-level overview of how you suggest to improve an
existing feature or functionality.
validations:
required: true
- type: textarea
id: implementation
attributes:
label: Implementation challenges
description: |
Share any ideas of how to implement the enhancement.
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/feature.yml
================================================
---
name: Feature request
description: Suggest a new feature for TimescaleDB
title: "[Feature]: <Feature name>"
labels: [ "feature-request" ]
body:
- type: markdown
id: info
attributes:
value: |
Only use this template to suggest a new feature that doesn't already exist in TimescaleDB.
For enhancements to existing features, use the "Enhancement" issue template. For bugs,
use the bug report template.
- type: textarea
id: what
attributes:
label: What problem does the new feature solve?
description: |
Describe the problem and why it is important to solve. Did you consider alternative
solutions, perhaps outside the database? Why is it better to add the feature to
TimescaleDB?
validations:
required: true
- type: textarea
id: how
attributes:
label: What does the feature do?
description: |
Give a high-level overview of what the feature does and how it would work.
validations:
required: true
- type: textarea
id: implementation
attributes:
label: Implementation challenges
description: |
If you have ideas of how to implement the feature, and any particularly
challenging issues to overcome, then provide them here.
validations:
required: false
================================================
FILE: .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
================================================
- [ ] Add [CHANGELOG](https://github.com/timescale/timescaledb/blob/main/CHANGELOG.md) updates
- [ ] Needs [documentation](https://github.com/timescale/docs) updates
Fixes #<issue number>.
---
Cut everything below the above line.
## Guidelines for Pull requests
Checklist for a pull request:
- Try to follow [the seven rules of a great Git commit
message](https://chris.beams.io/posts/git-commit/).
- Ideally, the PR should be merged as a single commit.
- Rebase on latest main code.
- Reference the issue(s) resolved with Fixes #<issue number>, or
Closes #<issue number>.
- Make sure the PR has appropriate CHANGELOG updates, including thanks
to people that reported issues.
- Include appropriate documentation changes.
- Two approvals are necessary to merge.
### The seven rules of a great Git commit message
1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain what and why vs. how
### Single commit PR
The simplify reviewing and to protect against accidental merges of
work-in-progress commits, the CI system enforces that a PR is merged
as a single commit. However, sometimes a multi-commit PR is warranted
if each commit is a distinct change that makes sense to submit in the
same PR. The single-commit enforcement can be disabled by adding the
following trailer to the PR description (note that the trailer should
not be in the commit message):
Disable-check: commit-count
Generally, though, small single-commit PRs are preferred over large
multi-commit PRs so that PRs are easier to review. It is also good to
avoid multiple commits that have unrelated changes or a lot of
work-in-progress changes that are not appropriate for a well-formatted
commit log.
### Documentation
If the code change adds a new feature, limitation, or change in
behavior, the PR might need to include documentation or a separate
follow-up PR to the [documentation repository](https://github.com/timescale/docs).
================================================
FILE: .github/ci_settings.py
================================================
#!/usr/bin/env python
# This file and its contents are licensed under the Apache License 2.0.
# Please see the included NOTICE for copyright information and
# LICENSE-APACHE for a copy of the license.
# Common settings for our CI jobs
#
# EARLIEST is the minimum postgres version required when building from source
# LATEST is the maximum postgres version that is supported
# ABI_MIN is the minimum postgres version required when the extension was build against LATEST
#
PG15_EARLIEST = "15.10"
PG15_LATEST = "15.17"
PG15_ABI_MIN = "15.10"
PG16_EARLIEST = "16.6"
PG16_LATEST = "16.13"
PG16_ABI_MIN = "16.6"
PG17_EARLIEST = "17.2"
PG17_LATEST = "17.9"
PG17_ABI_MIN = "17.2"
PG18_EARLIEST = "18.0"
PG18_LATEST = "18.3"
PG18_ABI_MIN = "18.0"
PG_LATEST = [PG15_LATEST, PG16_LATEST, PG17_LATEST, PG18_LATEST]
PG_LATEST_ONLY = [PG17_LATEST]
================================================
FILE: .github/codespell-ignore-words
================================================
brin
clos
inh
inout
isnt
larg
relaction
textin
================================================
FILE: .github/filters.yaml
================================================
shell:
- '**.sh'
- .github/workflows/shellcheck.yaml
sql:
- 'sql/**'
- '.github/**'
src:
- 'CMakeLists.txt'
- 'cmake/**'
- 'coverage/**'
- 'scripts/**'
- 'sql/**'
- 'src/**'
- 'test/**'
- 'tsl/**'
- '.github/**'
windows-workflow:
- '.github/workflows/windows-build-and-test.yaml'
================================================
FILE: .github/gh_config_reader.py
================================================
#!/usr/bin/env python
# This file and its contents are licensed under the Apache License 2.0.
# Please see the included NOTICE for copyright information and
# LICENSE-APACHE for a copy of the license.
# We hash the .github directory to understand whether our Postgres build cache
# can still be used, and the __pycache__ files interfere with that, so don't
# create them.
import sys
sys.dont_write_bytecode = True
import ci_settings
import json
import os
# generate commands to set github action variables
for key in dir(ci_settings):
if not key.startswith("__"):
value = getattr(ci_settings, key)
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as output:
print(str.format("{0}={1}", key, json.dumps(value)), file=output)
================================================
FILE: .github/gh_matrix_builder.py
================================================
#!/usr/bin/env python
# This file and its contents are licensed under the Apache License 2.0.
# Please see the included NOTICE for copyright information and
# LICENSE-APACHE for a copy of the license.
# Python script to dynamically generate matrix for github action
# Since we want to run additional test configurations when triggered
# by a push to prerelease_test or by cron but github actions don't
# allow a dynamic matrix via yaml configuration, we generate the matrix
# with this python script. While we could always have the full matrix
# and have if checks on every step that would make the actual checks
# harder to browse because the workflow will have lots of entries and
# only by navigating into the individual jobs would it be visible
# if a job was actually run.
# We hash the .github directory to understand whether our Postgres build cache
# can still be used, and the __pycache__ files interfere with that, so don't
# create them.
import sys
sys.dont_write_bytecode = True
import json
import os
import random
import subprocess
from ci_settings import (
PG15_EARLIEST,
PG15_LATEST,
PG16_EARLIEST,
PG16_LATEST,
PG17_EARLIEST,
PG17_LATEST,
PG18_EARLIEST,
PG18_LATEST,
PG_LATEST,
)
# github event type which is either push, pull_request or schedule
event_type = sys.argv[1]
pull_request = event_type == "pull_request"
m = {
"include": [],
}
# Ignored tests that are known to be flaky or have known issues.
default_ignored_tests = {
"bgw_db_scheduler",
"bgw_db_scheduler_fixed",
"bgw_job_stat_history",
"bgw_launcher",
"telemetry",
"memoize",
"net",
}
# Some tests are ignored on PG earlier than 17 due to broken MergeAppend cost model there.
ignored_before_pg17 = default_ignored_tests | {"merge_append_partially_compressed"}
# Some tests are ignored on PG earlier than 16 due to changes in default relation
# size estimates.
ignored_before_pg16 = default_ignored_tests | {"columnar_scan_cost"}
# Tests that we do not run as part of a Flake tests
flaky_exclude_tests = {
# Not executed as a flake test since it easily exhausts available
# background worker slots.
"bgw_launcher",
# Not executed as a flake test since it takes a very long time and
# easily interferes with other tests.
"bgw_scheduler_restart",
}
# helper functions to generate matrix entries
# the release and apache config inherit from the
# debug config to reduce repetition
def build_debug_config(overrides):
# llvm version and clang versions must match otherwise
# there will be build errors this is true even when compiling
# with gcc as clang is used to compile the llvm parts.
#
# Strictly speaking, WARNINGS_AS_ERRORS=ON is not needed here, but
# we add it as a precaution. Intention is to have at least one
# release and one debug build with WARNINGS_AS_ERRORS=ON so that we
# capture warnings generated due to changes in the code base or the
# compiler.
base_config = dict(
{
"build_type": "Debug",
"cc": "gcc",
"clang": "clang",
"coverage": False,
"cxx": "g++",
"extra_packages": "clang llvm llvm-dev",
"ignored_tests": default_ignored_tests,
"name": "Debug",
"os": "ubuntu-22.04",
"pg_extra_args": "--enable-debug --enable-cassert --with-llvm LLVM_CONFIG=llvm-config",
"pg_extensions": "postgres_fdw test_decoding",
"installcheck": True,
"pginstallcheck": True,
"tsdb_build_args": "-DWARNINGS_AS_ERRORS=ON -DREQUIRE_ALL_TESTS=ON",
}
)
base_config.update(overrides)
return base_config
# We build this release configuration with WARNINGS_AS_ERRORS=ON to
# make sure that we can build with -Werrors even for release
# builds. This will capture some cases where warnings are generated
# for release builds but not for debug builds.
def build_release_config(overrides):
release_config = dict(
{
"name": "Release",
"build_type": "RelWithDebInfo",
"tsdb_build_args": "-DWARNINGS_AS_ERRORS=ON -DREQUIRE_ALL_TESTS=ON",
"coverage": False,
}
)
release_config.update(overrides)
return build_debug_config(release_config)
def build_without_telemetry(overrides):
config = dict(
{
"name": "ReleaseWithoutTelemetry",
"coverage": False,
}
)
config.update(overrides)
config = build_release_config(config)
config["tsdb_build_args"] += " -DUSE_TELEMETRY=OFF"
return config
def build_apache_config(overrides):
apache_config = dict(
{
"name": "ApacheOnly",
"build_type": "RelWithDebInfo",
"tsdb_build_args": "-DWARNINGS_AS_ERRORS=ON -DREQUIRE_ALL_TESTS=ON -DAPACHE_ONLY=1",
"coverage": False,
}
)
apache_config.update(overrides)
return build_debug_config(apache_config)
def macos_config(overrides):
macos_ignored_tests = {
"bgw_launcher",
"pg_dump",
"compression_bgw",
"compressed_collation",
}
openssl_path = "/usr/local/opt/openssl@3"
base_config = dict(
{
"cc": "clang",
"clang": "clang",
"coverage": False,
"cxx": "clang++",
"extra_packages": "",
"ignored_tests": default_ignored_tests.union(macos_ignored_tests),
"os": "macos-15-intel",
"pg_extra_args": (
" --enable-debug"
f" --with-libraries={openssl_path}/lib"
f" --with-includes={openssl_path}/include"
" --without-icu"
),
"pg_extensions": "postgres_fdw test_decoding",
"pginstallcheck": True,
"tsdb_build_args": (
" -DASSERTIONS=ON"
" -DREQUIRE_ALL_TESTS=ON"
f" -DOPENSSL_ROOT_DIR={openssl_path}"
),
}
)
base_config.update(overrides)
return base_config
# always test debug build on latest of all supported pg versions
m["include"].append(
build_debug_config({"pg": PG15_LATEST, "ignored_tests": ignored_before_pg16})
)
m["include"].append(
build_debug_config({"pg": PG16_LATEST, "ignored_tests": ignored_before_pg17})
)
m["include"].append(build_debug_config({"pg": PG17_LATEST}))
m["include"].append(build_debug_config({"pg": PG18_LATEST, "coverage": True}))
# Also test on ARM. The custom arm64 runner is only available in the
# timescale/timescaledb repository.
# See the available runners here:
# https://github.com/timescale/timescaledb/actions/runners
if os.environ.get("GITHUB_REPOSITORY") == "timescale/timescaledb":
m["include"].append(
build_debug_config(
{
"pg": PG18_LATEST,
"os": "timescaledb-runner-arm64",
# We need to enable ARM crypto extensions to build the vectorized grouping
# code. The actual architecture for our ARM CI runner is reported as:
# -imultiarch aarch64-linux-gnu - -mlittle-endian -mabi=lp64 -march=armv8.2-a+crypto+fp16+rcpc+dotprod
"pg_extra_args": "--enable-debug --enable-cassert --without-llvm CFLAGS=-march=armv8.2-a+crypto",
}
)
)
# test timescaledb with release config on latest postgres release in MacOS
# we only run compilation tests in pull requests.
m["include"].append(
build_release_config(
macos_config(
{
"pg": PG18_LATEST,
"installcheck": not pull_request,
"pginstallcheck": not pull_request,
}
)
)
)
# Test latest postgres release without telemetry. Also run clang-tidy on it
# because it's the fastest one.
m["include"].append(
build_without_telemetry(
{
"pg": PG18_LATEST,
"cc": "clang",
"cxx": "clang++",
"tsdb_build_args": "-DLINTER=ON -DWARNINGS_AS_ERRORS=ON",
}
)
)
# if this is not a pull request e.g. a scheduled run or a push
# to a specific branch like prerelease_test we add additional
# entries to the matrix
if not pull_request:
# add debug test for first supported PG15 version
m["include"].append(
build_debug_config(
{
"pg": PG15_EARLIEST,
"ignored_tests": ignored_before_pg16 | {"insert_single"},
}
)
)
# add debug test for first supported PG16 version
m["include"].append(
build_debug_config(
{
"pg": PG16_EARLIEST,
"ignored_tests": ignored_before_pg17 | {"insert_single"},
}
)
)
# add debug test for first supported PG17 version
if PG17_EARLIEST != PG17_LATEST:
m["include"].append(
build_debug_config(
{
"pg": PG17_EARLIEST,
"ignored_tests": {"insert_single"},
}
)
)
# add debug test for first supported PG18 version
if PG18_EARLIEST != PG18_LATEST:
m["include"].append(build_debug_config({"pg": PG18_EARLIEST}))
# add debug tests for timescaledb on latest postgres release in MacOS
m["include"].append(
build_debug_config(
macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_before_pg16})
)
)
m["include"].append(
build_debug_config(
macos_config({"pg": PG16_LATEST, "ignored_tests": ignored_before_pg17})
)
)
m["include"].append(build_debug_config(macos_config({"pg": PG17_LATEST})))
m["include"].append(build_debug_config(macos_config({"pg": PG18_LATEST})))
# add release test for latest pg releases
m["include"].append(
build_release_config({"pg": PG15_LATEST, "ignored_tests": ignored_before_pg16})
)
m["include"].append(
build_release_config({"pg": PG16_LATEST, "ignored_tests": ignored_before_pg17})
)
m["include"].append(build_release_config({"pg": PG17_LATEST}))
m["include"].append(build_release_config({"pg": PG18_LATEST}))
# add apache only test for latest pg versions
for PG_LATEST_VER in PG_LATEST:
m["include"].append(build_apache_config({"pg": PG_LATEST_VER}))
# to discover issues with upcoming releases we run CI against
# the stable branches of supported PG releases
m["include"].append(
build_debug_config(
{
"pg": 15,
"ignored_tests": ignored_before_pg16
| {
"bgw_custom",
"bgw_scheduler_restart",
"bgw_job_stat_history_errors_permissions",
"bgw_job_stat_history_errors",
"bgw_job_stat_history",
"bgw_db_scheduler_fixed",
"bgw_reorder_drop_chunks",
"scheduler_fixed",
"compress_bgw_reorder_drop_chunks",
},
"snapshot": "snapshot",
}
)
)
m["include"].append(
build_debug_config(
{
"pg": 16,
"ignored_tests": ignored_before_pg17,
"snapshot": "snapshot",
}
)
)
m["include"].append(
build_debug_config(
{
"pg": 17,
"snapshot": "snapshot",
}
)
)
m["include"].append(
build_debug_config(
{
"pg": 18,
"snapshot": "snapshot",
}
)
)
elif len(sys.argv) > 2:
# Check if we need to check for the flaky tests. Determine which test files
# have been changed in the PR. The sql files might include other files that
# change independently, and might be .in templates, so it's easier to look
# at the output files. They are also the same for the isolation tests.
p = subprocess.Popen(
f"git diff --name-only {sys.argv[2]} -- '**expected/*.out'",
stdout=subprocess.PIPE,
shell=True,
)
output, err = p.communicate()
p_status = p.wait()
if p_status != 0:
print(
f'git diff failed: code {p_status}, output "{output}", stderr "{err}"',
file=sys.stderr,
)
sys.exit(1)
tests = set()
test_count = 1
for f in output.decode().split("\n"):
print(f)
if not f:
continue
test_count += 1
if test_count > 10:
print(
f"too many ({test_count}) changed tests, won't run the flaky check",
file=sys.stderr,
)
print("full list:", file=sys.stderr)
print(output, file=sys.stderr)
tests = set()
break
basename = os.path.basename(f)
split = basename.split(".")
name = split[0]
ext = split[-1]
if ext == "out":
# Account for the version number.
tests.add(name)
else:
# Should've been filtered out above.
print(
f"unknown extension '{ext}' for test output file '{f}'", file=sys.stderr
)
sys.exit(1)
if tests:
to_run = [t for t in list(tests) if t not in flaky_exclude_tests] * 20
random.shuffle(to_run)
installcheck_args = f'TESTS="{" ".join(to_run)}"'
m["include"].append(
build_debug_config(
{
"coverage": False,
"installcheck_args": installcheck_args,
"name": "Flaky Check Debug",
"pg": PG18_LATEST,
"pginstallcheck": False,
}
)
)
# generate command to set github action variable
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as output:
print(str.format("matrix={0}", json.dumps(m, default=list)), file=output)
================================================
FILE: .github/workflows/abi.yaml
================================================
# Test minimum and maximum ABI compatible postgres version
#
# Build timescaledb against specific postgres version and then run our
# tests with that library loaded in a different postgres version.
# This is to detect changes in required minimum/maximum postgres versions
# for our built packages.
# This test is expected to fail when upstream does ABI incompatible changes
# in a new minor postgresql version.
name: ABI Test
"on":
schedule:
# run daily 20:00 on main branch
- cron: '0 20 * * *'
push:
branches:
- prerelease_test
- trigger/abi
pull_request:
paths: .github/workflows/abi.yaml
workflow_dispatch:
jobs:
config:
runs-on: ubuntu-latest
outputs:
pg15_abi_min: ${{ steps.config.outputs.pg15_abi_min }}
pg16_abi_min: ${{ steps.config.outputs.pg16_abi_min }}
pg17_abi_min: ${{ steps.config.outputs.pg17_abi_min }}
pg18_abi_min: ${{ steps.config.outputs.pg18_abi_min }}
pg15_latest: ${{ steps.config.outputs.pg15_latest }}
pg16_latest: ${{ steps.config.outputs.pg16_latest }}
pg17_latest: ${{ steps.config.outputs.pg17_latest }}
pg18_latest: ${{ steps.config.outputs.pg18_latest }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Read configuration
id: config
run: python .github/gh_config_reader.py
abi_test:
name: ABI Test ${{ matrix.dir }} PG${{ matrix.pg }}
runs-on: ubuntu-latest
needs: config
strategy:
fail-fast: false
matrix:
pg: [ 15, 16, 17, 18 ]
ignores:
- 'net telemetry'
include:
- pg: 15
builder: ${{ fromJson(needs.config.outputs.pg15_abi_min) }}
tester: ${{ fromJson(needs.config.outputs.pg15_latest) }}
- pg: 16
builder: ${{ fromJson(needs.config.outputs.pg16_abi_min) }}
tester: ${{ fromJson(needs.config.outputs.pg16_latest) }}
- pg: 17
builder: ${{ fromJson(needs.config.outputs.pg17_abi_min) }}
tester: ${{ fromJson(needs.config.outputs.pg17_latest) }}
- pg: 18
builder: ${{ fromJson(needs.config.outputs.pg18_abi_min) }}
tester: ${{ fromJson(needs.config.outputs.pg18_latest) }}
steps:
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Build extension with ${{ matrix.builder }}
run: |
BUILDER_IMAGE="postgres:${{matrix.builder}}-alpine"
docker pull ${BUILDER_IMAGE}
docker buildx imagetools inspect ${BUILDER_IMAGE}
docker run -i --rm -v $(pwd):/mnt -e EXTRA_PKGS="${EXTRA_PKGS}" ${BUILDER_IMAGE} bash <<"EOF"
apk add cmake gcc make build-base git ${EXTRA_PKGS}
# We run the same extension on different docker images, old versions
# have OpenSSL 1.1 and the new versions have OpenSSL 3, so we try to
# pin the 1.1. Note that depending on PG version, both images might
# have 1.1 or 3, so we first try to install the versioned 1.1 package,
# and if it's not present, it means the unversioned package is 1.1, so
# we install it.
apk add openssl1.1-compat-dev || apk add openssl-dev
# Postgres is compiled with ICU, so the pg_locale.h depends on the ICU
# headers and we have to install them
apk add icu-dev
git config --global --add safe.directory /mnt
cd /mnt
BUILD_DIR=build_abi BUILD_FORCE_REMOVE=true ./bootstrap
make -C build_abi -j $(getconf _NPROCESSORS_ONLN) install
mkdir -p build_abi/install_ext build_abi/install_lib
cp `pg_config --sharedir`/extension/timescaledb*.{control,sql} build_abi/install_ext
cp `pg_config --pkglibdir`/timescaledb*.so build_abi/install_lib
EOF
- name: Run tests on server ${{ matrix.tester }}
run: |
TEST_IMAGE="postgres:${{ matrix.tester }}-alpine"
docker pull ${TEST_IMAGE}
docker buildx imagetools inspect ${TEST_IMAGE}
docker run -i --rm -v $(pwd):/mnt -e EXTRA_PKGS="${EXTRA_PKGS}" ${TEST_IMAGE} bash <<"EOF"
apk add cmake gcc make build-base sudo coreutils ${EXTRA_PKGS}
apk add openssl1.1-compat-dev || apk add openssl-dev
cd /mnt
cp build_abi/install_ext/* `pg_config --sharedir`/extension/
cp build_abi/install_lib/* `pg_config --pkglibdir`
chown -R postgres /mnt
set -o pipefail
[ -f /usr/bin/gmake ] || ln -s /usr/bin/make /usr/bin/gmake
sudo -u postgres make -j $(getconf _NPROCESSORS_ONLN) -C build_abi \
-k regresscheck regresscheck-t regresscheck-shared \
IGNORES="${{ matrix.ignores }}" | tee installcheck.log
EOF
- name: Show regression diffs
if: always()
id: collectlogs
run: |
sudo chmod a+rw .
sudo find build_abi -name regression.diffs -exec cat {} + > regression.log
sudo find build_abi -name postmaster.log -exec cat {} + > postmaster.log
if [[ -s regression.log ]]; then echo "regression_diff=true" >>$GITHUB_OUTPUT; fi
grep -e 'FAILED' -e 'failed (ignored)' -e 'not ok' installcheck.log || true
cat regression.log
- name: Save regression diffs
if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v4
with:
name: Regression diff ABI Breakage ${{ matrix.dir }} PG${{ matrix.pg }}
path: regression.log
- name: Save postmaster.log
if: always()
uses: actions/upload-artifact@v4
with:
name: PostgreSQL log ABI Breakage ${{ matrix.dir }} PG${{ matrix.pg }}
path: postmaster.log
================================================
FILE: .github/workflows/apt-installcheck.yaml
================================================
# Test running make installcheck on our APT packages.
name: "Packaging tests: Installcheck for APT"
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
pull_request:
paths: .github/workflows/apt-installcheck.yaml
push:
tags:
- '*'
branches:
- release_test
- trigger/package_test
workflow_dispatch:
jobs:
apt_tests:
name: APT ${{ matrix.runner }} ${{ matrix.image }} PG${{ matrix.pg }} ${{ matrix.license }}
container:
image: ${{ matrix.image }}
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
runner:
- ubuntu-latest
- timescaledb-runner-arm64
image:
- ubuntu:22.04
pg:
- 17
license:
- "TSL"
include:
- runner: ubuntu-latest
arch: AMD64
- runner: timescaledb-runner-arm64
arch: ARM
- image: ubuntu:22.04
image_friendly: Ubuntu 22.04
runs-on: ${{ matrix.runner }}
steps:
- name: Add repositories
run: |
apt-get update
apt-get install -y wget lsb-release gnupg sudo postgresql-common git cmake jq
yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
image_type=$(lsb_release -i -s | tr '[:upper:]' '[:lower:]')
echo "deb https://packagecloud.io/timescale/timescaledb/${image_type}/ $(lsb_release -c -s) main" \
> /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescale_timescaledb.gpg
- name: Install timescaledb
run: |
apt-get update
apt-get install -y --no-install-recommends \
timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }} timescaledb-tools
timescaledb-tune --quiet --yes
- uses: actions/checkout@v4
- name: Get version of latest release
id: versions
run: |
version=$(wget -q https://api.github.com/repos/timescale/timescaledb/releases/latest -O - | jq -r .tag_name)
echo "version=${version}"
echo "version=${version}" >>$GITHUB_OUTPUT
grep PRETTY_NAME /etc/os-release >> $GITHUB_OUTPUT
echo "arch=$(uname -m)" >> $GITHUB_OUTPUT
- name: Test Installation
id: installation
run: |
set -xeu
pg_ctlcluster ${{ matrix.pg }} main start
sudo -u postgres psql -X -c "CREATE EXTENSION timescaledb" \
-c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb'"
installed_version=$(sudo -u postgres psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "${{ steps.versions.outputs.version }}" != "$installed_version" ];then
false
fi
sudo -u postgres psql -qtAX -c "
select format(E'commit_hash=%s\ncommit_tag=%s', commit_hash, commit_tag)
from _timescaledb_functions.get_git_commit();
" | tee -a $GITHUB_OUTPUT
- name: Checkout the sources for version ${{ steps.installation.outputs.commit_tag }}
uses: actions/checkout@v4
with:
ref: ${{ steps.installation.outputs.commit_hash }}
- name: Run make installcheck
id: installcheck
shell: bash
run: |
chown -R postgres:postgres .
chmod g+s .
sudo -u postgres git log -1 .
apt install -y postgresql-server-dev-${{ matrix.pg }}
sudo -u postgres cmake -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DTEST_PG_LOG_DIRECTORY="$(readlink -f .)"
set -o pipefail
sudo -u postgres LANG=C.UTF-8 make -k -C build installcheck | tee installcheck.log
- name: Collect the logs
if: always()
run: |
find . -name regression.diffs -exec cat {} + > regression.log
find . -mindepth 2 -name initdb.log -exec cat {} + > initdb.log
- name: Show regression diffs
if: always()
run: |
grep -e 'FAILED' -e 'failed (ignored)' -e 'not ok' installcheck.log || true
cat regression.log
- name: Save the logs
if: always()
uses: actions/upload-artifact@v4
with:
name: Installcheck logs ${{ matrix.runner }} ${{ matrix.image_friendly }} PG ${{ matrix.pg }}
path: |
postmaster.*
initdb.log
regression.log
installcheck.log
================================================
FILE: .github/workflows/apt-packages.yaml
================================================
# Test installing our ubuntu and debian packages for the latest version.
name: "Packaging tests: APT"
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
pull_request:
paths: .github/workflows/apt-packages.yaml
push:
tags:
- '*'
branches:
- release_test
- trigger/package_test
workflow_dispatch:
jobs:
apt_tests:
name: APT ${{ matrix.arch }} ${{ matrix.image }} PG${{ matrix.pg }} ${{ matrix.license }}
runs-on: ${{ matrix.runner }}
container:
image: ${{ matrix.image }}
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
arch: [ "x86", "ARM" ]
image: [ "debian:11-slim", "debian:12-slim", "debian:13-slim", "ubuntu:22.04", "ubuntu:24.04" ]
pg: [ 15, 16, 17, 18 ]
license: [ "TSL", "Apache"]
include:
- license: Apache
pkg_suffix: "-oss"
- arch: "x86"
runner: "ubuntu-latest"
- arch: "ARM"
runner: "cloud-image-runner-ubuntu-24-arm64"
exclude:
- image: "debian:11-slim"
pg: 18
steps:
- name: Add repositories
run: |
apt-get update
apt-get install -y wget lsb-release gnupg apt-transport-https sudo postgresql-common jq
yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
image_type=$(lsb_release -i -s | tr '[:upper:]' '[:lower:]')
echo "deb https://packagecloud.io/timescale/timescaledb/${image_type}/ $(lsb_release -c -s) main" \
> /etc/apt/sources.list.d/timescaledb.list
if [ "${image_type}" = "ubuntu" ]; then
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | apt-key add -
else
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescale_timescaledb.gpg
fi
- name: Install timescaledb
run: |
apt-get update
apt-get install -y --no-install-recommends \
timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }} timescaledb-tools
timescaledb-tune --quiet --yes
- name: List available versions
run: |
apt-cache show timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }} \
| grep -e Version: -e Depends: | tr '\n' ' ' | sed -e 's! Version: !\n!g' -e 's!Version: !!' -e 's!$!\n!'
- name: Show files in package
run: |
dpkg -L timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}
- uses: actions/checkout@v4
- name: Get version of latest release
id: versions
run: |
version=$(wget -q https://api.github.com/repos/timescale/timescaledb/releases/latest -O - | jq -r .tag_name)
echo "version=${version}"
echo "version=${version}" >>$GITHUB_OUTPUT
- name: Test Installation
run: |
pg_ctlcluster ${{ matrix.pg }} main start
sudo -u postgres psql -X -c "CREATE EXTENSION timescaledb" \
-c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb'"
installed_version=$(sudo -u postgres psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "${{ steps.versions.outputs.version }}" != "$installed_version" ];then
false
fi
- name: Test Downgrade
run: |
# Since this runs nightly on main we have to get the previous version
# from the last released version and not current branch.
prev_version=$(wget --quiet -O - \
https://raw.githubusercontent.com/timescale/timescaledb/${{ steps.versions.outputs.version }}/version.config \
| grep previous_version | sed -e 's!previous_version = !!')
sudo -u postgres psql -X -c "ALTER EXTENSION timescaledb UPDATE TO '${prev_version}'" \
-c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb'"
installed_version=$(sudo -u postgres psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "$prev_version" != "$installed_version" ];then
false
fi
- name: Install toolkit
run: |
apt-get install -y --no-install-recommends \
timescaledb-toolkit-postgresql-${{ matrix.pg }}
- name: List available toolkit versions
run: |
apt-cache show timescaledb-toolkit-postgresql-${{ matrix.pg }} | grep -e Version: -e Depends: | tr '\n' ' ' | sed -e 's! Version: !\n!g' -e 's!Version: !!' -e 's!$!\n!'
- name: PostgreSQL log
if: always()
run: |
cat /var/log/postgresql/postgresql-${{ matrix.pg }}-main.log
================================================
FILE: .github/workflows/backport-trigger.yaml
================================================
# A helper workflow to trigger the run of the backport workflow on the main
# branch, when a release branch or the main branch were changed.
name: Trigger the Backport Workflow
"on":
push:
branches:
- main
- ?.*.x
pull_request:
paths: .github/workflows/backport-trigger.yaml
jobs:
backport_trigger:
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Trigger the Backport Workflow
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
gh workflow run backport.yaml --ref main
================================================
FILE: .github/workflows/backport.yaml
================================================
name: Backport Bug Fixes
on:
schedule:
# Run weekdays 12:00 on main branch, so that it doesn't wreak havoc on
# weekends. Good to have regular runs so that we can react to changes in
# issue tags, or retry some spurious network errors, or whatever.
- cron: '0 12 * * 1-5'
workflow_dispatch:
push:
# This is also triggered from backport-trigger.yaml when the release branches
# are updated.
branches:
# You can run and debug new versions of the backport script by pushing it
# to this branch. workflow_dispatch can only be run through github cli for
# branches that are not main, so it's inconvenient.
- trigger/backport
# The workflow needs the permission to push branches
permissions:
contents: write
pull-requests: write
issues: write
actions: write
statuses: write
jobs:
backport:
name: Backport Bug Fixes
runs-on: timescaledb-runner-arm64
steps:
- name: Install Python Dependencies
run: |
pip install PyGithub requests
- name: Checkout TimescaleDB
uses: actions/checkout@v4
with:
token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Run the Backport Script
env:
ORG_AUTOMATION_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
git remote --verbose
scripts/backport.py 2>&1
git remote --verbose
================================================
FILE: .github/workflows/catalog-updates-check.yaml
================================================
name: Check for unsafe catalog updates
"on":
pull_request:
push:
branches:
- main
- ?.*.x
jobs:
check_catalog_correctly_updated:
name: Check updates to latest-dev and reverse-dev are properly handled by PR
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pglast
run: |
python -m pip install pglast
- name: Check sql file contents
run: |
find sql -name '*.sql' -not -path 'sql/updates/*' -not -path 'sql/compat.sql' | xargs -IFILE python scripts/check_updates.py FILE
- name: Check latest-dev contents
run: |
python scripts/check_updates.py --latest "sql/updates/latest-dev.sql"
- name: Check for idempotency in SQL scripts
if: always()
run: |
python scripts/check_sql_script.py sql/*.sql
# To allow fixing previous mistakes we run the check against reverse-dev but don't
# fail it on errors.
- name: Check reverse-dev contents
if: always()
run: |
python scripts/check_updates.py "sql/updates/reverse-dev.sql" || true
================================================
FILE: .github/workflows/changelog-check.yaml
================================================
name: Check for changelog entry file
"on":
pull_request:
types: [opened, synchronize, reopened, edited]
branches:
- main
jobs:
# Check if the PR creates a separate file with changelog entry in the
# ".unreleased" folder
#
# This check can be disabled by adding the following line in the PR text
#
# Disable-check: force-changelog-file
#
# The file having the changelog entry is expected to have lines in the
# following format
#
# Fixes: #NNNN <bug description> (mandatory in case of bugfixes)
# Thanks: @name <thank you note> (optional)
# Implements: #NNNN <feature description> (mandatory in case of new features)
check_changelog_file:
name: Check for file with CHANGELOG entry
runs-on: timescaledb-runner-arm64
steps:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Install Python Dependencies
run: |
pip install PyGithub
- name: Checkout source
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Check if the pull request adds file in ".unreleased" folder
shell: bash --norc --noprofile {0}
env:
BODY: ${{ github.event.pull_request.body }}
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
set -euo pipefail
folder=".unreleased"
# Get the list of modified files as a bash array. Exclude the
# development-related files because they don't require a changelog.
mapfile -t modified_files < <(gh pr view $PR_NUMBER --json files --jq '
[.files.[].path | select(
(startswith(".github") or startswith("test")
or startswith("tsl/test") or startswith("scripts"))
| not)] | .[]')
echo "Modified files: ${modified_files[@]}"
# Get the changelog files as a bash array
mapfile -t changelog_files < <(gh pr view $PR_NUMBER --json files --jq "
[.files.[].path | select(startswith(\"${folder}\"))] | .[]")
echo "Changelog files: ${changelog_files[@]}"
if echo "$BODY" | egrep -qsi "Disable-check:[[:space:]]*force-changelog-file"
then
# skip changelog checks if forced
:
elif (( ${#modified_files[@]} > 0 && ${#changelog_files[@]} == 0 ))
then
# if no changelog files found, and the PR does not have the force disable check option
echo "PR does not add a change log file in .unreleased/ folder"
echo "Check .unreleased/template.rfc822 for the format of the change log file."
echo
echo "To disable changelog updated check, add this trailer to pull request message:"
echo
echo "Disable-check: force-changelog-file"
echo
echo "Trailers follow RFC2822 conventions, so no whitespace"
echo "before field name and the check is case-insensitive for"
echo "both the field name and the field body."
exit 1
else
# check the format of the files in .unreleased folder
for file in "${changelog_files[@]}"
do
if ! scripts/check_changelog_format.py "${file}"
then
echo "Invalid CHANGELOG entries in ${file}."
exit 1
fi
done
fi
================================================
FILE: .github/workflows/claude-code-review.yaml
================================================
name: Claude Code Review
on:
workflow_dispatch: # Manual trigger only, use @claude mentions for on-demand reviews
jobs:
claude-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage
Be constructive and helpful in your feedback.
Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
================================================
FILE: .github/workflows/coccinelle.yaml
================================================
# Check our codebase for defective programming patterns
name: Coccinelle
"on":
pull_request:
push:
branches:
- main
- ?.*.x
jobs:
coccinelle:
name: Coccinelle
# coccinelle version in ubuntu-latest (20.04) is too old so we run
# this in jammy (22.04)
runs-on: ubuntu-22.04
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get -y install coccinelle
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Run coccinelle
run: |
./scripts/coccinelle.sh
- name: Save coccinelle.diff
if: always()
uses: actions/upload-artifact@v4
with:
name: coccinelle.diff
path: coccinelle.diff
================================================
FILE: .github/workflows/code_style.yaml
================================================
name: Code style
"on":
push:
branches:
- main
- ?.*.x
pull_request:
jobs:
cmake_checks:
name: Check CMake files
runs-on: ubuntu-22.04
steps:
- name: Install prerequisites
run: pip install cmakelang
- name: Checkout source
uses: actions/checkout@v4
- name: Run format on CMake files
run: |
git reset --hard
find -name CMakeLists.txt -exec cmake-format -i {} +
find src test tsl -name '*.cmake' -exec cmake-format -i {} +
git diff --exit-code
perl_checks:
name: Check Perl code in tree
runs-on: ubuntu-22.04
steps:
- name: Install prerequisites
run: sudo apt install perltidy
- name: Checkout source
uses: actions/checkout@v4
- name: Check trailing whitespace
if: always()
run: |
find . -name '*.p[lm]' -exec perl -pi -e 's/[ \t]+$//' {} +
git diff --exit-code
- name: Format Perl files, if needed
if: always()
run: |
git reset --hard
find . -name '*.p[lm]' -exec perltidy -b -bext=/ {} +
git diff --exit-code
yaml_checks:
name: Check YAML code in tree
runs-on: ubuntu-latest
steps:
- name: Install prerequisites
run: |
pip install yamllint
- name: Checkout source
uses: actions/checkout@v4
- name: Run yamllint
run: |
find . -type f \( -name "*.yaml" -or -name "*.yml" \) -print -exec yamllint {} \+
spelling_checks:
name: Check spelling
runs-on: ubuntu-latest
steps:
- name: Install prerequisites
run: |
pip install codespell
- name: Checkout source
uses: actions/checkout@v4
- name: Run codespell
run: |
find . -type f \( -name "*.c" -or -name "*.h" -or -name "*.yaml" -or -name "*.yml" -or -name "*.sh" -or -name "*.cmake" -or -name "*.py" -or -name "*.pl" -or -name "CMakeLists.txt" \) \
-exec codespell -I .github/codespell-ignore-words {} \+
cc_checks:
name: Check code formatting
runs-on: ubuntu-22.04
strategy:
fail-fast: false
env:
LLVM_VER: 17
steps:
- name: Install dependencies
run: |
gpg --batch --keyserver hkp://keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
gpg --batch --export --export-options export-minimal --armor 15CF4D18AF4F7421 | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc > /dev/null
. /etc/os-release
echo "deb https://apt.llvm.org/${VERSION_CODENAME}/ llvm-toolchain-${VERSION_CODENAME}-${LLVM_VER} main" | sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null
sudo apt-get update
sudo apt-get install clang-format-${LLVM_VER}
- name: Checkout source
uses: actions/checkout@v4
- name: Check trailing whitespace
if: always()
run: |
git reset --hard
find . -type f -regex '.*\.\(c\|h\|sql\|sql\.in\)$' -exec perl -pi -e 's/[ \t]+$//' {} +
git diff --exit-code
- name: Check code formatting
if: always()
run: |
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${LLVM_VER} 100
sudo update-alternatives --set clang-format /usr/bin/clang-format-${LLVM_VER}
git reset --hard
./scripts/clang_format_all.sh
git diff --exit-code
- name: FIXME annotations left in code (use TODO for long-term notes)
if: always()
run: |
! grep fixme -niR ./*
python_checks:
name: Check Python code in tree
runs-on: ubuntu-latest
steps:
- name: Install prerequisites
run: |
pip install --upgrade pip
pip install black prospector pylint dodgy \
mccabe pycodestyle pyflakes \
psutil pygithub pglast testgres more_itertools
# pinning snowballstemmer to version 2.2.0 due to:
# https://github.com/prospector-dev/prospector/issues/763
pip install --force-reinstall --no-deps snowballstemmer==2.2.0
pip list
pip list --user
- name: Checkout source
uses: actions/checkout@v4
- name: Run prospector
run: |
git reset --hard
find . -type f -name "*.py" -print -exec prospector {} + -exec black {} +
git diff --exit-code
misc_checks:
name: Check license, update scripts, git hooks, missing gitignore entries and unnecessary template tests
runs-on: ubuntu-24.04
strategy:
fail-fast: false
steps:
- name: Checkout source
if: always()
uses: actions/checkout@v4
- name: Check license
if: always()
run: ./scripts/check_license_all.sh
- name: Check git commit hooks
if: always()
run: |
./scripts/githooks/commit_msg_tests.py
- name: Check for unreferenced test files
if: always()
run: ./scripts/check_unreferenced_files.sh
- name: Check for missing gitignore entries for template test files
if: always()
run: |
./bootstrap
./scripts/check_missing_gitignore_for_template_tests.sh
- name: Check for unnecessary template test files
if: always()
run: ./scripts/check_unnecessary_template_tests.sh
- name: Check for orphaned output test files
if: always()
run: ./scripts/check_orphaned_test_output_files.sh
================================================
FILE: .github/workflows/coverity.yaml
================================================
name: Coverity
"on":
schedule:
# run at 22:00 on every saturday
- cron: '0 22 * * TUE,SAT'
push:
branches:
- coverity_scan
- trigger/coverity
pull_request:
paths: .github/workflows/coverity.yaml
workflow_dispatch:
jobs:
coverity:
name: Coverity ${{ matrix.pg }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# run only on the 3 latest PG versions as we have rate limit on coverity
pg: [16, 17, 18]
os: [ubuntu-22.04]
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install gnupg systemd-coredump gdb postgresql-common
yes | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt-get update
sudo apt-get install postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }}
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Coverity tools
run: |
wget https://scan.coverity.com/download/linux64 \
--post-data "token=${{ secrets.COVERITY_TOKEN }}&project=timescale%2Ftimescaledb" \
-O coverity_tool.tgz -q
tar xf coverity_tool.tgz
mv cov-analysis-linux64-* coverity
- name: Build TimescaleDB
run: |
PATH="$GITHUB_WORKSPACE/coverity/bin:/usr/lib/postgresql/${{ matrix.pg }}/bin:$PATH"
./bootstrap -DCMAKE_BUILD_TYPE=Release
cov-build --dir cov-int make -C build
- name: Upload report
env:
FORM_EMAIL: --form email=ci@timescale.com
FORM_FILE: --form file=@timescaledb.tgz
FORM_DESC: --form description="CI"
FORM_TOKEN: --form token="${{ secrets.COVERITY_TOKEN }}"
COVERITY_URL: https://scan.coverity.com/builds?project=timescale%2Ftimescaledb
run: |
tar czf timescaledb.tgz cov-int
curl $FORM_TOKEN $FORM_EMAIL $FORM_DESC $FORM_FILE \
--form version="$(grep '^version' version.config | cut -b11-)-${{ matrix.pg }}" $COVERITY_URL
================================================
FILE: .github/workflows/docker-images.yaml
================================================
# Test our docker images are built with the most recent version
# The main purpose of this test is to check the image is working
# and the latest tag points to an image with the most recent
# release.
name: "Packaging tests: Docker images"
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
pull_request:
paths: .github/workflows/docker-images.yaml
push:
tags:
- '*'
branches:
- release_test
- trigger/package_test
workflow_dispatch:
jobs:
docker_tests:
name: ${{ matrix.image }}
runs-on: ubuntu-latest
services:
ts:
image: timescale/${{ matrix.image }}
ports:
- 5432:5432
env:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRESQL_PASSWORD: ci
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: ci
strategy:
fail-fast: false
matrix:
image: [
"timescaledb:latest-pg15",
"timescaledb:latest-pg16",
"timescaledb:latest-pg17",
"timescaledb:latest-pg18",
"timescaledb-ha:pg15",
"timescaledb-ha:pg16",
"timescaledb-ha:pg17",
"timescaledb-ha:pg18",
]
steps:
- uses: actions/checkout@v4
- name: Get version of latest release
id: versions
env:
GH_TOKEN: ${{ github.token }}
run: |
version=$(gh release list --json tagName,isLatest --jq '.[] | select(.isLatest) | .tagName')
echo "version=${version}" >>$GITHUB_OUTPUT
- name: Wait for services to start
run: |
sleep 10
pg_isready -t 30
- name: Check version
run: |
psql -c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb'"
installed_version=$(psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "${{ steps.versions.outputs.version }}" != "$installed_version" ];then
false
fi
- name: Create hypertable
run: |
psql -c "$(cat <<SQL
CREATE TABLE metrics(time timestamptz, device text, metric text, value float);
SELECT create_hypertable('metrics','time');
SQL
)"
================================================
FILE: .github/workflows/extras-diagnostic.yaml
================================================
# Test diagnostic script from timescaledb-extras works
name: "timescaledb-extras diagnostic"
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
pull_request:
paths: .github/workflows/extras-diagnostic.yaml
push:
branches:
- trigger/package_test
workflow_dispatch:
jobs:
diagnostic_test:
name: timescaledb-extras PG${{ matrix.pg }} nightly
runs-on: ubuntu-latest
services:
ts:
image: timescaledev/timescaledb:nightly-pg${{ matrix.pg }}
ports:
- 5432:5432
env:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRESQL_PASSWORD: ci
env:
PGHOST: localhost
PGUSER: postgres
PGPASSWORD: ci
strategy:
fail-fast: false
matrix:
pg: [15,16,17,18]
steps:
- uses: actions/checkout@v4
with:
repository: 'timescale/timescaledb-extras'
- name: Wait for services to start
run: |
sleep 10
pg_isready -t 30
- name: Prepare database
run: |
psql -v ON_ERROR_STOP=1 -c "$(cat <<SQL
SELECT version();
SELECT extname, extversion from pg_extension;
CREATE TABLE t(time timestamptz) WITH (tsdb.hypertable);
INSERT INTO t SELECT '2025-01-01';
INSERT INTO t SELECT '2025-02-01';
SELECT compress_chunk(show_chunks('t'));
SQL
)"
- name: Run diagnostic script
run: |
psql -v ON_ERROR_STOP=1 < diagnostic.sql
================================================
FILE: .github/workflows/homebrew.yaml
================================================
# Test installation of our homebrew tap for latest version
name: "Packaging tests: Homebrew"
"on":
schedule:
# run daily 20:00 on main branch
- cron: '0 20 * * *'
pull_request:
paths: .github/workflows/homebrew.yaml
push:
tags:
- '*'
branches:
- release_test
- trigger/package_test
- trigger/homebrew_test
workflow_dispatch:
jobs:
homebrew:
name: Homebrew
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
license: [ "TSL", "Apache"]
include:
- license: Apache
install_options: "--with-oss-only"
steps:
- name: Setup
run: |
brew install postgresql@17
echo "/opt/homebrew/opt/postgresql@17/bin" >> $GITHUB_PATH
brew tap timescale/tap
brew info timescaledb
- name: Install timescaledb
run: |
brew uninstall cmake
brew install timescaledb ${{ matrix.install_options }}
timescaledb-tune --quiet --yes
timescaledb_move.sh
brew services start postgresql@17
# checkout code to get version information
- uses: actions/checkout@v4
- name: Test Installation
env:
GH_TOKEN: ${{ github.token }}
run: |
psql -X -c "CREATE EXTENSION timescaledb;" postgres
psql -X -c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb';" postgres
version=$(gh release list --json tagName,isLatest --jq '.[] | select(.isLatest) | .tagName')
installed_version=$(psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" \
postgres | sed -e 's! !!g')
if [ "$version" != "$installed_version" ];then
echo "Installed version \"${installed_version}\" does not match expected version \"${version}\"."
false
fi
================================================
FILE: .github/workflows/issue-handling.yaml
================================================
name: Process issue workflows
"on":
issues:
types: [opened, closed, labeled]
issue_comment:
types: [created, edited]
jobs:
add-to-project:
name: Add issue to projects
# issue_comment is triggered when commenting on both issues and
# pull requests. To avoid adding pull requests to the bug board,
# filter out pull requests
if: ${{ !github.event.issue.pull_request }}
runs-on: timescaledb-runner-arm64
steps:
- name: Add to bugs board
uses: actions/add-to-project@v0.5.0
with:
project-url: https://github.com/orgs/timescale/projects/55
github-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
labeled: bug, needs-triage, flaky-test
label-operator: OR
- name: Add to CAggs board
uses: actions/add-to-project@v0.5.0
with:
project-url: https://github.com/orgs/timescale/projects/128
github-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
labeled: continuous_aggregate
notify-sec:
name: Notify security channel
runs-on: timescaledb-runner-arm64
if: >-
github.event_name == 'issues' && github.event.action == 'opened' && (
contains(github.event.issue.labels.*.name, 'segfault') ||
contains(github.event.issue.labels.*.name, 'security')
)
||
github.event_name == 'issues' && github.event.action == 'labeled' && (
github.event.label.name == 'segfault' ||
github.event.label.name == 'security'
)
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
steps:
- name: Post to Security Channel
uses: slackapi/slack-github-action@v1.25.0
with:
channel-id: '${{ secrets.SLACK_CHANNEL_SECURITY }}'
payload: |
{
"text": "Issue #${{github.event.issue.number}} (${{github.event.issue.title}})> needs attention",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Issue <${{github.event.issue.html_url}}|#${{github.event.issue.number}} ${{github.event.issue.title}}> needs attention"
}
}
]
}
close-issue:
name: Issue is closed
runs-on: timescaledb-runner-arm64
if: github.event_name == 'issues' && github.event.action == 'closed' && contains(github.event.issues.issue.labels.*.name, 'bug')
steps:
- uses: leonsteinhaeuser/project-beta-automations@v2.0.0
with:
gh_token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
organization: timescale
project_id: 55
resource_node_id: ${{ github.event.issue.node_id }}
status_value: 'Done'
- name: Remove waiting-for-author label
uses: andymckay/labeler@3a4296e9dcdf9576b0456050db78cfd34853f260
with:
remove-labels: 'waiting-for-author, no-activity'
repo-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
waiting-for-author:
name: Waiting for Author
runs-on: timescaledb-runner-arm64
if: github.event_name == 'issues' && github.event.action == 'labeled'
&& github.event.label.name == 'waiting-for-author'
steps:
- uses: leonsteinhaeuser/project-beta-automations@v2.0.0
with:
gh_token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
organization: timescale
project_id: 55
resource_node_id: ${{ github.event.issue.node_id }}
status_value: 'Waiting for Author'
waiting-for-engineering:
name: Waiting for Engineering
runs-on: timescaledb-runner-arm64
if: github.event_name == 'issue_comment' && !github.event.issue.pull_request
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install jq
- name: Get board column of issue
id: extract_board_column
continue-on-error: true
run: |
# The following GraphQL query requests all issues from a project. It uses the repository
# to locate the issue and get the reference to the project. Then, a filter is applied
# (number: $project) to get the reference to the desired project (i.e., the bug board).
# Now, all issues from this project are requested. The reason for fetching all issues is
# because the current implementation of the GitHub GraphQL API for projects does not
# support server-side filters for issues and we can not restrict the query to our issue.
# Therefore, we fetch all issues and apply a filter on the client side in the next step.
gh api graphql --paginate -F issue=$ISSUE -F project=$PROJECT -F owner=$OWNER -F repo=$REPO -f query='
query board_column($issue: Int!, $project: Int!, $owner: String!, $repo: String!, $endCursor: String) {
repository(owner: $owner, name: $repo) {
issue(number: $issue) {
projectV2(number: $project) {
items(first: 100, after: $endCursor) {
nodes {
fieldValueByName(name: "Status") {
... on ProjectV2ItemFieldSingleSelectValue {
name
}
}
content {
... on Issue {
id
title
number
repository {
name
owner {
login
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}
}
' > api_result
# Get board column for issue
board_column=$(jq -r ".data.repository.issue.projectV2.items.nodes[] |
select (.content.number == $ISSUE and .content.repository.name == \"$REPO\" and .content.repository.owner.login == \"$OWNER\") |
.fieldValueByName.name" api_result)
echo "Issue is in column: $board_column"
echo "issue_board_column=$board_column" >> "$GITHUB_OUTPUT"
env:
OWNER: timescale
REPO: ${{ github.event.repository.name }}
PROJECT: 55
ISSUE: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Check if organization member
uses: tspascoal/get-user-teams-membership@v2
id: checkUserMember
with:
username: ${{ github.actor }}
organization: timescale
team: 'database-eng'
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Remove waiting-for-author label
if: >-
steps.checkUserMember.outputs.isTeamMember == 'false' &&
steps.extract_board_column.outputs.issue_board_column == 'Waiting for Author'
uses: andymckay/labeler@3a4296e9dcdf9576b0456050db78cfd34853f260
with:
remove-labels: 'waiting-for-author, no-activity'
repo-token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
- name: Move to waiting for engineering column
if: ${{ steps.checkUserMember.outputs.isTeamMember == 'false'
&& steps.extract_board_column.outputs.issue_board_column == 'Waiting for Author' }}
uses: leonsteinhaeuser/project-beta-automations@v2.0.0
with:
gh_token: ${{ secrets.ORG_AUTOMATION_TOKEN }}
organization: timescale
project_id: 55
resource_node_id: ${{ github.event.issue.node_id }}
status_value: 'Waiting for Engineering'
================================================
FILE: .github/workflows/label-handling.yaml
================================================
#
# Collection of actions to run when a label is added
# to an issue or pull request
#
name: Label Handling
on:
pull_request:
types:
- labeled
issues:
types:
- labeled
jobs:
#
# Ping the Database team if the label was applied on a PR
#
pr-upgrade-requires-restart:
name: "PR: Ping database team if 'upgrade-requires-restart' label is set"
runs-on: ubuntu-latest
steps:
- name: "PR: upgrade-requires-restart"
if: github.event.label.name == 'upgrade-requires-restart'
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: "📣 the `upgrade-requires-restart` label was added, pinging @timescale/database-eng"
})
#
# If a bug issue is opened, try to parse the affected TimescaleDB
# and Postgres version used, the add the labels to the issue. If
# the labels don't exist, created them. The format must be semver
# d.d.d+, any other format gets rejected and no label gets created.
# TimescaleDB labels are prefixed with a `v`, e.g. `v2.23.0``
# Postgres labels are prefixed with `postgres`, e.g. `postgres-17.4`
#
issue-add-version-labels-for-bugs:
name: "Issue: Add TimescaleDB and Postgres version labels"
runs-on: ubuntu-latest
# Only run if the issue has the "bug" label
if: contains(github.event.issue.labels.*.name, 'bug')
permissions:
issues: write
steps:
- name: Extract versions from issue body
id: extract-versions
uses: actions/github-script@v7
with:
script: |
const issueBody = context.payload.issue.body || '';
const issueNumber = context.issue.number;
const results = {
issueNumber: issueNumber,
timescaledb: { found: false },
postgres: { found: false }
};
// Extract TimescaleDB version (with line break: "TimescaleDB version affected\nX.Y.Z")
const timescaleRegex = /TimescaleDB version affected\s*[\r\n]+\s*(\d+\.\d+\.\d+)/i;
const timescaleMatch = issueBody.match(timescaleRegex);
if (timescaleMatch) {
const version = timescaleMatch[1];
const formatRegex = /^\d+\.\d+\.\d+$/;
if (formatRegex.test(version)) {
console.log(`Found TimescaleDB version: ${version}`);
results.timescaledb = {
found: true,
version: version,
label: `v${version}`
};
}
}
// Extract PostgreSQL version (X.Y or X.Y.Z format, create X.Y label)
const postgresRegex = /PostgreSQL version used:\s*[\r\n]+\s*(\d+\.\d+(?:\.\d+)?)/i;
const postgresMatch = issueBody.match(postgresRegex);
if (postgresMatch) {
const fullVersion = postgresMatch[1];
// Extract just X.Y from X.Y or X.Y.Z
const majorMinor = fullVersion.match(/^(\d+\.\d+)/);
if (majorMinor) {
const version = majorMinor[1];
console.log(`Found PostgreSQL version: ${fullVersion}, using ${version} for label`);
results.postgres = {
found: true,
version: version,
fullVersion: fullVersion,
label: `postgres-${version}`
};
}
}
if (!results.timescaledb.found) {
console.log('No valid TimescaleDB version found in issue body');
}
if (!results.postgres.found) {
console.log('No valid PostgreSQL version found in issue body');
}
return results;
result-encoding: json
- name: Create and add TimescaleDB version label
if: fromJson(steps.extract-versions.outputs.result).timescaledb.found == true
uses: actions/github-script@v7
env:
RESULTS: ${{ steps.extract-versions.outputs.result }}
with:
script: |
const results = JSON.parse(process.env.RESULTS);
const labelName = results.timescaledb.label;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issueNumber = results.issueNumber;
// Check if label exists, create if it doesn't
try {
await github.rest.issues.getLabel({
owner,
repo,
name: labelName
});
console.log(`Label ${labelName} already exists`);
} catch (error) {
if (error.status === 404) {
console.log(`Label ${labelName} does not exist, creating it`);
await github.rest.issues.createLabel({
owner,
repo,
name: labelName,
color: '0366d6', // Blue color
description: `TimescaleDB version ${results.timescaledb.version}`
});
console.log(`Created label ${labelName}`);
} else {
throw error;
}
}
// Add label to issue
await github.rest.issues.addLabels({
owner,
repo,
issue_number: issueNumber,
labels: [labelName]
});
console.log(`Added label ${labelName} to issue #${issueNumber}`);
- name: Create and add PostgreSQL version label
if: fromJson(steps.extract-versions.outputs.result).postgres.found == true
uses: actions/github-script@v7
env:
RESULTS: ${{ steps.extract-versions.outputs.result }}
with:
script: |
const results = JSON.parse(process.env.RESULTS);
const labelName = results.postgres.label;
const owner = context.repo.owner;
const repo = context.repo.repo;
const issueNumber = results.issueNumber;
// Check if label exists, create if it doesn't
try {
await github.rest.issues.getLabel({
owner,
repo,
name: labelName
});
console.log(`Label ${labelName} already exists`);
} catch (error) {
if (error.status === 404) {
console.log(`Label ${labelName} does not exist, creating it`);
await github.rest.issues.createLabel({
owner,
repo,
name: labelName,
color: '336791', // PostgreSQL blue color
description: `PostgreSQL version ${results.postgres.version}`
});
console.log(`Created label ${labelName}`);
} else {
throw error;
}
}
// Add label to issue
await github.rest.issues.addLabels({
owner,
repo,
issue_number: issueNumber,
labels: [labelName]
});
console.log(`Added label ${labelName} to issue #${issueNumber}`);
================================================
FILE: .github/workflows/label-released-prs.yaml
================================================
# Apply "released" labels to the PRs that got into a particular release.
name: Label Released PRs
on:
release:
types: [published]
push:
branches: [trigger/label-released-prs]
jobs:
label-release:
name: Label Released PRs
runs-on: timescaledb-runner-arm64
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Install Python Dependencies
run: |
pip install PyGithub requests
- name: Get latest release tag
run: |
echo "LATEST_TAG=$(gh release view --json tagName --jq '.tagName')" >> $GITHUB_ENV
- name: Run label-released script
run: |
scripts/label-released.py --release "$LATEST_TAG"
================================================
FILE: .github/workflows/libfuzzer.yaml
================================================
name: Libfuzzer
"on":
schedule:
# run daily 1:00 on main branch
- cron: '0 1 * * *'
push:
branches:
- trigger/libfuzzer
pull_request:
paths:
- .github/workflows/libfuzzer.yaml
- 'tsl/test/fuzzing/compression/**'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
name: Build PostgreSQL and TimescaleDB
env:
PG_SRC_DIR: pgbuild
PG_INSTALL_DIR: postgresql
steps:
- name: Install Linux Dependencies
run: |
# Don't add ddebs here because the ddebs mirror is always 503 Service Unavailable.
# If needed, install them before opening the core dump.
sudo apt-get update
sudo apt-get install 7zip clang lld llvm flex bison libipc-run-perl \
libtest-most-perl tree jq
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Read configuration
id: config
run: python -B .github/gh_config_reader.py
# We are going to rebuild Postgres daily, so that it doesn't suddenly break
# ages after the original problem.
- name: Get date for build caching
id: get-date
run: |
echo "date=$(date +"%d")" >> $GITHUB_OUTPUT
# we cache the build directory instead of the install directory here
# because extension installation will write files to install directory
# leading to a tainted cache
- name: Cache PostgreSQL
id: cache-postgresql
uses: actions/cache@v4
with:
path: ~/${{ env.PG_SRC_DIR }}
key: "postgresql-libfuzzer-${{ steps.get-date.outputs.date }}-${{ hashFiles('.github/**') }}"
- name: Build PostgreSQL
if: steps.cache-postgresql.outputs.cache-hit != 'true'
run: |
wget -q -O postgresql.tar.bz2 \
https://ftp.postgresql.org/pub/source/v${{ steps.config.outputs.PG15_LATEST }}/postgresql-${{ steps.config.outputs.PG15_LATEST }}.tar.bz2
mkdir -p ~/$PG_SRC_DIR
tar --extract --file postgresql.tar.bz2 --directory ~/$PG_SRC_DIR --strip-components 1
cd ~/$PG_SRC_DIR
CC=clang ./configure --prefix=$HOME/$PG_INSTALL_DIR --with-openssl \
--without-readline --without-zlib --without-libxml --enable-cassert \
--enable-debug CC=clang \
CFLAGS="-fuse-ld=lld -ggdb3 -O2 -fno-omit-frame-pointer"
make -j$(getconf _NPROCESSORS_ONLN)
- name: Install PostgreSQL
run: |
make -C ~/$PG_SRC_DIR install
make -C ~/$PG_SRC_DIR/contrib/postgres_fdw install
- name: Upload config.log
if: always()
uses: actions/upload-artifact@v4
with:
name: config.log for PostgreSQL
path: ~/${{ env.PG_SRC_DIR }}/config.log
- name: Build TimescaleDB
run: |
set -e
export LIBFUZZER_PATH=$(dirname "$(find $(llvm-config --libdir) -name libclang_rt.fuzzer_no_main-x86_64.a | head -1)")
# Some pointers for the next time we have linking/undefined symbol problems:
# http://web.archive.org/web/20200926071757/https://github.com/google/sanitizers/issues/111
# http://web.archive.org/web/20231101091231/https://github.com/cms-sw/cmssw/issues/40680
cmake -B build -S . -DASSERTIONS=ON -DLINTER=OFF -DCMAKE_VERBOSE_MAKEFILE=1 \
-DWARNINGS_AS_ERRORS=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang \
-DCMAKE_C_FLAGS="-fsanitize=fuzzer-no-link -lstdc++ -L$LIBFUZZER_PATH -l:libclang_rt.fuzzer_no_main-x86_64.a -static-libsan" \
-DCOMPRESSION_FUZZING=1 -DPG_PATH=$HOME/$PG_INSTALL_DIR
make -C build -j$(getconf _NPROCESSORS_ONLN) install
# Incredibly, the upload-artifact action can't preserve executable permissions:
# https://github.com/actions/upload-artifact/issues/38
# It's also extremely slow.
- name: Compress the installation directory
run: 7z a install.7z $HOME/$PG_INSTALL_DIR
- name: Save the installation directory
uses: actions/upload-artifact@v4
with:
name: fuzzing-install-dir
path: install.7z
if-no-files-found: error
retention-days: 1
fuzz:
needs: build
strategy:
fail-fast: false
matrix:
case: [
{ algo: gorilla , pgtype: float8, bulk: false, runs: 500000000 },
{ algo: deltadelta, pgtype: int8 , bulk: false, runs: 500000000 },
{ algo: gorilla , pgtype: float8, bulk: true , runs: 1000000000 },
{ algo: deltadelta, pgtype: int8 , bulk: true , runs: 1000000000 },
# array has a peculiar recv function that recompresses all input, so
# fuzzing it is much slower. The dictionary recv also uses it.
{ algo: array , pgtype: text , bulk: false, runs: 10000000 },
{ algo: array , pgtype: text , bulk: true , runs: 10000000 },
{ algo: dictionary, pgtype: text , bulk: false, runs: 100000000 },
{ algo: dictionary, pgtype: text , bulk: true , runs: 100000000 },
{ algo: bool, pgtype: bool , bulk: false, runs: 500000000 },
{ algo: bool, pgtype: bool , bulk: true , runs: 1000000000 },
# uuid tests are slower because it is more work to compare
{ algo: dictionary, pgtype: uuid , bulk: false, runs: 200000000 },
{ algo: dictionary, pgtype: uuid , bulk: true , runs: 500000000 },
{ algo: uuid, pgtype: uuid , bulk: false, runs: 200000000 },
{ algo: uuid, pgtype: uuid , bulk: true , runs: 400000000 },
]
name: Fuzz decompression ${{ matrix.case.algo }} ${{ matrix.case.pgtype }} ${{ matrix.case.bulk && 'bulk' || 'rowbyrow' }}
runs-on: ubuntu-22.04
env:
PG_SRC_DIR: pgbuild
PG_INSTALL_DIR: postgresql
JOB_NAME: Fuzz decompression ${{ matrix.case.algo }} ${{ matrix.case.pgtype }} ${{ matrix.case.bulk && 'bulk' || 'rowbyrow' }}
steps:
- name: Install Linux dependencies
run: |
sudo apt update
sudo apt install 7zip systemd-coredump gdb
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Download the installation directory
uses: actions/download-artifact@v4
with:
name: fuzzing-install-dir
- name: Unpack the installation directory
run: 7z x -o$HOME install.7z
- name: initdb
run: |
# Have to do this before initializing the corpus, or initdb will complain.
set -xeu
export PGDATA=db
export PGPORT=5432
export PGDATABASE=postgres
export PATH=$HOME/$PG_INSTALL_DIR/bin:$PATH
initdb
echo "shared_preload_libraries = 'timescaledb'" >> $PGDATA/postgresql.conf
- name: Set configuration
id: config
run: |
set -x
echo "cache_prefix=${{ format('libfuzzer-corpus-2-{0}-{1}', matrix.case.algo, matrix.case.pgtype) }}" >> $GITHUB_OUTPUT
echo "name=${{ matrix.case.algo }} ${{ matrix.case.pgtype }} ${{ matrix.case.bulk && 'bulk' || 'rowbyrow' }}" >> $GITHUB_OUTPUT
- name: Restore the cached fuzzing corpus (bulk)
id: restore-corpus-cache-bulk
uses: actions/cache/restore@v4
with:
path: db/corpus-bulk
key: "${{ steps.config.outputs.cache_prefix }}-bulk"
# We save the row-by-row corpus separately from the bulk corpus, so that
# they don't overwrite each other. Now we are going to combine them.
- name: Restore the cached fuzzing corpus (rowbyrow)
id: restore-corpus-cache-rowbyrow
uses: actions/cache/restore@v4
with:
path: db/corpus-rowbyrow
key: "${{ steps.config.outputs.cache_prefix }}-rowbyrow"
- name: Initialize the fuzzing corpus
run: |
# Combine the cached corpus from rowbyrow and bulk fuzzing, and from repository.
mkdir -p db/corpus{,-rowbyrow,-bulk}
find "tsl/test/fuzzing/compression/${{ matrix.case.algo }}-${{ matrix.case.pgtype }}" -type f -exec cp -n -t db/corpus {} +
find "db/corpus-rowbyrow" -type f -exec cp -n -t db/corpus {} +
find "db/corpus-bulk" -type f -exec cp -n -t db/corpus {} +
ls db/corpus | wc -l
- name: Run libfuzzer for compression
run: |
set -xeu
export PGDATA=db
export PGPORT=5432
export PGDATABASE=postgres
export PATH=$HOME/$PG_INSTALL_DIR/bin:$PATH
pg_ctl -o "-clogging_collector=true" -o "-clog_destination=jsonlog,stderr" \
-o "-clog_directory=$(readlink -f .)" -o "-clog_filename=postmaster.log" \
-o "-clog_error_verbosity=verbose" start
psql -c "create extension timescaledb;"
# Create the fuzzing functions
export MODULE_NAME=$(basename $(find $HOME/$PG_INSTALL_DIR -name "timescaledb-tsl-*.so"))
psql -a -c "create or replace function fuzz(algo cstring, pgtype regtype,
bulk bool, runs int)
returns int as '"$MODULE_NAME"', 'ts_fuzz_compression' language c;
create or replace function ts_read_compressed_data_directory(algo cstring,
pgtype regtype, path cstring, bulk bool)
returns table(path text, bytes int, rows int, sqlstate text, location text)
as '"$MODULE_NAME"', 'ts_read_compressed_data_directory' language c;
"
# Start more fuzzing processes in the background. We won't even monitor
# their progress, because the server will panic if they find an error.
for x in {2..$(getconf _NPROCESSORS_ONLN)}
do
psql -v ON_ERROR_STOP=1 -c "select fuzz('${{ matrix.case.algo }}',
'${{ matrix.case.pgtype }}', '${{ matrix.case.bulk }}', ${{ matrix.case.runs }});" &
done
# Start the one fuzzing process that we will monitor, in foreground.
# The LLVM fuzzing driver calls exit(), so we expect to lose the connection.
ret=0
psql -v ON_ERROR_STOP=1 -c "select fuzz('${{ matrix.case.algo }}',
'${{ matrix.case.pgtype }}', '${{ matrix.case.bulk }}', ${{ matrix.case.runs }});" || ret=$?
if ! [ $ret -eq 2 ]
then
>&2 echo "Unexpected psql exit code $ret"
exit 1
fi
ls db/corpus | wc -l
fn="ts_read_compressed_data_directory('${{ matrix.case.algo }}',
'${{ matrix.case.pgtype }}', 'corpus', '${{ matrix.case.bulk }}')"
# Show the statistics about fuzzing corpus
psql -c "select count(*), location, min(sqlstate), min(path)
from $fn
group by location order by count(*) desc
"
# Save interesting cases because the caches are not available for download from UI
mkdir -p interesting
psql -qtAX -c "select distinct on (location) 'db/' || path from $fn
order by location, bytes, path
" | xargs cp -t interesting
# Check that we don't have any internal errors
errors=$(psql -qtAX --set=ON_ERROR_STOP=1 -c "select count(*)
from $fn
where sqlstate = 'XX000'")
echo "Internal program errors: $errors"
[ $errors -eq 0 ] || exit 1
# Shouldn't have any WARNINGS in the log.
! grep -F "] WARNING: " postmaster.log
# Check that the server is still alive.
psql -c "select 1"
- name: Collect the logs
if: always()
id: collectlogs
run: |
# wait in case there are in-progress coredumps
sleep 10
if coredumpctl -q list >/dev/null; then echo "coredumps=true" >>$GITHUB_OUTPUT; fi
# print OOM killer information
sudo journalctl --system -q --facility=kern --grep "Killed process" || true
- name: Save PostgreSQL log
if: always()
uses: actions/upload-artifact@v4
with:
name: PostgreSQL log for ${{ steps.config.outputs.name }}
path: postgres.*
- name: Save fuzzer-generated crash cases
if: always()
uses: actions/upload-artifact@v4
with:
name: Crash cases for ${{ steps.config.outputs.name }}
path: db/crash-*
if-no-files-found: ignore
- name: Save interesting cases
if: always()
uses: actions/upload-artifact@v4
with:
name: Interesting cases for ${{ steps.config.outputs.name }}
path: interesting/
# We use separate restore/save actions, because the default action won't
# save the updated folder after the cache hit. We also want to save the
# cache after fuzzing errors, and the default action doesn't save after
# errors.
# We can't overwrite the existing cache, so we add a unique suffix. The
# cache is matched by key prefix, not exact key, and picks the newest
# matching item, so this works.
# The caches for rowbyrow and bulk fuzzing are saved separately, otherwise
# the slower job would always overwrite the cache from the faster one. We
# want to combine corpuses from bulk and rowbyrow fuzzing for better
# coverage.
# Note that the cache action cannot be restored on a path different from the
# one it was saved from. To make our lives more interesting, it is not
# directly documented anywhere, but we can deduce it from path influencing
# the version.
- name: Change corpus path to please the 'actions/cache' GitHub Action
if: always()
run: |
rm -rf db/corpus-{bulk,rowbyrow} ||:
mv -fT db/corpus{,-${{ matrix.case.bulk && 'bulk' || 'rowbyrow' }}}
- name: Save fuzzer corpus
if: always()
uses: actions/cache/save@v4
with:
path: db/corpus-${{ matrix.case.bulk && 'bulk' || 'rowbyrow' }}
key: "${{ format('{0}-{1}-{2}-{3}',
steps.config.outputs.cache_prefix,
matrix.case.bulk && 'bulk' || 'rowbyrow',
github.run_id, github.run_attempt) }}"
- name: Stack trace
if: always() && steps.collectlogs.outputs.coredumps == 'true'
run: |
sudo coredumpctl gdb <<<"
set verbose on
set trace-commands on
show debug-file-directory
printf "'"'"query = '%s'\n\n"'"'", debug_query_string
frame function ExceptionalCondition
printf "'"'"condition = '%s'\n"'"'", conditionName
up 1
l
info args
info locals
bt full
" 2>&1 | tee stacktrace.log
./scripts/bundle_coredumps.sh
exit 1 # Fail the job if we have core dumps.
- name: Upload core dumps
if: always() && steps.collectlogs.outputs.coredumps == 'true'
uses: actions/upload-artifact@v4
with:
name: Coredumps for ${{ steps.config.outputs.name }}
path: coredumps
- name: Upload test results to the database
if: always()
env:
CI_STATS_DB: ${{ secrets.CI_STATS_DB }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
JOB_STATUS: ${{ job.status }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]] ;
then
GITHUB_PR_NUMBER="${{ github.event.number }}"
else
GITHUB_PR_NUMBER=0
fi
export GITHUB_PR_NUMBER
scripts/upload_ci_stats.sh
================================================
FILE: .github/workflows/linux-32bit-build-and-test.yaml
================================================
name: Regression Linux i386
"on":
schedule:
# run daily 0:00 on main branch
# Since we use the date as a part of the cache key to ensure no
# stale cache entries hiding build failures we need to make sure
# we have a cache entry present before workflows that depend on cache
# are run.
- cron: '0 0 * * *'
push:
branches:
- main
- ?.*.x
- prerelease_test
- trigger/regression
pull_request:
jobs:
config:
runs-on: ubuntu-latest
outputs:
pg_latest: ${{ github.event_name == 'pull_request' && steps.setter.outputs.PG_LATEST_ONLY || steps.setter.outputs.PG_LATEST }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Read configuration
id: setter
run: python .github/gh_config_reader.py
check_paths:
runs-on: ubuntu-latest
outputs:
run_ci: >-
${{ github.event_name == 'push'
|| (steps.filter.outputs.src == 'true' && !contains(github.event.pull_request.labels.*.name, 'skip-ci'))
}}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/filters.yaml
regress:
if: needs.check_paths.outputs.run_ci == 'true'
name: PG${{ matrix.pg }} ${{ matrix.build_type }} linux-i386
runs-on: ubuntu-latest
needs: [config, check_paths]
container:
image: i386/debian:bookworm-slim
options: --privileged --ulimit core=-1:-1 --ulimit fsize=-1:-1
env:
PG_SRC_DIR: pgbuild
PG_INSTALL_DIR: postgresql
CLANG: clang-14
CC: clang-14
CXX: clang++-14
DEBIAN_FRONTEND: noninteractive
# vectorized_aggregation has different output on i386 because int8 is by
# reference and currently it cannot be used for vectorized hash grouping.
# vector_agg_text and vector_agg_groupagg use the UMASH hashing library
# that we can't compile on i386.
# For the same reason of different hashing, we ignore the results of
# several bloom filter tests as well.
IGNORES: >-
append-*
bgw_db_scheduler*
columnar_scan_cost
compress_bloom_sparse_compat
compress_bloom_sparse_debug
compress_composite_bloom_debug
compress_qualpushdown_saop
compress_sort_transform
compression_allocation
merge_append_partially_compressed
net
pg_dump
telemetry
transparent_decompress_chunk-*
transparent_decompression-*
uncompressed_size
vector_agg_byte
vector_agg_expr
vector_agg_filter
vector_agg_groupagg
vector_agg_grouping
vector_agg_planning-*
vector_agg_text
vector_agg_uuid
vectorized_aggregation
${{ matrix.pg < 16 && 'columnar_scan_cost' || '' }}
SKIPS: chunk_adaptive histogram_test-*
EXTENSIONS: "postgres_fdw test_decoding"
strategy:
matrix:
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
build_type: [ Debug ]
fail-fast: false
steps:
# /__e/node16/bin/node (used by actions/checkout@v4) needs 64-bit libraries
- name: Install 64-bit libraries for GitHub actions
run: |
apt-get update
apt-get install -y lib64atomic1 lib64gcc-s1 lib64stdc++6 libc6-amd64 jq
- name: Install build dependencies
run: |
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!')
echo '/tmp/core.%h.%e.%t' > /proc/sys/kernel/core_pattern
apt-get install -y gcc make cmake libssl-dev libipc-run-perl \
libtest-most-perl sudo gdb git wget gawk lbzip2 flex bison lcov base-files \
locales clang-14 llvm-14 llvm-14-dev llvm-14-tools postgresql-client pkgconf \
icu-devtools
- name: Checkout TimescaleDB
uses: actions/checkout@v4
# We are going to rebuild Postgres daily, so that it doesn't suddenly break
# ages after the original problem.
- name: Get date for build caching
id: get-date
run: |
echo "date=$(date +"%d")" >> $GITHUB_OUTPUT
# we cache the build directory instead of the install directory here
# because extension installation will write files to install directory
# leading to a tainted cache
- name: Cache PostgreSQL ${{ matrix.pg }} ${{ matrix.build_type }}
id: cache-postgresql
uses: actions/cache@v4
with:
path: ~/${{ env.PG_SRC_DIR }}
key: "linux-32-bit-postgresql-${{ matrix.pg }}-${{ matrix.cc }}\
-${{ steps.get-date.outputs.date }}-${{ hashFiles('.github/**') }}"
- name: Build PostgreSQL ${{ matrix.pg }}
if: steps.cache-postgresql.outputs.cache-hit != 'true'
run: |
wget -q -O postgresql.tar.bz2 \
https://ftp.postgresql.org/pub/source/v${{ matrix.pg }}/postgresql-${{ matrix.pg }}.tar.bz2
mkdir -p ~/$PG_SRC_DIR
tar --extract --file postgresql.tar.bz2 --directory ~/$PG_SRC_DIR --strip-components 1
cd ~/$PG_SRC_DIR
# When building on i386 with the clang compiler, Postgres requires -msse2 to be used
./configure --prefix=$HOME/$PG_INSTALL_DIR --with-openssl \
--without-readline --without-zlib --without-libxml --enable-cassert \
--enable-debug --with-llvm --without-icu LLVM_CONFIG=llvm-config-14 CFLAGS="-msse2"
make -j $(getconf _NPROCESSORS_ONLN)
for ext in ${EXTENSIONS}; do
make -j $(getconf _NPROCESSORS_ONLN) -C contrib/${ext}
done
- name: Install PostgreSQL ${{ matrix.pg }}
run: |
useradd postgres
cd ~/$PG_SRC_DIR
make install
for ext in ${EXTENSIONS}; do
make -C contrib/${ext} install
done
chown -R postgres:postgres $HOME/$PG_INSTALL_DIR
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen
locale-gen
- name: Upload config.log
if: always() && steps.cache-postgresql.outputs.cache-hit != 'true'
uses: actions/upload-artifact@v4
with:
name: config.log linux-i386 PG${{ matrix.pg }}
path: ~/${{ env.PG_SRC_DIR }}/config.log
- name: Build TimescaleDB
run: |
# The owner of the checkout directory and the files do not match. Add the directory to
# Git's "safe.directory" setting. Otherwise git would complain about
# 'detected dubious ownership in repository'
git config --global --add safe.directory $(pwd)
./bootstrap -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" \
-DPG_SOURCE_DIR=~/$PG_SRC_DIR -DPG_PATH=~/$PG_INSTALL_DIR \
-DREQUIRE_ALL_TESTS=ON \
-DTEST_PG_LOG_DIRECTORY="$(readlink -f .)"
make -j $(getconf _NPROCESSORS_ONLN) -C build
make -C build install
chown -R postgres:postgres .
- name: Upload CMake Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: CMake Logs linux-i386 PG${{ matrix.pg }}
path: |
build/CMakeCache.txt
build/CMakeFiles/CMakeConfigureLog.yaml
build/CMakeFiles/CMakeError.log
build/CMakeFiles/CMakeOutput.log
build/compile_commands.json
- name: make installcheck
id: installcheck
shell: bash
run: |
set -o pipefail
export LANG=C.UTF-8
#
# Even disabling parallel plans the Sort Method on 32bits
# is always 'still in progress' for PG17 and PG18. So for now added
# those tests to SKIPS.
#
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!')
if [ ${PG_MAJOR} -eq 17 ]; then
SKIPS="${SKIPS} constraint_exclusion_prepared-17 ordered_append*"
fi
if [ ${PG_MAJOR} -eq 18 ]; then
SKIPS="${SKIPS} constraint_exclusion_prepared-18 ordered_append*"
fi
# PostgreSQL cannot be run as root. So, switch to postgres user.
runuser -u postgres -- \
make -k -C build installcheck IGNORES="${IGNORES}" \
SKIPS="${SKIPS}" PSQL="${HOME}/${PG_INSTALL_DIR}/bin/psql" \
| tee installcheck.log
- name: Show regression diffs
if: always()
id: collectlogs
shell: bash
run: |
find . -name regression.diffs -exec cat {} + > regression.log
if [[ -s regression.log ]]; then echo "regression_diff=true" >>$GITHUB_OUTPUT; fi
grep -e 'FAILED' -e 'failed (ignored)' -e 'not ok' installcheck.log || true
cat regression.log
- name: Save regression diffs
if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v4
with:
name: Regression diff linux-i386 PG${{ matrix.pg }}
path: |
regression.log
installcheck.log
- name: Save PostgreSQL log
if: always()
uses: actions/upload-artifact@v4
with:
name: PostgreSQL log linux-i386 PG${{ matrix.pg }}
path: postmaster.*
- name: Stack trace Linux
if: always()
shell: bash
run: |
# wait in case there are in-progress coredumps
sleep 10
if compgen -G "/tmp/core*" > /dev/null; then
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!')
for file in /tmp/core*
do
gdb "${HOME}/${PG_INSTALL_DIR}/bin/postgres" -c $file <<<"
set verbose on
set trace-commands on
show debug-file-directory
printf "'"'"query = '%s'\n\n"'"'", debug_query_string
bt full
# We try to find ExceptionalCondition frame to print the failed condition
# for searching in logs.
frame function ExceptionalCondition
printf "'"'"condition = '%s'\n"'"'", conditionName
# Hopefully now we should be around the failed assertion, print where
# we are.
up 1
list
info args
info locals
" 2>&1 | tee -a stacktrace.log
done
echo "coredumps=true" >>$GITHUB_OUTPUT
exit 1
fi
- name: Coredumps
if: always() && steps.coredumps.outputs.coredumps == 'true'
uses: actions/upload-artifact@v4
with:
name: Coredumps linux-i386 PG${{ matrix.pg }}
path: coredumps
- name: Save stacktraces
if: always() && steps.coredumps.outputs.coredumps == 'true'
uses: actions/upload-artifact@v4
with:
name: Stacktraces linux-i386 PG${{ matrix.pg }}
path: stacktrace.log
- name: Save TAP test logs
if: always()
uses: actions/upload-artifact@v4
with:
name: TAP test logs ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: |
build/test/tmp_check/log
build/tsl/test/tmp_check/log
- name: Upload test results to the database
if: always()
shell: bash
env:
# GitHub Actions allow you neither to use the env context for the job name,
# nor to access the job name from the step context, so we have to
# duplicate it to work around this nonsense.
JOB_NAME: PG${{ matrix.pg }} ${{ matrix.build_type }} linux-i386
CI_STATS_DB: ${{ secrets.CI_STATS_DB }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
JOB_STATUS: ${{ job.status }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]] ;
then
GITHUB_PR_NUMBER="${{ github.event.number }}"
else
GITHUB_PR_NUMBER=0
fi
export GITHUB_PR_NUMBER
scripts/upload_ci_stats.sh
report_status:
name: Regression Linux i386 summary
needs: [check_paths, regress]
if: always()
runs-on: ubuntu-latest
steps:
- run: |
# If the detector failed, or the matrix failed, exit with error
if [[ "${{ needs.regress.result }}" == "failure" ]]; then
exit 1
fi
echo "All checks passed or were safely skipped."
================================================
FILE: .github/workflows/linux-build-and-test.yaml
================================================
name: Regression
"on":
schedule:
# run daily 0:00 on main branch
# Since we use the date as a part of the cache key to ensure no
# stale cache entries hiding build failures we need to make sure
# we have a cache entry present before workflows that depend on cache
# are run.
- cron: '0 0 * * *'
push:
branches:
- main
- ?.*.x
- prerelease_test
- trigger/regression
pull_request:
jobs:
matrixbuilder:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Build matrix
id: set-matrix
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]] ;
then
git fetch origin ${{ github.base_ref }}:base
.github/gh_matrix_builder.py ${{ github.event_name }} base
else
.github/gh_matrix_builder.py ${{ github.event_name }}
fi
check_paths:
runs-on: ubuntu-latest
outputs:
run_ci: >-
${{ github.event_name == 'push'
|| (steps.filter.outputs.src == 'true' && !contains(github.event.pull_request.labels.*.name, 'skip-ci'))
}}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/filters.yaml
regress:
if: needs.check_paths.outputs.run_ci == 'true'
# Change the JOB_NAME variable below when changing the name.
name: PG${{ matrix.pg }}${{ matrix.snapshot }} ${{ matrix.name }} ${{ matrix.os }}
needs: [matrixbuilder, check_paths]
runs-on: ${{ matrix.os }}
env:
PG_SRC_DIR: pgbuild
PG_INSTALL_DIR: postgresql
CLANG: ${{ matrix.clang }}
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
# For some reason, on PG <= 15 with faketime the client backends get the
# modified time, and the background workers the unmodified time, so it
# doesn't work.
FAKETIME: |
${{ (contains(matrix.os, 'ubuntu')
&& !startsWith(matrix.pg, '14.')
&& !startsWith(matrix.pg, '15.')
) && 'faketime -f +379d' || '' }}
strategy:
matrix: ${{ fromJson(needs.matrixbuilder.outputs.matrix) }}
fail-fast: false
steps:
- name: Install Linux Dependencies
if: runner.os == 'Linux'
run: |
# Don't add ddebs here because the ddebs mirror is always 503 Service Unavailable.
# If needed, install them before opening the core dump.
sudo apt-get update
sudo apt-get install flex bison lcov systemd-coredump gdb libipc-run-perl \
libtest-most-perl pkgconf icu-devtools faketime jq ${{ matrix.extra_packages }}
- name: Install macOS Dependencies
if: runner.os == 'macOS'
run: |
# Disable the automatic dependency upgrade executed by `brew install`
# https://docs.brew.sh/Manpage#install-options-formulacask-
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gawk
brew --prefix openssl@3
# Install perl modules after last Homebew call, since Homebrew can change the perl version
sudo perl -MCPAN -e "CPAN::Shell->notest('install', 'IPC::Run')"
sudo perl -MCPAN -e "CPAN::Shell->notest('install', 'Test::Most')"
- name: Setup macOS coredump directory
if: runner.os == 'macOS'
run: sudo chmod 777 /cores
- name: Checkout TimescaleDB
uses: actions/checkout@v4
# We are going to rebuild Postgres daily, so that it doesn't suddenly break
# ages after the original problem.
- name: Get date for build caching
id: get-date
run: |
echo "date=$(date +"%d")" >> $GITHUB_OUTPUT
# on macOS the path used is depending on the runner version leading to cache failure
# when the runner version changes so we extract runner version from path and add it
# as cache suffix
- name: Cache suffix
if: runner.os == 'macOS'
run: echo "CACHE_SUFFIX=-${ImageVersion}" >> $GITHUB_ENV
# we cache the build directory instead of the install directory here
# because extension installation will write files to install directory
# leading to a tainted cache
- name: Cache PostgreSQL ${{ matrix.pg }} ${{ matrix.build_type }}
id: cache-postgresql
if: matrix.snapshot != 'snapshot' && runner.os == 'Linux'
uses: actions/cache@v4
with:
path: ~/${{ env.PG_SRC_DIR }}
key: "${{ matrix.os }}-postgresql-${{ matrix.pg }}-${{ matrix.cc }}-${{ steps.get-date.outputs.date }}-${{ hashFiles('.github/**') }}${{ env.CACHE_SUFFIX }}"
- name: Build PostgreSQL ${{ matrix.pg }}${{ matrix.snapshot }}
if: steps.cache-postgresql.outputs.cache-hit != 'true'
run: |
if [ "${{ matrix.snapshot }}" = "snapshot" ]; then
wget -q -O postgresql.tar.bz2 \
https://ftp.postgresql.org/pub/snapshot/${{ matrix.pg }}/postgresql-${{ matrix.pg }}-snapshot.tar.bz2
else
wget -q -O postgresql.tar.bz2 \
https://ftp.postgresql.org/pub/source/v${{ matrix.pg }}/postgresql-${{ matrix.pg }}.tar.bz2
fi
mkdir -p ~/$PG_SRC_DIR
tar --extract --file postgresql.tar.bz2 --directory ~/$PG_SRC_DIR --strip-components 1
cd ~/$PG_SRC_DIR
./configure --prefix=$HOME/$PG_INSTALL_DIR --with-openssl \
--without-readline --without-zlib --without-libxml ${{ matrix.pg_extra_args }}
make -j $(getconf _NPROCESSORS_ONLN)
for ext in ${{ matrix.pg_extensions }}; do
make -j $(getconf _NPROCESSORS_ONLN) -C contrib/${ext}
done
- name: Install PostgreSQL ${{ matrix.pg }}
run: |
cd ~/$PG_SRC_DIR
make install
for ext in ${{ matrix.pg_extensions }}; do
make -C contrib/${ext} install
done
echo "$HOME/$PG_INSTALL_DIR/bin" >> "${GITHUB_PATH}"
- name: Upload config.log
if: always() && steps.cache-postgresql.outputs.cache-hit != 'true'
uses: actions/upload-artifact@v4
with:
name: config.log for PostgreSQL ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: ~/${{ env.PG_SRC_DIR }}/config.log
- name: Test telemetry without OpenSSL
if: github.event_name != 'pull_request' && runner.os == 'Linux' && matrix.build_type == 'Debug'
run: |
BUILD_DIR=nossl ./bootstrap -DCMAKE_BUILD_TYPE=Debug \
-DPG_SOURCE_DIR=$HOME/$PG_SRC_DIR -DPG_PATH=$HOME/$PG_INSTALL_DIR \
${{ matrix.tsdb_build_args }} -DCODECOVERAGE=${{ matrix.coverage }} -DUSE_OPENSSL=OFF \
-DTEST_PG_LOG_DIRECTORY="$(readlink -f .)"
make -j $(getconf _NPROCESSORS_ONLN) -C nossl
make -C nossl install
make -C nossl regresscheck TESTS=telemetry
- name: Build TimescaleDB
run: |
# Show the actual architecture this CI runner has
"$CC" -march=native -E -v - </dev/null 2>&1 | grep cc1
./bootstrap -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" \
-DPG_SOURCE_DIR=$HOME/$PG_SRC_DIR -DPG_PATH=$HOME/$PG_INSTALL_DIR \
${{ matrix.tsdb_build_args }} -DCODECOVERAGE=${{ matrix.coverage }} \
-DTEST_PG_LOG_DIRECTORY="$(readlink -f .)"
make -j $(getconf _NPROCESSORS_ONLN) -C build
make -C build install
- name: Upload CMake Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: CMake Logs ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: |
build/CMakeCache.txt
build/CMakeFiles/CMakeConfigureLog.yaml
build/CMakeFiles/CMakeError.log
build/CMakeFiles/CMakeOutput.log
build/compile_commands.json
- name: Check exported symbols
run: ./build/scripts/export_prefix_check.sh
- name: make installcheck
if: matrix.installcheck
run: |
set -o pipefail
make -k -C build installcheck IGNORES="${{ join(matrix.ignored_tests, ' ') }}" \
SKIPS="${{ join(matrix.skipped_tests, ' ') }}" ${{ matrix.installcheck_args }} \
| tee installcheck.log
- name: pginstallcheck
if: matrix.pginstallcheck
run: make -C build pginstallcheck
- name: coverage
if: matrix.coverage
run: make -j $(getconf _NPROCESSORS_ONLN) -k -C build coverage
- name: Send coverage report to Codecov.io app
if: matrix.coverage
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./build/coverage/timescaledb-coverage.info
- name: Save LCOV coverage report
if: matrix.coverage
uses: actions/upload-artifact@v4
with:
name: LCOV coverage report ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: ./build/coverage/lcov-report
- name: Show regression diffs
if: always()
id: collectlogs
run: |
find . -name regression.diffs -exec cat {} + > regression.log
if [[ "${{ runner.os }}" == "Linux" ]] ; then
# wait in case there are in-progress coredumps
sleep 10
if coredumpctl -q list >/dev/null; then echo "coredumps=true" >>$GITHUB_OUTPUT; fi
# print OOM killer information
sudo journalctl --system -q --facility=kern --grep "Killed process" || true
elif [[ "${{ runner.os }}" == "macOS" ]] ; then
if [ $(find /cores -type f | wc -l) -gt 0 ]; then echo "coredumps=true" >>$GITHUB_OUTPUT; fi
fi
if [[ -s regression.log ]]; then echo "regression_diff=true" >> $GITHUB_OUTPUT; fi
grep -e 'FAILED' -e 'failed (ignored)' -e 'not ok' installcheck.log || true
cat regression.log
- name: Save regression diffs
if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v4
with:
name: Regression diff ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: |
regression.log
installcheck.log
- name: Save PostgreSQL log
if: always()
uses: actions/upload-artifact@v4
with:
name: PostgreSQL log ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: postmaster.*
- name: Stack trace Linux
if: always() && steps.collectlogs.outputs.coredumps == 'true' && runner.os == 'Linux'
run: |
sudo coredumpctl debug --debugger=gdb --debugger-arguments='' <<<"
set verbose on
set trace-commands on
show debug-file-directory
printf "'"'"query = '%s'\n\n"'"'", debug_query_string
bt full
# We try to find ExceptionalCondition frame to print the failed condition
# for searching in logs.
frame function ExceptionalCondition
printf "'"'"condition = '%s'\n"'"'", conditionName
# Hopefully now we should be around the failed assertion, print where
# we are.
up 1
list
info args
info locals
" 2>&1 | tee -a stacktrace.log
./scripts/bundle_coredumps.sh
- name: Stack trace macOS
if: always() && steps.collectlogs.outputs.coredumps == 'true' && runner.os == 'macOS'
run: |
~/$PG_SRC_DIR/src/tools/ci/cores_backtrace.sh macos /cores
- name: Coredumps
if: always() && steps.collectlogs.outputs.coredumps == 'true'
uses: actions/upload-artifact@v4
with:
name: Coredumps ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: coredumps
- name: Save stacktraces
if: always() && steps.collectlogs.outputs.coredumps == 'true'
uses: actions/upload-artifact@v4
with:
name: Stacktraces ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: stacktrace.log
- name: Save TAP test logs
if: always()
uses: actions/upload-artifact@v4
with:
name: TAP test logs ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: |
build/test/tmp_check/log
build/tsl/test/tmp_check/log
- name: Check that no new internal program errors are introduced
# We collect the same messages when uploading to the CI checks database,
# but it runs on different conditions (not on forks and not on flaky check),
# and requires different data (job date), so we do it separately here.
# The jq --exit-code option is broken with select() on jq-1.6 which we see
# on some machines, so we use grep instead (see https://github.com/jqlang/jq/issues/1139).
if: always() && contains(matrix.name, 'Flaky')
run: |
! jq 'select(
(.state_code == "XX000" and .error_severity != "LOG" and (.message | test("TestFailure") | not))
or (.message | test("resource was not closed"))
) | [.message, .func_name, .statement] | @tsv
' -r postmaster.json | grep .
- name: Upload test results to the database
# Don't upload the results of the flaky check, because the db schema only
# supports running one test once per job.
if: always() && matrix.installcheck && (! contains(matrix.name, 'Flaky'))
env:
# GitHub Actions allow you neither to use the env context for the job name,
# nor to access the job name from the step context, so we have to
# duplicate it to work around this nonsense.
JOB_NAME: PG${{ matrix.pg }}${{ matrix.snapshot }} ${{ matrix.name }} ${{ matrix.os }}
CI_STATS_DB: ${{ secrets.CI_STATS_DB }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
GITHUB_REF_NAME: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
JOB_STATUS: ${{ job.status }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]] ;
then
GITHUB_PR_NUMBER="${{ github.event.number }}"
else
GITHUB_PR_NUMBER=0
fi
export GITHUB_PR_NUMBER
scripts/upload_ci_stats.sh
report_status:
name: Regression summary
needs: [check_paths, regress]
if: always()
runs-on: ubuntu-latest
steps:
- run: |
# If the detector failed, or the matrix failed, exit with error
if [[ "${{ needs.regress.result }}" == "failure" ]]; then
exit 1
fi
echo "All checks passed or were safely skipped."
================================================
FILE: .github/workflows/loader_check.yml
================================================
name: Check for loader changes
"on":
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled, edited]
jobs:
check_loader_change:
name: Check for loader changes
# Ignore loader changes if acknowledged already
if: ${{ !contains(github.event.pull_request.labels.*.name, 'upgrade-requires-restart') }}
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Check if the pull request changes the loader
shell: bash --norc --noprofile {0}
env:
BODY: ${{ github.event.pull_request.body }}
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
echo "$BODY" | egrep -qsi '^disable-check:.*\<loader-change\>'
if [[ $? -ne 0 ]]; then
# Get the list of modified files in this pull request
files=$(gh pr view $PR_NUMBER --json files --jq '.files.[].path')
# Check for loader changes
if echo "${files}" | grep -Eq "^src/loader/.+$"; then
echo "Warning: This PR changes the loader. Therefore, upgrading to the next TimescaleDB"
echo "version requires a restart of PostgreSQL. Make sure to bump the loader version if"
echo "necessary and coordinate the release with the cloud team before merging."
echo
echo "After the release is coordinated, add the 'upgrade-requires-restart' label"
echo "to the PR to acknowledge this warning."
echo
echo "To disable this check, add this trailer to pull request message:"
echo
echo "Disable-check: loader-change"
echo
exit 1
fi
fi
check_loader_version_bump:
name: Check if loader versions are incremented for required restart
# If the label is present, validate the loader version is bumped
if: ${{ contains(github.event.pull_request.labels.*.name, 'upgrade-requires-restart') }}
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout ${{ github.event.pull_request.base.ref }} branch
run: git checkout ${{ github.event.pull_request.base.ref }}
- name: Extract versions from ${{ github.event.pull_request.base.ref }} branch
id: upstream-versions
run: |
# Extract version from bgw_interface.c
BGW_VERSION_MAIN=$(grep -oP 'const int32 ts_bgw_loader_api_version = \K\d+' src/loader/bgw_interface.c || echo "0")
echo "bgw_version_main=$BGW_VERSION_MAIN" >> $GITHUB_OUTPUT
# Extract version from launcher_interface.c
LAUNCHER_VERSION_MAIN=$(grep -oP '#define MIN_LOADER_API_VERSION \K\d+' src/bgw/launcher_interface.c || echo "0")
echo "launcher_version_main=$LAUNCHER_VERSION_MAIN" >> $GITHUB_OUTPUT
echo "${{ github.event.pull_request.base.ref }} branch:"
echo "src/loader/bgw_interface.c:const int32 ts_bgw_loader_api_version = $BGW_VERSION_MAIN"
echo "src/bgw/launcher_interface.c:#define MIN_LOADER_API_VERSION $LAUNCHER_VERSION_MAIN"
- name: Checkout PR branch
run: git checkout ${{ github.event.pull_request.head.sha }}
- name: Extract versions from PR branch
id: pr-versions
run: |
# Extract version from bgw_interface.c
BGW_VERSION_PR=$(grep -oP 'const int32 ts_bgw_loader_api_version = \K\d+' src/loader/bgw_interface.c || echo "0")
echo "bgw_version_pr=$BGW_VERSION_PR" >> $GITHUB_OUTPUT
# Extract version from launcher_interface.c
LAUNCHER_VERSION_PR=$(grep -oP '#define MIN_LOADER_API_VERSION \K\d+' src/bgw/launcher_interface.c || echo "0")
echo "launcher_version_pr=$LAUNCHER_VERSION_PR" >> $GITHUB_OUTPUT
echo "PR:"
echo "src/loader/bgw_interface.c:const int32 ts_bgw_loader_api_version = $BGW_VERSION_PR"
echo "src/bgw/launcher_interface.c:#define MIN_LOADER_API_VERSION $LAUNCHER_VERSION_PR"
- name: Validate version increments
run: |
BGW_MAIN=${{ steps.upstream-versions.outputs.bgw_version_main }}
BGW_PR=${{ steps.pr-versions.outputs.bgw_version_pr }}
LAUNCHER_MAIN=${{ steps.upstream-versions.outputs.launcher_version_main }}
LAUNCHER_PR=${{ steps.pr-versions.outputs.launcher_version_pr }}
echo "Validating version increments..."
echo "bgw_interface.c: $BGW_MAIN -> $BGW_PR (expected: $((BGW_MAIN + 1)))"
echo "launcher_interface.c: $LAUNCHER_MAIN -> $LAUNCHER_PR (expected: $((LAUNCHER_MAIN + 1)))"
VALIDATION_FAILED=false
# Check bgw_interface version
if [ "$BGW_PR" -ne "$((BGW_MAIN + 1))" ]; then
echo "❌ ERROR: bgw_interface.c version should be incremented by 1, expected: $((BGW_MAIN + 1)), Found: $BGW_PR"
VALIDATION_FAILED=true
else
echo "✅ bgw_interface.c version correctly incremented"
fi
# Check launcher_interface.c version
if [ "$LAUNCHER_PR" -ne "$((LAUNCHER_MAIN + 1))" ]; then
echo "❌ ERROR: launcher_interface.c version should be incremented by 1, expected: $((LAUNCHER_MAIN + 1)), Found: $LAUNCHER_PR"
VALIDATION_FAILED=true
else
echo "✅ launcher_interface.c version correctly incremented"
fi
if [ "$VALIDATION_FAILED" = true ]; then
echo "Version validation failed. Please ensure: Both version numbers are incremented by exactly 1 from ${{ github.event.pull_request.base.ref }} branch"
exit 1
fi
- name: Add comment to PR (if validation fails)
if: failure()
uses: actions/github-script@v7
with:
script: |
const bgwMain = '${{ steps.upstream-versions.outputs.bgw_version_main }}';
const bgwPr = '${{ steps.pr-versions.outputs.bgw_version_pr }}';
const launcherMain = '${{ steps.upstream-versions.outputs.launcher_version_main }}';
const launcherPr = '${{ steps.pr-versions.outputs.launcher_version_pr }}';
const comment = `## ❌ Loader Version Validation Failed
The version numbers in your PR do not meet the requirements, to indicate a acknowledged loader change.
| File | ${{ github.event.pull_request.base.ref }} | PR | Expected |
|------|-------------|-----------|----------|
| \`src/loader/bgw_interface.c:const int32 ts_bgw_loader_api_version\` | ${bgwMain} | ${bgwPr} | ${parseInt(bgwMain) + 1} |
| \`src/bgw/launcher_interface.c:#define MIN_LOADER_API_VERSION\` | ${launcherMain} | ${launcherPr} | ${parseInt(launcherMain) + 1} |
**Requirements:** Both version numbers must be incremented by 1 from the ${{ github.event.pull_request.base.ref }} branch. Please update the version numbers and push your changes.`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});
================================================
FILE: .github/workflows/memory-tests.yaml
================================================
name: Memory tests
"on":
push:
branches:
- main
- ?.*.x
- memory_test
- trigger/memory_test
pull_request:
paths: .github/workflows/memory-tests.yaml
jobs:
memory_leak:
name: Memory leak on insert PG${{ matrix.pg }}
runs-on: ubuntu-22.04
strategy:
matrix:
pg: [15, 16, 17, 18]
fail-fast: false
steps:
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install gnupg systemd-coredump gdb postgresql-common python3-psutil
yes | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt-get update
sudo apt-get install postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }}
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Build TimescaleDB
run: |
PATH="/usr/lib/postgresql/${{ matrix.pg }}/bin:$PATH"
./bootstrap -DCMAKE_BUILD_TYPE=Release
make -C build
sudo make -C build install
- name: Setup database
run: |
sudo pg_createcluster ${{matrix.pg}} main
sudo tee -a /etc/postgresql/${{ matrix.pg }}/main/postgresql.conf <<-CONF
shared_preload_libraries = 'timescaledb'
max_worker_processes = 0
log_destination = syslog
max_wal_size = 8GB
max_wal_senders = 0
wal_level = minimal
checkpoint_timeout = 20min
log_checkpoints = on
bgwriter_lru_maxpages = 0
track_counts = off
fsync = off
port = 5432
CONF
sudo grep port /etc/postgresql/${{ matrix.pg }}/main/postgresql.conf
sudo systemctl start postgresql@${{ matrix.pg }}-main.service
sudo -u postgres psql -X -c "CREATE USER runner SUPERUSER LOGIN;"
- name: Run insert memory test
run: |
sudo -u postgres python ./scripts/test_memory_spikes.py & sleep 5 \
&& psql -d postgres -v ECHO=all -X -f scripts/out_of_order_random_direct.sql
- name: Run generic memory test
run: |
sudo -u postgres python ./scripts/test_memory_spikes.py & sleep 5 \
&& psql -d postgres -v ECHO=all -X -f scripts/memory_leaks.sql
- name: Postgres log
if: always()
run: |
sudo journalctl -u postgresql@${{ matrix.pg }}-main.service
================================================
FILE: .github/workflows/nightly_cloud_smoke_test.yaml
================================================
name: Nightly - Update smoke test on release branch
# QA: run the upgrade smoke tests with the last 10 releases
# against the the next version.
# Requires upstream GitHub action to deploy the last commit
# from the release branch to the QA service in Cloud
"on":
#schedule:
# - cron: '0 0 * * *'
workflow_dispatch:
pull_request:
paths:
- .github/workflows/nightly_cloud_smoke_test.yaml
- scripts/test_update_smoke.sh
- test/sql/updates/*.sql
jobs:
get-next-version:
runs-on: ubuntu-latest
outputs:
next_version: ${{ steps.fetch.outputs.next_version }}
steps:
- name: Get next version
# Get newest release branch with most recent commits
id: fetch
run: |
RELEASE_BRANCH=$(git ls-remote --heads https://github.com/timescale/timescaledb.git | \
grep -Eo 'refs/heads/[2-9]+\.[0-9]+\.x' | \
sed 's|refs/heads/||' | \
sort -V | \
tail -n1)
echo "current release branch: ${RELEASE_BRANCH}"
curl --fail -o version.config "https://raw.githubusercontent.com/timescale/timescaledb/refs/heads/${RELEASE_BRANCH}/version.config"
NEXT_VERSION=$(head -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
echo "next version: ${NEXT_VERSION} .."
echo "next_version=${NEXT_VERSION}" >> "$GITHUB_OUTPUT"
generate-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Fetch TimescaleDB releases
id: fetch-releases
run: |
releases=$(curl -s \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/timescale/timescaledb/releases?per_page=10" \
| jq -r '.[].tag_name')
# Convert to JSON array format for matrix
matrix_json=$(echo "$releases" | jq -R -s -c 'split("\n") | map(select(length > 0))')
echo "releases=$matrix_json" >> $GITHUB_OUTPUT
# Also output for debugging
echo "Found releases:"
echo "$releases"
- name: Set matrix output
id: set-matrix
run: |
matrix='{"version": ${{ steps.fetch-releases.outputs.releases }}}'
echo "matrix=$matrix" >> $GITHUB_OUTPUT
echo $matrix
test-version:
needs: [generate-matrix, get-next-version]
runs-on: ubuntu-latest
strategy:
# run sequentially
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
max-parallel: 1
fail-fast: false
steps:
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Install Dependencies
# we want the right version of Postgres for handling any dump file
run: |
sudo apt-get update
sudo apt-get install gnupg postgresql-common
yes | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt-get update
sudo apt-get install postgresql-17
- name: "Run update smoke test with v${{ matrix.version }} to ${{needs.get-next-version.outputs.next_version}}"
# Now run the test. Currently the cloud instance is always up.
# only run the test if the versions are not equal
run: |
PATH="/usr/lib/postgresql/17/bin:$PATH"
./scripts/test_update_smoke.sh \
${{ matrix.version }} \
${{needs.get-next-version.outputs.next_version}} \
"${{ secrets.DB_TEAM_QA_SERVICE_CONNECTION_STRING }}"
- name: Show logs
if: always()
run: |
ls -l /tmp/smoketest*/*
cat /tmp/smoketest*/*
- name: Upload Artifacts
# Save the logs, so if there is a failure we'll have a better
# chance to understand what went wrong.
if: failure()
uses: actions/upload-artifact@v4
with:
name: Cloud Update test smoke
path: /tmp/smoketest*/*
================================================
FILE: .github/workflows/pg_ladybug.yaml
================================================
name: pg_ladybug
"on":
pull_request:
push:
branches:
- main
- ?.*.x
jobs:
pg_ladybug:
runs-on: ubuntu-latest
env:
CC: clang-19
CXX: clang++-19
LLVM_CONFIG: llvm-config-19
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get purge llvm-16 llvm-17 llvm-18 clang-16 clang-17 clang-18
sudo apt-get install llvm-19 llvm-19-dev clang-19 libclang-19-dev clang-tidy-19 libcurl4-openssl-dev
sudo ln -sf /usr/bin/clang-tidy-19 /usr/bin/clang-tidy
- name: Checkout timescaledb
uses: actions/checkout@v4
- name: Checkout pg_ladybug
uses: actions/checkout@v4
with:
repository: 'timescale/pg_ladybug'
path: 'pg_ladybug'
ref: '0.1.0'
- name: build pg_ladybug
run: |
cd pg_ladybug
cmake -S . -B build -DLLVM_ROOT=/usr/lib/llvm-19
make -C build -j $(getconf _NPROCESSORS_ONLN)
sudo make -C build install
- name: Verify pg_ladybug
run: |
clang-tidy --load /usr/local/lib/libPostgresCheck.so --checks='-*,postgres-*' --list-checks | grep postgres
- name: Configure timescaledb
run: |
# installing postgres headers pulls in llvm-17 which confuses pg_ladybug build process so we install this here instead of at beginning
sudo apt-get install postgresql-server-dev-16
./bootstrap -DCMAKE_BUILD_TYPE=Debug -DLINTER=ON -DCLANG_TIDY_EXTRA_OPTS=",-*,postgres-*;--load=/usr/local/lib/libPostgresCheck.so"
- name: Build timescaledb
run: |
make -C build -j $(getconf _NPROCESSORS_ONLN)
================================================
FILE: .github/workflows/pg_upgrade-test.yaml
================================================
name: pg_upgrade test
"on":
push:
branches:
- main
- ?.*.x
- prerelease_test
pull_request:
jobs:
check_paths:
runs-on: ubuntu-latest
outputs:
run_ci: >-
${{ github.event_name == 'push'
|| (steps.filter.outputs.sql == 'true' && !contains(github.event.pull_request.labels.*.name, 'skip-ci'))
}}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/filters.yaml
pg_upgrade_test:
needs: check_paths
if: needs.check_paths.outputs.run_ci == 'true'
name: pg_upgrade test from PG${{ matrix.pg_version_old }} to PG${{ matrix.pg_version_new }}
runs-on: 'ubuntu-latest'
strategy:
matrix:
include:
- pg_version_old: 15 # 15 to 16
pg_version_new: 16
- pg_version_old: 15 # 15 to 17
pg_version_new: 17
- pg_version_old: 15 # 15 to 18
pg_version_new: 18
- pg_version_old: 16 # 16 to 17
pg_version_new: 17
- pg_version_old: 16 # 16 to 18
pg_version_new: 18
- pg_version_old: 17 # 17 to 18
pg_version_new: 18
fail-fast: false
env:
OUTPUT_DIR: ${{ github.workspace }}/pg_upgrade_test
steps:
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install pip postgresql-common
- name: Install testgres
run: |
pip install testgres
- name: Install PostgreSQL ${{ matrix.pg_version_old}} and ${{ matrix.pg_version_new }}
run: |
yes | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y \
postgresql-${{ matrix.pg_version_old }} postgresql-server-dev-${{ matrix.pg_version_old }} \
postgresql-${{ matrix.pg_version_new }} postgresql-server-dev-${{ matrix.pg_version_new }}
sudo apt-get install -y --no-install-recommends \
timescaledb-2-postgresql-${{ matrix.pg_version_old }} \
timescaledb-2-postgresql-${{ matrix.pg_version_new }}
- name: Checkout TimescaleDB
uses: actions/checkout@v4
- name: Build and install TimescaleDB on PostgreSQL ${{ matrix.pg_version_old}}
env:
BUILD_DIR: pg${{ matrix.pg_version_old }}
run: |
PATH="/usr/lib/postgresql/${{ matrix.pg_version_old }}/bin:$PATH"
./bootstrap -DCMAKE_BUILD_TYPE=Release -DWARNINGS_AS_ERRORS=OFF -DASSERTIONS=ON -DLINTER=OFF -DGENERATE_DOWNGRADE_SCRIPT=OFF -DREGRESS_CHECKS=OFF -DTAP_CHECKS=OFF
make -j -C pg${{ matrix.pg_version_old }}
sudo make -j -C pg${{ matrix.pg_version_old }} install
- name: Build and install TimescaleDB on PostgreSQL ${{ matrix.pg_version_new}}
env:
BUILD_DIR: pg${{ matrix.pg_version_new }}
run: |
PATH="/usr/lib/postgresql/${{ matrix.pg_version_new }}/bin:$PATH"
./bootstrap -DCMAKE_BUILD_TYPE=Release -DWARNINGS_AS_ERRORS=OFF -DASSERTIONS=ON -DLINTER=OFF -DGENERATE_DOWNGRADE_SCRIPT=OFF -DREGRESS_CHECKS=OFF -DTAP_CHECKS=OFF
make -j -C pg${{ matrix.pg_version_new }}
sudo make -j -C pg${{ matrix.pg_version_new }} install
- name: Run pg_upgrade test
env:
PGVERSIONOLD: ${{ matrix.pg_version_old }}
PGVERSIONNEW: ${{ matrix.pg_version_new }}
DIFFFILE: ${{ env.OUTPUT_DIR }}/upgrade_check.diff
run: |
scripts/test_pg_upgrade.py
diff -u \
"${OUTPUT_DIR}/post.pg${PGVERSIONOLD}.log" \
"${OUTPUT_DIR}/post.pg${PGVERSIONNEW}.log" | \
tee "${DIFFFILE}"
if [[ -s "${DIFFFILE}" ]]; then
echo "pg_upgrade test for ${PGVERSIONOLD} -> ${PGVERSIONNEW} failed"
exit 1
fi
- name: Show pg_upgrade diffs
if: always()
env:
DIFFFILE: ${{ env.OUTPUT_DIR }}/upgrade_check.diff
DIROLD: pg${{ matrix.pg_version_old }}
DIRNEW: pg${{ matrix.pg_version_new }}
run: |
cd ${OUTPUT_DIR}
cat ${DIFFFILE}
tar czf /tmp/pg_upgrade_artifacts.tgz \
${DIFFFILE} \
${OUTPUT_DIR}/*.log \
${OUTPUT_DIR}/${DIROLD}/logs/* \
${OUTPUT_DIR}/${DIRNEW}/logs/* \
${OUTPUT_DIR}/${DIRNEW}/data/pg_upgrade_output.d/*
- name: Upload pg_upgrade logs
if: always()
uses: actions/upload-artifact@v4
with:
name: pg_upgrade logs from ${{ matrix.pg_version_old }} to ${{ matrix.pg_version_new }}
path: /tmp/pg_upgrade_artifacts.tgz
report_status:
name: pg_upgrade summary
needs: [check_paths, pg_upgrade_test]
if: always()
runs-on: ubuntu-latest
steps:
- run: |
# If the detector failed, or the matrix failed, exit with error
if [[ "${{ needs.pg_upgrade_test.result }}" == "failure" ]]; then
exit 1
fi
echo "All checks passed or were safely skipped."
================================================
FILE: .github/workflows/pgspot.yaml
================================================
# Test our extension sql scripts are following security best practices
name: pgspot
"on":
pull_request:
push:
branches:
- main
- ?.*.x
jobs:
check_paths:
runs-on: ubuntu-latest
outputs:
run_ci: >-
${{ github.event_name == 'push'
|| (steps.filter.outputs.sql == 'true' && !contains(github.event.pull_request.labels.*.name, 'skip-ci'))
}}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: .github/filters.yaml
pgspot:
needs: check_paths
if: needs.check_paths.outputs.run_ci == 'true'
runs-on: ubuntu-latest
env:
# policy_compression and policy_compression_execute do not have explicit search_path
# because postgres does not allow it for procedures doing transaction control
PGSPOT_OPTS: --ignore PS002
--proc-without-search-path '_timescaledb_internal.policy_compression(job_id integer,config jsonb)'
--proc-without-search-path '_timescaledb_functions.policy_compression(job_id integer,config jsonb)'
--proc-without-search-path '_timescaledb_functions.policy_compression_execute(job_id integer,htid integer,lag anyelement,maxchunks integer,verbose_log boolean,recompress_enabled boolean,reindex_enabled boolean,use_creation_time boolean)'
steps:
- name: Setup python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Checkout timescaledb
uses: actions/checkout@v4
- name: Install pgspot
run: |
python -m pip install pgspot==0.9.2
- name: Build timescaledb sqlfiles
run: |
previous_version=$(grep '^previous_version = ' version.config | sed -e 's!^[^=]\+ = !!')
git fetch --tags
./bootstrap -DGENERATE_DOWNGRADE_SCRIPT=ON
git checkout ${previous_version}
make -C build sqlfile sqlupdatescripts
git checkout ${GITHUB_SHA}
make -C build sqlfile sqlupdatescripts
ls -la build/sql/timescaledb--*.sql
- name: Run pgspot
run: |
version=$(grep '^version = ' version.config | sed -e 's!^[^=]\+ = !!')
previous_version=$(grep '^previous_version = ' version.config | sed -e 's!^[^=]\+ = !!')
# Show files used
ls -la build/sql/timescaledb--${version}.sql build/sql/timescaledb--${previous_version}--${version}.sql \
build/sql/timescaledb--${version}--${previous_version}.sql
# The next pgspot execution tests the installation script by itself
pgspot ${{ env.PGSPOT_OPTS }} build/sql/timescaledb--${version}.sql
# The next pgspot execution tests the update script to the latest version
# we prepend the installation script here so pgspot can correctly keep track of created objects
pgspot ${{ env.PGSPOT_OPTS }} -a build/sql/timescaledb--${previous_version}.sql \
build/sql/timescaledb--${previous_version}--${version}.sql
# The next pgspot execution tests the downgrade script to the previous version
# we prepend the installation script here so pgspot can correctly keep track of created objects
pgspot ${{ env.PGSPOT_OPTS }} -a build/sql/timescaledb--${version}.sql \
build/sql/timescaledb--${version}--${previous_version}.sql
================================================
FILE: .github/workflows/pr-approvals.yaml
================================================
# All PRs except trivial ones should require 2 approvals, since this a global setting
# we cannot make this decision from github configuration alone. So we set the required
# approved in github to 1 and make this check required which will enforce 2 approvals
# unless overwritten or only CI files are touched.
name: PR Approval Check
"on":
pull_request:
types: [opened, synchronize, reopened, edited, auto_merge_enabled, auto_merge_disabled]
branches: [main]
pull_request_review:
jobs:
check_approvals:
name: Check for sufficient approvals
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Check for sufficient approvals
shell: bash --norc --noprofile {0}
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
set -eu
echo "PR number is $PR_NUMBER"
BODY=$(gh pr view $PR_NUMBER -q .body --json body)
if ! echo "$BODY" | egrep -qsi '^disable-check:.*\<approval-count\>'
then
# Get the list of modified files in this pull request
echo "Modified files: "
gh pr view $PR_NUMBER --json files
# Get the number of modified files, but exclude those that
# are workflow files. These require only a single
# reviewer.
files=$(gh pr view $PR_NUMBER --json files --jq '[.files.[].path | select(startswith(".github") | not)] | length')
# Get the number of approvals in this pull request
echo "Reviews: "
gh pr view $PR_NUMBER --json reviews
approvals=$(
gh pr view $PR_NUMBER --json reviews --jq '
[
.reviews.[]
| select(.authorAssociation == "MEMBER" and .state == "APPROVED")
] | length
'
)
echo "approvals: $approvals, files: $files"
if [[ $approvals -lt 2 && $files -gt 0 ]] ; then
echo "This pull request requires 2 approvals before merging."
echo
echo "For trivial changes, you may disable this check by adding this trailer to the pull request message:"
echo
echo "Disable-check: approval-count"
echo
exit 1
fi
fi
================================================
FILE: .github/workflows/pr-handling.yaml
================================================
name: Assign PR to author and reviewers
# This workflow runs on the pull_request_target event:
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
#
# So the secrets are accessible even if the PR was opened from an external
# repository. This is done because the GitHub API key needs to be accessed
# to modify the PRs.
#
# NOTE: Only API calls should be made in the actions defined here. The
# committed code should _NOT_ be touched in any case.
"on":
pull_request_target:
types: [ opened, reopened, ready_for_review ]
jobs:
assign-pr:
name: Assign PR to author
runs-on: ubuntu-latest
steps:
- uses: toshimaru/auto-author-assign@v2.1.0
ask-review:
name: Run pull-review
runs-on: ubuntu-latest
if: ${{ !github.event.pull_request.draft && github.event.pull_request.base.ref == 'main' }}
steps:
- uses: actions/checkout@v4
- name: Run pull-review with docker
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
PULL_REQUEST_NUMBER : ${{ github.event.pull_request.number }}
shell: bash
run: |
PR_URL="https://github.com/${OWNER}/${REPO}/pull/${PULL_REQUEST_NUMBER}"
docker run ghcr.io/imsky/pull-review "$PR_URL" --github-token "${GITHUB_TOKEN}"
================================================
FILE: .github/workflows/pr-validation.yaml
================================================
name: Pull Request Validation
"on":
pull_request:
types: [opened, synchronize, reopened, edited, auto_merge_enabled, auto_merge_disabled]
branches: [main]
jobs:
# Count the number of commits in a pull request. This can be
# disabled by adding a trailer line of the following form to the
# pull request message:
#
# Disable-Check: commit-count
#
# The check is case-insensitive and ignores other contents on the
# line as well, so it is possible to add several different checks if
# that is necessary.
#
# It is assumed that the trailer is following RFC2822 conventions,
# but this is currently not enforced.
count_commits:
name: Enforce single commit pull request
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Dump GitHub context (for debugging)
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: |
echo "GITHUB_CONTEXT: $GITHUB_CONTEXT"
- name: Check number of commits
shell: bash --norc --noprofile {0}
env:
BODY: ${{ github.event.pull_request.body }}
run: |
echo "$BODY" | egrep -qsi '^disable-check:.*\<commit-count\>'
if [[ $? -ne 0 ]] && [[ "${{ github.event.pull_request.auto_merge.merge_method }}" != "squash" ]]
then
base=${{ github.event.pull_request.base.sha }}
head=${{ github.event.pull_request.head.sha }}
count=`git rev-list --no-merges --count $base..$head`
if [[ "$count" -ne 1 ]]; then
echo "Found $count commits in pull request (there should be only one):"
git log --format=format:'- %h %s' $base..$head
echo
echo "To disable commit count, add this trailer to pull request message:"
echo
echo "Disable-check: commit-count"
echo
echo "Trailers follow RFC2822 conventions, so no whitespace"
echo "before field name and the check is case-insensitive for"
echo "both the field name and the field body."
exit 1
fi
fi
================================================
FILE: .github/workflows/prerelease-sanity.yaml
================================================
name: Prerelease Sanity
"on":
push:
branches:
- prerelease_test
pull_request:
branches: "?.*.x"
paths:
- version.config
- .github/workflows/prerelease-sanity.yaml
workflow_dispatch:
jobs:
check_release_commit:
name: Check Release Commit
runs-on: timescaledb-runner-arm64
steps:
- name: Checkout TimescaleDB
uses: actions/checkout@v4
# GitHub creates an empty merge commit even for fast-fordward merges, which
# makes it needlessly difficult to inspect the actual commit title. Since
# we require the PRs to release branches to be up to date before merging,
# we can just work with the PR head here.
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 2
# The combined changelog must reference all changes, and the respective
# change files in the .unreleased folder must be deleted.
- name: No .unreleased files are left behind
run: |
! compgen -G .unreleased/*
# The messages of the release commit and tag must start with Release <version>.
# If this is the release tag, it must point to the release commit
# and not something else.
- name: The release commit message references the respective version
run: |
required_title=$(sed -n "s/^version = /Release /p" version.config)
echo $required_title
tag_title=$(git log --oneline -1 --pretty=format:%s)
echo $tag_title
grep "$required_title" <<<"$tag_title"
# Our reference might be a tag, so check the pointed-to commit as well,
# using the ^0 git path specification to find it.
commit_title=$(git log --oneline -1 --pretty=format:%s @^0)
echo $commit_title
grep "$required_title" <<<"$commit_title"
# The release commit must modify the version.config
- name: The release commit modifies the version.config
run: |
git log --oneline -1 @^0
git log --oneline -1 @^0~
! git diff --exit-code @^0~ @^0 -- version.config
================================================
FILE: .github/workflows/release_build_packages.yml
================================================
name: "Packaging: Build distributions"
"on":
release:
types: [published]
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Initialize build summary
run: |
echo "# 📦 Distribution Package Build Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version:** \`${{ github.event.release.tag_name }}\`" >> $GITHUB_STEP_SUMMARY
echo "**URL:** [${{ github.event.release.name }}](${{ github.event.release.html_url }})" >> $GITHUB_STEP_SUMMARY
echo "**Triggered at:** $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## 🚀 Build Status" >> $GITHUB_STEP_SUMMARY
echo "| Package | Status | Workflow |" >> $GITHUB_STEP_SUMMARY
echo "| --- | --- | --- |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=false" >> $GITHUB_ENV
- name: Build Docker Image
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "🐳 Triggering Docker image build..." | tee -a build.log
if gh workflow run docker-image.yml -R timescale/timescaledb-docker -f version=${{ github.event.release.tag_name }} -f tag_latest=true -f registry=prod; then
echo "| 🐳 Docker Image | ✅ Triggered | [timescaledb-docker](https://github.com/timescale/timescaledb-docker/actions/workflows/docker-image.yml) |" >> $GITHUB_STEP_SUMMARY
else
echo "| 🐳 Docker Image | ❌ Failed | [timescaledb-docker](https://github.com/timescale/timescaledb-docker/actions/workflows/docker-image.yml) |" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=true" >> $GITHUB_ENV
fi
- name: Build APT Packages
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "🐧 Triggering APT package build..." | tee -a build.log
if gh workflow run timescaledb-apt.yml -R timescale/release-build-scripts -f version=${{ github.event.release.tag_name }} -f upload-artifacts=true; then
echo "| 🐧 APT Packages | ✅ Triggered | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-apt.yml) |" >> $GITHUB_STEP_SUMMARY
else
echo "| 🐧 APT Packages | ❌ Failed | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-apt.yml) |" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=true" >> $GITHUB_ENV
fi
- name: Build RPM Packages
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "⚙ Triggering RPM package build..." | tee -a build.log
if gh workflow run timescaledb-rpm.yml -R timescale/release-build-scripts -f version=${{ github.event.release.tag_name }} -f upload-artifacts=true; then
echo "| ⚙ RPM Packages | ✅ Triggered | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-rpm.yml) |" >> $GITHUB_STEP_SUMMARY
else
echo "| ⚙ RPM Packages | ❌ Failed | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-rpm.yml) |" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=true" >> $GITHUB_ENV
fi
- name: Build Homebrew Packages
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "🍺 Triggering Homebrew package build..." | tee -a build.log
if gh workflow run timescaledb-homebrew.yml -R timescale/release-build-scripts -f version=${{ github.event.release.tag_name }} -f upload-artifacts=true; then
echo "| 🍺 Homebrew Packages | ✅ Triggered | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-homebrew.yml) |" >> $GITHUB_STEP_SUMMARY
else
echo "| 🍺 Homebrew Packages | ❌ Failed | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-homebrew.yml) |" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=true" >> $GITHUB_ENV
fi
- name: Build Windows Packages
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "🪟 Triggering Windows package build..." | tee -a build.log
if gh workflow run timescaledb-windows.yml -R timescale/release-build-scripts -f version=${{ github.event.release.tag_name }} -f upload-artifacts=true; then
echo "| 🪟 Windows Packages | ✅ Triggered | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-windows.yml) |" >> $GITHUB_STEP_SUMMARY
else
echo "| 🪟 Windows Packages | ❌ Failed | [summary](https://github.com/timescale/release-build-scripts/actions/workflows/timescaledb-windows.yml) |" >> $GITHUB_STEP_SUMMARY
echo "HAS_FAILURES=true" >> $GITHUB_ENV
fi
- name: Generate final summary
if: always()
run: |
echo "---" >> $GITHUB_STEP_SUMMARY
echo "## 📋 Next Steps" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "1. Monitor the triggered workflows in their respective repositories" >> $GITHUB_STEP_SUMMARY
echo "2. Check build artifacts once workflows complete" >> $GITHUB_STEP_SUMMARY
echo "3. Verify package availability in distribution channels" >> $GITHUB_STEP_SUMMARY
- name: Validate workflow dispatch status
if: ${{ env.HAS_FAILURES == 'true' }}
run: |
echo "---" >> $GITHUB_STEP_SUMMARY
echo "❌ one or more workflows could not get dispatched" >> $GITHUB_STEP_SUMMARY
exit 1
================================================
FILE: .github/workflows/release_feature_freeze_ceremony.yaml
================================================
name: Release - Feature Freeze Ceremony
#
# Feature Freeze
#
# prereqs:
# 0. needs approval from another person to run the action (environment)
# 1. ensure the correct branch is used to execute the action
# a. if the run was triggered from the `main` branch, the NEXT_VERSION must be a new minor (end with a .0)
# b. if NEXT_VERSION is a patch release, then the branch the action was triggered on must be a release branch: `^[0-9]+\.[0-9]+\.x$`
# 2. ensure the next version does not exist as tag yet
#
# Tasks
# 0. bump minor -dev version in version.config on main, if and only if it's a .0 release
# 1. creates the release branch X.Y.x, if and if the branch does not exist yet
# 2. generates CHANGELOG and opens PR for it
# 3. generates the release artefacts for the next versions
# 4. bumps the version in version.config to minor + 1 if and only if a .0 release is done
#
on:
workflow_dispatch:
# The workflow needs the permission to push branches
permissions:
contents: write
pull-requests: write
jobs:
validate-conditions:
name: Validate Run Conditions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Release Conditions
run: |
NEXT_VERSION=$(head -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
RELEASE_BRANCH="${NEXT_VERSION/%.[0-9]/.x}"
echo "Checking run conditions for release: $NEXT_VERSION" >> $GITHUB_STEP_SUMMARY
echo "Current branch: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "Expected release branch: $RELEASE_BRANCH" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
# Condition: version tag can not exist
if git tag -l | grep -q "^$NEXT_VERSION$"; then
echo "❌ \`$NEXT_VERSION\` tag already exists" >> $GITHUB_STEP_SUMMARY
exit 1
fi
# Condition: minor releases (.0) must be triggered from the main branch
if [[ "$NEXT_VERSION" =~ \.0$ ]] && [[ "${{ github.ref_name }}" != "main" ]]; then
echo "❌ for minor releases, \`$NEXT_VERSION\` the \`main\` branch is required, but got \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
exit 1
fi
# Condition: patch releases must be triggered from the release branch
if [[ ! "$NEXT_VERSION" =~ \.0$ ]] && [[ "${{ github.ref_name }}" != "$RELEASE_BRANCH" ]]; then
echo "❌ the patch releases, \`$NEXT_VERSION\` the action must be started from the release branch \`$RELEASE_BRANCH\`, but got \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
exit 1
fi
echo "✅ All release conditions satisfied for \`$NEXT_RELEASE\`" >> $GITHUB_STEP_SUMMARY
release-feature-freeze-ceremony:
name: Release - Feature Freeze
runs-on: ubuntu-latest
needs: validate-conditions
environment:
name: Release Ceremonies
steps:
- name: Checkout TimescaleDB
uses: actions/checkout@v4
# git user config timescale-automation
- run: |
git config user.name "timescale-automation"
git config user.email "123763385+github-actions[bot]@users.noreply.github.com"
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install pip
pip install PyGithub requests
# Read the next version and build the next versions
- name: Set version configuration
run: |
NEXT_VERSION=$(head -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
CURRENT_VERSION=$(tail -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
RELEASE_BRANCH="${NEXT_VERSION/%.[0-9]/.x}"
echo "RELEASE_BRANCH=${RELEASE_BRANCH}" >> $GITHUB_ENV
echo "CURRENT_VERSION=${CURRENT_VERSION}" >> $GITHUB_ENV
echo "NEXT_VERSION=${NEXT_VERSION}" >> $GITHUB_ENV
echo "# 🚀 Release v${NEXT_VERSION}" >> $GITHUB_STEP_SUMMARY
echo "Previous version: \`$CURRENT_VERSION\`" >> $GITHUB_STEP_SUMMARY
echo "Release branch: \`$RELEASE_BRANCH\`" >> $GITHUB_STEP_SUMMARY
echo "Workflow branch: \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
# -------------------------------------------------------
#
# Only running for new minor releases
#
# -------------------------------------------------------
# Bump minor in main for minor releases
- uses: actions/checkout@v4
with:
ref: main
- name: Bump minor version on main if next release is a new minor
if: endsWith(env.NEXT_VERSION, '.0')
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
NEXT_MAIN_VERSION=$(head -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
NEXT_MAIN_VERSION=$(echo "$NEXT_MAIN_VERSION" | awk -F. '{printf "%d.%d.0-dev", $1, $2 + 1}')
sed -i "s/^version = .*/version = $NEXT_MAIN_VERSION/" version.config
BRANCH="release/bump-main-to-$NEXT_MAIN_VERSION"
git checkout -b $BRANCH
git add version.config
git commit -m "Increase minor version $NEXT_MAIN_VERSION"
git push origin $BRANCH
PR_URL=$(gh pr create \
--title "Increase minor version $NEXT_MAIN_VERSION" \
--body "Bump to next minor for the upcoming ${{ env.CURRENT_VERSION }} release" \
--base main \
--head $BRANCH \
--label "release")
echo "* ✅ minor version increase on main: $PR_URL" >> $GITHUB_STEP_SUMMARY
# Create `2.XX.x` release branch of `main`
# Release branch is a dependency for the next steps
# only execute this step on .0 releases
- name: Create Release Branch
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
if git ls-remote --heads origin "${{ env.RELEASE_BRANCH }}" | grep -q "${{ env.RELEASE_BRANCH }}"; then
echo "* ✓ the \`${{ env.RELEASE_BRANCH }}\` release branch exists" >> $GITHUB_STEP_SUMMARY
else
gh api repos/${{ github.repository }}/git/refs \
--method POST \
--field ref="refs/heads/${{ env.RELEASE_BRANCH }}" \
--field sha="${{ github.sha }}"
echo "* ✅ the \`${{ env.RELEASE_BRANCH }}\` release branch created" >> $GITHUB_STEP_SUMMARY
fi
# -------------------------------------------------------
#
# Runs for every release
#
# -------------------------------------------------------
# Generate the CHANGELOG and submit it in a separate PR
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_BRANCH }}
- name: Generate and create Pull Request for CHANGELOG
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
./scripts/changelog/generate.sh
BODY=$(head -n 19 CHANGELOG.md | tail -n 20)
BRANCH="release/${{ env.NEXT_VERSION }}-changelog"
git checkout -b $BRANCH
git add .unreleased/* CHANGELOG.md
git commit -m "CHANGELOG ${{ env.NEXT_VERSION }}"
git push origin $BRANCH
PR_URL=$(gh pr create \
--title "Release ${{ env.NEXT_VERSION }}" \
--body "$BODY" \
--base ${{ env.RELEASE_BRANCH }} \
--head $BRANCH \
--label "release,changelog")
echo "* ✅ CHANGELOG: $PR_URL" >> $GITHUB_STEP_SUMMARY
# Rework version.config and up & down grade scripts
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_BRANCH }}
- name: Generate release artefacts
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
./scripts/release/build_release_artefacts.sh ${{ env.CURRENT_VERSION }} ${{ env.NEXT_VERSION }}
BRANCH="release/${{ env.CURRENT_VERSION }}-${{ env.NEXT_VERSION }}"
git checkout -b $BRANCH
git add version.config sql/updates/*.sql sql/CMakeLists.txt
git commit -m "release artefacts from ${{ env.CURRENT_VERSION }} to ${{ env.NEXT_VERSION }}"
git push origin $BRANCH
BODY="- CHANGELOG\n- set previous_version in version.config\n- adjust CMakeList.txt with up & down grade files"
PR_URL=$(gh pr create \
--title "Release artefacts ${{ env.NEXT_VERSION }}" \
--body "${BODY//\\n/$\n}" \
--base ${{ env.RELEASE_BRANCH }} \
--head $BRANCH \
--label "release")
echo "* ✅ Release artefacts: $PR_URL" >> $GITHUB_STEP_SUMMARY
================================================
FILE: .github/workflows/release_post_release_ceremony.yaml
================================================
name: Release - Post Release Ceremony
#
# Post Release Workflow
#
# 0. trigger the generate GUCs workflow in the docs repo
# 1. generate the artefacts to forward port to main and open PR for it
# 2. bump the next patch number + 1 on the release branch and open PR for it
#
"on":
release:
types: [published]
# The workflow needs the permission to a PR
permissions:
contents: write
pull-requests: write
jobs:
docs:
name: Post Release Ceremonies
runs-on: ubuntu-latest
steps:
- name: Generate list of GUCs for docs
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
if gh workflow run tsdb-refresh-gucs-list.yaml -R timescale/docs -f tag=${{ github.event.release.tag_name }}; then
echo "✅ Triggered generation of GUC list in docs" >> $GITHUB_STEP_SUMMARY
else
echo "❌ docs workflow to generate the GUCs failed" >> $GITHUB_STEP_SUMMARY
fi
- uses: actions/checkout@v4
with:
ref: ${{ github.event.release.tag_name }}
# git user config timescale-automation
- run: |
git config user.name "timescale-automation"
git config user.email "123763385+github-actions[bot]@users.noreply.github.com"
- name: Forward port changes to main
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
./scripts/release/build_post_release_artefacts.sh ${{ github.event.release.tag_name }}
BRANCH="release/${{ github.event.release.tag_name }}-main"
git checkout -b $BRANCH
git add version.config sql/updates/*.sql sql/CMakeLists.txt .unreleased/* CHANGELOG.md
git commit -m "forward port release artefacts of ${{ github.event.release.tag_name }} to main"
git push origin $BRANCH
printf '%b- CHANGELOG\n- set previous_version in version.config\n- adjust CMakeList.txt with up & down grade files\n- removed .unreleased files' > $BODY
PR_URL=$(gh pr create \
--title "Forwardport ${{ github.event.release.tag_name }}" \
--body "$BODY" \
--base main \
--head $BRANCH \
--label "release")
echo "✅ Forward ported release artefacts: $PR_URL" >> $GITHUB_STEP_SUMMARY
- name: Get next versions
run: |
TAGGED_VERSION=$(head -1 version.config | cut -d ' ' -f 3 | cut -d '-' -f 1)
if [[ "$TAGGED_VERSION" != "$${{ github.event.release.tag_name }}" ]]; then
echo "The tag: ${{ github.event.release.tag_name }} and the release version ${TAGGED_VERSION} do not match." >&2
echo "❌ tagged version ${{ github.event.release.tag_name }} is not matching the current version $TAGGED_VERSION" >> $GITHUB_STEP_SUMMARY
exit 1
fi
RELEASE_BRANCH="${TAGGED_VERSION/%.d/.x}"
NEXT_VERSION=$(echo "$TAGGED_VERSION" | awk -F. '{printf "%d.%d.%d", $1, $2, $3+1}')
echo "TAGGED_VERSION=${TAGGED_VERSION}" >> $GITHUB_ENV
echo "RELEASE_BRANCH=${RELEASE_BRANCH}" >> $GITHUB_ENV
echo "NEXT_VERSION=${NEXT_VERSION}" >> $GITHUB_ENV
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_BRANCH }}
- name: Bump to next version on release branch
env:
GITHUB_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
run: |
echo "Tagged version: ${{ env.TAGGED_VERSION }}"
echo "Next version: ${{ env.NEXT_VERSION }}"
# adjust version.config file
sed -i \
-e "s/^version = .*/version = ${{ env.NEXT_VERSION }}/" \
-e "s/^previous_version = .*/previous_version = ${{ env.TAGGED_VERSION }}/" \
version.config
echo "✅ setting next patch version ${{ env.TAGGED_VERSION }} in version.config" >> $GITHUB_STEP_SUMMARY
cat version.config >> $GITHUB_STEP_SUMMARY
BRANCH="release/bump-${{ github.event.release.tag_name }}-to-${{ env.NEXT_VERSION }}"
git checkout -b $BRANCH
git add version.config
git commit -m "Bump to next patch version ${{ env.NEXT_VERSION }}"
git push origin $BRANCH
PR_URL=$(gh pr create \
--title "Forwardport ${{ github.event.release.tag_name }}" \
--body "Change to the next patch version ${{ env.NEXT_VERSION }} after the release of ${{ github.event.release.tag_name }}." \
--base $RELEASE_BRANCH \
--head $BRANCH \
--label "release")
echo "✅ Bump to next patch version: $PR_URL" >> $GITHUB_STEP_SUMMARY
================================================
FILE: .github/workflows/rpm-packages.yaml
================================================
# Test rpm package installation for latest version
name: "Packaging tests: RPM"
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
pull_request:
paths: .github/workflows/rpm-packages.yaml
push:
tags:
- '*'
branches:
- release_test
- trigger/package_test
workflow_dispatch:
jobs:
rpm_tests:
name: RPM ${{ matrix.image }} PG${{ matrix.pg }} ${{ matrix.license }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
strategy:
fail-fast: false
matrix:
image: [ "rockylinux:8", "rockylinux:9" ]
pg: [ 15, 16, 17, 18 ]
license: [ "TSL", "Apache"]
include:
- license: Apache
pkg_suffix: "-oss"
exclude:
- image: "rockylinux:8"
pg: 18
steps:
- name: Add postgres repositories
run: "yum install -y \"https://download.postgresql.org/pub/repos/yum/reporpms/\
EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm\""
- name: Add other repositories
run: |
tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
- name: Install timescaledb
run: |
yum update -y
if [[ "$(rpm -E %{rhel})" -eq "8" ]]; then dnf -qy module disable postgresql; fi
yum install -y timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }} sudo wget jq
sudo -u postgres /usr/pgsql-${{ matrix.pg }}/bin/initdb -D /var/lib/pgsql/${{ matrix.pg }}/data
timescaledb-tune --quiet --yes --pg-config /usr/pgsql-${{ matrix.pg }}/bin/pg_config
- name: List available versions
run: |
yum --showduplicates list timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}
- name: Show files in package
run: |
rpm -ql timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}
- uses: actions/checkout@v3
- name: Get version of latest release
id: versions
run: |
version=$(wget -q https://api.github.com/repos/timescale/timescaledb/releases/latest -O - | jq -r .tag_name)
echo "version=${version}"
echo "version=${version}" >>$GITHUB_OUTPUT
- name: Test Installation
run: |
sudo -u postgres /usr/pgsql-${{ matrix.pg }}/bin/pg_ctl -D /var/lib/pgsql/${{ matrix.pg }}/data start
while ! /usr/pgsql-${{ matrix.pg }}/bin/pg_isready; do sleep 1; done
sudo -u postgres psql -X -c "CREATE EXTENSION timescaledb" \
-c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb';"
installed_version=$(sudo -u postgres psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "${{ steps.versions.outputs.version }}" != "$installed_version" ];then
false
fi
- name: Test Downgrade
if: matrix.pg != '18' # pg18 only has 1 version so downgrade is not possible
run: |
# Since this runs nightly on main we have to get the previous version
# from the last released version and not current branch.
prev_version=$(wget --quiet -O - \
https://raw.githubusercontent.com/timescale/timescaledb/${{ steps.versions.outputs.version }}/version.config \
| grep previous_version | sed -e 's!previous_version = !!')
yum downgrade -y timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}-${prev_version}
sudo -u postgres psql -X -c "ALTER EXTENSION timescaledb UPDATE TO '${prev_version}'" \
-c "SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb';"
installed_version=$(sudo -u postgres psql -X -t \
-c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "$prev_version" != "$installed_version" ];then
false
fi
- name: Install toolkit
if: matrix.pg != 17 && matrix.image != 'rockylinux:9' # timescaledb-toolkit currently not available for PG17 and Rocky9
run: |
yum install -y timescaledb-toolkit-postgresql-${{ matrix.pg }}
- name: List available toolkit versions
if: matrix.pg != 17 && matrix.image != 'rockylinux:9' # timescaledb-toolkit currently not available for PG17 and Rocky9
run: |
yum --showduplicates list timescaledb-toolkit-postgresql-${{ matrix.pg }}
================================================
FILE: .github/workflows/sanitizer-build-and-test.yaml
================================================
# Run regression tests under memory sanitizer
name: Sanitizer test
"on":
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
push:
branches:
- main
- ?.*.x
- trigger/sanitizer
pull_request:
paths: .github/workflows/sanitizer-build-and-test.yaml
workflow_dispatch:
env:
name: "Sanitizer"
PG_SRC_DIR: "pgbuild"
PG_INSTALL_DIR: "postgresql"
extra_packages: "clang-15 llvm-15 llvm-15-dev llvm-15-tools"
llvm_config: "llvm-config-15"
CLANG: "clang-15"
CC: "clang-15"
CXX: "clang-15"
# gcc CFLAGS, disable inlining for function name pattern matching to work for suppressions
# CFLAGS: "-g -fsanitize=address,undefined -fno-omit-frame-pointer -O1 -fno-inline"
# CXXFLAGS: "-g -fsanitize=address,undefined -fno-omit-frame-pointer -O1 -fno-inline"
# clang CFLAGS
CFLAGS: "-g -fsanitize=address,undefined -fno-omit-frame-pointer -Og -fno-inline-functions"
CXXFLAGS: "-g -fsanitize=address,undefined -fno-omit-frame-pointer -Og -fno-inline-functions"
# We do not link libasan dynamically to avoid problems with libdl and our libraries.
# clang does this by default, but we need to explicitly state that for gcc.
# static gcc LDFLAGS
# LDFLAGS: "-fsanitize=address,undefined -static-libasan -static-liblsan -static-libubsan"
# static sanitizer clang LDFLAGS or dynamic sanitizer gcc LDFLAGS
LDFLAGS: "-fsanitize=address,undefined"
ASAN_OPTIONS: suppressions=${{ github.workspace }}/scripts/suppressions/suppr_asan.txt
detect_odr_violation=0 log_path=${{ github.workspace }}/sanitizer_logs/sanitizer
log_exe_name=true print_suppressions=false exitcode=27
detect_leaks=0 abort_on_error=1
LSAN_OPTIONS: suppressions=${{ github.workspace }}/scripts/suppressions/suppr_leak.txt
print_suppressions=0 log_path=${{ github.workspace }}/sanitizer_logs/sanitizer
log_exe_name=true print_suppressions=false exitcode=27
UBSAN_OPTIONS: suppressions=${{ github.workspace }}/scripts/suppressions/suppr_ub.txt
print_stacktrace=1 halt_on_error=1 log_path=${{ github.workspace }}/sanitizer_logs/sanitizer
log_exe_name=true print_suppressions=false exitcode=27
IGNORES: >-
bgw_db_scheduler
bgw_db_scheduler_fixed
merge_append_partially_compressed
net
telemetry
EXTENSIONS: "postgres_fdw test_decoding"
jobs:
config:
runs-on: ubuntu-latest
outputs:
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Read configuration
id: setter
run: python .github/gh_config_reader.py
sanitizer:
# Change the JOB_NAME variable below when changing the name.
# Don't use the env variable here because the env context is not accessible.
name: PG${{ matrix.pg }} Sanitizer ${{ matrix.os }}
runs-on: ${{ matrix.os }}
needs: config
strategy:
fail-fast: false
matrix:
# "os" has to be in the matrix due to a bug in "env": https://github.community/t/how-to-use-env-context/16975
os: ["ubuntu-22.04"]
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
steps:
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install flex bison lcov systemd-coredump gdb libipc-run-perl \
libtest-most-perl jq ${{ env.extra_packages }}
- name: Checkout TimescaleDB
uses: actions/checkout@v4
# We are going to rebuild Postgres daily, so that it doesn't suddenly break
# ages after the original problem.
- name: Get date for build caching
id: get-date
run: |
echo "date=$(date +"%d")" >> $GITHUB_OUTPUT
# Create a directory for sanitizer logs. This directory is referenced by
# ASAN_OPTIONS, LSAN_OPTIONS, and UBSAN_OPTIONS
- name: Create sanitizer log directory
run: |
mkdir ${{ github.workspace }}/sanitizer_logs
# we cache the build directory instead of the install directory here
# because extension installation will write files to install directory
# leading to a tainted cache
- name: Cache PostgreSQL ${{ matrix.pg }}
id: cache-postgresql
uses: actions/cache@v4
with:
path: ~/${{ env.PG_SRC_DIR }}
key: "${{ matrix.os }}-${{ env.name }}-postgresql-${{ matrix.pg }}-${{ env.CC }}\
-${{ steps.get-date.outputs.date }}-${{ hashFiles('.github/**') }}"
- name: Build PostgreSQL ${{ matrix.pg }} if not in cache
if: steps.cache-postgresql.outputs.cache-hit != 'true'
run: |
wget -q -O postgresql.tar.bz2 \
https://ftp.postgresql.org/pub/source/v${{ matrix.pg }}/postgresql-${{ matrix.pg }}.tar.bz2
mkdir -p ~/$PG_SRC_DIR
tar --extract --file postgresql.tar.bz2 --directory ~/$PG_SRC_DIR --strip-components 1
# Add instrumentation to the Postgres memory contexts. For more details, see
# https://github.com/timescale/eng-database/wiki/Using-Address-Sanitizer#adding-more-instrumentation
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!')
if [ ${PG_MAJOR} -lt 18 ]; then
patch -F5 -p1 -d ~/$PG_SRC_DIR < test/postgres-asan-instrumentation.patch
else
patch -F5 -p1 -d ~/$PG_SRC_DIR < test/postgres-asan-instrumentation-PG18GE.patch
fi
cd ~/$PG_SRC_DIR
./configure --prefix=$HOME/$PG_INSTALL_DIR --enable-debug --enable-cassert \
--with-openssl --without-readline --without-zlib --without-libxml
make -j$(getconf _NPROCESSORS_ONLN)
for ext in ${EXTENSIONS}; do
make -j$(getconf _NPROCESSORS_ONLN) -C contrib/${ext}
done
- name: Upload config.log
if: always() && steps.cache-postgresql.outputs.cache-hit != 'true'
uses: actions/upload-artifact@v4
with:
name: config.log for PostgreSQL ${{ matrix.os }} ${{ env.name }} ${{ matrix.pg }}
path: ~/${{ env.PG_SRC_DIR }}/config.log
- name: Install PostgreSQL ${{ matrix.pg }}
run: |
cd ~/$PG_SRC_DIR
make install
for ext in ${EXTENSIONS}; do
make -C contrib/${ext} install
done
~/$PG_INSTALL_DIR/bin/pg_config --version
- name: Build TimescaleDB
run: |
./bootstrap -DCMAKE_BUILD_TYPE=Debug -DPG_SOURCE_DIR=~/$PG_SRC_DIR \
-DPG_PATH=~/$PG_INSTALL_DIR -DCODECOVERAGE=OFF -DREQUIRE_ALL_TESTS=ON \
-DTEST_GROUP_SIZE=5 -DTEST_PG_LOG_DIRECTORY="$(readlink -f .)" -DTEST_TIMEOUT=240
make -j$(getconf _NPROCESSORS_ONLN) -C build
make -C build install
- name: make installcheck
run: |
set -o pipefail
# IGNORE some test since they fail under ASAN.
make -k -C build installcheck IGNORES="${IGNORES}" \
PSQL="${HOME}/${PG_INSTALL_DIR}/bin/psql" | tee installcheck.log
- name: Show regression diffs
if: always()
id: collectlogs
run: |
find . -name regression.diffs -exec cat {} + > regression.log
if [[ "${{ runner.os }}" == "Linux" ]] ; then
# wait in case there are in-progress coredumps
sleep 10
if coredumpctl -q list >/dev/null; then echo "coredumps=true" >>$GITHUB_OUTPUT; fi
# print OOM killer information
sudo journalctl --system -q --facility=kern --grep "Killed process" || true
fi
if [[ -s regression.log ]]; then echo "regression_diff=true" >>$GITHUB_OUTPUT; fi
grep -e 'FAILED' -e 'failed (ignored)' -e 'not ok' installcheck.log || true
cat regression.log
- name: Save regression diffs
if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v4
with:
name: Regression diff ${{ matrix.os }} ${{ env.name }} ${{ matrix.pg }}
path: |
regression.log
installcheck.log
- name: Save PostgreSQL log
if: alw
gitextract_w6vwqnet/ ├── .clang-format ├── .codecov.yml ├── .dir-locals.el ├── .editorconfig ├── .git-blame-ignore-revs ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── enhancement.yml │ │ └── feature.yml │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── pull_request_template.md │ ├── ci_settings.py │ ├── codespell-ignore-words │ ├── filters.yaml │ ├── gh_config_reader.py │ ├── gh_matrix_builder.py │ └── workflows/ │ ├── abi.yaml │ ├── apt-installcheck.yaml │ ├── apt-packages.yaml │ ├── backport-trigger.yaml │ ├── backport.yaml │ ├── catalog-updates-check.yaml │ ├── changelog-check.yaml │ ├── claude-code-review.yaml │ ├── coccinelle.yaml │ ├── code_style.yaml │ ├── coverity.yaml │ ├── docker-images.yaml │ ├── extras-diagnostic.yaml │ ├── homebrew.yaml │ ├── issue-handling.yaml │ ├── label-handling.yaml │ ├── label-released-prs.yaml │ ├── libfuzzer.yaml │ ├── linux-32bit-build-and-test.yaml │ ├── linux-build-and-test.yaml │ ├── loader_check.yml │ ├── memory-tests.yaml │ ├── nightly_cloud_smoke_test.yaml │ ├── pg_ladybug.yaml │ ├── pg_upgrade-test.yaml │ ├── pgspot.yaml │ ├── pr-approvals.yaml │ ├── pr-handling.yaml │ ├── pr-validation.yaml │ ├── prerelease-sanity.yaml │ ├── release_build_packages.yml │ ├── release_feature_freeze_ceremony.yaml │ ├── release_post_release_ceremony.yaml │ ├── rpm-packages.yaml │ ├── sanitizer-build-and-test.yaml │ ├── shellcheck.yaml │ ├── snapshot-abi.yaml │ ├── sqlsmith.yaml │ ├── stalebot.yaml │ ├── tests-fail-on-old-code.yaml │ ├── trigger-package-tests.yaml │ ├── trigger-prerelease-tests.yaml │ ├── update-test.yaml │ ├── windows-build-and-test.yaml │ └── windows-packages.yaml ├── .gitignore ├── .perltidyrc ├── .pull-review ├── .unreleased/ │ ├── chunk-param │ ├── columnar-function │ ├── constant-gapfill │ ├── direct-loss │ ├── in-any-chunk-exclusion │ ├── parameterized-merge │ ├── pr_8983 │ ├── pr_9142 │ ├── pr_9238 │ ├── pr_9253 │ ├── pr_9266 │ ├── pr_9267 │ ├── pr_9312 │ ├── pr_9334 │ ├── pr_9372 │ ├── pr_9374 │ ├── pr_9376 │ ├── pr_9378 │ ├── pr_9382 │ ├── pr_9399 │ ├── pr_9413 │ ├── pr_9414 │ ├── pr_9417 │ ├── saop-pushdown │ ├── text-minmax │ └── wrong-partition ├── .yamllint.yaml ├── CHANGELOG.md ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-APACHE ├── NOTICE ├── README.md ├── SECURITY.md ├── bootstrap ├── bootstrap.bat ├── cmake/ │ ├── GenerateScripts.cmake │ ├── GenerateTestSchedule.cmake │ ├── GitCommands.cmake │ └── ScriptFiles.cmake ├── coccinelle/ │ ├── README.md │ ├── attrnumbergetattroffset.cocci │ ├── bms_result.cocci │ ├── hash_create.cocci │ ├── heap_freetuple.cocci │ ├── hypertable_cache.cocci │ ├── hypertable_cache2.cocci │ ├── mcxt.cocci │ ├── namedata.cocci │ └── oidisvalid.cocci ├── coverage/ │ ├── CMakeLists.txt │ └── README.md ├── docs/ │ ├── BuildSource.md │ ├── MultiNodeDeprecation.md │ ├── StyleGuide.md │ └── getting-started/ │ ├── README.md │ ├── events-uuidv7/ │ │ └── README.md │ ├── financial-ticks/ │ │ └── README.md │ └── nyc-taxi/ │ ├── README.md │ ├── nyc-taxi-queries.sql │ ├── nyc-taxi-sample.csv │ └── nyc-taxi-schema.sql ├── scripts/ │ ├── CMakeLists.txt │ ├── backport.py │ ├── bundle_coredumps.sh │ ├── c_license_header-apache.h │ ├── c_license_header-timescale.h │ ├── changelog/ │ │ ├── generate.sh │ │ └── template.rfc822 │ ├── check_changelog_format.py │ ├── check_file_license.sh │ ├── check_license.sh │ ├── check_license_all.sh │ ├── check_missing_gitignore_for_template_tests.sh │ ├── check_orphaned_test_output_files.sh │ ├── check_sql_script.py │ ├── check_unnecessary_template_tests.sh │ ├── check_unreferenced_files.sh │ ├── check_updates.py │ ├── clang_format_all.sh │ ├── clang_format_wrapper.sh │ ├── cmake_format_all.sh │ ├── coccinelle.sh │ ├── delete_released_change_logs.sh │ ├── docker-build.sh │ ├── docker-run-tests.sh │ ├── dump_meta_data.sql │ ├── export_prefix_check.sh.in │ ├── githooks/ │ │ ├── .gitignore │ │ ├── commit_msg.py │ │ └── commit_msg_tests.py │ ├── label-released.py │ ├── license_apache.spec │ ├── license_tsl.spec │ ├── memory_leaks.sql │ ├── out_of_order_random_direct.sql │ ├── perltidy_format_all.sh │ ├── release/ │ │ ├── build_post_release_artefacts.sh │ │ ├── build_release_artefacts.sh │ │ ├── create_minor_release_branch.sh │ │ └── ready_fork_for_commit.sh │ ├── run_sql.sh │ ├── shellcheck-ci.sh │ ├── sql_license_apache.sql │ ├── sql_license_tsl.sql │ ├── start-local-docker.ps1 │ ├── start-local-docker.sh │ ├── suppressions/ │ │ ├── README.md │ │ ├── suppr_asan.txt │ │ ├── suppr_leak.txt │ │ └── suppr_ub.txt │ ├── test_downgrade.sh │ ├── test_license.sql │ ├── test_memory_spikes.py │ ├── test_pg_upgrade.py │ ├── test_regressions.sh │ ├── test_sanitizers.sh │ ├── test_update_from_version.sh │ ├── test_update_smoke.sh │ ├── test_updates.sh │ ├── ts_dump.sh │ ├── ts_restore.sh │ └── upload_ci_stats.sh ├── sql/ │ ├── CMakeLists.txt │ ├── bgw_scheduler.sql │ ├── bgw_startup.sql │ ├── bookend.sql │ ├── cagg_utils.sql │ ├── cat.cmake │ ├── chunk.sql │ ├── chunk_constraint.sql │ ├── comment_apache.sql │ ├── comment_tsl.sql │ ├── compat.sql │ ├── compression.sql │ ├── compression_defaults.sql │ ├── ddl_api.sql │ ├── ddl_triggers.sql │ ├── debug_build_utils.sql │ ├── debug_utils.sql │ ├── gapfill.sql │ ├── header.sql │ ├── histogram.sql │ ├── hypertable.sql │ ├── job_api.sql │ ├── job_stat_history_log_retention.sql │ ├── maintenance_utils.sql │ ├── metadata.sql │ ├── notice.sql │ ├── osm_api.sql │ ├── partitioning.sql │ ├── policy_api.sql │ ├── policy_internal.sql │ ├── pre_install/ │ │ ├── cache.sql │ │ ├── insert_data.sql │ │ ├── schemas.sql │ │ ├── tables.sql │ │ ├── types.functions.sql │ │ ├── types.post.sql │ │ └── types.pre.sql │ ├── restoring.sql │ ├── size_utils.sql │ ├── sparse_index.sql │ ├── time_bucket.sql │ ├── updates/ │ │ ├── 2.10.0--2.9.3.sql │ │ ├── 2.10.1--2.10.0.sql │ │ ├── 2.10.1--2.10.2.sql │ │ ├── 2.10.2--2.10.1.sql │ │ ├── 2.10.2--2.10.3.sql │ │ ├── 2.10.3--2.10.2.sql │ │ ├── 2.10.3--2.11.0.sql │ │ ├── 2.11.0--2.10.3.sql │ │ ├── 2.11.0--2.11.1.sql │ │ ├── 2.11.1--2.11.0.sql │ │ ├── 2.11.1--2.11.2.sql │ │ ├── 2.11.2--2.11.1.sql │ │ ├── 2.11.2--2.12.0.sql │ │ ├── 2.12.0--2.11.2.sql │ │ ├── 2.12.0-2.12.1.sql │ │ ├── 2.12.1--2.12.0.sql │ │ ├── 2.12.1--2.12.2.sql │ │ ├── 2.12.2--2.12.1.sql │ │ ├── 2.12.2--2.13.0.sql │ │ ├── 2.13.0--2.12.2.sql │ │ ├── 2.13.0--2.13.1.sql │ │ ├── 2.13.1--2.13.0.sql │ │ ├── 2.13.1--2.14.0.sql │ │ ├── 2.14.0--2.13.1.sql │ │ ├── 2.14.0--2.14.1.sql │ │ ├── 2.14.1--2.14.0.sql │ │ ├── 2.14.1--2.14.2.sql │ │ ├── 2.14.2--2.14.1.sql │ │ ├── 2.14.2--2.15.0.sql │ │ ├── 2.15.0--2.14.2.sql │ │ ├── 2.15.0--2.15.1.sql │ │ ├── 2.15.1--2.15.0.sql │ │ ├── 2.15.1--2.15.2.sql │ │ ├── 2.15.2--2.15.1.sql │ │ ├── 2.15.2--2.15.3.sql │ │ ├── 2.15.3--2.15.2.sql │ │ ├── 2.15.3--2.16.0.sql │ │ ├── 2.16.0--2.15.3.sql │ │ ├── 2.16.0--2.16.1.sql │ │ ├── 2.16.1--2.16.0.sql │ │ ├── 2.16.1--2.17.0.sql │ │ ├── 2.17.0--2.16.1.sql │ │ ├── 2.17.0--2.17.1.sql │ │ ├── 2.17.1--2.17.0.sql │ │ ├── 2.17.1--2.17.2.sql │ │ ├── 2.17.2--2.17.1.sql │ │ ├── 2.17.2--2.18.0.sql │ │ ├── 2.18.0--2.17.2.sql │ │ ├── 2.18.0--2.18.1.sql │ │ ├── 2.18.1--2.18.0.sql │ │ ├── 2.18.1--2.18.2.sql │ │ ├── 2.18.2--2.18.1.sql │ │ ├── 2.18.2--2.19.0.sql │ │ ├── 2.19.0--2.18.2.sql │ │ ├── 2.19.0--2.19.1.sql │ │ ├── 2.19.1--2.19.0.sql │ │ ├── 2.19.1--2.19.2.sql │ │ ├── 2.19.2--2.19.1.sql │ │ ├── 2.19.2--2.19.3.sql │ │ ├── 2.19.3--2.19.2.sql │ │ ├── 2.19.3--2.20.0.sql │ │ ├── 2.20.0--2.19.3.sql │ │ ├── 2.20.0--2.20.1.sql │ │ ├── 2.20.1--2.20.0.sql │ │ ├── 2.20.1--2.20.2.sql │ │ ├── 2.20.2--2.20.1.sql │ │ ├── 2.20.2--2.20.3.sql │ │ ├── 2.20.3--2.20.2.sql │ │ ├── 2.20.3--2.21.0.sql │ │ ├── 2.21.0--2.20.3.sql │ │ ├── 2.21.0--2.21.1.sql │ │ ├── 2.21.1--2.21.0.sql │ │ ├── 2.21.1--2.21.2.sql │ │ ├── 2.21.2--2.21.1.sql │ │ ├── 2.21.2--2.21.3.sql │ │ ├── 2.21.3--2.21.2.sql │ │ ├── 2.21.3--2.21.4.sql │ │ ├── 2.21.4--2.22.0.sql │ │ ├── 2.22.0--2.21.3.sql │ │ ├── 2.22.0--2.22.1.sql │ │ ├── 2.22.1--2.22.0.sql │ │ ├── 2.22.1--2.23.0.sql │ │ ├── 2.23.0--2.22.1.sql │ │ ├── 2.23.0--2.23.1.sql │ │ ├── 2.23.1--2.23.0.sql │ │ ├── 2.23.1--2.24.0.sql │ │ ├── 2.24.0--2.23.1.sql │ │ ├── 2.24.0--2.25.0.sql │ │ ├── 2.25.0--2.24.0.sql │ │ ├── 2.25.0--2.25.1.sql │ │ ├── 2.25.1--2.25.0.sql │ │ ├── 2.25.1--2.25.2.sql │ │ ├── 2.25.2--2.25.1.sql │ │ ├── 2.9.0--2.8.1.sql │ │ ├── 2.9.0--2.9.1.sql │ │ ├── 2.9.1--2.9.0.sql │ │ ├── 2.9.1--2.9.2.sql │ │ ├── 2.9.2--2.9.1.sql │ │ ├── 2.9.2--2.9.3.sql │ │ ├── 2.9.3--2.10.0.sql │ │ ├── 2.9.3--2.9.2.sql │ │ ├── README.md │ │ ├── latest-dev.sql │ │ ├── post-update.sql │ │ ├── pre-update.sql │ │ ├── pre-version-change.sql │ │ ├── reverse-dev.sql │ │ ├── set_post_update_stage.sql │ │ ├── unset_update_stage.sql │ │ └── version_check.sql │ ├── util_internal_table_ddl.sql │ ├── util_time.sql │ ├── uuidv7.sql │ ├── version.sql │ ├── views.sql │ ├── views_experimental.sql │ ├── with_telemetry.sql │ └── without_telemetry.sql ├── src/ │ ├── CMakeLists.txt │ ├── README.md │ ├── adts/ │ │ ├── README.md │ │ ├── bit_array.h │ │ ├── bit_array_impl.h │ │ ├── char_vec.h │ │ ├── uint64_vec.h │ │ └── vec.h │ ├── agg_bookend.c │ ├── annotations.h │ ├── bgw/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── job.c │ │ ├── job.h │ │ ├── job_stat.c │ │ ├── job_stat.h │ │ ├── job_stat_history.c │ │ ├── job_stat_history.h │ │ ├── launcher_interface.c │ │ ├── launcher_interface.h │ │ ├── scheduler.c │ │ ├── scheduler.h │ │ ├── timer.c │ │ ├── timer.h │ │ └── worker.h │ ├── bgw_policy/ │ │ ├── CMakeLists.txt │ │ ├── chunk_stats.c │ │ ├── chunk_stats.h │ │ ├── policy.c │ │ └── policy.h │ ├── bmslist_utils.c │ ├── bmslist_utils.h │ ├── build-defs.cmake │ ├── cache.c │ ├── cache.h │ ├── cache_invalidate.c │ ├── cache_invalidate.h │ ├── chunk.c │ ├── chunk.h │ ├── chunk_adaptive.c │ ├── chunk_adaptive.h │ ├── chunk_constraint.c │ ├── chunk_constraint.h │ ├── chunk_index.c │ ├── chunk_index.h │ ├── chunk_insert_state.c │ ├── chunk_insert_state.h │ ├── chunk_scan.c │ ├── chunk_scan.h │ ├── chunk_tuple_routing.c │ ├── chunk_tuple_routing.h │ ├── compat/ │ │ ├── CMakeLists.txt │ │ ├── compat-msvc-enter.h │ │ ├── compat-msvc-exit.h │ │ └── compat.h │ ├── config.h.in │ ├── constraint.c │ ├── constraint.h │ ├── copy.c │ ├── copy.h │ ├── cross_module_fn.c │ ├── cross_module_fn.h │ ├── custom_type_cache.c │ ├── custom_type_cache.h │ ├── debug_assert.h │ ├── debug_point.c │ ├── debug_point.h │ ├── dimension.c │ ├── dimension.h │ ├── dimension_slice.c │ ├── dimension_slice.h │ ├── dimension_vector.c │ ├── dimension_vector.h │ ├── error_utils.h │ ├── errors.h │ ├── estimate.c │ ├── estimate.h │ ├── event_trigger.c │ ├── event_trigger.h │ ├── export.h │ ├── expression_utils.c │ ├── expression_utils.h │ ├── extension.c │ ├── extension.h │ ├── extension_constants.c │ ├── extension_constants.h │ ├── extension_utils.c │ ├── foreach_ptr.h │ ├── foreign_key.c │ ├── foreign_key.h │ ├── func_cache.c │ ├── func_cache.h │ ├── gapfill.c │ ├── gitcommit.cmake │ ├── gitcommit.h.in │ ├── guc.c │ ├── guc.h │ ├── histogram.c │ ├── hypercube.c │ ├── hypercube.h │ ├── hypertable.c │ ├── hypertable.h │ ├── hypertable_cache.c │ ├── hypertable_cache.h │ ├── hypertable_restrict_info.c │ ├── hypertable_restrict_info.h │ ├── import/ │ │ ├── allpaths.c │ │ ├── allpaths.h │ │ ├── heapswap.c │ │ ├── heapswap.h │ │ ├── list.c │ │ ├── list.h │ │ ├── planner.c │ │ ├── planner.h │ │ ├── ts_explain.c │ │ └── ts_explain.h │ ├── indexing.c │ ├── indexing.h │ ├── init.c │ ├── jsonb_utils.c │ ├── jsonb_utils.h │ ├── license_guc.c │ ├── license_guc.h │ ├── loader/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── bgw_counter.c │ │ ├── bgw_counter.h │ │ ├── bgw_interface.c │ │ ├── bgw_interface.h │ │ ├── bgw_launcher.c │ │ ├── bgw_launcher.h │ │ ├── bgw_message_queue.c │ │ ├── bgw_message_queue.h │ │ ├── function_telemetry.c │ │ ├── function_telemetry.h │ │ ├── loader.c │ │ ├── loader.h │ │ ├── lwlocks.c │ │ └── lwlocks.h │ ├── net/ │ │ ├── CMakeLists.txt │ │ ├── conn.c │ │ ├── conn.h │ │ ├── conn_internal.h │ │ ├── conn_plain.c │ │ ├── conn_plain.h │ │ ├── conn_ssl.c │ │ ├── http.c │ │ ├── http.h │ │ ├── http_request.c │ │ └── http_response.c │ ├── nodes/ │ │ ├── CMakeLists.txt │ │ ├── chunk_append/ │ │ │ ├── CMakeLists.txt │ │ │ ├── chunk_append.c │ │ │ ├── chunk_append.h │ │ │ ├── exec.c │ │ │ ├── planner.c │ │ │ ├── transform.c │ │ │ └── transform.h │ │ ├── constraint_aware_append/ │ │ │ ├── CMakeLists.txt │ │ │ ├── constraint_aware_append.c │ │ │ └── constraint_aware_append.h │ │ ├── modify_hypertable.c │ │ ├── modify_hypertable.h │ │ ├── modify_hypertable_exec.c │ │ └── vector_agg.h │ ├── osm_callbacks.c │ ├── osm_callbacks.h │ ├── partition_chunk.c │ ├── partition_chunk.h │ ├── partitioning.c │ ├── partitioning.h │ ├── planner/ │ │ ├── CMakeLists.txt │ │ ├── agg_bookend.c │ │ ├── constify_now.c │ │ ├── constraint_cleanup.c │ │ ├── expand_hypertable.c │ │ ├── planner.c │ │ ├── planner.h │ │ └── space_constraint.c │ ├── process_utility.c │ ├── process_utility.h │ ├── scan_iterator.c │ ├── scan_iterator.h │ ├── scanner.c │ ├── scanner.h │ ├── sort_transform.c │ ├── sort_transform.h │ ├── subspace_store.README.md │ ├── subspace_store.c │ ├── subspace_store.h │ ├── telemetry/ │ │ ├── CMakeLists.txt │ │ ├── functions.c │ │ ├── functions.h │ │ ├── replication.c │ │ ├── replication.h │ │ ├── stats.c │ │ ├── stats.h │ │ ├── telemetry.c │ │ ├── telemetry.h │ │ ├── telemetry_metadata.c │ │ └── telemetry_metadata.h │ ├── time_bucket.c │ ├── time_bucket.h │ ├── time_utils.c │ ├── time_utils.h │ ├── timezones.c │ ├── timezones.h │ ├── trigger.c │ ├── trigger.h │ ├── ts_catalog/ │ │ ├── CMakeLists.txt │ │ ├── array_utils.c │ │ ├── array_utils.h │ │ ├── catalog.c │ │ ├── catalog.h │ │ ├── chunk_column_stats.c │ │ ├── chunk_column_stats.h │ │ ├── chunk_rewrite.c │ │ ├── chunk_rewrite.h │ │ ├── compression_chunk_size.c │ │ ├── compression_chunk_size.h │ │ ├── compression_settings.c │ │ ├── compression_settings.h │ │ ├── continuous_agg.c │ │ ├── continuous_agg.h │ │ ├── continuous_aggs_watermark.c │ │ ├── continuous_aggs_watermark.h │ │ ├── metadata.c │ │ ├── metadata.h │ │ ├── tablespace.c │ │ └── tablespace.h │ ├── tss_callbacks.c │ ├── tss_callbacks.h │ ├── utils.c │ ├── utils.h │ ├── uuid.c │ ├── uuid.h │ ├── version.c │ ├── version.h │ └── with_clause/ │ ├── CMakeLists.txt │ ├── alter_table_with_clause.c │ ├── alter_table_with_clause.h │ ├── create_materialized_view_with_clause.c │ ├── create_materialized_view_with_clause.h │ ├── create_table_with_clause.c │ ├── create_table_with_clause.h │ ├── with_clause_parser.c │ └── with_clause_parser.h ├── test/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── README.md │ ├── ci_rerun.sh │ ├── expected/ │ │ ├── agg_bookends-15.out │ │ ├── agg_bookends-16.out │ │ ├── agg_bookends-17.out │ │ ├── agg_bookends-18.out │ │ ├── alter.out │ │ ├── alternate_users.out │ │ ├── append-15.out │ │ ├── append-16.out │ │ ├── append-17.out │ │ ├── append-18.out │ │ ├── baserel_cache.out │ │ ├── bgw_launcher.out │ │ ├── c_unit_tests.out │ │ ├── catalog_corruption.out │ │ ├── chunk_adaptive.out │ │ ├── chunk_merge.out │ │ ├── chunk_publication.out │ │ ├── chunk_utils.out │ │ ├── chunks.out │ │ ├── cluster.out │ │ ├── constraint.out │ │ ├── copy.out │ │ ├── copy_memory_usage.out │ │ ├── copy_where.out │ │ ├── create_chunks.out │ │ ├── create_hypertable.out │ │ ├── create_table.out │ │ ├── create_table_with.out │ │ ├── cursor.out │ │ ├── custom_type.out │ │ ├── ddl.out │ │ ├── ddl_errors.out │ │ ├── ddl_extra.out │ │ ├── debug_utils.out │ │ ├── delete.out │ │ ├── drop_extension.out │ │ ├── drop_hypertable.out │ │ ├── drop_owned-15.out │ │ ├── drop_owned-16.out │ │ ├── drop_owned-17.out │ │ ├── drop_owned-18.out │ │ ├── drop_rename_hypertable.out │ │ ├── drop_schema.out │ │ ├── dump_meta.out │ │ ├── extension_scripts.out │ │ ├── generated_as_identity.out │ │ ├── grant_hypertable-15.out │ │ ├── grant_hypertable-16.out │ │ ├── grant_hypertable-17.out │ │ ├── grant_hypertable-18.out │ │ ├── hash.out │ │ ├── histogram_test-15.out │ │ ├── histogram_test-16.out │ │ ├── histogram_test-17.out │ │ ├── histogram_test-18.out │ │ ├── index.out │ │ ├── information_views.out │ │ ├── insert-15.out │ │ ├── insert-16.out │ │ ├── insert-17.out │ │ ├── insert-18.out │ │ ├── insert_many.out │ │ ├── insert_returning.out │ │ ├── insert_returning_old_new.out │ │ ├── insert_single.out │ │ ├── lateral.out │ │ ├── license.out │ │ ├── loader-oss.out │ │ ├── loader-tsl.out │ │ ├── merge.out │ │ ├── metadata.out │ │ ├── multi_transaction_index.out │ │ ├── net.out │ │ ├── null_exclusion-15.out │ │ ├── null_exclusion-16.out │ │ ├── null_exclusion-17.out │ │ ├── null_exclusion-18.out │ │ ├── parallel-15.out │ │ ├── parallel-16.out │ │ ├── parallel-17.out │ │ ├── parallel-18.out │ │ ├── partition.out │ │ ├── partition_coercion.out │ │ ├── partitioned_hypertable.out │ │ ├── partitioning.out │ │ ├── partitionwise-15.out │ │ ├── partitionwise-16.out │ │ ├── partitionwise-17.out │ │ ├── partitionwise-18.out │ │ ├── partitionwise.out │ │ ├── pg_dump.out │ │ ├── pg_dump_unprivileged.out │ │ ├── pg_join.out │ │ ├── plain.out │ │ ├── plan_expand_hypertable-15.out │ │ ├── plan_expand_hypertable-16.out │ │ ├── plan_expand_hypertable-17.out │ │ ├── plan_expand_hypertable-18.out │ │ ├── plan_hashagg-15.out │ │ ├── plan_hashagg-16.out │ │ ├── plan_hashagg-17.out │ │ ├── plan_hashagg-18.out │ │ ├── plan_hypertable_inline.out │ │ ├── plan_ordered_append-15.out │ │ ├── plan_ordered_append-16.out │ │ ├── plan_ordered_append-17.out │ │ ├── plan_ordered_append-18.out │ │ ├── query.out │ │ ├── relocate_extension.out │ │ ├── reloptions.out │ │ ├── repair.out │ │ ├── rowsecurity-15.out │ │ ├── rowsecurity-16.out │ │ ├── rowsecurity-17.out │ │ ├── rowsecurity-18.out │ │ ├── size_utils.out │ │ ├── sort_optimization.out │ │ ├── sql_query.out │ │ ├── symbol_conflict.out │ │ ├── tableam.out │ │ ├── tableam_alter.out │ │ ├── tableam_alter_defaults.out │ │ ├── tablespace.out │ │ ├── telemetry.out │ │ ├── test_tss_callbacks.out │ │ ├── test_utils.out │ │ ├── timestamp-15.out │ │ ├── timestamp-16.out │ │ ├── timestamp-17.out │ │ ├── timestamp-18.out │ │ ├── triggers.out │ │ ├── truncate.out │ │ ├── trusted_extension.out │ │ ├── ts_merge-15.out │ │ ├── ts_merge-16.out │ │ ├── ts_merge-17.out │ │ ├── ts_merge-18.out │ │ ├── update.out │ │ ├── upsert.out │ │ ├── util.out │ │ ├── uuid.out │ │ ├── vacuum.out │ │ ├── vacuum_parallel.out │ │ └── version.out │ ├── isolation/ │ │ ├── CMakeLists.txt │ │ ├── expected/ │ │ │ ├── concurrent_add_dimension.out │ │ │ ├── concurrent_query_and_drop_chunks.out │ │ │ ├── deadlock_dropchunks_select.out │ │ │ ├── dropchunks_race.out │ │ │ ├── insert_dropchunks_race.out │ │ │ ├── isolation_nop.out │ │ │ ├── multi_transaction_indexing.out │ │ │ ├── read_committed_insert.out │ │ │ ├── read_uncommitted_insert.out │ │ │ ├── repeatable_read_insert.out │ │ │ ├── serializable_insert.out │ │ │ └── serializable_insert_rollback.out │ │ └── specs/ │ │ ├── CMakeLists.txt │ │ ├── concurrent_add_dimension.spec │ │ ├── concurrent_query_and_drop_chunks.spec │ │ ├── deadlock_dropchunks_select.spec │ │ ├── dropchunks_race.spec │ │ ├── insert_dropchunks_race.spec │ │ ├── isolation_nop.spec │ │ ├── multi_transaction_indexing.spec │ │ ├── read_committed_insert.spec │ │ ├── read_uncommitted_insert.spec │ │ ├── repeatable_read_insert.spec │ │ ├── serializable_insert.spec │ │ └── serializable_insert_rollback.spec │ ├── perl/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ └── TimescaleNode.pm │ ├── pg_prove.sh │ ├── pg_regress.sh │ ├── pgpass.conf.in │ ├── pgtest/ │ │ ├── CMakeLists.txt │ │ └── README.md │ ├── pgtest.conf.in │ ├── postgres-asan-instrumentation-PG18GE.patch │ ├── postgres-asan-instrumentation.patch │ ├── postgresql.conf.in │ ├── runner.sh │ ├── runner_cleanup_output.sh │ ├── runner_isolation.sh │ ├── runner_shared.sh │ ├── sql/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── agg_bookends.sql.in │ │ ├── alter.sql │ │ ├── alternate_users.sql │ │ ├── append.sql.in │ │ ├── baserel_cache.sql │ │ ├── bgw_launcher.sql │ │ ├── c_unit_tests.sql │ │ ├── catalog_corruption.sql │ │ ├── chunk_adaptive.sql │ │ ├── chunk_publication.sql │ │ ├── chunk_utils.sql │ │ ├── chunks.sql │ │ ├── cluster.sql │ │ ├── constraint.sql │ │ ├── copy.sql │ │ ├── copy_memory_usage.sql │ │ ├── copy_where.sql │ │ ├── create_chunks.sql │ │ ├── create_hypertable.sql │ │ ├── create_table.sql │ │ ├── create_table_with.sql │ │ ├── cursor.sql │ │ ├── custom_type.sql │ │ ├── data/ │ │ │ ├── alter.tsv │ │ │ ├── copy_data.csv │ │ │ ├── ds1_dev1_1.tsv │ │ │ ├── onek.data │ │ │ └── tenk.data │ │ ├── ddl.sql │ │ ├── ddl_errors.sql │ │ ├── ddl_extra.sql │ │ ├── debug_utils.sql │ │ ├── delete.sql │ │ ├── drop_extension.sql │ │ ├── drop_hypertable.sql │ │ ├── drop_owned.sql.in │ │ ├── drop_rename_hypertable.sql │ │ ├── drop_schema.sql │ │ ├── dump_meta.sql │ │ ├── extension_scripts.sql │ │ ├── generated_as_identity.sql │ │ ├── grant_hypertable.sql.in │ │ ├── hash.sql │ │ ├── histogram_test.sql.in │ │ ├── include/ │ │ │ ├── agg_bookends_load.sql │ │ │ ├── agg_bookends_query.sql │ │ │ ├── append_load.sql │ │ │ ├── append_query.sql │ │ │ ├── bgw_launcher_utils.sql │ │ │ ├── bgw_launcher_utils_cleanup.sql │ │ │ ├── ddl_ops_1.sql │ │ │ ├── ddl_ops_2.sql │ │ │ ├── insert_single.sql │ │ │ ├── insert_two_partitions.sql │ │ │ ├── join_load.sql │ │ │ ├── join_query.sql │ │ │ ├── plan_expand_hypertable_load.sql │ │ │ ├── plan_expand_hypertable_query.sql │ │ │ ├── plan_hashagg_load.sql │ │ │ ├── plan_hashagg_query.sql │ │ │ ├── plan_ordered_append_load.sql │ │ │ ├── plan_ordered_append_query.sql │ │ │ ├── query_load.sql │ │ │ ├── query_query.sql │ │ │ ├── query_result_test_equal.sql │ │ │ ├── test_utils.sql │ │ │ ├── ts_merge_load.sql │ │ │ ├── ts_merge_load_ht.sql │ │ │ └── ts_merge_query.sql │ │ ├── index.sql │ │ ├── information_views.sql │ │ ├── insert.sql.in │ │ ├── insert_many.sql │ │ ├── insert_returning.sql │ │ ├── insert_returning_old_new.sql │ │ ├── insert_single.sql │ │ ├── lateral.sql │ │ ├── license.sql │ │ ├── loader/ │ │ │ ├── CMakeLists.txt │ │ │ ├── timescaledb--0.0.0.sql │ │ │ ├── timescaledb--mock-1--mock-2.sql │ │ │ ├── timescaledb--mock-1.sql │ │ │ ├── timescaledb--mock-2--mock-3.sql │ │ │ ├── timescaledb--mock-2.sql │ │ │ ├── timescaledb--mock-3--mock-4.sql │ │ │ ├── timescaledb--mock-3.sql │ │ │ ├── timescaledb--mock-4.sql │ │ │ ├── timescaledb--mock-5--mock-6.sql │ │ │ ├── timescaledb--mock-5.sql │ │ │ ├── timescaledb--mock-6.sql │ │ │ ├── timescaledb--mock-broken--mock-5.sql │ │ │ ├── timescaledb--mock-broken.sql │ │ │ ├── timescaledb_osm--mock-1.sql │ │ │ └── timescaledb_osm.control │ │ ├── loader.sql.in │ │ ├── merge.sql │ │ ├── metadata.sql │ │ ├── multi_transaction_index.sql │ │ ├── net.sql │ │ ├── null_exclusion.sql.in │ │ ├── parallel.sql.in │ │ ├── partition.sql │ │ ├── partition_coercion.sql │ │ ├── partitioned_hypertable.sql │ │ ├── partitioning.sql │ │ ├── partitionwise.sql.in │ │ ├── pg_dump.sql │ │ ├── pg_dump_unprivileged.sql │ │ ├── pg_join.sql │ │ ├── plain.sql │ │ ├── plan_expand_hypertable.sql.in │ │ ├── plan_hashagg.sql.in │ │ ├── plan_hypertable_inline.sql │ │ ├── plan_ordered_append.sql.in │ │ ├── query.sql │ │ ├── relocate_extension.sql │ │ ├── reloptions.sql │ │ ├── repair.sql │ │ ├── rowsecurity.sql.in │ │ ├── size_utils.sql │ │ ├── sort_optimization.sql │ │ ├── sql_query.sql │ │ ├── symbol_conflict.sql │ │ ├── tableam.sql │ │ ├── tableam_alter.sql │ │ ├── tableam_alter_defaults.sql │ │ ├── tablespace.sql │ │ ├── telemetry.sql │ │ ├── test_tss_callbacks.sql │ │ ├── test_utils.sql │ │ ├── timestamp.sql.in │ │ ├── triggers.sql │ │ ├── truncate.sql │ │ ├── trusted_extension.sql │ │ ├── ts_merge.sql.in │ │ ├── update.sql │ │ ├── updates/ │ │ │ ├── catalog_missing_columns.sql │ │ │ ├── cleanup.bigint.sql │ │ │ ├── cleanup.chunk_skipping.sql │ │ │ ├── cleanup.compression.sql │ │ │ ├── cleanup.constraints.sql │ │ │ ├── cleanup.continuous_aggs.v2.sql │ │ │ ├── cleanup.policies.sql │ │ │ ├── cleanup.sparse_index.sql │ │ │ ├── cleanup.timestamp.sql │ │ │ ├── cleanup.v10.sql │ │ │ ├── cleanup.v7.sql │ │ │ ├── cleanup.v8.sql │ │ │ ├── cleanup.v9.sql │ │ │ ├── post.catalog.sql │ │ │ ├── post.chunk_skipping.sql │ │ │ ├── post.compression.sql │ │ │ ├── post.continuous_aggs.sql │ │ │ ├── post.continuous_aggs.v2.sql │ │ │ ├── post.continuous_aggs.v3.sql │ │ │ ├── post.functions.sql │ │ │ ├── post.insert.sql │ │ │ ├── post.integrity_test.sql │ │ │ ├── post.pg_upgrade.sql │ │ │ ├── post.policies.sql │ │ │ ├── post.repair.hierarchical_cagg.sql │ │ │ ├── post.repair.sql │ │ │ ├── post.sequences.sql │ │ │ ├── post.sparse_index.sql │ │ │ ├── post.v10.sql │ │ │ ├── post.v7.sql │ │ │ ├── post.v8.sql │ │ │ ├── post.v9.sql │ │ │ ├── pre.cleanup.sql │ │ │ ├── pre.smoke.sql │ │ │ ├── pre.testing.sql │ │ │ ├── setup.bigint.sql │ │ │ ├── setup.catalog.sql │ │ │ ├── setup.check.sql │ │ │ ├── setup.chunk_skipping.sql │ │ │ ├── setup.compression.sql │ │ │ ├── setup.constraints.sql │ │ │ ├── setup.continuous_aggs.sql │ │ │ ├── setup.databases.sql │ │ │ ├── setup.drop_meta.sql │ │ │ ├── setup.fix_sparse_index_migration.sql │ │ │ ├── setup.insert_bigint.v1.sql │ │ │ ├── setup.insert_bigint.v2.sql │ │ │ ├── setup.insert_timestamp.sql │ │ │ ├── setup.pg_upgrade.sql │ │ │ ├── setup.policies.sql │ │ │ ├── setup.post-downgrade.sql │ │ │ ├── setup.repair.sql │ │ │ ├── setup.roles.sql │ │ │ ├── setup.sparse_index.sql │ │ │ ├── setup.timestamp.sql │ │ │ ├── setup.v10.sql │ │ │ ├── setup.v7.sql │ │ │ ├── setup.v8.sql │ │ │ └── setup.v9.sql │ │ ├── upsert.sql │ │ ├── util.sql │ │ ├── utils/ │ │ │ ├── pg_dump_aux_dump.sh │ │ │ ├── pg_dump_aux_plain_dump.sh │ │ │ ├── pg_dump_aux_restore.sh │ │ │ ├── pg_dump_unprivileged.sh │ │ │ ├── test_fatal_command.sh │ │ │ ├── testsupport.sql │ │ │ └── testsupport_init.sql │ │ ├── uuid.sql │ │ ├── vacuum.sql │ │ ├── vacuum_parallel.sql │ │ └── version.sql │ ├── src/ │ │ ├── CMakeLists.txt │ │ ├── adt_tests.c │ │ ├── bgw/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── log.c │ │ │ ├── log.h │ │ │ ├── params.c │ │ │ ├── params.h │ │ │ ├── scheduler_mock.c │ │ │ ├── test_job_refresh.c │ │ │ ├── test_job_utils.c │ │ │ ├── timer_mock.c │ │ │ └── timer_mock.h │ │ ├── loader/ │ │ │ ├── CMakeLists.txt │ │ │ ├── config.h │ │ │ ├── init.c │ │ │ └── osm_init.c │ │ ├── metadata.c │ │ ├── net/ │ │ │ ├── CMakeLists.txt │ │ │ ├── conn_mock.c │ │ │ ├── conn_mock.h │ │ │ ├── test_conn.c │ │ │ └── test_http.c │ │ ├── symbol_conflict.c │ │ ├── telemetry/ │ │ │ ├── CMakeLists.txt │ │ │ ├── test_privacy.c │ │ │ └── test_telemetry.c │ │ ├── test_bmslist_utils.c │ │ ├── test_compression_settings.c │ │ ├── test_jsonb_utils.c │ │ ├── test_scanner.c │ │ ├── test_time_to_internal.c │ │ ├── test_time_utils.c │ │ ├── test_tss_callbacks.c │ │ ├── test_utils.c │ │ ├── test_utils.h │ │ └── test_with_clause_parser.c │ ├── t/ │ │ ├── 001_replication_telemetry.pl │ │ └── CMakeLists.txt │ └── test-defs.cmake ├── timescaledb.control.in ├── tsl/ │ ├── CMakeLists.txt │ ├── LICENSE-TIMESCALE │ ├── README.md │ ├── src/ │ │ ├── CMakeLists.txt │ │ ├── README.module.md │ │ ├── bgw_policy/ │ │ │ ├── CMakeLists.txt │ │ │ ├── compression_api.c │ │ │ ├── compression_api.h │ │ │ ├── continuous_aggregate_api.c │ │ │ ├── continuous_aggregate_api.h │ │ │ ├── job.c │ │ │ ├── job.h │ │ │ ├── job_api.c │ │ │ ├── job_api.h │ │ │ ├── policies_v2.c │ │ │ ├── policies_v2.h │ │ │ ├── policy_config.c │ │ │ ├── policy_config.h │ │ │ ├── policy_utils.c │ │ │ ├── policy_utils.h │ │ │ ├── process_hyper_inval_api.c │ │ │ ├── process_hyper_inval_api.h │ │ │ ├── reorder_api.c │ │ │ ├── reorder_api.h │ │ │ ├── retention_api.c │ │ │ └── retention_api.h │ │ ├── build-defs.cmake │ │ ├── chunk.c │ │ ├── chunk.h │ │ ├── chunk_api.c │ │ ├── chunk_api.h │ │ ├── chunk_merge.c │ │ ├── chunk_split.c │ │ ├── chunkwise_agg.c │ │ ├── chunkwise_agg.h │ │ ├── compression/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── algorithms/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── array.c │ │ │ │ ├── array.h │ │ │ │ ├── bool_compress.c │ │ │ │ ├── bool_compress.h │ │ │ │ ├── datum_serialize.c │ │ │ │ ├── datum_serialize.h │ │ │ │ ├── deltadelta.c │ │ │ │ ├── deltadelta.h │ │ │ │ ├── deltadelta_impl.c │ │ │ │ ├── dictionary.c │ │ │ │ ├── dictionary.h │ │ │ │ ├── dictionary_hash.h │ │ │ │ ├── float_utils.h │ │ │ │ ├── gorilla.c │ │ │ │ ├── gorilla.h │ │ │ │ ├── gorilla_impl.c │ │ │ │ ├── null.c │ │ │ │ ├── null.h │ │ │ │ ├── simple8b_rle.h │ │ │ │ ├── simple8b_rle_bitarray.h │ │ │ │ ├── simple8b_rle_bitmap.h │ │ │ │ ├── simple8b_rle_decompress_all.h │ │ │ │ ├── uuid_compress.c │ │ │ │ └── uuid_compress.h │ │ │ ├── api.c │ │ │ ├── api.h │ │ │ ├── arrow_c_data_interface.h │ │ │ ├── batch_metadata_builder.h │ │ │ ├── batch_metadata_builder_bloom1.c │ │ │ ├── batch_metadata_builder_minmax.c │ │ │ ├── batch_metadata_builder_minmax.h │ │ │ ├── city_combine.h │ │ │ ├── compression.c │ │ │ ├── compression.h │ │ │ ├── compression_dml.c │ │ │ ├── compression_dml.h │ │ │ ├── compression_scankey.c │ │ │ ├── compression_storage.c │ │ │ ├── compression_storage.h │ │ │ ├── create.c │ │ │ ├── create.h │ │ │ ├── recompress.c │ │ │ ├── recompress.h │ │ │ ├── sparse_index_bloom1.h │ │ │ └── wal_utils.h │ │ ├── continuous_aggs/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── common.c │ │ │ ├── common.h │ │ │ ├── create.c │ │ │ ├── create.h │ │ │ ├── finalize.c │ │ │ ├── finalize.h │ │ │ ├── insert.c │ │ │ ├── insert.h │ │ │ ├── invalidation.c │ │ │ ├── invalidation.h │ │ │ ├── invalidation_threshold.c │ │ │ ├── invalidation_threshold.h │ │ │ ├── materialize.c │ │ │ ├── materialize.h │ │ │ ├── options.c │ │ │ ├── options.h │ │ │ ├── planner.c │ │ │ ├── planner.h │ │ │ ├── refresh.c │ │ │ ├── refresh.h │ │ │ ├── utils.c │ │ │ └── utils.h │ │ ├── import/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ts_like_match.c │ │ │ ├── umash.c │ │ │ └── umash.h │ │ ├── init.c │ │ ├── nodes/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── columnar_index_scan/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── columnar_index_scan.c │ │ │ │ ├── columnar_index_scan.h │ │ │ │ └── columnar_index_scan_exec.c │ │ │ ├── columnar_scan/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── batch_array.c │ │ │ │ ├── batch_array.h │ │ │ │ ├── batch_queue.h │ │ │ │ ├── batch_queue_fifo.c │ │ │ │ ├── batch_queue_fifo.h │ │ │ │ ├── batch_queue_heap.c │ │ │ │ ├── batch_queue_heap.h │ │ │ │ ├── columnar_scan.c │ │ │ │ ├── columnar_scan.h │ │ │ │ ├── compressed_batch.c │ │ │ │ ├── compressed_batch.h │ │ │ │ ├── decompress_context.h │ │ │ │ ├── detoaster.c │ │ │ │ ├── detoaster.h │ │ │ │ ├── exec.c │ │ │ │ ├── exec.h │ │ │ │ ├── planner.c │ │ │ │ ├── planner.h │ │ │ │ ├── pred_text.c │ │ │ │ ├── pred_text.h │ │ │ │ ├── pred_vector_array.c │ │ │ │ ├── pred_vector_const_arithmetic_all.c │ │ │ │ ├── pred_vector_const_arithmetic_single.c │ │ │ │ ├── pred_vector_const_arithmetic_type_pair.c │ │ │ │ ├── qual_pushdown.c │ │ │ │ ├── qual_pushdown.h │ │ │ │ ├── vector_dict.h │ │ │ │ ├── vector_predicates.c │ │ │ │ ├── vector_predicates.h │ │ │ │ └── vector_quals.h │ │ │ ├── gapfill/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── gapfill.h │ │ │ │ ├── gapfill_exec.c │ │ │ │ ├── gapfill_functions.c │ │ │ │ ├── gapfill_functions.h │ │ │ │ ├── gapfill_internal.h │ │ │ │ ├── gapfill_plan.c │ │ │ │ ├── interpolate.c │ │ │ │ ├── interpolate.h │ │ │ │ ├── locf.c │ │ │ │ └── locf.h │ │ │ ├── skip_scan/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── exec.c │ │ │ │ ├── planner.c │ │ │ │ └── skip_scan.h │ │ │ └── vector_agg/ │ │ │ ├── CMakeLists.txt │ │ │ ├── exec.c │ │ │ ├── exec.h │ │ │ ├── filter_word_iterator.h │ │ │ ├── function/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── agg_many_vector_helper.c │ │ │ │ ├── agg_scalar_helper.c │ │ │ │ ├── agg_vector_validity_helper.c │ │ │ │ ├── float48_accum_single.c │ │ │ │ ├── float48_accum_templates.c │ │ │ │ ├── float48_accum_types.c │ │ │ │ ├── functions.c │ │ │ │ ├── functions.h │ │ │ │ ├── int128_accum_single.c │ │ │ │ ├── int128_accum_templates.c │ │ │ │ ├── int24_avg_accum_single.c │ │ │ │ ├── int24_avg_accum_templates.c │ │ │ │ ├── int24_sum_single.c │ │ │ │ ├── int24_sum_templates.c │ │ │ │ ├── minmax_arithmetic_single.c │ │ │ │ ├── minmax_arithmetic_types.c │ │ │ │ ├── minmax_templates.c │ │ │ │ ├── minmax_text.c │ │ │ │ ├── sum_float_single.c │ │ │ │ ├── sum_float_templates.c │ │ │ │ └── template_helper.h │ │ │ ├── grouping_policy.h │ │ │ ├── grouping_policy_batch.c │ │ │ ├── grouping_policy_hash.c │ │ │ ├── grouping_policy_hash.h │ │ │ ├── hashing/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── batch_hashing_params.h │ │ │ │ ├── hash64.h │ │ │ │ ├── hash_strategy_common.c │ │ │ │ ├── hash_strategy_impl.c │ │ │ │ ├── hash_strategy_impl_single_fixed_key.c │ │ │ │ ├── hash_strategy_serialized.c │ │ │ │ ├── hash_strategy_single_fixed_2.c │ │ │ │ ├── hash_strategy_single_fixed_4.c │ │ │ │ ├── hash_strategy_single_fixed_8.c │ │ │ │ ├── hash_strategy_single_text.c │ │ │ │ ├── hashing_strategy.h │ │ │ │ ├── template_helper.h │ │ │ │ └── umash_fingerprint_key.h │ │ │ ├── plan.c │ │ │ ├── plan.h │ │ │ ├── plan_columnar_scan.c │ │ │ └── vector_slot.h │ │ ├── planner.c │ │ ├── planner.h │ │ ├── process_utility.c │ │ ├── process_utility.h │ │ ├── reorder.c │ │ └── reorder.h │ └── test/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── expected/ │ │ ├── agg_partials_pushdown.out │ │ ├── attach_chunk.out │ │ ├── bgw_custom.out │ │ ├── bgw_db_scheduler.out │ │ ├── bgw_db_scheduler_fixed.out │ │ ├── bgw_job_ddl.out │ │ ├── bgw_job_stat_history.out │ │ ├── bgw_job_stat_history_errors.out │ │ ├── bgw_job_stat_history_errors_permissions.out │ │ ├── bgw_policy.out │ │ ├── bgw_reorder_drop_chunks.out │ │ ├── bgw_scheduler_control.out │ │ ├── bgw_scheduler_restart.out │ │ ├── bgw_security.out │ │ ├── bgw_telemetry.out │ │ ├── cagg-15.out │ │ ├── cagg-16.out │ │ ├── cagg-17.out │ │ ├── cagg-18.out │ │ ├── cagg_bgw-15.out │ │ ├── cagg_bgw-16.out │ │ ├── cagg_bgw-17.out │ │ ├── cagg_bgw-18.out │ │ ├── cagg_bgw_drop_chunks.out │ │ ├── cagg_ddl-15.out │ │ ├── cagg_ddl-16.out │ │ ├── cagg_ddl-17.out │ │ ├── cagg_ddl-18.out │ │ ├── cagg_deprecated_bucket_ng.out │ │ ├── cagg_direct_compress.out │ │ ├── cagg_drop_chunks.out │ │ ├── cagg_dump.out │ │ ├── cagg_errors.out │ │ ├── cagg_exp_monthly.out │ │ ├── cagg_exp_next_gen.out │ │ ├── cagg_exp_origin.out │ │ ├── cagg_exp_timezone.out │ │ ├── cagg_invalidation.out │ │ ├── cagg_invalidation_variable_bucket.out │ │ ├── cagg_joins.out │ │ ├── cagg_multi.out │ │ ├── cagg_on_cagg.out │ │ ├── cagg_on_cagg_joins.out │ │ ├── cagg_permissions-15.out │ │ ├── cagg_permissions-16.out │ │ ├── cagg_permissions-17.out │ │ ├── cagg_permissions-18.out │ │ ├── cagg_planning.out │ │ ├── cagg_policy.out │ │ ├── cagg_policy_concurrent.out │ │ ├── cagg_policy_incremental.out │ │ ├── cagg_policy_move.out │ │ ├── cagg_policy_run.out │ │ ├── cagg_query-15.out │ │ ├── cagg_query-16.out │ │ ├── cagg_query-17.out │ │ ├── cagg_query-18.out │ │ ├── cagg_query_using_merge-15.out │ │ ├── cagg_query_using_merge-16.out │ │ ├── cagg_query_using_merge-17.out │ │ ├── cagg_query_using_merge-18.out │ │ ├── cagg_refresh_using_merge.out │ │ ├── cagg_refresh_using_trigger.out │ │ ├── cagg_tableam.out │ │ ├── cagg_union_view-15.out │ │ ├── cagg_union_view-16.out │ │ ├── cagg_union_view-17.out │ │ ├── cagg_union_view-18.out │ │ ├── cagg_usage-15.out │ │ ├── cagg_usage-16.out │ │ ├── cagg_usage-17.out │ │ ├── cagg_usage-18.out │ │ ├── cagg_utils.out │ │ ├── cagg_uuid.out │ │ ├── cagg_watermark.out │ │ ├── chunk_api.out │ │ ├── chunk_column_stats.out │ │ ├── chunk_merge.out │ │ ├── chunk_publication_compression.out │ │ ├── chunk_utils_compression.out │ │ ├── chunk_utils_internal.out │ │ ├── columnar_index_scan-15.out │ │ ├── columnar_index_scan-16.out │ │ ├── columnar_index_scan-17.out │ │ ├── columnar_index_scan-18.out │ │ ├── columnar_scan_cost.out │ │ ├── columnstore_aliases.out │ │ ├── compress_auto_sparse_index.out │ │ ├── compress_batch_size.out │ │ ├── compress_bgw_reorder_drop_chunks.out │ │ ├── compress_bitmap_scan.out │ │ ├── compress_bloom_dml.out │ │ ├── compress_bloom_hash.out │ │ ├── compress_bloom_hash_1.out │ │ ├── compress_bloom_legacy_v1.out │ │ ├── compress_bloom_sparse-15.out │ │ ├── compress_bloom_sparse-16.out │ │ ├── compress_bloom_sparse-17.out │ │ ├── compress_bloom_sparse-18.out │ │ ├── compress_bloom_sparse_debug.out │ │ ├── compress_compbloom_basics.out │ │ ├── compress_compbloom_config.out │ │ ├── compress_compbloom_index_add.out │ │ ├── compress_compbloom_index_drop.out │ │ ├── compress_compbloom_manual_config.out │ │ ├── compress_compbloom_upsert.out │ │ ├── compress_composite_bloom_debug.out │ │ ├── compress_default.out │ │ ├── compress_dml_copy.out │ │ ├── compress_explain.out │ │ ├── compress_float8_corrupt.out │ │ ├── compress_qualpushdown_complex.out │ │ ├── compress_qualpushdown_saop.out │ │ ├── compress_sort_transform.out │ │ ├── compress_sparse_config.out │ │ ├── compress_unordered_sort.out │ │ ├── compressed_collation.out │ │ ├── compressed_detoaster.out │ │ ├── compression.out │ │ ├── compression_algos.out │ │ ├── compression_allocation.out │ │ ├── compression_bgw.out │ │ ├── compression_bool_vectorized.out │ │ ├── compression_bools.out │ │ ├── compression_conflicts.out │ │ ├── compression_constraints.out │ │ ├── compression_create_compressed_table.out │ │ ├── compression_ddl.out │ │ ├── compression_defaults.out │ │ ├── compression_delete_bitmapscan-15.out │ │ ├── compression_delete_bitmapscan-16.out │ │ ├── compression_delete_bitmapscan-17.out │ │ ├── compression_delete_bitmapscan-18.out │ │ ├── compression_errors.out │ │ ├── compression_fks.out │ │ ├── compression_hypertable.out │ │ ├── compression_indexcreate.out │ │ ├── compression_indexscan.out │ │ ├── compression_insert.out │ │ ├── compression_merge.out │ │ ├── compression_null_dump_restore.out │ │ ├── compression_nulls_and_defaults.out │ │ ├── compression_permissions-15.out │ │ ├── compression_permissions-16.out │ │ ├── compression_permissions-17.out │ │ ├── compression_permissions-18.out │ │ ├── compression_policy.out │ │ ├── compression_qualpushdown.out │ │ ├── compression_segment_meta.out │ │ ├── compression_sequence_num_removal.out │ │ ├── compression_settings.out │ │ ├── compression_sorted_merge.out │ │ ├── compression_sorted_merge_columns.out │ │ ├── compression_sorted_merge_distinct.out │ │ ├── compression_sorted_merge_filter.out │ │ ├── compression_sorted_merge_unordered.out │ │ ├── compression_trigger.out │ │ ├── compression_update_delete-15.out │ │ ├── compression_update_delete-16.out │ │ ├── compression_update_delete-17.out │ │ ├── compression_update_delete-18.out │ │ ├── compression_uuid.out │ │ ├── create_table_with.out │ │ ├── decompress_index.out │ │ ├── decompress_memory.out │ │ ├── decompress_vector_qual.out │ │ ├── detach_chunk.out │ │ ├── direct_compress_copy.out │ │ ├── direct_compress_insert.out │ │ ├── feature_flags.out │ │ ├── fixed_schedules.out │ │ ├── foreign_keys_test-15.out │ │ ├── foreign_keys_test-16.out │ │ ├── foreign_keys_test-17.out │ │ ├── foreign_keys_test-18.out │ │ ├── hypertable_generalization.out │ │ ├── information_view_chunk_count.out │ │ ├── insert_memory_usage.out │ │ ├── jit.out │ │ ├── license_tsl.out │ │ ├── merge_append_partially_compressed.out │ │ ├── merge_chunks.out │ │ ├── merge_compress.out │ │ ├── modify_exclusion-15.out │ │ ├── modify_exclusion-16.out │ │ ├── modify_exclusion-17.out │ │ ├── modify_exclusion-18.out │ │ ├── move.out │ │ ├── ordered_append-15.out │ │ ├── ordered_append-16.out │ │ ├── ordered_append-17.out │ │ ├── ordered_append-18.out │ │ ├── plan_skip_scan-15.out │ │ ├── plan_skip_scan-16.out │ │ ├── plan_skip_scan-17.out │ │ ├── plan_skip_scan-18.out │ │ ├── plan_skip_scan_dagg-15.out │ │ ├── plan_skip_scan_dagg-16.out │ │ ├── plan_skip_scan_dagg-17.out │ │ ├── plan_skip_scan_dagg-18.out │ │ ├── plan_skip_scan_dagg.out │ │ ├── plan_skip_scan_notnull.out │ │ ├── policy_generalization.out │ │ ├── privilege_maintain.out │ │ ├── read_only.out │ │ ├── rebuild_columnstore_tests.out │ │ ├── recompress_chunk_segmentwise.out │ │ ├── recompression_integrity_tests.out │ │ ├── recompression_integrity_unordered.out │ │ ├── reorder.out │ │ ├── scheduler_fixed.out │ │ ├── size_utils_tsl.out │ │ ├── skip_scan.out │ │ ├── skip_scan_dagg.out │ │ ├── split_chunk.out │ │ ├── telemetry_stats.out │ │ ├── transparent_decompression-15.out │ │ ├── transparent_decompression-16.out │ │ ├── transparent_decompression-17.out │ │ ├── transparent_decompression-18.out │ │ ├── transparent_decompression_join_index.out │ │ ├── transparent_decompression_ordered_index-15.out │ │ ├── transparent_decompression_ordered_index-16.out │ │ ├── transparent_decompression_ordered_index-17.out │ │ ├── transparent_decompression_ordered_index-18.out │ │ ├── transparent_decompression_queries-15.out │ │ ├── transparent_decompression_queries-16.out │ │ ├── transparent_decompression_queries-17.out │ │ ├── transparent_decompression_queries-18.out │ │ ├── tsl_tables.out │ │ ├── uncompressed_size.out │ │ ├── unlogged.out │ │ ├── uuid_policies.out │ │ ├── vacuum.out │ │ ├── vector_agg_byte.out │ │ ├── vector_agg_default.out │ │ ├── vector_agg_expr.out │ │ ├── vector_agg_filter.out │ │ ├── vector_agg_functions.out │ │ ├── vector_agg_groupagg.out │ │ ├── vector_agg_grouping.out │ │ ├── vector_agg_memory.out │ │ ├── vector_agg_modify_hypertable.out │ │ ├── vector_agg_param.out │ │ ├── vector_agg_planning-15.out │ │ ├── vector_agg_planning-16.out │ │ ├── vector_agg_planning-17.out │ │ ├── vector_agg_planning-18.out │ │ ├── vector_agg_segmentby.out │ │ ├── vector_agg_text.out │ │ ├── vector_agg_uuid.out │ │ ├── vector_qual_default.out │ │ └── vectorized_aggregation.out │ ├── fuzzing/ │ │ └── compression/ │ │ ├── array-bool/ │ │ │ └── empty │ │ ├── array-text/ │ │ │ ├── 01accf1c403c681e8ccc10349c97a28ef2afbdd3 │ │ │ ├── 0d699bc41031c7525fa65c0ab267f34f608eef6a │ │ │ ├── 0dbf553220bcd27478f10999d679d564a11632a1 │ │ │ ├── 0e356ba505631fbf715758bed27d503f8b260e3a │ │ │ ├── 0f873e20f9cc905c940207795842a8f89598bb78 │ │ │ ├── 13f402104e20e5a38290bdc5fec85a46ae36bd73 │ │ │ ├── 143a44ebe20d00b1c6bdf12487758974467b504f │ │ │ ├── 1641a06baa3defcf9a1b704cb94ea3387f40f2ad │ │ │ ├── 2123898ce1d45564480b9ff51cf391b87dcc5a07 │ │ │ ├── 22e70b0d023eac54b28a067aac0ab8e4eb75887b │ │ │ ├── 3862930f38ef2ac7387e3e47191234094aee7c0a │ │ │ ├── 3f82cf837a5f3fae26f7cbb25ed3d903eed71687 │ │ │ ├── 428361124252a8847f1182747c936696bc43543b │ │ │ ├── 4cd1b3841a01a3abc7f1cec6325130fd109dee84 │ │ │ ├── 513033f491e3f9ae4cf779c239158c9063f2af4d │ │ │ ├── 58420143cbcd2fe40fd1409948b6a78d3bf14a32 │ │ │ ├── 592e2bafa4637d9786e9d14c5f1ca512e0076940 │ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f │ │ │ ├── 5d1be7e9dda1ee8896be5b7e34a85ee16452a7b4 │ │ │ ├── 6a126964d691ada7de1d25c976c4e7b481858665 │ │ │ ├── 6c0295b5f6b25ca492bafd609ba5c9494785651f │ │ │ ├── 76023b236d960f02d7fb41c7a1fa4d28dafa7c2d │ │ │ ├── 9159cb8bcee7fcb95582f140960cdae72788d326 │ │ │ ├── 98e49024fd7e15859ec345ee83a01fec0656ad94 │ │ │ ├── a24f8ad32bdadaee87b839765599bc63dfcbd62a │ │ │ ├── a3d453f14af5370aae60089101d659fb12c3aff4 │ │ │ ├── a42c6cf1de3abfdea9b95f34687cbbe92b9a7383 │ │ │ ├── array1 │ │ │ ├── b6f695dd09d681d144c71e52ebe565a2567a23f9 │ │ │ ├── b71fa13e7c2fee50d39a87fc927c31256f8c4af3 │ │ │ ├── bc6960f7ed1b4b216c5cbc2721ea5136ffb80aae │ │ │ ├── c13eaced24e2a5039d3fbeef655fc3cf827a2be7 │ │ │ ├── c2588a11e70caad0b9c91272f81d48348b94f938 │ │ │ ├── c88b988789743b6aad8ef68278fc383847a37ddf │ │ │ ├── crash-1ac67d1b8ebedeb93c515b5244f6e60613c1af0b │ │ │ ├── crash-b6cfa8632a8bf28e90198ec167f3f63258880f77 │ │ │ ├── d57ef126bce1cf2bb5a63addf172a9cf9bedb7da │ │ │ ├── ebddebf24b791e82c4ac007197581ec4fa2886ee │ │ │ ├── ec536d9d30f08137531d4bfe676a545d897ae98b │ │ │ ├── ede4129ca9c4d8dbd649aa6f2d5c0038e1537716 │ │ │ ├── ef519c31ea5d415293021b0ca83dd655701d2c13 │ │ │ ├── f2f014ef49bdaf4ff29d4a7116feff81e7015283 │ │ │ ├── f41f46df995dd4c7690f27978152ead25ccd5c75 │ │ │ ├── length-saw │ │ │ └── with-nulls │ │ ├── array-uuid/ │ │ │ └── empty │ │ ├── bool-bool/ │ │ │ ├── 0187ae825e656c01623dd6d982ab50d490c0c417 │ │ │ ├── 03fa95c77415b6c8691a0dc1d13e195ccd1b897c │ │ │ ├── 050a6450bd7d5dfb7504532cee17be1b973174bc │ │ │ ├── 0699e368418710fc791c8301af3df8895bcfb10e │ │ │ ├── 0bcdbd74d4c3526b71a46282bcfecd7554e70cd9 │ │ │ ├── 11f4de6b8b45cf8051b1d17fa4cde9ad935cea41 │ │ │ ├── 168bf1eed49508508684c0f0f00b3bca3ed1de9c │ │ │ ├── 1957b4d9af53d57c71ce03fe726f3dd55cc5e495 │ │ │ ├── 1f3a7fa8e785a9db380099f29b52ef4598eade72 │ │ │ ├── 34a3bedc4867e71ae61074746c225378159130b2 │ │ │ ├── 3542b3da299b536e44e55dca08549bb5ae401461 │ │ │ ├── 3e8a424e6e48bde8488851a191893d2aab7fa962 │ │ │ ├── 50f65669e0378f3764acc65e9ec8664db7b77a63 │ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f │ │ │ ├── 5e1dbb627121d05e51a038be3425414bc3d463f7 │ │ │ ├── 6326b8e4ed85d653f9a043fca18c638dd4df6d43 │ │ │ ├── 662b18f40ac12457327499dbe84ad32e1a995540 │ │ │ ├── 8dc00598417d4eb788a77ac6ccef3cb484905d8b │ │ │ ├── 96ddb4dc6bf60a475735388b8da21dc601275c4c │ │ │ ├── a26c1d3763601a41dc1e36869238eb2986cd1972 │ │ │ ├── ac6f615983f527a43aff8bbf3edebef8cc881c33 │ │ │ ├── e287fdeb24184e2c2f8e162ba90b1fe2dec90dcc │ │ │ └── empty │ │ ├── deltadelta-int8/ │ │ │ ├── 000226b14bbb5e685204e626484dba42d8996992 │ │ │ ├── 0005721f2bceba264a5cd791cf6a1e36aaed780e │ │ │ ├── 001edd3c9db1c2fe30c9f9d446a0b42b58569ddd │ │ │ ├── 002007b1d394a27c4332710e3af9c00dae04aac5 │ │ │ ├── 0043fbabf9a4d188fb2b4654914a2da5db3d7485 │ │ │ ├── 005c46a47f8bf11c68af4134ce6eb0c22db620ee │ │ │ ├── 00617fee7e086d32d20dd281ddafa8a726646744 │ │ │ ├── 00742699a5aad2ead456e90d61c5f9faba0293a6 │ │ │ ├── 0076eef47ad215c435ecdb57e2494af0f55fd81a │ │ │ ├── 008110c25d8a3a8a8170b7d3ba621cf06d4853c0 │ │ │ ├── 0081a9f0f585a9b67b2103220cc60d36e2dbbd03 │ │ │ ├── 0088c8e6e015602ba5e40a90986019b4ad512f65 │ │ │ ├── 009ffc43f38a56a761e7b83b0f2c8bd026a563bb │ │ │ ├── 00a2eb7a7e3fdc3bfcac0045554586d5fb5502f3 │ │ │ ├── 00d5f2c9add73bceda87ef3acd392122d8adb3e4 │ │ │ ├── 00f85251b4c47fb81acc131a198a1bc98ca779a1 │ │ │ ├── 015c684cdef94cdf964d0800d325c6849d014324 │ │ │ ├── 016dd5961834fbbcc799ffa91004247e868e2781 │ │ │ ├── 01e3938a0dcce30f75133d8ad80220d2d613f008 │ │ │ ├── 01ec3391b4d39420ac8414c675fc1269955e3c57 │ │ │ ├── 02484d2db80b46ff0ae20eafddb5dc45a53140b6 │ │ │ ├── 0270028dc334db0bd34fca6e6abbcb9ecdfac57a │ │ │ ├── 029aaf2ff41035a0bf05a6f97fb68d6a62e32974 │ │ │ ├── 02cabee9534673ed1f5b4ce6dc957952166cbe1b │ │ │ ├── 02d459bcf9a9e071c18db18c808245c16833ca09 │ │ │ ├── 02eb701fa0ab34abda28be9fbba19582790432ad │ │ │ ├── 03607062b7b4b60f979bdd121981128b7002a561 │ │ │ ├── 039c250391321f58181a4cf10a804f6e529eb57e │ │ │ ├── 03f6be1bf6529592f3e57d28e1e8ad46953f7c51 │ │ │ ├── 04096d38044e4074f2b0541b455ed0ecc9a059fe │ │ │ ├── 041ef2e92911ab4633fbc16bf5457fe25d723ae8 │ │ │ ├── 044d5359fc697f71c9f1cd7ab773f025f38ccae6 │ │ │ ├── 0459cc74fd756782cfb3c84c956abf1df632d453 │ │ │ ├── 04826e1568e927a9de9d23e013fac8f4704d230e │ │ │ ├── 048b8752a6490e051d3b4a9ac3c6279953cc8279 │ │ │ ├── 04bdfef2ca95152c9a0525bee938b2ed74c316e9 │ │ │ ├── 04f3abff8e30697834380a3c2f0e238cab099e2b │ │ │ ├── 05f24e5eb37b55471dd9eae8c4194b4f65e25067 │ │ │ ├── 05fb4342fad4ba26e0e2d21742bc65fe70cf3ff5 │ │ │ ├── 06033906c750496425efa6b85c31caa8b7781f34 │ │ │ ├── 063e248ade3d6d40b6cf4c96ef4ff0164c099f7c │ │ │ ├── 06449ffa405bcd2cf8652e4fc82f93fb701f053c │ │ │ ├── 0663f93bee6cc22be2a74ffd2719d6296e74334d │ │ │ ├── 0688f3c387bbd17d82c2b3f7dadf3042f768887b │ │ │ ├── 06905c0515b1cc8f21c39c69adf954607aa1ef97 │ │ │ ├── 06f2e370b0e257bc75726698ff4b05d31fbc82ca │ │ │ ├── 070b4ae2222399e9432f58f67029a7794526a992 │ │ │ ├── 0720f498d7a2de389fee84f09d7d5f8decfa76bd │ │ │ ├── 0761d21c1bed0dc463b92f5c114d170293f17735 │ │ │ ├── 078dd3d695a19d89d78ca5ce6cb5ad394b72800f │ │ │ ├── 07946f273216738b476a364fedf5eaae34c08ecc │ │ │ ├── 07c4739c2e79966c2678d5189115d31469f6cfa6 │ │ │ ├── 07d34e1cb03d70ba8e83a11c1cddad7fcb083855 │ │ │ ├── 07ddb4cff1428ceb1fc0edb6dc8ad7bfadcb8233 │ │ │ ├── 07e310a31ea039330c339d6a5140c067dee5b44f │ │ │ ├── 081e0108c111c717c98f33c9af02b536eaf50349 │ │ │ ├── 083014d7487b279086470af22a3716c7bfc00630 │ │ │ ├── 08e95e19e9ff57fc53b0959896df624e02fdf75f │ │ │ ├── 090a8933ed1391740a094bb7a19e913db10ca6c9 │ │ │ ├── 094f5fdd281c4a9d67f1fac1179708a0753071b3 │ │ │ ├── 09808f60497dfc988e43f40c8dcfc864b46e4c23 │ │ │ ├── 09c504d74d0697ff4bb25681dbd5f9bbe603154b │ │ │ ├── 0a1054b55fab3e07cb841de17cf76a14937f2d49 │ │ │ ├── 0a4e527b4885a1a89b1f7b899282c09023184075 │ │ │ ├── 0a606eef286c1a80546c24253468898684b711f4 │ │ │ ├── 0aa2ce83cc47ebd7457452ee44eec44ef5ae8945 │ │ │ ├── 0b4693f634921fc1aff558120380550054c7dc79 │ │ │ ├── 0b4c9c405bc395ee2064a3790820618c62af22eb │ │ │ ├── 0b8493a4edb47558fa3dfa9cb3b3ca0d3af16971 │ │ │ ├── 0b9dbabf75544aeaeb4301aa3e3b367681eee4bd │ │ │ ├── 0bb58d3d928b75d5bbbb534d8fbcc02e7cec61b7 │ │ │ ├── 0c1bf5358361ad43e3718d79b16153c848257dbc │ │ │ ├── 0c2cf9c105698a12da9f7c1de00897a6039adbd9 │ │ │ ├── 0ceae4f10fc61a7f91b69b3481882a5ce5e57c38 │ │ │ ├── 0d48d19aef5682445e6b8724da523f6ad334d5c8 │ │ │ ├── 0d87d016d0e51c749adb95b1192d3cbdacd8ff96 │ │ │ ├── 0da96dc1d241308ec033b9628a519fda371defc6 │ │ │ ├── 0dc7fd92992bdf76b8a7edf1819ebfbb1a7b6382 │ │ │ ├── 0e039859b8723df22cb8f4cf0831efd10f7df2d3 │ │ │ ├── 0e6947636358abbcaf4704335de9ce6bf1b3bb37 │ │ │ ├── 0ea3cbbe4df13a9c00137579b048da07ac4620da │ │ │ ├── 0f069ba7b764acb518096d549c272968ef139baf │ │ │ ├── 0f24070fee9fd323f32004b8a19e19e4899669c5 │ │ │ ├── 0f5b129fcbfde4a2b74de973536594536a702b17 │ │ │ ├── 0f6b55a491e86c632769c11bcd0e401e8d736c17 │ │ │ ├── 0fbc8b98efd055002d0a9b1f1585c16e1bcafbf5 │ │ │ ├── 0fe403cf9e514edaba7624592e57dedd44d8f974 │ │ │ ├── 10cb10b75109d9f5a51df8cc25e5922ab9304486 │ │ │ ├── 1234967d87289b5476e82e03a5fdaddfb2d89f5d │ │ │ ├── 12429bc13e7a80e8566e6355325baba779106594 │ │ │ ├── 12af146da39094e9e46dd07e119ef8104840a0d8 │ │ │ ├── 13197c60bcdca232644653ced7bea29b141dc3d0 │ │ │ ├── 133c2effbe5ad58905ac393dfdd16ca1fa2c7eb7 │ │ │ ├── 134b9385f7a8269fa53a25d14207c72ec1088f81 │ │ │ ├── 13f9787e9557c5d37424143c6bb87a34a91dc233 │ │ │ ├── 14259b5a7c8b7095dd40e602ce8fdc4d208c00a3 │ │ │ ├── 14964c2e5d120c7acf5fca81233b916b3b3016fc │ │ │ ├── 1573858c8eb6d027bbdaa303eaf5d57c978b3465 │ │ │ ├── 1669aab7adfb7e65162eda52612d49e0f252d270 │ │ │ ├── 1697392b1fb9f4b49c80030d6b3017d72d4ede4c │ │ │ ├── 176236dd152ebf4fa259212b539fbc49d9dd1799 │ │ │ ├── 17896100eabd31d729b38a703da3f31e57fdf4b8 │ │ │ ├── 17af15070570b101ef4c57ade5ad766e4924aabc │ │ │ ├── 17e00a1df1c9b937d50a5a890562587f1196b646 │ │ │ ├── 18c4bd81a648ee9d7db0dc68c4615a22ffd4cd72 │ │ │ ├── 19308702d029cceef2220db8c57fbae88ef17f44 │ │ │ ├── 1937ed2d8de2d8577fc48a407ded56d272e40096 │ │ │ ├── 1a8f7f5dd5f42e1ae89b55a47e1fa45cab816e62 │ │ │ ├── 1b110f70f70d47d01b6f55110d5719e3dd19d893 │ │ │ ├── 1b1f4b7a41866daf1fd4f2aaeb6aaecea3bea926 │ │ │ ├── 1b2d9c2d949b251a2ca3eecd2d8f29cf96334611 │ │ │ ├── 1b53e293c41a7b6bd041098fa91aab2e5ef4ab16 │ │ │ ├── 1ba5cd685ecccdac9caa92377346315ce6d6c293 │ │ │ ├── 1bc1d2f6da12c6cd0eaab779fe69b872c1b427b0 │ │ │ ├── 1c66535a7d66622db6aac4ee1df14b1db1369b41 │ │ │ ├── 1d1ae6b78379f1aea79abee08338cd4762ebab3c │ │ │ ├── 1d2e73934349bc80d13e3c1581eb915d7e658666 │ │ │ ├── 1d7c3373fc113bbe6f4eb12600fddde935ec69bb │ │ │ ├── 1dbe1fffa3a5edddbc95ecf5e496236386b1b928 │ │ │ ├── 1e783d97191cec0a7095c81805cc5de7a5d1355c │ │ │ ├── 1ea298a60f91377c5e8852dab8a10cdbc66a7702 │ │ │ ├── 1fce78dca10eecad74006cda5b0619c1530a90dd │ │ │ ├── 21d3312341b1626ba6bfd29568e2ef50c60538d8 │ │ │ ├── 2263ed26b47e2066384bab5c098b26f13faf5ee1 │ │ │ ├── 2344a89366d1eee87d8bb3e54b620b02c68abc96 │ │ │ ├── 237df2b50d5437a256391b6efde8d6ced3a006e4 │ │ │ ├── 2453ff3b056ab95e17a1d7dd99c82defc2b597d0 │ │ │ ├── 2477ff336402e5de52445520eb15e8704343ed00 │ │ │ ├── 24b6413c3745f8b7b2f729bae89ee399b0641beb │ │ │ ├── 24e6190084fd40e44ff278c02fb4e43c8cd29836 │ │ │ ├── 269f91653f9bbac218dfe0884c8c43ebbeccbcaf │ │ │ ├── 2723b24f11843b73282f94931b3f3ed696963ee2 │ │ │ ├── 275315c1e29d2d7fb15810a3d66953d5d68d8d62 │ │ │ ├── 2b20144d0f616bd4695c236e15ebaded83f5b598 │ │ │ ├── 2b40483bd9238d7036d56fa6dcd735fc52fbe195 │ │ │ ├── 2c6bd6e0bb02871d00ea542c1702fd81a0a86d21 │ │ │ ├── 2cbd4f4b339c999597a58fc5af53e4bfffc2b78c │ │ │ ├── 2cf2b0ae879c5a9120263a5ecb793425def7a8b0 │ │ │ ├── 2d9c2be54686acf5d5b2755384dd52ff4d19ee02 │ │ │ ├── 2dc8f286c1ea4f3dbdabc059f3a1243080cd62f8 │ │ │ ├── 2e18a24e3c46167c0f3d368b75760abdf8fac401 │ │ │ ├── 307ea4e260815f6a9e8b129307a38452976b692b │ │ │ ├── 311f3dceb49012061d4b72a831e347133c92bcdb │ │ │ ├── 313644ec39dc8694c470ab757ba111838ee53b1c │ │ │ ├── 31ae44f31abd373f0ff481806d3157f85ccae710 │ │ │ ├── 324102241d71e8c8a37d543dea5cb99ac7ae7c8d │ │ │ ├── 324ec9cb002617a880a56eb07f49657fc4483505 │ │ │ ├── 3493fcabf43e379422d876938aefff76d611ab95 │ │ │ ├── 349cbb7c3e3812603d102a39ed82b0bdac61410c │ │ │ ├── 350699ee4c96235151a3b75fdf0d54d482f71218 │ │ │ ├── 3625c8ad48799bd41b23ff6bc8a3c487702b3f00 │ │ │ ├── 36c0f8e79ee0a971f51204923c2f06cef5ae86e7 │ │ │ ├── 39764a75e150887f1b3d6c15ff2883112bce78d0 │ │ │ ├── 39d95b1ac8f9a92f57162e173e809bfd24dc38d8 │ │ │ ├── 3a2fa560af8026b2342777bf91ccd155a71af6d4 │ │ │ ├── 3c3b7a908a6b8303cc2ced4cdc2c548cedbb760f │ │ │ ├── 3c81c456a004ec4ccd7c80fe2eea2f0ef7ab7473 │ │ │ ├── 3cd038948d733c0b49ba6c78452cbd03186c69bb │ │ │ ├── 3d657fe063550eb5f8d8ef40b55590b321aa20f4 │ │ │ ├── 3da8fb2b32486ad7c716c76458668a6acfdf5f0e │ │ │ ├── 3e30f3f570dfee8350064c138494bd670d2fc795 │ │ │ ├── 3e8153e9034c230c77afe71a541d4f85ef1aefb8 │ │ │ ├── 3f8b816713d67daeb3c9a6dfd6a1fa9e651c96e7 │ │ │ ├── 40c238a192c1a36484f359cbf87e4a3c4cea8bd3 │ │ │ ├── 416d8c8f3c970b609e07c225a93db937ab8fd7a0 │ │ │ ├── 41ebd242b789740786e3ece0d4117dcadbf6a37e │ │ │ ├── 421c2d863ad0ae5d339f9a18293a38bc4b24d0fb │ │ │ ├── 444dc80536559d07351b2d3616cb40c3c1a9dcbd │ │ │ ├── 445df2c7e19680732514c77c9b4e8554dfd58a69 │ │ │ ├── 4815d6ffa9e96eac844fc31289df2d00932c95c1 │ │ │ ├── 487e4c6fb01756b58d769ca4a0015b5cb1017b7b │ │ │ ├── 48843aedaa180a1bb3b5106e8b55352276d0c586 │ │ │ ├── 492d805d4c8fdbc70e597d8d6e601238a3be324e │ │ │ ├── 4b81c48b8d565a4dcecfe7d694ea47a69deec3fa │ │ │ ├── 4c06c923331191aff0ec6cd7c19536e311be6d59 │ │ │ ├── 4c5b635d4e0e7685b5b3b3fe67fe1ead7aa8cb87 │ │ │ ├── 4c92c44bdf911e127f98b1f741a9429a416404b7 │ │ │ ├── 4cd9c9085b3974be6114e9c96b385fd5928169b3 │ │ │ ├── 4d56d33e33ce1f0d3a6e3e5582bd28665e3fa65a │ │ │ ├── 4d80df18bb50e97b97b10fe7ff50065944df7973 │ │ │ ├── 4e22436534f7ddda6023610945ad3fb84b08d5f2 │ │ │ ├── 4ed47503b5d6a6a97de63384162805adf4cc1a58 │ │ │ ├── 4ed96db01a061c6cf9f3236f9254989d12f65315 │ │ │ ├── 527d035f3b7718f9a3fc2ea09e79803d5169fc0a │ │ │ ├── 53157896277c12aaf92e63bd6eba876823c53644 │ │ │ ├── 5369e602a569f72fb2398c3dfa65806f870a4330 │ │ │ ├── 54acea7c142b7d17006615be6d40591bfdf6280c │ │ │ ├── 54f997c30666b3519baabf15d055a8468795076a │ │ │ ├── 55eb87d57c0f0f7fd3ea9d63c1eac58ee00199dd │ │ │ ├── 5958b905c02f53a22cdfabb51cd2823d13650241 │ │ │ ├── 5af121503212bc786fef31e2e3a51ce2031b1b84 │ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f │ │ │ ├── 5de1bb11c456a3b400a4fd2b3c419ca129f099c5 │ │ │ ├── 62bad82a78a7694bf9f72575622d90eae3c1cba8 │ │ │ ├── 62dc4d708eb260cf29f94e5a9c65f89f6dd3fa43 │ │ │ ├── 640126de1ef49506804ad2af892b39fe0af37aa6 │ │ │ ├── 6565683c7f1f07d7cfa27c84426e1c386425a931 │ │ │ ├── 6629278a4f5b5143bac025355a79df241d0d32db │ │ │ ├── 673be270a1d5f97382728953dcbc1a749b8191fb │ │ │ ├── 67871c4d2cfe8eb0807cc8fc7c2b423d2c4be5d2 │ │ │ ├── 6bd8cd832b15cf0d5e3eea310d97b737faf8ee43 │ │ │ ├── 6c7b212dd6e420cc250464ab9517d2168e6c5edf │ │ │ ├── 6ddcfcba54e660ad5fca1bfc91670823cb71f1d2 │ │ │ ├── 6f0935dd5c60572c57d7bb0f5896da83cf4657a9 │ │ │ ├── 6f21d6eb06123ef2835d168b44b7574c39b06fc6 │ │ │ ├── 6fb7b33d08c092caa76e11decfc4e9431ace8d32 │ │ │ ├── 756e189c2c25c94854325a4c948a6df1181c1c13 │ │ │ ├── 75deb85a67a4c6b8a087733ba3a0cd938e63a41f │ │ │ ├── 79b7cb1655367697a866f041f8d7bca70b87ea5f │ │ │ ├── 7ca47c2e3eecc2acf0c7a0655af7c51546bde6d5 │ │ │ ├── 7d197122c22bef9423f360691dcb78dedd2c0c99 │ │ │ ├── 7d1aebf64a30affed22e9f885a0af617ef5bd572 │ │ │ ├── 7d2b0e79c750d7a3fa52f27aefb85a165b4b7133 │ │ │ ├── 7dd097f27180debdc68621b74e84cc448102d92e │ │ │ ├── 7e38e6f71b4a050f3fecdc08d51e3d1418f3fb0f │ │ │ ├── 80117ddd69955929af3ca5f981ba98a48012260b │ │ │ ├── 87446dfd5404badf9eddff3d071218025166ea84 │ │ │ ├── 8a7f547660cec12461032cfda4d1caf55bb07dec │ │ │ ├── 8d50f8e07c30c3521ccf5f399e3667d6da593ddf │ │ │ ├── 93012fe6454ae8c2c9049e784fdc31b444f31f69 │ │ │ ├── 94e9fdedcab956cafdb52ad634cf54487d840e3e │ │ │ ├── 96f00344ba748469ee00ffd0c2d3191a7978b644 │ │ │ ├── 9842926af7ca0a8cca12604f945414f07b01e13d │ │ │ ├── 99d7208df7ea6e626fa9c888e582f7c5432b243b │ │ │ ├── 9ff89f6c4cc178a314ac0b40ad0d823748491bd0 │ │ │ ├── a42c6cf1de3abfdea9b95f34687cbbe92b9a7383 │ │ │ ├── a58d0fc75ead12a9c29063a1d0db8fb80f395c31 │ │ │ ├── a7e9dc04db4e4b11302187e182dd349b563494df │ │ │ ├── ac2f350f4fa2ff262cb01d9d97974df5a2dff0be │ │ │ ├── af11ea42436ef96d9d8ffe0387fb5782ddbb348a │ │ │ ├── b2cf8461474181d99198df332c5dca521c64de2c │ │ │ ├── b461b7d5a152d72fe425d130a6181ea7b0b05f12 │ │ │ ├── b4f3a185d32f5ebe2b85bd678bba599d76f70a7a │ │ │ ├── ba00242b72f56b5d07786b7af10b9749a59a15ba │ │ │ ├── ba3d618f85780af05ad8e9ae2069603006ae9bbb │ │ │ ├── bcd8a144287c2ad0ca47a66cc3606aed7192d5ce │ │ │ ├── bde3b51ae38da58047d42a41371a217827d31f75 │ │ │ ├── c0df86d6b43ad023227f4618429d963fdc360e44 │ │ │ ├── c20513576febd09086017080392adbf18f0aabe7 │ │ │ ├── c39a1c24b6aabfd2656ac84c5c8fed16eede528e │ │ │ ├── c3b2bc6acbc107d0e9403e61661887935b73ce0c │ │ │ ├── c3e25a84177c1317713c0fa1ddcbaa90a7a9f1cc │ │ │ ├── c40202c42aa92830d9d7d3f2157a4fb0b53fbf11 │ │ │ ├── c67117cd08df138c69184b8717979f297eb3fced │ │ │ ├── c851a06d9dc94b4589a7dae6c527b747e1e474f6 │ │ │ ├── ce6480edc36e784863ce3125c7dbcf95f9cd20ca │ │ │ ├── d3130220f9b81ee04247af415825ddd82fdef93e │ │ │ ├── ddec96652840748881a1e8894c92f7fc3ada74be │ │ │ ├── debbb602a0332ccb345fb31c8c26db33eb8755d6 │ │ │ ├── defd2d06b29a1f7458ae0ee09a4d8551a7e13aec │ │ │ ├── e5137c545032f0c8c5ae6cabc5bbc2ede6370b06 │ │ │ ├── ed0f301384e5530814f95de4c53ac7e7301d35a5 │ │ │ ├── f2048a5d9e7244812355acd3308fe9758b84ef6a │ │ │ ├── f2076dbdb823721d4d275ee0d63c625d4e07d6cd │ │ │ ├── f3543673cd7f732b6680878a993b33199623cf62 │ │ │ ├── f39742a8bb9ccb0675a05436d4bdb86da25a9d2b │ │ │ ├── f8515665b1a6e5bd47075c62b27c76d612e45d8b │ │ │ └── fa0efb79a43b42c1f4ecfaed81dab190b9546bb8 │ │ ├── dictionary-bool/ │ │ │ └── empty │ │ ├── dictionary-text/ │ │ │ ├── 00e8dce1331978dafd0c87d03898913a00d5f427 │ │ │ ├── 03be2aaf02e2f78738dcd55209eb660c63460f73 │ │ │ ├── 06a9bb98f465ce2136ba9c5c3b15912de9101d7b │ │ │ ├── 0ce9675bea488114cd61e0902df0f65bb266b414 │ │ │ ├── 127d1cd7df6314984a355234cad8daee2a0a6f85 │ │ │ ├── 193ff1ad23aaeaa8feafcbe7168f259e5063e715 │ │ │ ├── 1a155dbc0885a4ce404a03ccad4f90e8dfb6838b │ │ │ ├── 1bdd8892fa9cd727ebf1b97101a04456b8ba7bc2 │ │ │ ├── 20294feb1598e5893bda9b1fe7b9568ea0af237c │ │ │ ├── 24a09483ef45200b6ed894e43934767755155e3d │ │ │ ├── 27de45122a7e9da969165f24f6942fc131cb17df │ │ │ ├── 29e8abf085d862cb208f5e476f628644de1c22a0 │ │ │ ├── 2a0fa91e546f986d25159ed1e7507ec4793df3a4 │ │ │ ├── 2d79b560f5c1dde8b7841ae6d77d616f26f5b3ab │ │ │ ├── 2dd04d16222832a133c966eb5e9c4e7ae4d31059 │ │ │ ├── 2e10aad1b62e9ad833ea94af977cd498ba7da057 │ │ │ ├── 2ee77e4ad0a5c13eb219c48f0e8964d9f6124737 │ │ │ ├── 3716f49a4dc3a527cc3682d04ae2036204c406ce │ │ │ ├── 373e78bec9ac0a14383172c8613ac9c3fbb04349 │ │ │ ├── 3902e1ec9e8894b6befc97144a957e69f696bc75 │ │ │ ├── 391c64d022add4f53fcc55761febf54e86465604 │ │ │ ├── 39e6777ccb030519cefc62205e2df23e703aa9fa │ │ │ ├── 3b2185a90d32decad650ceb443751a4023368cdd │ │ │ ├── 3e8223a2a8a5034ca9935ccb1a9c8f41f4dfd782 │ │ │ ├── 3f1762bf4bdff8f21a3de2f04afe2cc9bfd538a5 │ │ │ ├── 446dbbeac1d19ca3ac51def5be4e9fcccf97cdc6 │ │ │ ├── 44991dd092a92994af67db1b51c9ca42261c27d3 │ │ │ ├── 44a171e481ef28ccd2fa0cef7666d8107489c25b │ │ │ ├── 44dae141798a56015e84bb90b8d47f2d1d9db66e │ │ │ ├── 4875bd67fa63473075333ca3ccbc86eecf90fb49 │ │ │ ├── 48ddda607e4778f35289784b3f6c80234660856d │ │ │ ├── 4979455aba5b4c7d302af47c4fd941214e16d3a9 │ │ │ ├── 4e4ec17ed15eab3b2aaee34c46ca44e72789f384 │ │ │ ├── 4e8af02cd72c9425df8c3164b3a14bc1b70c6498 │ │ │ ├── 559b65125ca556ff1a57f82f9ae55a86b71c6296 │ │ │ ├── 55b0c7dbbd7470a644c43aaf8aaaa520631e3bb5 │ │ │ ├── 57a99548ae911ad4a20406a03b0a0ac7a9adc63a │ │ │ ├── 5a72bac420b736c0d530a9d4c861a374ad32f5a5 │ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f │ │ │ ├── 5c9409528b92b40afa79d037eadcb73b859e94e6 │ │ │ ├── 5c99325fac6e6a77d673cf223fb3b3e62fb1e07e │ │ │ ├── 5e81672e813bd1e06ecba224f520328498f27ea8 │ │ │ ├── 626bf1b65f1a0c5fba061fac07a711f970b07a80 │ │ │ ├── 62ca0c60044ab7f33aa33d10a4ae715ee06b7748 │ │ │ ├── 6407ff9cce2be245bacff6693615b8e382ba2a96 │ │ │ ├── 664e56319f5a1ffc9bd3e9554f2358ace5a739ca │ │ │ ├── 66a4327f1269b132279cd6bedd1b82f5f112eda9 │ │ │ ├── 687464af84370f5d43d25acba442acc7fd14beec │ │ │ ├── 68c94392b09d47edea2a48f62808073bf83448f3 │ │ │ ├── 6af6e86bfe31a3941d3085227f051c05777657de │ │ │ ├── 6f04561347c9100edce326d87e065789d2d56185 │ │ │ ├── 726be829733ebbca258b51fc29a79e543de46677 │ │ │ ├── 75fc076b6fc8dac4f65c31fa4fd34ad236530422 │ │ │ ├── 76bbc1ead78624711303acd22377969f0962736b │ │ │ ├── 76fa9dc37fc42934404c72df57d296c663ee807d │ │ │ ├── 79ef4a8ba594c7a2b611bc33fc8b83fe8ac14998 │ │ │ ├── 7bbc7585698a7c3375bea9c3bcff8838722d8f64 │ │ │ ├── 7be90a9058961ac6ee07f764618805dfe8b6cfae │ │ │ ├── 8127c19b14b9a5750a4731aef2f900a72ec6d802 │ │ │ ├── 8426e28aabe6684eb7200bd032ff0dad5a5169af │ │ │ ├── 85e53271e14006f0265921d02d4d736cdc580b0b │ │ │ ├── 8a5c3216797d7a54adeafc86b708b942a9894b2f │ │ │ ├── 8c92cd8b3e908dad0b490baa09ee984fdf224b21 │ │ │ ├── 8f1eab4f75b343ac81f12c926a077aaa572cd002 │ │ │ ├── 910ae695ec5c0972098df24b9e4a910ef2c36959 │ │ │ ├── 91b36d91365f1f59f8874170ecde945d9eeb1316 │ │ │ ├── 95f1a48e7e1cbe4b91461f1251416245497ff131 │ │ │ ├── 9936dc85a37671ac657693400f490966090e391f │ │ │ ├── 994cc577406fe37f59e27ea1028a9d0a814af721 │ │ │ ├── 9a78211436f6d425ec38f5c4e02270801f3524f8 │ │ │ ├── 9a88a0ae40cf185ed2c9bf4ebde71b048030211d │ │ │ ├── 9b99593353a610c4bee0d6a94a01a3296080c0fb │ │ │ ├── a42f35cc555c689a38ef471b21fad93692f36a9c │ │ │ ├── a54a56388dd751dc1ea1727f8e2965b349b54800 │ │ │ ├── a707473dd0d734a745a15b98f20645839d69a660 │ │ │ ├── ae02ec1f395c202f6cd2965ea34d73dc35e10fdf │ │ │ ├── af094ea4a3607992332e87dbe90f1a0f0cf82e09 │ │ │ ├── af33a704edf520f6ccc1c6c51b06d39b5a7e82f8 │ │ │ ├── b18ecac8feda2826b91131b386b8842a1fca17e5 │ │ │ ├── b1eb62fe7596e0f62ef933c269b429851f73853b │ │ │ ├── b8f87323f660b627117ced725f6278ca8dc7fe42 │ │ │ ├── b931131d935fb27ebf7977285299dcf11bb52eb4 │ │ │ ├── ba200d8a4886abcdba4174f4b131db56e9128785 │ │ │ ├── bf8b4530d8d246dd74ac53a13471bba17941dff7 │ │ │ ├── c74adbd5fe4690b76e721fe2de60f04c5d494eae │ │ │ ├── c78643e37119bb0f817531ba2ff265d6ef53c64e │ │ │ ├── c92920944247d80c842eaa65fd01efec1c84c342 │ │ │ ├── crash-49789ae0866d7d630f2075dc26812433f4af1db3 │ │ │ ├── crash-5eeac6ca5053992914dfb318e02e4c657a65c7cf │ │ │ ├── crash-707526606a02c72364e1c8ea82357eead6c74f60 │ │ │ ├── crash-b0db762535226b28c0b55ffe00d5537fd8ef7e39 │ │ │ ├── crash-bd6e8aa1ebeb96cf8aa644c5ef6eb2214dee0ffc │ │ │ ├── crash-e5143387e8896dcfb0f95f8111538502cee38ce0 │ │ │ ├── d0f63f55c89c3220cd326e9395c12e2f4bd57942 │ │ │ ├── d421e94ef02d0e45a2f783b63f3fe6622b6776cd │ │ │ ├── dict1 │ │ │ ├── e0485f22a1d04b0df70035eafa33f1278a52b8a6 │ │ │ ├── e5c4a84e1935991b3103fecf70bf563eb82f7936 │ │ │ ├── e767ec96033f7d9da306711adab0a6557fd4b71e │ │ │ ├── eaafc08a833a503cc25218c854bc70b9655d6b38 │ │ │ ├── eb02ce7f9339084b7dfa707b412ee1b1f7046885 │ │ │ ├── ecbd22c462813a437898cfe2848a46e5d6a460c5 │ │ │ ├── eddf750270b16df6744f3bbfa6ee82271961f573 │ │ │ ├── ef8c99ef78bd1d6410375edc127cf4e708dc63e3 │ │ │ ├── efb13296f8f471aadfdf8083380d1e7ac9a6bbc5 │ │ │ ├── f0f2e7efda77af51c83fe7870bd04d1b93556116 │ │ │ ├── f2d42e12fb2ed451e7ba0b270a9065916a391fb1 │ │ │ ├── f6377e2f32fd888f1877518c26bf6be4e24f92bd │ │ │ ├── fc8f69146bf6f556444c5acd8053537a292db418 │ │ │ ├── fe56cff03603408c02ef6579df1958ba3cdbdd48 │ │ │ ├── fee17c65913f4eddcae3f69d1c2b6f318b938af2 │ │ │ └── with-nulls │ │ ├── dictionary-uuid/ │ │ │ ├── 31bba5d620d39268ee0d0b4acaf0b48ab78e7376 │ │ │ ├── 5ba93c9db0cff93f52b521d7420e43f6eda2784f │ │ │ ├── 974a2356cb6d533bc0c421623eae03c5f645cf64 │ │ │ ├── 9b99593353a610c4bee0d6a94a01a3296080c0fb │ │ │ ├── c4ea21bb365bbeeaf5f2c654883e56d11e43c44e │ │ │ └── empty │ │ ├── gorilla-float8/ │ │ │ ├── 000335f765ced2a4f901ac182723f543d684e01a │ │ │ ├── 001123a617c5cd66ad7122a7bf5a4df193fec5c5 │ │ │ ├── 0018f597ee9cd81341f63167e437891935ded799 │ │ │ ├── 008f5da38ab688b5013799fa2078080b87d1315a │ │ │ ├── 00c229a7320c63a40c31ea1268814fc13b15de90 │ │ │ ├── 00fa51c6e24f79b0ba39dd32e9f3b68561ae2eff │ │ │ ├── 00ffbad9a023d169b2b1943887702b3cac8b045c │ │ │ ├── 010e7a5025e9ff7ffacf3ce3e2176bcb8c29617b │ │ │ ├── 0189f688b66865cd51637e2f5f8347431fcc54ad │ │ │ ├── 018c00c72b324da47458186f1f1527945de2b3d7 │ │ │ ├── 019e2ae7986441e1220e4060aeee97063e5f5f7f │ │ │ ├── 01beb9afee5bdd566eebc3e11ab9a2bf937af072 │ │ │ ├── 01d284d9abc6f8798411204503b6e7092294497a │ │ │ ├── 01ee785469f584519839126202f99e66e0f6b62f │ │ │ ├── 02118691c5748861f850a0ddc6504520e9cf9d59 │ │ │ ├── 02210f01b6e9d651caacb78cbe1981c3d7d948cf │ │ │ ├── 025fa6c86875979f9890fd5821994db68b0d9e0d │ │ │ ├── 026d5ea723c4995420f38fc8e2f41f52fdc8934f │ │ │ ├── 02819a1d54865c2b35eb888056fa9d88d7da99a2 │ │ │ ├── 030401af4fb4f96e77e95d08e12261897120bfe8 │ │ │ ├── 0316e3ffcaf4e49f3ce450a4681df2010192c3d8 │ │ │ ├── 032a566a41de14096cb32800aa07ea600a9dc74d │ │ │ ├── 032d6f047e5c6e1f3cc3816ee1b8da3c8971bcbb │ │ │ ├── 033b463a196126041ec08b6e61b189973f1627f6 │ │ │ ├── 03b2ca74225ae7011134f9aa114040b106ec8caf │ │ │ ├── 03cda3811ac87f97a957ece7d963db8dda7aaa8d │ │ │ ├── 03e931d374e50b3e6612eb4a7b4eb6707c75f2ce │ │ │ ├── 043d96b51ea12b68bbbdc1f9bbe69bc3e29163b5 │ │ │ ├── 046d94fe08c43ec5b3ead226ef0206eb5c501e4b │ │ │ ├── 04867457469f20f351b2863fa3197d79d739d20b │ │ │ ├── 04f6eecba790bef1c51a27366a658141f06f765f │ │ │ ├── 055f0d536e9e4af4b9769b2fc4504d00516034f4 │ │ │ ├── 0561d22c62592505cf5bd0a3943cf9aae716e5ae │ │ │ ├── 05a4b23a5b4806fadc1512f3962eacfd56b0b00b │ │ │ ├── 05a5a98579e2643e226e5571ba5d24339d622641 │ │ │ ├── 05ad10df436f072a5bcae26764ce310ec7ce6e6b │ │ │ ├── 05e1c72278fac592cb882971bab84d568799ca57 │ │ │ ├── 06498d96e93a66c56b0b5cb271fc67e7dbaefad0 │ │ │ ├── 06512255ce67fd4de2b6472be237c8dc9375d1b9 │ │ │ ├── 068dd3742f3f3beb0d9a00141a05ec1f16054373 │ │ │ ├── 06e255ce19ca34158bb0ac82bcef108367ca3267 │ │ │ ├── 06e51dd399ecef706d99060188e41dccb79be52f │ │ │ ├── 06f43a625eaf0da2f2bf2fa9143a659fd5b2ff0b │ │ │ ├── 070bd26d7cc8fcba32ef29da3ad625824c38d343 │ │ │ ├── 07419f558bfcb7a18c7fa7598a9bda076e3bfe39 │ │ │ ├── 07574d2f3e74a3bc135f59c033cd37482bd4c521 │ │ │ ├── 07707fa8bdb6bd86a827d7a4822dc25d8ea58f8b │ │ │ ├── 078bb3b1836c346eb4025764c06c1c94da8aed31 │ │ │ ├── 07fcc85472883b813b69b0e4e4a795c9a9b1a3c6 │ │ │ ├── 08291961257285a1e2137a0bce9ea3b262f164ef │ │ │ ├── 08bf43b8834a2a3663d2c6d287628816347eddc4 │ │ │ ├── 08f9d53a5a7d64f61b817786ac3acff477f8cbf7 │ │ │ ├── 0933cb848b5bab240adf85aa088d013c633283e5 │ │ │ ├── 0942e894b6559b62b4b52f2df1b409f4a7de53b0 │ │ │ ├── 0943eafc6afd3a6ade048635011c148db8f4d8d0 │ │ │ ├── 0982c40ef6669e243d31221b3e54e4eb58fd6609 │ │ │ ├── 0998446366e5a5f8d4d1ed817ebdf627df5bf145 │ │ │ ├── 09b35f10899c4282030d0fc8dfadff0a1366ed2c │ │ │ ├── 09f6ee62d7b28e763bc3dcddb730b233650b757a │ │ │ ├── 0a062e7146194e5149c24338b968ee5bbaafd40d │ │ │ ├── 0b0ed38d0ad51a990cf2b16c727bca9f385046e1 │ │ │ ├── 0b2cfbcda117da0fb38239e0bbd69149bc4be902 │ │ │ ├── 0b4534d5ccbde3ccb4ffedf6c35f1c151371b81e │ │ │ ├── 0b88c467e94529331ef6b9672a55c0917048ac36 │ │ │ ├── 0bb1287fc41b93ec186a6cd0a4e2abbe5ac25d20 │ │ │ ├── 0bdbb69df444c03dffdf45540b123857e8d52c41 │ │ │ ├── 0cf821743f73799451e8bd59b4493a2af6af993e │ │ │ ├── 0dab00d8d9d07f05544561f2184043891ac024c1 │ │ │ ├── 0e229390a2419e54659c91fac8fda3776c8d3597 │ │ │ ├── 0e5a473aa26bb4611426ff7c887793ab5bb11b00 │ │ │ ├── 0ecd6dd291cd9f1ff004dbf59deeaae538be0d5e │ │ │ ├── 0ed43cdbd0d48f987df9e39916fe6d7dca351372 │ │ │ ├── 0f4095e80f0972faa28e52867819e9ad4def29cf │ │ │ ├── 1013fec78493721af7513209cc4208d26ec828f2 │ │ │ ├── 103541e080d45c3543c343127acae3b09e9f7947 │ │ │ ├── 103e54b97fda4fb0ccdbb6eefb570786f8b06c3d │ │ │ ├── 1070cb122d3b0f16e90476d2756732c5faef9180 │ │ │ ├── 10cbc61c2d50941b8ee84950485330b51020b8ca │ │ │ ├── 112faf041b40f005bf544dfad5f108aebfe9932c │ │ │ ├── 113bd1949f408fed9ee1bf839de2e7f7a93c841f │ │ │ ├── 114fd66ac1f1853ed91e1cf08abb64b9cf24ba24 │ │ │ ├── 125897cf81e066dcf7a848a33d66e32c65aeb5ad │ │ │ ├── 125b7489711c008100163278833976214efd3c06 │ │ │ ├── 129c9ac9ab87801820904a3b64bd6754e7de31cf │ │ │ ├── 12da17d3510e43fa87404a6cc4e89590b7ab7b6f │ │ │ ├── 12f2a8f93e7fdd944afbee2fbd14575db669d350 │ │ │ ├── 1326a4ac09a56678f346f2b1d6370f73b4a6391d │ │ │ ├── 13fbb8bb9ace2fee070b0a57cc23297e3929a2e3 │ │ │ ├── 14f5a764478056056709a1adf56bf1c4f844be46 │ │ │ ├── 14fa52c7a0e0f2dac186cc477b8590bd7ed5d5de │ │ │ ├── 150d861d63105edb32e1c8b9962228c6f0471bfc │ │ │ ├── 156ef15ae5a6999bdd7672a6659f1733e74fd268 │ │ │ ├── 158c9040ac3b2284eddb47727edb1ad8e64aaee2 │ │ │ ├── 15d9f065256954141540c7973b69945361a1779d │ │ │ ├── 161f9d06c9fbad0fdcd36f26d39872902081bd7c │ │ │ ├── 1632c0af768ebd94edd01ed87e4e6a22d38b9443 │ │ │ ├── 16e7bd9816834e5b609f45262f76eab1b6ec40b9 │ │ │ ├── 17a72a1d905026efdf6c6323d9f006002ab85980 │ │ │ ├── 17a9a0cda279f524a28f5f30e851116e072418d4 │ │ │ ├── 180e4be371f1056fc2144de0c0bf19805e4d608d │ │ │ ├── 189dcbb43b973255710dde7497763ea8a046ac16 │ │ │ ├── 1910a16a432c3dcc21d2646244678b93756aa1a0 │ │ │ ├── 19167267fdc1593d4be0c4cb3b601932c3f3adfc │ │ │ ├── 1acda981777221e8e6eaea2c496c7f876519d564 │ │ │ ├── 1aff404a6311174ae5eccd28a1aa2ad2d738e866 │ │ │ ├── 1b0af5886bcea028cd013ace38242c2a09614ec0 │ │ │ ├── 1b211d33180b5e5cda190ecd00168bb4948f4ea8 │ │ │ ├── 1b7bd0d9995cd6c889dfa823565c6d490ec5be8e │ │ │ ├── 1c66f09df9136cbf6cd9c0e9c85f4fe1e12700d1 │ │ │ ├── 1cb6ea9ed7ae98362e6fa46cbd0bb0e977fb24db │ │ │ ├── 1cd4b5622701839c902ccc031af388cf995f863b │ │ │ ├── 1d172fbc7ae373610545d1436e0a17dcccc5e055 │ │ │ ├── 1e809f15bc387deff02d07edd0b9b3011a172d3d │ │ │ ├── 1ebe7bc218890b4a5419154c4f8042d35c760ccb │ │ │ ├── 1ec71769042da0bfbad6967d3a9af3d5637966bd │ │ │ ├── 1f09f12d930daae8e5fd34e11e7b2303e1705b2e │ │ │ ├── 1f3237efa553f6f82174223a1c5df78475ef25a0 │ │ │ ├── 1f5cb95a3f9af8efe74c41ba64bcdf3e12da81f2 │ │ │ ├── 1f6810f6f160b2e7d5f27822be00fccda2c0d9ce │ │ │ ├── 1fadee5ce81d5a4ede3b8d2d508eada6aa3e5fdc │ │ │ ├── 20149c9075b835532b9903e2d838432de7c4c82b │ │ │ ├── 207f681dda06e17d6fb16b89274720956e5315b8 │ │ │ ├── 208964be3ec654f18b77217d9d5dc908ef8eff6e │ │ │ ├── 20bec61757d2a6e9ccf5674424f23d8dd4c59821 │ │ │ ├── 213bd18eb8b9792f5ba8d6453e7b0b74f0d2a12c │ │ │ ├── 217bf330784989cf4c3e21bcbe0d1adeed7dec2e │ │ │ ├── 224b4677ce8e3065a8be0e661b5d3be49602680e │ │ │ ├── 224d47f68da20713449bf600b84a3d750d495ed6 │ │ │ ├── 229389eeb6f917a0db71fcadbc97cf3432357ba6 │ │ │ ├── 2397935ec2daeeea90cc7530afb1bfa490d21607 │ │ │ ├── 239d654fb97da7931b992a93b3c51be8912cdc0d │ │ │ ├── 23a46cbb1893e9284d06e72558317d95ecee8e74 │ │ │ ├── 23c3074517a019bd7edd8d8b71fb159980a10ec0 │ │ │ ├── 24c3c3a4c50155712005e5fa934a99a3ec803318 │ │ │ ├── 24f67fc225eeebfcd06f121effe46d26251e785e │ │ │ ├── 26338cbc8a2c58872d0df57b1231785ba53c5128 │ │ │ ├── 276129fc7c40928aa2743aff77c15bfac126c00d │ │ │ ├── 27fff07708997c5e6e07a0f83406683a7d36daa9 │ │ │ ├── 2839e34ab20fb0105de4ebec1a25a807ba7642c9 │ │ │ ├── 28ac5313c590ed2b28e1ed0fc22f2bd1eab0df51 │ │ │ ├── 28e31c10ef08fdecf629dd265116e0f833cd57cd │ │ │ ├── 29b15bb9cb49218df433c4fe27794615c3a4451b │ │ │ ├── 2a221a24ad464e8da7ee51105400f1670b4320a1 │ │ │ ├── 2a86bc754e5703e9d6101f64eb5e06ccbd261952 │ │ │ ├── 2ad4a333d74699bc03523cba5cb3c108a2bc9527 │ │ │ ├── 2bf57e68f7436d449f0486a2c1ae3a281458bdcd │ │ │ ├── 2c0d33ffce3a3e585c845cf7c6aebd5f4917fddc │ │ │ ├── 2d0ff967eccc17e5d165712c758681ef3fe51caf │ │ │ ├── 2d3db2cf9bcfec159f6bccf801d74a1ce610013f │ │ │ ├── 2e29d5f8ccf89cf55a1876623bbbc0a2a0e76032 │ │ │ ├── 2e485e5fe51b9824721a41a67dfc1fd9ab8eb3f1 │ │ │ ├── 2e64ef301925f827368cf80e67a858f9c1906b44 │ │ │ ├── 2eb732cc04c8a4259763abb8c02b633c484aa08b │ │ │ ├── 3000a8aa02ef08fd7105151982b709ca87702b2a │ │ │ ├── 30b30fb9ab1f1031139fc72d478b5cf6fde75f70 │ │ │ ├── 30cb23ea8ce282a984424ba74cf9e692a0ea95c2 │ │ │ ├── 322398e8d8eec282d54ecf8270285109012daafa │ │ │ ├── 3488d3837745952ffee80820a15f98f3f39bacbd │ │ │ ├── 35551262d560ddd52f1b8ba9039b0ac05932e7f3 │ │ │ ├── 3579bff2e768d34cc21071a22ca286c84bdeb0be │ │ │ ├── 35cdca75d22e73fa72051421f170698c4c526838 │ │ │ ├── 360ce4c914f52af71a7f1f165b579b263aef7224 │ │ │ ├── 3612694abd743a7e55e65aa65263520ad36fab1d │ │ │ ├── 3661b2541a41109436af57eed8cd81f2b077dc64 │ │ │ ├── 36a015ecabd510fc11470a8ee201f74c98a752cb │ │ │ ├── 378b0717ae8bca467ed4ee58212ca50ceae5ec7d │ │ │ ├── 384e73c939df5029d4a47e7446f57a279e0f4e6d │ │ │ ├── 3890191defea00490c16ad251b95f9e07b4c74c9 │ │ │ ├── 38a0feff4559737aeed5f72ee302a3a0ed8629bb │ │ │ ├── 38cc6d4e011e8685c88b2f60ae85df9b6edf06d4 │ │ │ ├── 39e5a474f4810a8abd8b966bdf6a407e20501b25 │ │ │ ├── 39fbdcdb86bc1205438c1a8327ec6668ff0bc009 │ │ │ ├── 3a56ebf0102f26bc48241309d90eedb53bc5599b │ │ │ ├── 3bfafbcc633c3b157ca48d686020d806a9238d9a │ │ │ ├── 3c2a06759b1f89f8e8bf0d01162558169ccfcdb0 │ │ │ ├── 3c4845d3eab256e1cd051b0e02c954e9feb5d689 │ │ │ ├── 3dd30028e1743600a71c84026e90af3f7bb3181e │ │ │ ├── 3e1105e64284eed8dc2bccbe18ec3e6de2a082a0 │ │ │ ├── 4181be0e85942f5aaa5f9785e51b4a72055ab5d6 │ │ │ ├── 42805756addc26eff319d88bf58e37887339eb41 │ │ │ ├── 4463475e7855ef5ca2229888df0624efd85493c8 │ │ │ ├── 44dadbb9d63786197f95408954423a2490e54a72 │ │ │ ├── 45e5d985b27fb2210ba470b892756eaf053194e4 │ │ │ ├── 46945e0bf54f1dc350c0d9ec9b670cf687445be0 │ │ │ ├── 4780df7420a24ebae8d9bcacf6c62c27e0c2e811 │ │ │ ├── 47f3c798199bb53546b443fba5dc925d08d37718 │ │ │ ├── 4957a6bc77cc14caae8682e4499cafca63ac12b4 │ │ │ ├── 498988babdc605e5d03ed9448af24a714ff69e72 │ │ │ ├── 4a5a4312137e693b8122b4426d54fc6444cefb4d │ │ │ ├── 4a81750c78f1acc88612777149b7d47b27d1d58d │ │ │ ├── 4bc7279fedba6ac6deb9be39476e43dce7d69525 │ │ │ ├── 4be8eb811a92f7221820a72185b76e32ab95edf4 │ │ │ ├── 4bea5a628cf732e42825e3bcfb0d0f63819c37a8 │ │ │ ├── 4ca579f0ff4d06f56eebb6b94c1303de1ea289b4 │ │ │ ├── 4ca93515d0cb2e30ac9a09bc6917cf2f4041e309 │ │ │ ├── 4dbe572a6b29c977ba4f132bf27330f5bce8bbb4 │ │ │ ├── 4e452a93754eec25673cc41def71f43e12d6ad44 │ │ │ ├── 4edbe8bce1dd60b4447731e0183305889971ce1c │ │ │ ├── 4ef3a46a40596d12420c9acc7827a7956b93eff2 │ │ │ ├── 4f039fecd3612031008b5ac1ec016a9db9a0afe2 │ │ │ ├── 4f1ee2f2a2b9499943d866a11c5eb73dbb5578a6 │ │ │ ├── 4fcb4525eae80e58e4c0dafcad5dbf9bd6ed8800 │ │ │ ├── 514e88c8fedf058601f8c1a3857405a72bafd346 │ │ │ ├── 51628c735c1dfa273dd79264ffdff1de023ded3b │ │ │ ├── 5181e1d782cae994672eb604f0b88720d4171a6b │ │ │ ├── 5593e1771829808b4c1c17a151f5807590c87060 │ │ │ ├── 56152748eafa8a23aca552d2c63aefd328ef9d1c │ │ │ ├── 583bd88280acbe57634a229531e50afea8977c5e │ │ │ ├── 5b989097db45b584bfdfd0ea0eeb6e484b04ffa4 │ │ │ ├── 5b9f71ff1bb5eb987287e97e9223ad2ee384d043 │ │ │ ├── 5bcb10fcf0de7e1f1eea8b2a6c97b9f2efb38cfe │ │ │ ├── 5bdb91298fe95bcd0fd59b077e9b03708352adc0 │ │ │ ├── 5bf5ba2025d12dff0f8cf646bc0a67e512781a78 │ │ │ ├── 5cbe78de4aa4595bfd13dfc8f9d88bc740bda660 │ │ │ ├── 5d53743f0f6877c631ba1b78a2546351ffd945a5 │ │ │ ├── 5ddb48bfb461a6f541ea5263c124fafc84228405 │ │ │ ├── 5fcca6becd914f5a66441e491bb460cc0d399798 │ │ │ ├── 61b0a7eb4b781e6e980620119029784028b0dd02 │ │ │ ├── 638ee93f6f582a08b54e2d904b6e703e975fb779 │ │ │ ├── 63ddefed7ec1d06bb8e65ef0446fd66247ad9e5f │ │ │ ├── 640783010f7d68e0dd208d742c0ae5dcc35bca18 │ │ │ ├── 6409f517d99779cf628cec89e0ea781800ec1673 │ │ │ ├── 6472b46069dcd29079a739cd9f4d043d77b9db2b │ │ │ ├── 64e26698d0ae69059a828a29619dbb220834ce0b │ │ │ ├── 64ec1601cf03b88a5c1032569dc861d156d706ec │ │ │ ├── 65440ab3f4518a75309ca81383e9f4e6a60bbd6c │ │ │ ├── 669710a353b5b72bcf14eb140b57b0a6be809e7b │ │ │ ├── 683ee9ae1a3ddbdbee2336af93e7f408f5cc42b5 │ │ │ ├── 688934845f22049cb14668832efa33d45013b6b9 │ │ │ ├── 68cdb6aea2466f9256dc371bdcd482b139d28d1c │ │ │ ├── 68f451a137e92f09cfd5eb88a04dbd0b8798bb92 │ │ │ ├── 69bb7cec8b07da9cb2bd3d0aba9f55b0f41f65cc │ │ │ ├── 6b0165838e17a7309a523a909b6f83de6b46f51c │ │ │ ├── 6b49f3fa96695a790faa6eb4f051e5cf2c471209 │ │ │ ├── 6b85b749998063c521ffdb3faf1823f20e85d5e7 │ │ │ ├── 6f924d014dc9bc839ea89f3b98217f262b27c231 │ │ │ ├── 71c2d79e816ce7ffee8d3ac90eedb3159dea7fac │ │ │ ├── 735de4ce401995f6a6e4c47039ac8940bdc1ec8b │ │ │ ├── 778c71afaf6c5a1d3b1c045788d668189adbf96e │ │ │ ├── 77a4c5e5039c7180b2217342711f214970bea74a │ │ │ ├── 781835ce31e3ba1b697c5a40b8447f6b7f7a0144 │ │ │ ├── 78d4981a356b7e21562982b8cd64af8d7f9ff62b │ │ │ ├── 79f08f3117e3d9c49e1e12727b5bc72692a41bad │ │ │ ├── 7c5f32cd666fb03e67aa75a34b889236b40a0eb6 │ │ │ ├── 7c6d18a6fc69526d5c30f4cbd24725fea7423515 │ │ │ ├── 7e6f7bfb1169a82fc31aa11c760b1b1699d7b3a4 │ │ │ ├── 7ee8badf61cd2a56bcd4c5fdafe9395eb733e22a │ │ │ ├── 869028f499a7faea4cf993eb867ea9fd1c3f58e6 │ │ │ ├── 87330cfd941fe956757bce61baa636e6a6b7a0ad │ │ │ ├── 8887779003e7ccbdbc95ba305c34aa75fb255d69 │ │ │ ├── 8bec4981ecd6533ecadf49b978e34e2cdea28e67 │ │ │ ├── 8c08c6739ba900dd00089e5eb7e15c43b5d76e91 │ │ │ ├── 8e6d821b0593f6e74635125f995af5ce4daace70 │ │ │ ├── 94972df24f18202ef83823f34daf4225cac60c13 │ │ │ ├── 95873ef906927ff752a0f48e4fbed36b15003e14 │ │ │ ├── 9881ea067ad96598ca5de7dd0ddfb41a629f776e │ │ │ ├── 9c479051463aa32bdf5fe7ff36258586ea5606d4 │ │ │ ├── 9c5eba1b6a51edabf204e3c2c3e5358604f04c74 │ │ │ ├── 9dbe4a4d6f17605da53c17dcb26c3e5ee30b442b │ │ │ ├── 9f10b850126a00b70b0c7389754b3af7a78efd78 │ │ │ ├── a636879bbc41a43a4748f1aec41c5b8535f95ffb │ │ │ ├── a6c2d09ad472092bfa8e82470f1f493e0e2867a4 │ │ │ ├── a95439dceaaf041214315966c319d4bd99fad3b8 │ │ │ ├── a9fd565873b81f9bc753ef9ffb01279e58b8e995 │ │ │ ├── aa2fc4a7eb7ef7b4db1d14abba054bf82bc99708 │ │ │ ├── abfe928debc5210e137f2ccb2e35afba1fba01f4 │ │ │ ├── ad3f5bbed8a7c1aa1b1d37d9274e51f04ad9d793 │ │ │ ├── af5fe18bf35c2ce1542515dfd0a2187a912efed8 │ │ │ ├── b1951c3ecea275b55530cd1a7dee87896cba3af8 │ │ │ ├── b32871f39219d46cc598467522717179035628a2 │ │ │ ├── b5af72dc2bcef16a9533f28db6764b41e1dec249 │ │ │ ├── b71d21118459e909a1d13dd39c98bf324746204c │ │ │ ├── b961201e6499ce99d9809e6c45e2d3cb6c25368c │ │ │ ├── bbcd55dd0ecf9385e265652b46670796cfb06866 │ │ │ ├── bbe1e29361b5d285b1e3a796d9ea7a6ad330679d │ │ │ ├── bdd340d8b3d28bbd6352fe82bc946b8b662707f6 │ │ │ ├── c1240cef7cf639125a64e8471db1fb7977d2f090 │ │ │ ├── c4ddbbe3d51294ee8e9ad9476b74cea7024b928a │ │ │ ├── c5bd074e83ef42d118f9508c5fd5de1ecc77eb7f │ │ │ ├── c7470bb0cba41502153de8ba1dccfcb415ec37bf │ │ │ ├── c87f1ba99e627af168ddd46ec94d7f7c08a05c07 │ │ │ ├── c90fb91bdb14d13df37727cf0af752161786f9ee │ │ │ ├── cafcf0638aa1531c76b3da2ee1f7a3ce9a22c0cc │ │ │ ├── cbf49a84c11c6c588ae0d298407c77c05775e303 │ │ │ ├── cd4e9ead434c68f2162aace95bb32d69bcd441f3 │ │ │ ├── d1f6b7119295f8823e331ad4f26e8272b6b608e2 │ │ │ ├── d2860d9b6b66d6fc1515ee7e73432da15a2e3d6d │ │ │ ├── d325fb86fbb09b1410f4d2d7d2e9552206bbe4f1 │ │ │ ├── d36ce05a4a02233c33f3c5deb7559e0816b4b10b │ │ │ ├── d3708428e4607ba37bfb13ee8ba2dd236755adbd │ │ │ ├── d71949b44c5e54a1c86336f522a28b281860397f │ │ │ ├── d834d51078ec5d4319c520766d35faae90554491 │ │ │ ├── dbbfd75cb69ba487c576d62261849af7fee58b61 │ │ │ ├── dc17f72fa3dc031b3e2059844d774fc889ad9f93 │ │ │ ├── dc288af0c1589727824c9f9014b81fbc800f97c0 │ │ │ ├── dc9041a71824c1034bb22589a8e340b23c4e90d3 │ │ │ ├── e1e359dab552ab2d41d035879cf66261e9312d64 │ │ │ ├── e1e6fecdf18b3a1375531bbf5a103c2d8f56cdf0 │ │ │ ├── e229b64d990b03a9f44cbd00e71d3d8baa4319ab │ │ │ ├── e5ed00680dfe3dd03c24932186d653ad0dcf676c │ │ │ ├── e7b835e207feecbece96967fc8a45c3c8484c99e │ │ │ ├── ea35f5785fb9f197b4f308eb0e33bf2e51ed3853 │ │ │ ├── f0da90d63a403203967ac12b90eb9d63f0f4ceeb │ │ │ ├── f0ecab55d82b763c44cf359fcc00e191a96d70e7 │ │ │ ├── f29494e8b1819543bd357029a0de41a3eda2d451 │ │ │ ├── f3c4c54e20e1b109c2211ea1c75e448fca92d94b │ │ │ ├── f41088954ca36155c47d16133b8c7c472a50a211 │ │ │ ├── f6dde08a505b30f15b89ff107fffe86418e107c3 │ │ │ ├── f79f35266d31ad7f640363bdd2965e714625ac2d │ │ │ └── f8bf4cc7cb83512b86997321687281890693f5dd │ │ └── uuid-uuid/ │ │ ├── 00204831b0ca9ea0e111df6cef4b9d5d7baacda4 │ │ ├── 03e9ded76e11c2ab56b2b64783f9d5eab0f41e45 │ │ ├── 04ba82c9afdc3ec29f62660df56ce9a07f0c7c4e │ │ ├── 07f74222f10552358f3d355b18b317d94d47ffa8 │ │ ├── 0857d325561ee6748b28d758a8cd56537f2e591f │ │ ├── 0bebd7d18520dee5aa81b3759fbc531c2285e989 │ │ ├── 0e4bbd6dbf3ddae0d2615789ee20b4aa7e7bd098 │ │ ├── 125f55cce23c378eec2f06aa3b0e56337faaa870 │ │ ├── 13aadea7f739db7b7b613ded4f2d9f80c3a1cb2f │ │ ├── 1593b53d6247286af0708369568b11009e81a643 │ │ ├── 1add81bd28c7e785fcaec8a0e5a525d8443d1844 │ │ ├── 1fae8d67d206d97677ef96ad645fcded48950dfc │ │ ├── 264cc1c0f5af787d5803675e1ad1771250fd21a9 │ │ ├── 278f798603ac73124fe61d7a3c04475122a1886d │ │ ├── 29d118681004d0a5837ce19e1c83f8d32723607e │ │ ├── 2d2814db73500b8103051a18a69b28c921ef8f86 │ │ ├── 325fcbfdacebcf2259e782cc363e73c857482faf │ │ ├── 39cd2aeafea74e6f19c4aec657fb7ffa73262927 │ │ ├── 39deb22a28b76c591e8f277ead182d3c56409f12 │ │ ├── 3c651559e8fb3923967b977dcbeb3b742591e267 │ │ ├── 3cdf2936da2fc556bfa533ab1eb59ce710ac80e5 │ │ ├── 3f342aaf5a895c87a09dcff4608482ab3adf6d42 │ │ ├── 4820348eb8d1d6257f21e82769043a3f02fe4d05 │ │ ├── 4967f66d5fceaa599c1877d83aa24e5ed568029f │ │ ├── 4b02658a763a2875b5f1e7000154d9a6726393e8 │ │ ├── 4ee2d3a264bee8637d869d828e2ac90008ee03bb │ │ ├── 5ab314d48a22d74c0c6b025954cd3e54e18475d4 │ │ ├── 5d1be7e9dda1ee8896be5b7e34a85ee16452a7b4 │ │ ├── 6f7133c510007b76d2bcc3d85d1980e85fad67a4 │ │ ├── 7638706b19c5bbcf956375eb0c8b489187b2cca1 │ │ ├── 926eb1d08171eaf3c6f49b059133ebce13780c9b │ │ ├── a545d616805bfdc85a040218fc435bda325d8586 │ │ ├── a58315ace7c70ef7844b17b0985c9ff05fd85b8e │ │ ├── abc9df7cd29252cbe7b79407192c89d3c9a00d5b │ │ ├── acc9a1ac056149e11830bfbf59e3ee16226fe6c4 │ │ ├── c1cbd4f3b9b55ef1fbcba2ca8615aa139aea57aa │ │ ├── cd829577a89686ff93bd3d895a7ee384319668f1 │ │ ├── d0b5cf5009aedc6c54b6e0a8221cac55c943fb19 │ │ ├── de6c21a05e80a0be02b7cde74fc3629ef1d11499 │ │ ├── ec8eabcbce8137c58679fd59db76f92f0554867a │ │ └── empty │ ├── isolation/ │ │ ├── CMakeLists.txt │ │ ├── expected/ │ │ │ ├── attach_chunk_isolation.out │ │ │ ├── bgw_job_duplicate_race.out │ │ │ ├── bgw_job_stat_history_retention_isolation.out │ │ │ ├── cagg_concurrent_invalidation.out │ │ │ ├── cagg_concurrent_move.out │ │ │ ├── cagg_concurrent_refresh.out │ │ │ ├── cagg_insert.out │ │ │ ├── cagg_multi_iso.out │ │ │ ├── cagg_watermark_concurrent_update.out │ │ │ ├── cagg_watermark_concurrent_update_1.out │ │ │ ├── compression_chunk_race.out │ │ │ ├── compression_conflicts_iso.out │ │ │ ├── compression_ddl_iso.out │ │ │ ├── compression_dml_iso.out │ │ │ ├── compression_freeze.out │ │ │ ├── compression_merge_race.out │ │ │ ├── compression_recompress.out │ │ │ ├── concurrent_decompress_update.out │ │ │ ├── deadlock_drop_chunks_compress.out │ │ │ ├── deadlock_drop_index_vacuum.out │ │ │ ├── deadlock_recompress_chunk.out │ │ │ ├── decompression_chunk_and_parallel_query.out │ │ │ ├── decompression_chunk_and_parallel_query_wo_idx.out │ │ │ ├── delete_job_deadlock.out │ │ │ ├── detach_chunk_isolation.out │ │ │ ├── direct_compress_copy.out │ │ │ ├── fk_hypertable_lock.out │ │ │ ├── freeze_chunk.out │ │ │ ├── hypertable_row_lock.out │ │ │ ├── merge_chunks_concurrent.out │ │ │ ├── osm_range_updates_iso.out │ │ │ ├── parallel_compression.out │ │ │ ├── reorder_deadlock.out │ │ │ ├── reorder_vs_insert.out │ │ │ ├── reorder_vs_insert_other_chunk.out │ │ │ ├── reorder_vs_select.out │ │ │ └── split_chunk_concurrent.out │ │ └── specs/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── attach_chunk_isolation.spec │ │ ├── bgw_job_duplicate_race.spec │ │ ├── bgw_job_stat_history_retention_isolation.spec │ │ ├── cagg_concurrent_invalidation.spec │ │ ├── cagg_concurrent_move.spec │ │ ├── cagg_concurrent_refresh.spec │ │ ├── cagg_insert.spec │ │ ├── cagg_multi_iso.spec │ │ ├── cagg_watermark_concurrent_update.spec │ │ ├── compression_chunk_race.spec │ │ ├── compression_conflicts_iso.spec │ │ ├── compression_ddl_iso.spec │ │ ├── compression_dml_iso.spec │ │ ├── compression_freeze.spec │ │ ├── compression_merge_race.spec │ │ ├── compression_recompress.spec │ │ ├── concurrent_decompress_update.spec │ │ ├── deadlock_drop_chunks_compress.spec │ │ ├── deadlock_drop_index_vacuum.spec │ │ ├── deadlock_recompress_chunk.spec │ │ ├── decompression_chunk_and_parallel_query.in │ │ ├── decompression_chunk_and_parallel_query_wo_idx.spec │ │ ├── delete_job_deadlock.spec │ │ ├── detach_chunk_isolation.spec │ │ ├── direct_compress_copy.spec │ │ ├── fk_hypertable_lock.spec │ │ ├── freeze_chunk.spec │ │ ├── hypertable_row_lock.spec │ │ ├── merge_chunks_concurrent.spec │ │ ├── osm_range_updates_iso.spec │ │ ├── parallel_compression.spec │ │ ├── reorder_deadlock.spec.in │ │ ├── reorder_vs_insert.spec.in │ │ ├── reorder_vs_insert_other_chunk.spec.in │ │ ├── reorder_vs_select.spec.in │ │ └── split_chunk_concurrent.spec │ ├── postgresql.conf.in │ ├── shared/ │ │ ├── CMakeLists.txt │ │ ├── expected/ │ │ │ ├── build_info.out │ │ │ ├── cagg_compression.out │ │ │ ├── chunk_append_merge_append.out │ │ │ ├── chunkwise_agg_gather_sort.out │ │ │ ├── classify_relation.out │ │ │ ├── compat.out │ │ │ ├── compress_bloom_sparse_compat.out │ │ │ ├── compress_unique_index.out │ │ │ ├── compression_dml.out │ │ │ ├── compression_nulls_not_distinct.out │ │ │ ├── constify_now-15.out │ │ │ ├── constify_now-16.out │ │ │ ├── constify_now-17.out │ │ │ ├── constify_now-18.out │ │ │ ├── constify_timestamptz_op_interval-15.out │ │ │ ├── constify_timestamptz_op_interval-16.out │ │ │ ├── constify_timestamptz_op_interval-17.out │ │ │ ├── constify_timestamptz_op_interval-18.out │ │ │ ├── constraint_aware_append.out │ │ │ ├── constraint_exclusion_prepared-15.out │ │ │ ├── constraint_exclusion_prepared-16.out │ │ │ ├── constraint_exclusion_prepared-17.out │ │ │ ├── constraint_exclusion_prepared-18.out │ │ │ ├── decompress_join.out │ │ │ ├── decompress_placeholdervar.out │ │ │ ├── decompress_tracking.out │ │ │ ├── extension.out │ │ │ ├── gapfill-15.out │ │ │ ├── gapfill-16.out │ │ │ ├── gapfill-17.out │ │ │ ├── gapfill-18.out │ │ │ ├── gapfill_bug.out │ │ │ ├── generated_columns.out │ │ │ ├── lateral_subquery-15.out │ │ │ ├── lateral_subquery-16.out │ │ │ ├── lateral_subquery-17.out │ │ │ ├── lateral_subquery-18.out │ │ │ ├── memoize.out │ │ │ ├── merge_dml.out │ │ │ ├── ordered_append_join-15.out │ │ │ ├── ordered_append_join-16.out │ │ │ ├── ordered_append_join-17.out │ │ │ ├── ordered_append_join-18.out │ │ │ ├── parameterized_chunkappend.out │ │ │ ├── security_barrier.out │ │ │ ├── space_constraint-15.out │ │ │ ├── space_constraint-16.out │ │ │ ├── space_constraint-17.out │ │ │ ├── space_constraint-18.out │ │ │ ├── subtract_integer_from_now.out │ │ │ ├── timestamp_limits.out │ │ │ ├── transparent_decompress_chunk-15.out │ │ │ ├── transparent_decompress_chunk-16.out │ │ │ ├── transparent_decompress_chunk-17.out │ │ │ ├── transparent_decompress_chunk-18.out │ │ │ └── with_clause_parser.out │ │ └── sql/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── build_info.sql │ │ ├── cagg_compression.sql │ │ ├── chunk_append_merge_append.sql │ │ ├── chunkwise_agg_gather_sort.sql │ │ ├── classify_relation.sql │ │ ├── compat.sql │ │ ├── compress_bloom_sparse_compat.sql │ │ ├── compress_unique_index.sql │ │ ├── compression_dml.sql │ │ ├── compression_nulls_not_distinct.sql │ │ ├── constify_now.sql.in │ │ ├── constify_timestamptz_op_interval.sql.in │ │ ├── constraint_aware_append.sql │ │ ├── constraint_exclusion_prepared.sql.in │ │ ├── decompress_join.sql │ │ ├── decompress_placeholdervar.sql │ │ ├── decompress_tracking.sql │ │ ├── extension.sql │ │ ├── gapfill.sql.in │ │ ├── gapfill_bug.sql │ │ ├── generated_columns.sql │ │ ├── include/ │ │ │ ├── cagg_compression_query.sql │ │ │ ├── cagg_compression_setup.sql │ │ │ ├── constraint_exclusion_prepared_query.sql │ │ │ ├── gapfill_metrics_query.sql │ │ │ ├── memoize_query.sql │ │ │ ├── ordered_append_join.sql │ │ │ └── shared_setup.sql │ │ ├── lateral_subquery.sql.in │ │ ├── memoize.sql │ │ ├── merge_dml.sql │ │ ├── ordered_append_join.sql.in │ │ ├── parameterized_chunkappend.sql │ │ ├── security_barrier.sql │ │ ├── space_constraint.sql.in │ │ ├── subtract_integer_from_now.sql │ │ ├── timestamp_limits.sql │ │ ├── transparent_decompress_chunk.sql.in │ │ └── with_clause_parser.sql │ ├── sql/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── agg_partials_pushdown.sql │ │ ├── attach_chunk.sql │ │ ├── bgw_custom.sql │ │ ├── bgw_db_scheduler.sql │ │ ├── bgw_db_scheduler_fixed.sql │ │ ├── bgw_job_ddl.sql │ │ ├── bgw_job_stat_history.sql │ │ ├── bgw_job_stat_history_errors.sql │ │ ├── bgw_job_stat_history_errors_permissions.sql │ │ ├── bgw_policy.sql │ │ ├── bgw_reorder_drop_chunks.sql │ │ ├── bgw_scheduler_control.sql │ │ ├── bgw_scheduler_restart.sql │ │ ├── bgw_security.sql │ │ ├── bgw_telemetry.sql │ │ ├── cagg.sql.in │ │ ├── cagg_bgw.sql.in │ │ ├── cagg_bgw_drop_chunks.sql │ │ ├── cagg_ddl.sql.in │ │ ├── cagg_direct_compress.sql │ │ ├── cagg_drop_chunks.sql │ │ ├── cagg_dump.sql │ │ ├── cagg_errors.sql │ │ ├── cagg_invalidation.sql │ │ ├── cagg_invalidation_variable_bucket.sql │ │ ├── cagg_joins.sql │ │ ├── cagg_multi.sql │ │ ├── cagg_on_cagg.sql │ │ ├── cagg_on_cagg_joins.sql │ │ ├── cagg_permissions.sql.in │ │ ├── cagg_planning.sql │ │ ├── cagg_policy.sql │ │ ├── cagg_policy_concurrent.sql │ │ ├── cagg_policy_incremental.sql │ │ ├── cagg_policy_move.sql │ │ ├── cagg_policy_run.sql │ │ ├── cagg_query.sql.in │ │ ├── cagg_query_using_merge.sql.in │ │ ├── cagg_refresh_using_merge.sql │ │ ├── cagg_refresh_using_trigger.sql │ │ ├── cagg_tableam.sql │ │ ├── cagg_union_view.sql.in │ │ ├── cagg_usage.sql.in │ │ ├── cagg_utils.sql │ │ ├── cagg_uuid.sql │ │ ├── cagg_watermark.sql │ │ ├── chunk_api.sql │ │ ├── chunk_column_stats.sql │ │ ├── chunk_merge.sql │ │ ├── chunk_publication_compression.sql │ │ ├── chunk_utils_compression.sql │ │ ├── chunk_utils_internal.sql │ │ ├── columnar_index_scan.sql.in │ │ ├── columnar_scan_cost.sql │ │ ├── columnstore_aliases.sql │ │ ├── compress_auto_sparse_index.sql │ │ ├── compress_batch_size.sql │ │ ├── compress_bgw_reorder_drop_chunks.sql │ │ ├── compress_bitmap_scan.sql │ │ ├── compress_bloom_dml.sql │ │ ├── compress_bloom_hash.sql │ │ ├── compress_bloom_legacy_v1.sql │ │ ├── compress_bloom_sparse.sql.in │ │ ├── compress_bloom_sparse_debug.sql │ │ ├── compress_compbloom_basics.sql │ │ ├── compress_compbloom_config.sql │ │ ├── compress_compbloom_index_add.sql │ │ ├── compress_compbloom_index_drop.sql │ │ ├── compress_compbloom_manual_config.sql │ │ ├── compress_compbloom_upsert.sql │ │ ├── compress_composite_bloom_debug.sql │ │ ├── compress_default.sql │ │ ├── compress_dml_copy.sql │ │ ├── compress_explain.sql │ │ ├── compress_float8_corrupt.sql │ │ ├── compress_qualpushdown_complex.sql │ │ ├── compress_qualpushdown_saop.sql │ │ ├── compress_sort_transform.sql │ │ ├── compress_sparse_config.sql │ │ ├── compress_unordered_sort.sql │ │ ├── compressed_collation.sql │ │ ├── compressed_detoaster.sql │ │ ├── compression.sql │ │ ├── compression_algos.sql │ │ ├── compression_allocation.sql │ │ ├── compression_bgw.sql │ │ ├── compression_bool_vectorized.sql │ │ ├── compression_bools.sql │ │ ├── compression_conflicts.sql │ │ ├── compression_constraints.sql │ │ ├── compression_create_compressed_table.sql │ │ ├── compression_ddl.sql │ │ ├── compression_defaults.sql │ │ ├── compression_delete_bitmapscan.sql.in │ │ ├── compression_errors.sql │ │ ├── compression_fks.sql │ │ ├── compression_hypertable.sql │ │ ├── compression_indexcreate.sql │ │ ├── compression_indexscan.sql │ │ ├── compression_insert.sql │ │ ├── compression_merge.sql │ │ ├── compression_null_dump_restore.sql │ │ ├── compression_nulls_and_defaults.sql │ │ ├── compression_permissions.sql.in │ │ ├── compression_policy.sql │ │ ├── compression_qualpushdown.sql │ │ ├── compression_segment_meta.sql │ │ ├── compression_sequence_num_removal.sql │ │ ├── compression_settings.sql │ │ ├── compression_sorted_merge.sql │ │ ├── compression_sorted_merge_columns.sql │ │ ├── compression_sorted_merge_distinct.sql │ │ ├── compression_sorted_merge_filter.sql │ │ ├── compression_sorted_merge_unordered.sql │ │ ├── compression_trigger.sql │ │ ├── compression_update_delete.sql.in │ │ ├── compression_uuid.sql │ │ ├── create_table_with.sql │ │ ├── data/ │ │ │ ├── copy_data.csv │ │ │ └── magic.csv │ │ ├── decompress_index.sql │ │ ├── decompress_memory.sql │ │ ├── decompress_vector_qual.sql │ │ ├── detach_chunk.sql │ │ ├── direct_compress_copy.sql │ │ ├── direct_compress_insert.sql │ │ ├── feature_flags.sql │ │ ├── fixed_schedules.sql │ │ ├── foreign_keys_test.sql.in │ │ ├── hypertable_generalization.sql │ │ ├── include/ │ │ │ ├── aggregate_queries.sql │ │ │ ├── aggregate_table_create.sql │ │ │ ├── aggregate_table_populate.sql │ │ │ ├── cagg_on_cagg_common.sql │ │ │ ├── cagg_on_cagg_setup.sql │ │ │ ├── cagg_on_cagg_validations.sql │ │ │ ├── cagg_planning_query.sql │ │ │ ├── cagg_query_common.sql │ │ │ ├── cagg_refresh_common.sql │ │ │ ├── chunk_utils_internal_orderedappend.sql │ │ │ ├── cluster_test_setup.sql │ │ │ ├── columnar_index_scan_query.sql │ │ │ ├── compression_alter.sql │ │ │ ├── compression_test.sql │ │ │ ├── compression_test_hypertable.sql │ │ │ ├── compression_test_hypertable_segment_meta.sql │ │ │ ├── compression_test_merge.sql │ │ │ ├── compression_test_segment_meta.sql │ │ │ ├── compression_utils.sql │ │ │ ├── cont_agg_equal.sql │ │ │ ├── cont_agg_equal_deprecated.sql │ │ │ ├── cont_agg_test_equal.sql │ │ │ ├── debugsupport.sql │ │ │ ├── filter_exec.sql │ │ │ ├── foreign_keys.sql │ │ │ ├── jit_cleanup.sql │ │ │ ├── jit_load.sql │ │ │ ├── jit_query.sql │ │ │ ├── modify_exclusion_load.sql │ │ │ ├── ordered_append.sql │ │ │ ├── ordered_append_load.sql │ │ │ ├── rand_generator.sql │ │ │ ├── recompress_basic.sql │ │ │ ├── recompression_integrity_check.sql │ │ │ ├── scheduler_fixed_common.sql │ │ │ ├── skip_scan_comp_query.sql │ │ │ ├── skip_scan_dagg_comp_query.sql │ │ │ ├── skip_scan_dagg_load_comp_query.sql │ │ │ ├── skip_scan_dagg_query.sql │ │ │ ├── skip_scan_dagg_query_ht.sql │ │ │ ├── skip_scan_load.sql │ │ │ ├── skip_scan_load_comp_query.sql │ │ │ ├── skip_scan_multi_load.sql │ │ │ ├── skip_scan_multi_query.sql │ │ │ ├── skip_scan_notnull.sql │ │ │ ├── skip_scan_notnull_setup.sql │ │ │ ├── skip_scan_query.sql │ │ │ ├── skip_scan_query_ht.sql │ │ │ ├── transparent_decompression_constraintaware.sql │ │ │ ├── transparent_decompression_ordered.sql │ │ │ ├── transparent_decompression_ordered_index.sql │ │ │ ├── transparent_decompression_ordered_indexplan.sql │ │ │ ├── transparent_decompression_query.sql │ │ │ ├── transparent_decompression_systemcolumns.sql │ │ │ ├── transparent_decompression_undiffed.sql │ │ │ └── vector_agg_planning_query.sql │ │ ├── information_view_chunk_count.sql │ │ ├── insert_memory_usage.sql │ │ ├── jit.sql │ │ ├── license_tsl.sql │ │ ├── merge_append_partially_compressed.sql │ │ ├── merge_chunks.sql │ │ ├── merge_compress.sql │ │ ├── modify_exclusion.sql.in │ │ ├── move.sql │ │ ├── ordered_append.sql.in │ │ ├── plan_skip_scan.sql.in │ │ ├── plan_skip_scan_dagg.sql.in │ │ ├── plan_skip_scan_notnull.sql │ │ ├── policy_generalization.sql │ │ ├── privilege_maintain.sql │ │ ├── read_only.sql │ │ ├── rebuild_columnstore_tests.sql │ │ ├── recompress_chunk_segmentwise.sql │ │ ├── recompression_integrity_tests.sql │ │ ├── recompression_integrity_unordered.sql │ │ ├── reorder.sql │ │ ├── scheduler_fixed.sql │ │ ├── size_utils_tsl.sql │ │ ├── skip_scan.sql │ │ ├── skip_scan_dagg.sql │ │ ├── split_chunk.sql │ │ ├── telemetry_stats.sql │ │ ├── transparent_decompression.sql.in │ │ ├── transparent_decompression_join_index.sql │ │ ├── transparent_decompression_ordered_index.sql.in │ │ ├── transparent_decompression_queries.sql.in │ │ ├── tsl_tables.sql │ │ ├── uncompressed_size.sql │ │ ├── unlogged.sql │ │ ├── uuid_policies.sql │ │ ├── vacuum.sql │ │ ├── vector_agg_byte.sql │ │ ├── vector_agg_default.sql │ │ ├── vector_agg_expr.sql │ │ ├── vector_agg_filter.sql │ │ ├── vector_agg_functions.sql │ │ ├── vector_agg_groupagg.sql │ │ ├── vector_agg_grouping.sql │ │ ├── vector_agg_memory.sql │ │ ├── vector_agg_modify_hypertable.sql │ │ ├── vector_agg_param.sql │ │ ├── vector_agg_planning.sql.in │ │ ├── vector_agg_segmentby.sql │ │ ├── vector_agg_text.sql │ │ ├── vector_agg_uuid.sql │ │ ├── vector_qual_default.sql │ │ └── vectorized_aggregation.sql │ ├── src/ │ │ ├── CMakeLists.txt │ │ ├── compression_sql_test.c │ │ ├── compression_sql_test.h │ │ ├── compression_unit_test.c │ │ ├── decompress_arithmetic_test_impl.c │ │ ├── decompress_text_test_impl.c │ │ ├── test_chunk_stats.c │ │ ├── test_continuous_agg.c │ │ └── test_merge_chunk.c │ └── t/ │ ├── 001_job_crash_log.pl │ ├── 002_logrepl_decomp_marker.pl │ ├── 003_mvcc_cagg.pl │ ├── 004_truncate_or_delete_spin_lock.pl │ ├── 005_recompression_spin_lock_test.pl │ └── CMakeLists.txt └── version.config
Showing preview only (400K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5500 symbols across 565 files)
FILE: .github/gh_matrix_builder.py
function build_debug_config (line 81) | def build_debug_config(overrides):
function build_release_config (line 117) | def build_release_config(overrides):
function build_without_telemetry (line 130) | def build_without_telemetry(overrides):
function build_apache_config (line 143) | def build_apache_config(overrides):
function macos_config (line 156) | def macos_config(overrides):
FILE: docs/getting-started/nyc-taxi/nyc-taxi-schema.sql
type trips (line 11) | CREATE TABLE trips (
type idx_trips_pickup_time (line 42) | CREATE INDEX idx_trips_pickup_time ON trips (pickup_datetime DESC)
type idx_trips_borough_time (line 43) | CREATE INDEX idx_trips_borough_time ON trips (pickup_boroname, pickup_da...
FILE: scripts/backport.py
function run_query (line 18) | def run_query(query):
function get_referenced_issue (line 42) | def get_referenced_issue(pr_number):
function set_auto_merge (line 86) | def set_auto_merge(pr_number):
function git_output (line 116) | def git_output(command):
function git_check (line 121) | def git_check(command):
function git_returncode (line 126) | def git_returncode(command):
class PRInfo (line 208) | class PRInfo:
method __init__ (line 211) | def __init__(self, pygithub_pr_, issue_number_):
function should_backport_by_labels (line 217) | def should_backport_by_labels(number, title, labels):
function branch_has_open_pr (line 324) | def branch_has_open_pr(repo, branch):
function report_backport_not_done (line 355) | def report_backport_not_done(original_pr, reason, details=None):
FILE: scripts/check_changelog_format.py
function run_query (line 13) | def run_query(query):
function get_referenced_issues (line 35) | def get_referenced_issues(pr_number):
function is_valid_line (line 67) | def is_valid_line(line):
function main (line 81) | def main():
FILE: scripts/check_sql_script.py
class SQLVisitor (line 22) | class SQLVisitor(Visitor):
method __init__ (line 23) | def __init__(self, file):
method error (line 28) | def error(self, node, hint):
method visit_RawStmt (line 36) | def visit_RawStmt(self, _ancestors, _node):
method visit (line 40) | def visit(self, _ancestors, node):
method visit_CommentStmt (line 46) | def visit_CommentStmt(self, _ancestors, _node):
method visit_GrantStmt (line 49) | def visit_GrantStmt(self, _ancestors, _node):
method visit_SelectStmt (line 52) | def visit_SelectStmt(self, _ancestors, _node):
method visit_InsertStmt (line 55) | def visit_InsertStmt(self, _ancestors, _node):
method visit_DeleteStmt (line 58) | def visit_DeleteStmt(self, _ancestors, _node):
method visit_DoStmt (line 61) | def visit_DoStmt(self, _ancestors, _node):
method visit_CreateEventTrigStmt (line 64) | def visit_CreateEventTrigStmt(self, _ancestors, _node):
method visit_VariableSetStmt (line 67) | def visit_VariableSetStmt(self, _ancestors, node):
method visit_CreateTrigStmt (line 73) | def visit_CreateTrigStmt(self, _ancestors, node):
method visit_DefineStmt (line 79) | def visit_DefineStmt(self, _ancestors, node):
method visit_DropStmt (line 85) | def visit_DropStmt(self, _ancestors, node):
method visit_ViewStmt (line 91) | def visit_ViewStmt(self, _ancestors, node):
method visit_CreateFunctionStmt (line 97) | def visit_CreateFunctionStmt(self, _ancestors, node):
function visit_sql (line 106) | def visit_sql(sql, file):
function main (line 124) | def main(args):
FILE: scripts/check_updates.py
class SQLVisitor (line 21) | class SQLVisitor(Visitor):
method __init__ (line 22) | def __init__(self):
method error (line 31) | def error(self, msg, hint=None):
method visit_AlterTableStmt (line 39) | def visit_AlterTableStmt(self, ancestors, node): # pylint: disable=un...
method visit_RenameStmt (line 64) | def visit_RenameStmt(self, ancestors, node): # pylint: disable=unused...
method visit_CreateStmt (line 76) | def visit_CreateStmt(self, ancestors, node): # pylint: disable=unused...
method visit_CreateSchemaStmt (line 127) | def visit_CreateSchemaStmt(
method visit_CreateTableAsStmt (line 134) | def visit_CreateTableAsStmt(
method visit_CreateForeignTableStmt (line 143) | def visit_CreateForeignTableStmt(
method visit_CreateFunctionStmt (line 152) | def visit_CreateFunctionStmt(
function visit_sql (line 183) | def visit_sql(sql):
function main (line 202) | def main(args):
FILE: scripts/githooks/commit_msg.py
class GitCommitMessage (line 8) | class GitCommitMessage:
method __init__ (line 23) | def __init__(self, filename=None):
method parse_lines (line 38) | def parse_lines(self, lines):
method check_subject_body_separtor (line 59) | def check_subject_body_separtor(self):
method check_subject_limit (line 66) | def check_subject_limit(self):
method check_subject_capitalized (line 70) | def check_subject_capitalized(self):
method check_subject_no_period (line 74) | def check_subject_no_period(self):
method check_subject_imperative (line 101) | def check_subject_imperative(self):
method check_body_limit (line 120) | def check_body_limit(self):
method check_body_uses_why (line 132) | def check_body_uses_why(self):
method check_the_seven_rules (line 147) | def check_the_seven_rules(self):
function main (line 199) | def main():
FILE: scripts/githooks/commit_msg_tests.py
class TestCommitMsg (line 7) | class TestCommitMsg(unittest.TestCase):
method testNoInput (line 8) | def testNoInput(self):
method testParsing (line 14) | def testParsing(self):
method testNonImperative (line 23) | def testNonImperative(self):
method testSubjectBodySeparator (line 34) | def testSubjectBodySeparator(self):
method testSubjectLimit (line 44) | def testSubjectLimit(self):
method testSubjectCapitalized (line 58) | def testSubjectCapitalized(self):
method testSubjectNoPeriod (line 64) | def testSubjectNoPeriod(self):
method testBodyLimit (line 72) | def testBodyLimit(self):
method testCheckAllRules (line 94) | def testCheckAllRules(self):
FILE: scripts/label-released.py
function git_check (line 24) | def git_check(cmd: str):
function git_output (line 28) | def git_output(cmd: str) -> str:
function run_query (line 32) | def run_query(query, params):
function fetch_commits_with_prs (line 99) | def fetch_commits_with_prs(starting_commit, cutoff_date):
FILE: scripts/memory_leaks.sql
type metrics (line 16) | CREATE TABLE metrics(time timestamptz, device text, value float)
FILE: scripts/out_of_order_random_direct.sql
type test_hyper (line 15) | CREATE TABLE test_hyper (i bigint, j double precision, k bigint, ts time...
FILE: scripts/test_memory_spikes.py
function find_procs_by_name (line 21) | def find_procs_by_name(name):
function bytes2human (line 31) | def bytes2human(n):
function process_details (line 49) | def process_details(process):
function process_stats (line 53) | def process_stats():
function find_new_process (line 60) | def find_new_process():
function main (line 106) | def main():
FILE: scripts/test_pg_upgrade.py
function set_default_conf (line 11) | def set_default_conf(node: PostgresNode, unix_socket_dir):
function write_bytes_to_file (line 22) | def write_bytes_to_file(filename, nbytes):
function getenv_or_error (line 28) | def getenv_or_error(envvar):
function getenv_or_default (line 32) | def getenv_or_default(envvar, default):
function initialize_node (line 36) | def initialize_node(working_dir, prefix, port, bin_dir, base_dir):
FILE: sql/bgw_scheduler.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.restart_background_wor...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.stop_background_workers()
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.start_background_worke...
FILE: sql/bookend.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.first_sfunc(internal, ...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.first_combinefunc(inte...
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.last_sfunc(internal, a...
function _timescaledb_functions (line 20) | CREATE OR REPLACE FUNCTION _timescaledb_functions.last_combinefunc(inter...
function _timescaledb_functions (line 25) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bookend_finalfunc(inte...
function _timescaledb_functions (line 30) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bookend_serializefunc(...
function _timescaledb_functions (line 35) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bookend_deserializefun...
FILE: sql/cagg_utils.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_validate_query(
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_get_bucket_functi...
function _timescaledb_functions (line 31) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_get_grouping_colu...
FILE: sql/chunk.sql
function _timescaledb_functions (line 18) | CREATE OR REPLACE FUNCTION _timescaledb_functions.calculate_chunk_interval(
function _timescaledb_functions (line 25) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunk_status(REGCLASS)...
function _timescaledb_functions (line 29) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunk_status_text(chun...
function _timescaledb_functions (line 32) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunk_status_text(chun...
function _timescaledb_functions (line 36) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunk_id_from_relid(re...
function _timescaledb_functions (line 40) | CREATE OR REPLACE FUNCTION _timescaledb_functions.show_chunk(chunk REGCL...
function _timescaledb_functions (line 50) | CREATE OR REPLACE FUNCTION _timescaledb_functions.create_chunk(
function _timescaledb_functions (line 59) | CREATE OR REPLACE FUNCTION _timescaledb_functions.freeze_chunk(
function _timescaledb_functions (line 63) | CREATE OR REPLACE FUNCTION _timescaledb_functions.unfreeze_chunk(
function _timescaledb_functions (line 69) | CREATE OR REPLACE FUNCTION _timescaledb_functions.drop_chunk(
function _timescaledb_functions (line 74) | CREATE OR REPLACE FUNCTION _timescaledb_functions.attach_osm_table_chunk(
function _timescaledb_functions (line 80) | CREATE OR REPLACE FUNCTION _timescaledb_functions.drop_osm_chunk(hyperta...
FILE: sql/chunk_constraint.sql
function _timescaledb_functions (line 6) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunk_constraint_add_t...
function _timescaledb_functions (line 79) | CREATE OR REPLACE FUNCTION _timescaledb_functions.constraint_clone(
FILE: sql/compat.sql
function _timescaledb_internal (line 12) | CREATE OR REPLACE FUNCTION _timescaledb_internal.alter_job_set_hypertabl...
function _timescaledb_internal (line 32) | CREATE OR REPLACE FUNCTION _timescaledb_internal.cagg_watermark(hypertab...
function _timescaledb_internal (line 42) | CREATE OR REPLACE FUNCTION _timescaledb_internal.cagg_watermark_material...
function _timescaledb_internal (line 52) | CREATE OR REPLACE FUNCTION _timescaledb_internal.calculate_chunk_interva...
function _timescaledb_internal (line 102) | CREATE OR REPLACE FUNCTION _timescaledb_internal.compressed_chunk_local_...
function _timescaledb_internal (line 122) | CREATE OR REPLACE FUNCTION _timescaledb_internal.create_chunk(hypertable...
function _timescaledb_internal (line 140) | CREATE OR REPLACE FUNCTION _timescaledb_internal.drop_chunk(chunk regcla...
function _timescaledb_internal (line 149) | CREATE OR REPLACE FUNCTION _timescaledb_internal.freeze_chunk(chunk regc...
function _timescaledb_internal (line 159) | CREATE OR REPLACE FUNCTION _timescaledb_internal.generate_uuid() RETURNS...
function _timescaledb_internal (line 169) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_approx_row_count(re...
function _timescaledb_internal (line 179) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_compressed_chunk_in...
function _timescaledb_internal (line 189) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_create_command(tabl...
function _timescaledb_internal (line 199) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_git_commit() RETURN...
function _timescaledb_internal (line 209) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_os_info() RETURNS T...
function _timescaledb_internal (line 219) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_partition_for_key(v...
function _timescaledb_internal (line 229) | CREATE OR REPLACE FUNCTION _timescaledb_internal.get_partition_hash(val ...
function _timescaledb_internal (line 239) | CREATE OR REPLACE FUNCTION _timescaledb_internal.hypertable_local_size(s...
function _timescaledb_internal (line 279) | CREATE OR REPLACE FUNCTION _timescaledb_internal.policy_job_stat_history...
function _timescaledb_internal (line 299) | CREATE OR REPLACE FUNCTION _timescaledb_internal.policy_reorder_check(co...
function _timescaledb_internal (line 319) | CREATE OR REPLACE FUNCTION _timescaledb_internal.process_ddl_event() RET...
function _timescaledb_internal (line 329) | CREATE OR REPLACE FUNCTION _timescaledb_internal.range_value_to_pretty(t...
function _timescaledb_internal (line 349) | CREATE OR REPLACE FUNCTION _timescaledb_internal.relation_size(relation ...
function _timescaledb_internal (line 359) | CREATE OR REPLACE FUNCTION _timescaledb_internal.restart_background_work...
function _timescaledb_internal (line 369) | CREATE OR REPLACE FUNCTION _timescaledb_internal.show_chunk(chunk regcla...
function _timescaledb_internal (line 379) | CREATE OR REPLACE FUNCTION _timescaledb_internal.start_background_worker...
function _timescaledb_internal (line 389) | CREATE OR REPLACE FUNCTION _timescaledb_internal.stop_background_workers...
function _timescaledb_internal (line 399) | CREATE OR REPLACE FUNCTION _timescaledb_internal.subtract_integer_from_n...
FILE: sql/compression.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_to_arr...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_column...
FILE: sql/compression_defaults.sql
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_segmentby_defaults(
FILE: sql/ddl_api.sql
function @extschema (line 23) | CREATE OR REPLACE FUNCTION @extschema@.create_hypertable(
function @extschema (line 48) | CREATE OR REPLACE FUNCTION @extschema@.create_hypertable(
function @extschema (line 58) | CREATE OR REPLACE FUNCTION @extschema@.set_adaptive_chunking(
function @extschema (line 73) | CREATE OR REPLACE FUNCTION @extschema@.set_chunk_time_interval(
function @extschema (line 87) | CREATE OR REPLACE FUNCTION @extschema@.set_partitioning_interval(
function @extschema (line 93) | CREATE OR REPLACE FUNCTION @extschema@.set_number_partitions(
function @extschema (line 101) | CREATE OR REPLACE FUNCTION @extschema@.drop_chunks(
function @extschema (line 113) | CREATE OR REPLACE FUNCTION @extschema@.show_chunks(
function @extschema (line 130) | CREATE OR REPLACE FUNCTION @extschema@.add_dimension(
function @extschema (line 145) | CREATE OR REPLACE FUNCTION @extschema@.add_dimension(
function @extschema (line 159) | CREATE OR REPLACE FUNCTION @extschema@.enable_chunk_skipping(
function @extschema (line 173) | CREATE OR REPLACE FUNCTION @extschema@.disable_chunk_skipping(
function @extschema (line 180) | CREATE OR REPLACE FUNCTION @extschema@.by_hash(column_name NAME, number_...
function @extschema (line 185) | CREATE OR REPLACE FUNCTION @extschema@.by_range(column_name NAME,
function @extschema (line 191) | CREATE OR REPLACE FUNCTION @extschema@.attach_tablespace(
function @extschema (line 198) | CREATE OR REPLACE FUNCTION @extschema@.detach_tablespace(
function @extschema (line 205) | CREATE OR REPLACE FUNCTION @extschema@.detach_tablespaces(hypertable REG...
function @extschema (line 208) | CREATE OR REPLACE FUNCTION @extschema@.show_tablespaces(hypertable REGCL...
FILE: sql/ddl_triggers.sql
function _timescaledb_functions (line 7) | CREATE OR REPLACE FUNCTION _timescaledb_functions.process_ddl_event() RE...
FILE: sql/debug_build_utils.sql
function debug_waitpoint_enable (line 8) | CREATE OR REPLACE FUNCTION debug_waitpoint_enable(TEXT) RETURNS VOID LAN...
function debug_waitpoint_release (line 11) | CREATE OR REPLACE FUNCTION debug_waitpoint_release(TEXT) RETURNS VOID LA...
function debug_waitpoint_id (line 14) | CREATE OR REPLACE FUNCTION debug_waitpoint_id(TEXT) RETURNS BIGINT LANGU...
function ts_now_mock (line 17) | CREATE OR REPLACE FUNCTION ts_now_mock()
function clear_hypertable_cache (line 20) | CREATE OR REPLACE FUNCTION clear_hypertable_cache() RETURNS VOID
FILE: sql/debug_utils.sql
function _timescaledb_functions (line 9) | CREATE OR REPLACE FUNCTION _timescaledb_functions.extension_state() RETU...
FILE: sql/gapfill.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 8) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 11) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 14) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 17) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 20) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 23) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket_gapfill(bucket_width ...
function @extschema (line 27) | CREATE OR REPLACE FUNCTION @extschema@.locf(value ANYELEMENT, prev ANYEL...
function @extschema (line 31) | CREATE OR REPLACE FUNCTION @extschema@.interpolate(value SMALLINT,prev R...
function @extschema (line 34) | CREATE OR REPLACE FUNCTION @extschema@.interpolate(value INT,prev RECORD...
function @extschema (line 37) | CREATE OR REPLACE FUNCTION @extschema@.interpolate(value BIGINT,prev REC...
function @extschema (line 40) | CREATE OR REPLACE FUNCTION @extschema@.interpolate(value REAL,prev RECOR...
function @extschema (line 43) | CREATE OR REPLACE FUNCTION @extschema@.interpolate(value FLOAT,prev RECO...
FILE: sql/histogram.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hist_sfunc (state INTE...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hist_combinefunc(state...
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hist_serializefunc(INT...
function _timescaledb_functions (line 20) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hist_deserializefunc(b...
function _timescaledb_functions (line 25) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hist_finalfunc(state I...
FILE: sql/hypertable.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.set_integer_now_func(hypertable R...
FILE: sql/job_api.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.add_job(
function @extschema (line 17) | CREATE OR REPLACE FUNCTION @extschema@.delete_job(job_id INTEGER) RETURN...
function @extschema (line 21) | CREATE OR REPLACE FUNCTION @extschema@.alter_job(
function _timescaledb_functions (line 42) | CREATE OR REPLACE FUNCTION _timescaledb_functions.alter_job_set_hypertab...
FILE: sql/job_stat_history_log_retention.sql
function _timescaledb_functions (line 12) | CREATE OR REPLACE FUNCTION _timescaledb_functions.job_history_bsearch(se...
function _timescaledb_functions (line 75) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_job_stat_histor...
FILE: sql/maintenance_utils.sql
function @extschema (line 8) | CREATE OR REPLACE FUNCTION @extschema@.reorder_chunk(
function @extschema (line 14) | CREATE OR REPLACE FUNCTION @extschema@.move_chunk(
function _timescaledb_functions (line 22) | CREATE OR REPLACE FUNCTION _timescaledb_functions.create_compressed_chunk(
function @extschema (line 35) | CREATE OR REPLACE FUNCTION @extschema@.compress_chunk(
function @extschema (line 48) | CREATE OR REPLACE FUNCTION @extschema@.decompress_chunk(
function _timescaledb_functions (line 82) | CREATE OR REPLACE FUNCTION _timescaledb_functions.recompress_chunk_segme...
function _timescaledb_functions (line 89) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_compressed_chunk_i...
function _timescaledb_functions (line 117) | CREATE OR REPLACE FUNCTION _timescaledb_functions.makeaclitem(regrole, r...
function _timescaledb_functions (line 152) | CREATE OR REPLACE FUNCTION _timescaledb_functions.remove_dropped_chunk_m...
FILE: sql/metadata.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.generate_uuid() RETURN...
function _timescaledb_functions (line 13) | CREATE OR REPLACE FUNCTION _timescaledb_functions.metadata_insert_trigge...
FILE: sql/osm_api.sql
function _timescaledb_functions (line 8) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hypertable_osm_range_u...
FILE: sql/partitioning.sql
function _timescaledb_functions (line 6) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_partition_for_key(...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_partition_hash(val...
FILE: sql/policy_api.sql
function @extschema (line 13) | CREATE OR REPLACE FUNCTION @extschema@.add_retention_policy(
function @extschema (line 25) | CREATE OR REPLACE FUNCTION @extschema@.remove_retention_policy(
function @extschema (line 33) | CREATE OR REPLACE FUNCTION @extschema@.add_reorder_policy(
function @extschema (line 43) | CREATE OR REPLACE FUNCTION @extschema@.remove_reorder_policy(hypertable ...
function @extschema (line 48) | CREATE OR REPLACE FUNCTION @extschema@.add_compression_policy(
function @extschema (line 71) | CREATE OR REPLACE FUNCTION @extschema@.remove_compression_policy(hyperta...
function @extschema (line 81) | CREATE OR REPLACE FUNCTION @extschema@.add_continuous_aggregate_policy(
function @extschema (line 98) | CREATE OR REPLACE FUNCTION @extschema@.remove_continuous_aggregate_policy(
function timescaledb_experimental (line 124) | CREATE OR REPLACE FUNCTION timescaledb_experimental.add_policies(
function timescaledb_experimental (line 134) | CREATE OR REPLACE FUNCTION timescaledb_experimental.remove_policies(
function timescaledb_experimental (line 143) | CREATE OR REPLACE FUNCTION timescaledb_experimental.remove_all_policies(
function timescaledb_experimental (line 151) | CREATE OR REPLACE FUNCTION timescaledb_experimental.alter_policies(
function timescaledb_experimental (line 163) | CREATE OR REPLACE FUNCTION timescaledb_experimental.show_policies(
FILE: sql/policy_internal.sql
function _timescaledb_functions (line 9) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_retention_check...
function _timescaledb_functions (line 17) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_reorder_check(c...
function _timescaledb_functions (line 25) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_compression_che...
function _timescaledb_functions (line 33) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_refresh_continu...
function _timescaledb_functions (line 41) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_process_hyperta...
FILE: sql/pre_install/cache.sql
type _timescaledb_cache (line 19) | CREATE TABLE _timescaledb_cache.cache_inval_extension();
FILE: sql/pre_install/tables.sql
type _timescaledb_catalog (line 42) | CREATE TABLE _timescaledb_catalog.hypertable (
type _timescaledb_catalog (line 73) | CREATE TABLE _timescaledb_catalog.tablespace (
type _timescaledb_catalog (line 86) | CREATE TABLE _timescaledb_catalog.dimension (
type _timescaledb_catalog (line 121) | CREATE TABLE _timescaledb_catalog.dimension_slice (
type _timescaledb_catalog (line 144) | CREATE TABLE _timescaledb_catalog.chunk (
type chunk_hypertable_id_idx (line 161) | CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog.chunk (hype...
type chunk_compressed_chunk_id_idx (line 162) | CREATE INDEX chunk_compressed_chunk_id_idx ON _timescaledb_catalog.chunk...
type chunk_osm_chunk_idx (line 167) | CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog.chunk (osm_chun...
type chunk_hypertable_id_creation_time_idx (line 168) | CREATE INDEX chunk_hypertable_id_creation_time_idx ON _timescaledb_catal...
type _timescaledb_catalog (line 176) | CREATE TABLE _timescaledb_catalog.chunk_constraint (
type chunk_constraint_dimension_slice_id_idx (line 187) | CREATE INDEX chunk_constraint_dimension_slice_id_idx ON _timescaledb_cat...
type _timescaledb_catalog (line 214) | CREATE TABLE _timescaledb_catalog.chunk_column_stats (
type _timescaledb_catalog (line 246) | CREATE TABLE _timescaledb_catalog.bgw_job (
type bgw_job_proc_hypertable_id_idx (line 271) | CREATE INDEX bgw_job_proc_hypertable_id_idx ON _timescaledb_catalog.bgw_...
type _timescaledb_internal (line 275) | CREATE TABLE _timescaledb_internal.bgw_job_stat (
type _timescaledb_internal (line 298) | CREATE TABLE _timescaledb_internal.bgw_job_stat_history (
type bgw_job_stat_history_execution_start_idx (line 312) | CREATE INDEX bgw_job_stat_history_execution_start_idx
type bgw_job_stat_history_job_id_execution_start_idx (line 314) | CREATE INDEX bgw_job_stat_history_job_id_execution_start_idx
type _timescaledb_internal (line 321) | CREATE TABLE _timescaledb_internal.bgw_policy_chunk_stats (
type _timescaledb_catalog (line 332) | CREATE TABLE _timescaledb_catalog.metadata (
type _timescaledb_catalog (line 345) | CREATE TABLE _timescaledb_catalog.telemetry_event (
type _timescaledb_catalog (line 351) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 372) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
type _timescaledb_catalog (line 377) | CREATE TABLE _timescaledb_catalog.continuous_aggs_bucket_function (
type _timescaledb_catalog (line 399) | CREATE TABLE _timescaledb_catalog.continuous_aggs_invalidation_threshold (
type _timescaledb_catalog (line 409) | CREATE TABLE _timescaledb_catalog.continuous_aggs_watermark (
type _timescaledb_catalog (line 423) | CREATE TABLE _timescaledb_catalog.continuous_aggs_hypertable_invalidatio...
type continuous_aggs_hypertable_invalidation_log_idx (line 431) | CREATE INDEX continuous_aggs_hypertable_invalidation_log_idx ON _timesca...
type _timescaledb_catalog (line 434) | CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_invali...
type continuous_aggs_materialization_invalidation_log_idx (line 444) | CREATE INDEX continuous_aggs_materialization_invalidation_log_idx ON _ti...
type _timescaledb_catalog (line 447) | CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges (
type continuous_aggs_materialization_ranges_idx (line 457) | CREATE INDEX continuous_aggs_materialization_ranges_idx ON _timescaledb_...
type _timescaledb_catalog (line 462) | CREATE TABLE _timescaledb_catalog.compression_algorithm (
type _timescaledb_catalog (line 471) | CREATE TABLE _timescaledb_catalog.compression_settings (
type compression_settings_compress_relid_idx (line 486) | CREATE INDEX compression_settings_compress_relid_idx ON _timescaledb_cat...
type _timescaledb_catalog (line 488) | CREATE TABLE _timescaledb_catalog.compression_chunk_size (
type compression_chunk_size_idx (line 509) | CREATE INDEX compression_chunk_size_idx ON _timescaledb_catalog.compress...
FILE: sql/pre_install/types.functions.sql
function _timescaledb_functions (line 17) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_in(CST...
function _timescaledb_functions (line 22) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_out(_t...
function _timescaledb_functions (line 27) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_send(_...
function _timescaledb_functions (line 32) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_recv(i...
function _timescaledb_functions (line 37) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_info(_...
function _timescaledb_functions (line 42) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_data_has_nu...
function _timescaledb_functions (line 47) | CREATE OR REPLACE FUNCTION _timescaledb_functions.dimension_info_in(cstr...
function _timescaledb_functions (line 52) | CREATE OR REPLACE FUNCTION _timescaledb_functions.dimension_info_out(_ti...
function _timescaledb_functions (line 59) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bloom1in(cstring) RETU...
function _timescaledb_functions (line 60) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bloom1out(_timescaledb...
FILE: sql/restoring.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.timescaledb_pre_restore() RETURNS...
function @extschema (line 20) | CREATE OR REPLACE FUNCTION @extschema@.timescaledb_post_restore() RETURN...
FILE: sql/size_utils.sql
function _timescaledb_functions (line 8) | CREATE OR REPLACE FUNCTION _timescaledb_functions.index_matches(index1 r...
function _timescaledb_functions (line 11) | CREATE OR REPLACE FUNCTION _timescaledb_functions.relation_size(relation...
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.relation_approximate_s...
type _timescaledb_internal (line 19) | CREATE OR REPLACE VIEW _timescaledb_internal.hypertable_chunk_local_size AS
function _timescaledb_functions (line 47) | CREATE OR REPLACE FUNCTION _timescaledb_functions.hypertable_local_size(
function @extschema (line 120) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_detailed_size(
function @extschema (line 161) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_size(
function @extschema (line 178) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_approximate_detailed_s...
function @extschema (line 183) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_approximate_size(
function _timescaledb_functions (line 192) | CREATE OR REPLACE FUNCTION _timescaledb_functions.chunks_local_size(
function @extschema (line 232) | CREATE OR REPLACE FUNCTION @extschema@.chunks_detailed_size(
function _timescaledb_functions (line 277) | CREATE OR REPLACE FUNCTION _timescaledb_functions.range_value_to_pretty(
function _timescaledb_functions (line 360) | CREATE OR REPLACE FUNCTION _timescaledb_functions.estimate_compressed_ba...
function _timescaledb_functions (line 364) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_approx_row_count(r...
type _timescaledb_internal (line 391) | CREATE OR REPLACE VIEW _timescaledb_internal.compressed_chunk_stats AS
function _timescaledb_functions (line 418) | CREATE OR REPLACE FUNCTION _timescaledb_functions.compressed_chunk_local...
function @extschema (line 456) | CREATE OR REPLACE FUNCTION @extschema@.chunk_compression_stats (hypertab...
function @extschema (line 502) | CREATE OR REPLACE FUNCTION @extschema@.chunk_columnstore_stats (hypertab...
function @extschema (line 523) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_compression_stats (hyp...
function @extschema (line 558) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_columnstore_stats (hyp...
function @extschema (line 578) | CREATE OR REPLACE FUNCTION @extschema@.hypertable_index_size(
FILE: sql/sparse_index.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bloom1_contains(_times...
function _timescaledb_functions (line 10) | CREATE OR REPLACE FUNCTION _timescaledb_functions.bloom1_contains_any(_t...
function _timescaledb_functions (line 15) | CREATE OR REPLACE FUNCTION _timescaledb_functions.jsonb_get_matching_ind...
FILE: sql/time_bucket.sql
function @extschema (line 7) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 11) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 15) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 18) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 22) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 24) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 26) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 28) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 32) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 34) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 36) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 38) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 42) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 44) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INTERVAL...
function @extschema (line 48) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width SMALLINT...
function @extschema (line 50) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INT, ts ...
function @extschema (line 52) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width BIGINT, ...
function @extschema (line 56) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width SMALLINT...
function @extschema (line 58) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width INT, ts ...
function @extschema (line 60) | CREATE OR REPLACE FUNCTION @extschema@.time_bucket(bucket_width BIGINT, ...
function _timescaledb_functions (line 66) | CREATE OR REPLACE FUNCTION _timescaledb_functions.align_to_bucket(width ...
FILE: sql/updates/2.10.1--2.10.2.sql
function _timescaledb_internal (line 6) | CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_nam...
type _timescaledb_config (line 19) | CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescale...
type _timescaledb_internal (line 27) | CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS
type _timescaledb_config (line 37) | CREATE TABLE _timescaledb_config.bgw_job (
type bgw_job_proc_hypertable_id_idx (line 60) | CREATE INDEX bgw_job_proc_hypertable_id_idx
FILE: sql/updates/2.10.2--2.10.1.sql
function _timescaledb_internal (line 3) | CREATE OR REPLACE FUNCTION _timescaledb_internal.ping_data_node(node_nam...
type _timescaledb_config (line 16) | CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescale...
type _timescaledb_internal (line 24) | CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS
type _timescaledb_config (line 34) | CREATE TABLE _timescaledb_config.bgw_job (
type bgw_job_proc_hypertable_id_idx (line 57) | CREATE INDEX bgw_job_proc_hypertable_id_idx
FILE: sql/updates/2.10.3--2.11.0.sql
type _timescaledb_catalog (line 1) | CREATE TABLE _timescaledb_catalog.continuous_aggs_watermark (
function _timescaledb_internal (line 13) | CREATE FUNCTION _timescaledb_internal.cagg_watermark_materialized(hypert...
function _timescaledb_internal (line 15) | CREATE FUNCTION _timescaledb_internal.recompress_chunk_segmentwise(REGCL...
function _timescaledb_internal (line 17) | CREATE FUNCTION _timescaledb_internal.get_compressed_chunk_index_for_rec...
type _timescaledb_catalog (line 66) | CREATE TABLE _timescaledb_catalog.telemetry_event (
FILE: sql/updates/2.11.0--2.10.3.sql
function _timescaledb_internal (line 11) | CREATE OR REPLACE FUNCTION _timescaledb_internal.dimension_is_finite(
function _timescaledb_internal (line 20) | CREATE OR REPLACE FUNCTION _timescaledb_internal.dimension_slice_get_con...
function _timescaledb_internal (line 121) | CREATE FUNCTION _timescaledb_internal.is_main_table(
function _timescaledb_internal (line 133) | CREATE FUNCTION _timescaledb_internal.is_main_table(
function _timescaledb_internal (line 147) | CREATE FUNCTION _timescaledb_internal.hypertable_from_main_table(
function _timescaledb_internal (line 159) | CREATE FUNCTION _timescaledb_internal.main_table_from_hypertable(
function _timescaledb_internal (line 170) | CREATE FUNCTION _timescaledb_internal.time_literal_sql(
type _timescaledb_catalog (line 208) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg_migrate_plan AS SE...
type _timescaledb_catalog (line 211) | CREATE TABLE _timescaledb_catalog.continuous_agg_migrate_plan (
FILE: sql/updates/2.11.2--2.12.0.sql
function @extschema (line 14) | CREATE FUNCTION @extschema@.alter_job(
type _timescaledb_catalog (line 217) | CREATE TABLE _timescaledb_catalog.hypertable_tmp AS SELECT * FROM _times...
type _timescaledb_catalog (line 218) | CREATE TABLE _timescaledb_catalog.tmp_hypertable_seq_value AS SELECT las...
type _timescaledb_catalog (line 231) | CREATE TABLE _timescaledb_catalog.hypertable (
FILE: sql/updates/2.12.0--2.11.2.sql
function @extschema (line 128) | CREATE FUNCTION @extschema@.alter_job(
type _timescaledb_catalog (line 330) | CREATE TABLE _timescaledb_catalog.hypertable_tmp AS SELECT * FROM _times...
type _timescaledb_catalog (line 331) | CREATE TABLE _timescaledb_catalog.tmp_hypertable_seq_value AS SELECT las...
type _timescaledb_catalog (line 344) | CREATE TABLE _timescaledb_catalog.hypertable (
FILE: sql/updates/2.12.2--2.13.0.sql
function _timescaledb_functions (line 3) | CREATE OR REPLACE FUNCTION _timescaledb_functions.dimension_info_in(cstr...
function _timescaledb_functions (line 8) | CREATE OR REPLACE FUNCTION _timescaledb_functions.dimension_info_out(_ti...
function @extschema (line 19) | CREATE FUNCTION @extschema@.create_hypertable(
function @extschema (line 27) | CREATE FUNCTION @extschema@.add_dimension(
function @extschema (line 34) | CREATE FUNCTION @extschema@.set_partitioning_interval(
function @extschema (line 40) | CREATE FUNCTION @extschema@.by_hash(column_name NAME, number_partitions ...
function @extschema (line 45) | CREATE FUNCTION @extschema@.by_range(column_name NAME,
type _timescaledb_internal (line 55) | CREATE TABLE _timescaledb_internal.chunk_tmp
type _timescaledb_internal (line 58) | CREATE TABLE _timescaledb_internal.tmp_chunk_seq_value AS
type _timescaledb_catalog (line 91) | CREATE TABLE _timescaledb_catalog.chunk (
type chunk_hypertable_id_idx (line 131) | CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog.chunk (hype...
type chunk_compressed_chunk_id_idx (line 132) | CREATE INDEX chunk_compressed_chunk_id_idx ON _timescaledb_catalog.chunk...
type chunk_osm_chunk_idx (line 133) | CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog.chunk (osm_chun...
type chunk_hypertable_id_creation_time_idx (line 134) | CREATE INDEX chunk_hypertable_id_creation_time_idx ON _timescaledb_catal...
type _timescaledb_internal (line 187) | CREATE TABLE _timescaledb_internal.compression_chunk_size_tmp
type _timescaledb_catalog (line 198) | CREATE TABLE _timescaledb_catalog.compression_chunk_size (
function @extschema (line 234) | CREATE FUNCTION @extschema@.drop_chunks(
function @extschema (line 245) | CREATE FUNCTION @extschema@.show_chunks(
function @extschema (line 255) | CREATE FUNCTION @extschema@.add_retention_policy(
function @extschema (line 268) | CREATE FUNCTION @extschema@.add_compression_policy(
FILE: sql/updates/2.13.0--2.12.2.sql
type _timescaledb_internal (line 22) | CREATE TABLE _timescaledb_internal.chunk_tmp
type _timescaledb_internal (line 25) | CREATE TABLE _timescaledb_internal.tmp_chunk_seq_value AS
type _timescaledb_catalog (line 58) | CREATE TABLE _timescaledb_catalog.chunk (
type chunk_hypertable_id_idx (line 80) | CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog.chunk (hype...
type chunk_compressed_chunk_id_idx (line 81) | CREATE INDEX chunk_compressed_chunk_id_idx ON _timescaledb_catalog.chunk...
type chunk_osm_chunk_idx (line 82) | CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog.chunk (osm_chun...
type _timescaledb_internal (line 133) | CREATE TABLE _timescaledb_internal.compression_chunk_size_tmp
type _timescaledb_catalog (line 144) | CREATE TABLE _timescaledb_catalog.compression_chunk_size (
function @extschema (line 179) | CREATE FUNCTION @extschema@.drop_chunks(
function @extschema (line 188) | CREATE FUNCTION @extschema@.show_chunks(
function @extschema (line 201) | CREATE FUNCTION @extschema@.add_retention_policy(
function @extschema (line 213) | CREATE FUNCTION @extschema@.add_compression_policy(
function _timescaledb_functions (line 341) | CREATE FUNCTION _timescaledb_functions.chunk_constraint_add_table_constr...
FILE: sql/updates/2.13.1--2.14.0.sql
function @extschema (line 56) | CREATE FUNCTION @extschema@.create_hypertable(
type _timescaledb_catalog (line 85) | CREATE TABLE _timescaledb_catalog.compression_settings (
type _timescaledb_catalog (line 229) | CREATE TABLE _timescaledb_catalog.hypertable_tmp AS SELECT * FROM _times...
type _timescaledb_catalog (line 230) | CREATE TABLE _timescaledb_catalog.tmp_hypertable_seq_value AS SELECT las...
type _timescaledb_catalog (line 243) | CREATE TABLE _timescaledb_catalog.hypertable (
function _timescaledb_functions (line 406) | CREATE FUNCTION _timescaledb_functions.metadata_insert_trigger() RETURNS...
function _timescaledb_functions (line 438) | CREATE FUNCTION _timescaledb_functions.relation_approximate_size(relatio...
function @extschema (line 442) | CREATE FUNCTION @extschema@.hypertable_approximate_detailed_size(relatio...
function @extschema (line 447) | CREATE FUNCTION @extschema@.hypertable_approximate_size(
function @extschema (line 457) | CREATE FUNCTION @extschema@.compress_chunk(uncompressed_chunk REGCLASS, ...
FILE: sql/updates/2.14.0--2.13.1.sql
function _timescaledb_functions (line 48) | CREATE FUNCTION _timescaledb_functions.tmp_resolve_indkeys(oid,int2[]) R...
function _timescaledb_functions (line 134) | CREATE FUNCTION _timescaledb_functions.ping_data_node(node_name NAME, ti...
function _timescaledb_functions (line 137) | CREATE FUNCTION _timescaledb_functions.remote_txn_heal_data_node(foreign...
function _timescaledb_functions (line 142) | CREATE FUNCTION _timescaledb_functions.set_dist_id(dist_id UUID) RETURNS...
function _timescaledb_functions (line 145) | CREATE FUNCTION _timescaledb_functions.set_peer_dist_id(dist_id UUID) RE...
function _timescaledb_functions (line 150) | CREATE FUNCTION _timescaledb_functions.validate_as_data_node() RETURNS void
function _timescaledb_functions (line 153) | CREATE FUNCTION _timescaledb_functions.show_connection_cache()
function @extschema (line 170) | CREATE FUNCTION @extschema@.create_hypertable(
function @extschema (line 190) | CREATE FUNCTION @extschema@.create_distributed_hypertable(
function @extschema (line 209) | CREATE FUNCTION @extschema@.add_data_node(
function @extschema (line 221) | CREATE FUNCTION @extschema@.delete_data_node(
function @extschema (line 229) | CREATE FUNCTION @extschema@.attach_data_node(
function @extschema (line 237) | CREATE FUNCTION @extschema@.detach_data_node(
function @extschema (line 247) | CREATE FUNCTION @extschema@.alter_data_node(
function @extschema (line 262) | CREATE FUNCTION @extschema@.create_distributed_restore_point(
function @extschema (line 267) | CREATE FUNCTION @extschema@.set_replication_factor(
type _timescaledb_catalog (line 273) | CREATE TABLE _timescaledb_catalog.hypertable_compression (
function @extschema (line 324) | CREATE FUNCTION @extschema@.timescaledb_fdw_handler() RETURNS fdw_handle...
function @extschema (line 325) | CREATE FUNCTION @extschema@.timescaledb_fdw_validator(text[], oid) RETUR...
function _timescaledb_functions (line 329) | CREATE FUNCTION _timescaledb_functions.create_chunk_replica_table(
function _timescaledb_functions (line 334) | CREATE FUNCTION _timescaledb_functions.chunk_drop_replica(
function _timescaledb_functions (line 370) | CREATE FUNCTION _timescaledb_functions.health() RETURNS
function _timescaledb_functions (line 374) | CREATE FUNCTION _timescaledb_functions.drop_stale_chunks(
function _timescaledb_functions (line 380) | CREATE FUNCTION _timescaledb_functions.rxid_in(cstring) RETURNS @extsche...
function _timescaledb_functions (line 383) | CREATE FUNCTION _timescaledb_functions.rxid_out(@extschema@.rxid) RETURN...
function _timescaledb_functions (line 392) | CREATE FUNCTION _timescaledb_functions.data_node_hypertable_info(
function _timescaledb_functions (line 404) | CREATE FUNCTION _timescaledb_functions.data_node_chunk_info(
function _timescaledb_functions (line 419) | CREATE FUNCTION _timescaledb_functions.data_node_compressed_chunk_stats(...
function _timescaledb_functions (line 435) | CREATE FUNCTION _timescaledb_functions.data_node_index_size(node_name na...
function timescaledb_experimental (line 439) | CREATE FUNCTION timescaledb_experimental.block_new_chunks(data_node_name...
function timescaledb_experimental (line 442) | CREATE FUNCTION timescaledb_experimental.allow_new_chunks(data_node_name...
function timescaledb_experimental (line 459) | CREATE FUNCTION timescaledb_experimental.subscription_exec(
function _timescaledb_functions (line 467) | CREATE FUNCTION _timescaledb_functions.set_chunk_default_data_node(chunk...
function _timescaledb_functions (line 470) | CREATE FUNCTION _timescaledb_functions.drop_dist_ht_invalidation_trigger(
type _timescaledb_catalog (line 475) | CREATE TABLE _timescaledb_catalog.remote_txn (
type remote_txn_data_node_name_idx (line 484) | CREATE INDEX remote_txn_data_node_name_idx ON _timescaledb_catalog.remot...
type _timescaledb_catalog (line 489) | CREATE TABLE _timescaledb_catalog.hypertable_data_node (
type _timescaledb_catalog (line 503) | CREATE TABLE _timescaledb_catalog.chunk_data_node (
type chunk_data_node_node_name_idx (line 513) | CREATE INDEX chunk_data_node_node_name_idx ON _timescaledb_catalog.chunk...
type _timescaledb_catalog (line 520) | CREATE TABLE _timescaledb_catalog.chunk_copy_operation (
type _timescaledb_catalog (line 537) | CREATE TABLE _timescaledb_catalog.dimension_partition (
type _timescaledb_catalog (line 652) | CREATE TABLE _timescaledb_catalog.hypertable_tmp AS SELECT * FROM _times...
type _timescaledb_catalog (line 666) | CREATE TABLE _timescaledb_catalog.hypertable (
function _timescaledb_functions (line 767) | CREATE FUNCTION _timescaledb_functions.chunks_in(record RECORD, chunks I...
function @extschema (line 796) | CREATE FUNCTION @extschema@.compress_chunk(uncompressed_chunk REGCLASS, ...
FILE: sql/updates/2.14.0--2.14.1.sql
type timescaledb_information (line 2) | CREATE VIEW timescaledb_information.hypertable_compression_settings AS
type timescaledb_information (line 30) | CREATE VIEW timescaledb_information.chunk_compression_settings AS
FILE: sql/updates/2.14.2--2.15.0.sql
function _timescaledb_functions (line 21) | CREATE FUNCTION _timescaledb_functions.remove_dropped_chunk_metadata(_hy...
function _timescaledb_functions (line 92) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_get_bucket_function(
type _timescaledb_catalog (line 98) | CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_bucket_function AS
type _timescaledb_catalog (line 117) | CREATE TABLE _timescaledb_catalog.continuous_aggs_bucket_function (
function _timescaledb_functions (line 201) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_get_bucket_function(
function _timescaledb_functions (line 206) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_interval(unixtime_u...
type _timescaledb_catalog (line 271) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
type _timescaledb_catalog (line 291) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 320) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
type _timescaledb_internal (line 349) | CREATE TABLE _timescaledb_internal.bgw_job_stat_history (
type bgw_job_stat_history_job_id_idx (line 363) | CREATE INDEX bgw_job_stat_history_job_id_idx ON _timescaledb_internal.bg...
FILE: sql/updates/2.15.0--2.14.2.sql
type _timescaledb_catalog (line 46) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
type _timescaledb_catalog (line 87) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 117) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
type _timescaledb_catalog (line 145) | CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_bucket_function AS
type _timescaledb_catalog (line 163) | CREATE TABLE _timescaledb_catalog.continuous_aggs_bucket_function (
type _timescaledb_internal (line 219) | CREATE TABLE _timescaledb_internal.job_errors (
function _timescaledb_functions (line 253) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_job_error_reten...
function _timescaledb_functions (line 271) | CREATE OR REPLACE FUNCTION _timescaledb_functions.policy_job_error_reten...
FILE: sql/updates/2.15.0--2.15.1.sql
type _timescaledb_catalog (line 1) | CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_bucket_function AS
type _timescaledb_catalog (line 20) | CREATE TABLE _timescaledb_catalog.continuous_aggs_bucket_function (
FILE: sql/updates/2.15.1--2.15.0.sql
type _timescaledb_catalog (line 1) | CREATE TABLE _timescaledb_catalog._tmp_continuous_aggs_bucket_function AS
type _timescaledb_catalog (line 20) | CREATE TABLE _timescaledb_catalog.continuous_aggs_bucket_function (
FILE: sql/updates/2.15.3--2.16.0.sql
function @extschema (line 6) | CREATE FUNCTION @extschema@.enable_chunk_skipping(
function @extschema (line 19) | CREATE FUNCTION @extschema@.disable_chunk_skipping(
type _timescaledb_catalog (line 46) | CREATE TABLE _timescaledb_catalog.chunk_column_stats (
FILE: sql/updates/2.16.1--2.17.0.sql
function _timescaledb_functions (line 1) | CREATE FUNCTION _timescaledb_functions.compressed_data_info(_timescaledb...
type compression_chunk_size_idx (line 6) | CREATE INDEX compression_chunk_size_idx ON _timescaledb_catalog.compress...
function _timescaledb_functions (line 8) | CREATE FUNCTION _timescaledb_functions.drop_osm_chunk(hypertable REGCLASS)
FILE: sql/updates/2.17.0--2.16.1.sql
function _timescaledb_functions (line 2) | CREATE OR REPLACE FUNCTION _timescaledb_functions.add_sequence_number_me...
FILE: sql/updates/2.17.2--2.18.0.sql
function _timescaledb_debug (line 5) | CREATE FUNCTION _timescaledb_debug.is_compressed_tid(tid) RETURNS BOOL
function @extschema (line 10) | CREATE FUNCTION @extschema@.compress_chunk(
function @extschema (line 19) | CREATE FUNCTION @extschema@.add_compression_policy(
function timescaledb_experimental (line 35) | CREATE FUNCTION timescaledb_experimental.add_policies(
function @extschema (line 81) | CREATE FUNCTION @extschema@.chunk_columnstore_stats (hypertable REGCLASS)
function @extschema (line 100) | CREATE FUNCTION @extschema@.hypertable_columnstore_stats (hypertable REG...
function @extschema (line 136) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
function ts_hypercore_handler (line 157) | CREATE FUNCTION ts_hypercore_handler(internal) RETURNS table_am_handler
function ts_hypercore_proxy_handler (line 160) | CREATE FUNCTION ts_hypercore_proxy_handler(internal) RETURNS index_am_ha...
FILE: sql/updates/2.18.0--2.17.2.sql
function @extschema (line 10) | CREATE FUNCTION @extschema@.compress_chunk(
function @extschema (line 18) | CREATE FUNCTION @extschema@.add_compression_policy(
function timescaledb_experimental (line 33) | CREATE FUNCTION timescaledb_experimental.add_policies(
function @extschema (line 80) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
FILE: sql/updates/2.18.2--2.19.0.sql
function _timescaledb_functions (line 1) | CREATE FUNCTION _timescaledb_functions.compressed_data_has_nulls(_timesc...
type _timescaledb_catalog (line 14) | CREATE TABLE _timescaledb_catalog.tempsettings (LIKE _timescaledb_catalo...
type _timescaledb_catalog (line 19) | CREATE TABLE _timescaledb_catalog.compression_settings (
type compression_settings_compress_relid_idx (line 65) | CREATE INDEX compression_settings_compress_relid_idx ON _timescaledb_cat...
function @extschema (line 84) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
FILE: sql/updates/2.19.0--2.18.2.sql
type _timescaledb_catalog (line 7) | CREATE TABLE _timescaledb_catalog.tempsettings (LIKE _timescaledb_catalo...
type _timescaledb_catalog (line 12) | CREATE TABLE _timescaledb_catalog.compression_settings (
function @extschema (line 58) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
FILE: sql/updates/2.19.3--2.20.0.sql
function _timescaledb_functions (line 4) | CREATE FUNCTION _timescaledb_functions.bloom1in(cstring) RETURNS _timesc...
function _timescaledb_functions (line 6) | CREATE FUNCTION _timescaledb_functions.bloom1out(_timescaledb_internal.b...
function _timescaledb_functions (line 14) | CREATE FUNCTION _timescaledb_functions.bloom1_contains(_timescaledb_inte...
function @extschema (line 39) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
function _timescaledb_functions (line 69) | CREATE FUNCTION _timescaledb_functions.align_to_bucket(width INTERVAL, r...
function _timescaledb_functions (line 83) | CREATE FUNCTION _timescaledb_functions.make_multirange_from_internal_time(
function _timescaledb_functions (line 92) | CREATE FUNCTION _timescaledb_functions.make_multirange_from_internal_time(
function _timescaledb_functions (line 101) | CREATE FUNCTION _timescaledb_functions.make_range_from_internal_time(
function _timescaledb_functions (line 107) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_internal_time_min(...
function _timescaledb_functions (line 110) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_internal_time_max(...
function @extschema (line 124) | CREATE FUNCTION @extschema@.add_job(
function @extschema (line 155) | CREATE FUNCTION @extschema@.alter_job(
FILE: sql/updates/2.20.0--2.19.3.sql
function _timescaledb_internal (line 5) | CREATE FUNCTION _timescaledb_internal.create_chunk_table(hypertable REGC...
function _timescaledb_functions (line 6) | CREATE FUNCTION _timescaledb_functions.create_chunk_table(hypertable REG...
function @extschema (line 27) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(
FILE: sql/updates/2.21.4--2.22.0.sql
function @extschema (line 26) | CREATE FUNCTION @extschema@.compress_chunk(
function @extschema (line 38) | CREATE FUNCTION @extschema@.add_compression_policy(
function timescaledb_experimental (line 61) | CREATE FUNCTION timescaledb_experimental.add_policies(
type _timescaledb_catalog (line 91) | CREATE TABLE _timescaledb_catalog.tempsettings (LIKE _timescaledb_catalo...
type _timescaledb_catalog (line 101) | CREATE TABLE _timescaledb_catalog.compression_settings (
type compression_settings_compress_relid_idx (line 128) | CREATE INDEX compression_settings_compress_relid_idx ON _timescaledb_cat...
function _timescaledb_functions (line 134) | CREATE FUNCTION _timescaledb_functions.jsonb_get_matching_index_entry(
function process_single_table_index_migrate (line 149) | CREATE FUNCTION process_single_table_index_migrate(
type _timescaledb_catalog (line 250) | CREATE TABLE _timescaledb_catalog.continuous_aggs_materialization_ranges (
type continuous_aggs_materialization_ranges_idx (line 260) | CREATE INDEX continuous_aggs_materialization_ranges_idx ON _timescaledb_...
FILE: sql/updates/2.22.0--2.21.3.sql
function ts_hypercore_handler (line 11) | CREATE FUNCTION ts_hypercore_handler(internal) RETURNS table_am_handler
function ts_hypercore_proxy_handler (line 14) | CREATE FUNCTION ts_hypercore_proxy_handler(internal) RETURNS index_am_ha...
function _timescaledb_debug (line 23) | CREATE OPERATOR CLASS int4_ops
function @extschema (line 61) | CREATE FUNCTION @extschema@.compress_chunk(
function @extschema (line 75) | CREATE FUNCTION @extschema@.add_compression_policy(
function timescaledb_experimental (line 100) | CREATE OR REPLACE FUNCTION timescaledb_experimental.add_policies(
type _timescaledb_catalog (line 135) | CREATE TABLE _timescaledb_catalog.tempsettings (LIKE _timescaledb_catalo...
type _timescaledb_catalog (line 145) | CREATE TABLE _timescaledb_catalog.compression_settings (
type compression_settings_compress_relid_idx (line 172) | CREATE INDEX compression_settings_compress_relid_idx ON _timescaledb_cat...
type _timescaledb_catalog (line 199) | CREATE TABLE _timescaledb_catalog.chunk_index (
type chunk_index_hypertable_id_hypertable_index_name_idx (line 210) | CREATE INDEX chunk_index_hypertable_id_hypertable_index_name_idx ON _tim...
function _timescaledb_functions (line 214) | CREATE OR REPLACE FUNCTION _timescaledb_functions.temp_index_keycolumns(...
FILE: sql/updates/2.23.0--2.22.1.sql
function _timescaledb_functions (line 16) | CREATE OR REPLACE FUNCTION _timescaledb_functions.continuous_agg_invalid...
function _timescaledb_functions (line 39) | CREATE OR REPLACE FUNCTION _timescaledb_functions.insert_blocker() RETUR...
FILE: sql/updates/2.24.0--2.25.0.sql
type _timescaledb_catalog (line 98) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
type _timescaledb_catalog (line 117) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 145) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
FILE: sql/updates/2.25.0--2.24.0.sql
type _timescaledb_catalog (line 23) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
type _timescaledb_catalog (line 43) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 72) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
FILE: sql/updates/2.9.0--2.8.1.sql
type _timescaledb_internal (line 21) | CREATE TABLE _timescaledb_internal._tmp_bgw_job_stat AS SELECT * FROM _t...
type _timescaledb_internal (line 24) | CREATE TABLE _timescaledb_internal.bgw_job_stat (
function _timescaledb_internal (line 53) | CREATE FUNCTION _timescaledb_internal.hypertable_local_size(
function @extschema (line 134) | CREATE FUNCTION @extschema@.add_job(
function @extschema (line 143) | CREATE FUNCTION @extschema@.add_compression_policy(hypertable REGCLASS, ...
function @extschema (line 146) | CREATE FUNCTION @extschema@.add_retention_policy(
function @extschema (line 155) | CREATE FUNCTION @extschema@.add_continuous_aggregate_policy(continuous_a...
function @extschema (line 160) | CREATE FUNCTION @extschema@.add_reorder_policy(
type _timescaledb_config (line 178) | CREATE TABLE _timescaledb_config.bgw_job_tmp AS SELECT * FROM _timescale...
type _timescaledb_internal (line 182) | CREATE TABLE _timescaledb_internal.tmp_bgw_job_seq_value AS SELECT last_...
type _timescaledb_config (line 190) | CREATE TABLE _timescaledb_config.bgw_job (
type bgw_job_proc_hypertable_id_idx (line 211) | CREATE INDEX bgw_job_proc_hypertable_id_idx ON _timescaledb_config.bgw_j...
type _timescaledb_internal (line 229) | CREATE TABLE _timescaledb_internal.dimension_tmp
type _timescaledb_internal (line 232) | CREATE TABLE _timescaledb_internal.tmp_dimension_seq_value AS
type _timescaledb_catalog (line 249) | CREATE TABLE _timescaledb_catalog.dimension (
type _timescaledb_catalog (line 367) | CREATE TABLE _timescaledb_catalog._tmp_continuous_agg AS
type _timescaledb_catalog (line 387) | CREATE TABLE _timescaledb_catalog.continuous_agg (
type continuous_agg_raw_hypertable_id_idx (line 413) | CREATE INDEX continuous_agg_raw_hypertable_id_idx ON _timescaledb_catalo...
FILE: sql/updates/2.9.3--2.10.0.sql
type timescaledb_information (line 1) | CREATE OR REPLACE VIEW timescaledb_information.job_errors
FILE: sql/updates/latest-dev.sql
type _timescaledb_internal (line 6) | CREATE TABLE _timescaledb_internal.tmp_chunk AS SELECT * from _timescale...
type _timescaledb_internal (line 7) | CREATE TABLE _timescaledb_internal.tmp_chunk_seq_value AS SELECT last_va...
type _timescaledb_catalog (line 32) | CREATE TABLE _timescaledb_catalog.chunk (
type chunk_hypertable_id_idx (line 51) | CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog.chunk (hype...
type chunk_compressed_chunk_id_idx (line 52) | CREATE INDEX chunk_compressed_chunk_id_idx ON _timescaledb_catalog.chunk...
type chunk_osm_chunk_idx (line 53) | CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog.chunk (osm_chun...
type chunk_hypertable_id_creation_time_idx (line 54) | CREATE INDEX chunk_hypertable_id_creation_time_idx ON _timescaledb_catal...
type bgw_job_stat_history_execution_start_idx (line 95) | CREATE INDEX IF NOT EXISTS bgw_job_stat_history_execution_start_idx
type bgw_job_stat_history_job_id_execution_start_idx (line 97) | CREATE INDEX IF NOT EXISTS bgw_job_stat_history_job_id_execution_start_idx
FILE: sql/updates/pre-version-change.sql
function _timescaledb_internal (line 36) | CREATE FUNCTION _timescaledb_internal._tmp_restart_background_workers() ...
type _timescaledb_internal (line 45) | CREATE TABLE _timescaledb_internal.saved_privs(
FILE: sql/updates/reverse-dev.sql
type _timescaledb_internal (line 5) | CREATE TABLE _timescaledb_internal.tmp_chunk AS SELECT * from _timescale...
type _timescaledb_internal (line 6) | CREATE TABLE _timescaledb_internal.tmp_chunk_seq_value AS SELECT last_va...
type _timescaledb_catalog (line 31) | CREATE TABLE _timescaledb_catalog.chunk (
type chunk_hypertable_id_idx (line 51) | CREATE INDEX chunk_hypertable_id_idx ON _timescaledb_catalog.chunk (hype...
type chunk_compressed_chunk_id_idx (line 52) | CREATE INDEX chunk_compressed_chunk_id_idx ON _timescaledb_catalog.chunk...
type chunk_osm_chunk_idx (line 53) | CREATE INDEX chunk_osm_chunk_idx ON _timescaledb_catalog.chunk (osm_chun...
type chunk_hypertable_id_creation_time_idx (line 54) | CREATE INDEX chunk_hypertable_id_creation_time_idx ON _timescaledb_catal...
type _timescaledb_catalog (line 85) | CREATE TABLE _timescaledb_catalog.continuous_agg_migrate_plan (
type _timescaledb_catalog (line 96) | CREATE TABLE _timescaledb_catalog.continuous_agg_migrate_plan_step (
type bgw_job_stat_history_job_id_idx (line 118) | CREATE INDEX bgw_job_stat_history_job_id_idx ON _timescaledb_internal.bg...
FILE: sql/util_internal_table_ddl.sql
function _timescaledb_functions (line 14) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_create_command(
FILE: sql/util_time.sql
function _timescaledb_functions (line 9) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_internal_time_min(...
function _timescaledb_functions (line 14) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_internal_time_max(...
function _timescaledb_functions (line 17) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_unix_microseconds(t...
function _timescaledb_functions (line 20) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_timestamp(unixtime_...
function _timescaledb_functions (line 23) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_timestamp_without_t...
function _timescaledb_functions (line 28) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_date(unixtime_us BI...
function _timescaledb_functions (line 33) | CREATE OR REPLACE FUNCTION _timescaledb_functions.to_interval(unixtime_u...
function _timescaledb_functions (line 41) | CREATE OR REPLACE FUNCTION _timescaledb_functions.interval_to_usec(
function _timescaledb_functions (line 49) | CREATE OR REPLACE FUNCTION _timescaledb_functions.time_to_internal(time_...
function _timescaledb_functions (line 52) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_watermark(hyperta...
function _timescaledb_functions (line 55) | CREATE OR REPLACE FUNCTION _timescaledb_functions.cagg_watermark_materia...
function _timescaledb_functions (line 58) | CREATE OR REPLACE FUNCTION _timescaledb_functions.subtract_integer_from_...
function _timescaledb_functions (line 62) | CREATE OR REPLACE FUNCTION _timescaledb_functions.make_multirange_from_i...
function _timescaledb_functions (line 72) | CREATE OR REPLACE FUNCTION _timescaledb_functions.make_multirange_from_i...
function _timescaledb_functions (line 83) | CREATE OR REPLACE FUNCTION _timescaledb_functions.make_range_from_intern...
FILE: sql/uuidv7.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.generate_uuidv7() RETURNS UUID
function @extschema (line 8) | CREATE OR REPLACE FUNCTION @extschema@.to_uuidv7(
function @extschema (line 18) | CREATE OR REPLACE FUNCTION @extschema@.to_uuidv7_boundary(
function @extschema (line 26) | CREATE OR REPLACE FUNCTION @extschema@.uuid_timestamp(
function @extschema (line 35) | CREATE OR REPLACE FUNCTION @extschema@.uuid_timestamp_micros(
function @extschema (line 40) | CREATE OR REPLACE FUNCTION @extschema@.uuid_version(
FILE: sql/version.sql
function _timescaledb_functions (line 5) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_git_commit()
function _timescaledb_functions (line 9) | CREATE OR REPLACE FUNCTION _timescaledb_functions.get_os_info()
function _timescaledb_functions (line 13) | CREATE OR REPLACE FUNCTION _timescaledb_functions.tsl_loaded() RETURNS B...
FILE: sql/views.sql
type timescaledb_information (line 6) | CREATE OR REPLACE VIEW timescaledb_information.hypertables AS
type timescaledb_information (line 51) | CREATE OR REPLACE VIEW timescaledb_information.job_stats AS
type timescaledb_information (line 91) | CREATE OR REPLACE VIEW timescaledb_information.jobs AS
type timescaledb_information (line 116) | CREATE OR REPLACE VIEW timescaledb_information.continuous_aggregates AS
type timescaledb_information (line 157) | CREATE OR REPLACE VIEW timescaledb_information.chunks AS
type timescaledb_information (line 228) | CREATE OR REPLACE VIEW timescaledb_information.dimensions AS
type timescaledb_information (line 260) | CREATE OR REPLACE VIEW timescaledb_information.compression_settings AS
type timescaledb_information (line 297) | CREATE OR REPLACE VIEW timescaledb_information.job_errors
type timescaledb_information (line 335) | CREATE OR REPLACE VIEW timescaledb_information.job_history
type timescaledb_information (line 373) | CREATE OR REPLACE VIEW timescaledb_information.hypertable_compression_se...
type timescaledb_information (line 402) | CREATE OR REPLACE VIEW timescaledb_information.chunk_compression_setting...
type timescaledb_information (line 424) | CREATE OR REPLACE VIEW timescaledb_information.hypertable_columnstore_se...
type timescaledb_information (line 427) | CREATE OR REPLACE VIEW timescaledb_information.chunk_columnstore_setting...
type _timescaledb_config (line 431) | CREATE OR REPLACE VIEW _timescaledb_config.bgw_job AS
FILE: sql/views_experimental.sql
type timescaledb_experimental (line 5) | CREATE OR REPLACE VIEW timescaledb_experimental.policies AS
FILE: sql/with_telemetry.sql
function @extschema (line 5) | CREATE OR REPLACE FUNCTION @extschema@.get_telemetry_report()
FILE: src/adts/bit_array.h
type BitArray (line 24) | typedef struct BitArray BitArray;
type BitArrayIterator (line 25) | typedef struct BitArrayIterator BitArrayIterator;
FILE: src/adts/bit_array_impl.h
type BitArray (line 18) | typedef struct BitArray
type BitArrayIterator (line 24) | typedef struct BitArrayIterator
function bit_array_init (line 47) | static inline void
function bit_array_wrap_internal (line 58) | static inline void
function bit_array_data_bytes_used (line 73) | static inline size_t
function uint32 (line 79) | static inline uint32
function uint64 (line 85) | static inline uint64
function uint64 (line 92) | static inline uint64 *
function BitArray (line 98) | static inline BitArray
function bit_array_send (line 124) | static inline void
function bit_array_output (line 133) | static inline size_t
function bit_array_wrap (line 168) | static inline void
function bit_array_append (line 184) | static inline void
function bit_array_iterator_init (line 227) | static inline void
function pg_attribute_always_inline (line 235) | pg_attribute_always_inline static uint64
function bit_array_iterator_init_rev (line 280) | static inline void
function uint64 (line 290) | static inline uint64
function bit_array_append_bucket (line 340) | static void
function uint64 (line 347) | static uint64
FILE: src/adts/vec.h
type VEC_TYPE (line 57) | typedef struct VEC_TYPE
function VEC_SCOPE (line 102) | VEC_SCOPE void
function VEC_SCOPE (line 148) | VEC_SCOPE void
function VEC_SCOPE (line 162) | VEC_SCOPE VEC_TYPE *
function VEC_SCOPE (line 171) | VEC_SCOPE void
function VEC_SCOPE (line 183) | VEC_SCOPE void
function VEC_SCOPE (line 193) | VEC_SCOPE void
function VEC_SCOPE (line 199) | VEC_SCOPE VEC_ELEMENT_TYPE *
function VEC_SCOPE (line 206) | VEC_SCOPE const VEC_ELEMENT_TYPE *
function VEC_SCOPE (line 214) | VEC_SCOPE VEC_ELEMENT_TYPE *
function VEC_SCOPE (line 221) | VEC_SCOPE VEC_ELEMENT_TYPE *
function VEC_SCOPE (line 233) | VEC_SCOPE void
function VEC_SCOPE (line 239) | VEC_SCOPE VEC_ELEMENT_TYPE *
function VEC_SCOPE (line 251) | VEC_SCOPE void
function VEC_SCOPE (line 269) | VEC_SCOPE void
FILE: src/agg_bookend.c
type PolyDatum (line 37) | typedef struct PolyDatum
type TypeInfoCache (line 43) | typedef struct TypeInfoCache
type PolyDatumIOState (line 51) | typedef struct PolyDatumIOState
function PolyDatum (line 59) | static PolyDatum
function polydatum_serialize_type (line 75) | static void
function polydatum_serialize (line 96) | static void
function Oid (line 116) | static Oid
function PolyDatum (line 137) | static PolyDatum *
type TransCache (line 220) | typedef struct TransCache
type InternalCmpAggStore (line 228) | typedef struct InternalCmpAggStore
function InternalCmpAggStore (line 235) | inline static InternalCmpAggStore *
type InternalCmpAggStoreIOState (line 247) | typedef struct InternalCmpAggStoreIOState
function typeinfocache_polydatumcopy (line 253) | inline static void
function cmpproc_init (line 277) | inline static void
function cmpproc_cmp (line 297) | inline static bool
function Datum (line 306) | static inline Datum
function Datum (line 357) | static inline Datum
function Datum (line 424) | Datum
function Datum (line 441) | Datum
function Datum (line 458) | Datum
function Datum (line 476) | Datum
function Datum (line 494) | Datum
function Datum (line 533) | Datum
function Datum (line 573) | Datum
FILE: src/bgw/job.c
function MGCallbacks (line 64) | MGCallbacks *
function BackgroundWorkerHandle (line 77) | BackgroundWorkerHandle *
function job_execute_function (line 92) | static void
function ts_bgw_job_run_config_check (line 112) | void
function job_config_check (line 143) | static void
function BgwJob (line 179) | static BgwJob *
type AccumData (line 278) | typedef struct AccumData
function ScanTupleResult (line 284) | static ScanTupleResult
function ScanFilterResult (line 297) | static ScanFilterResult
function List (line 318) | List *
function List (line 392) | List *
function init_scan_by_proc_name (line 414) | static void
function init_scan_by_proc_schema (line 424) | static void
function init_scan_by_hypertable_id (line 434) | static void
function List (line 444) | List *
function List (line 474) | List *
function init_scan_by_job_id (line 501) | static void
function BgwJob (line 512) | BgwJob *
function ScanTupleResult (line 536) | static ScanTupleResult
function bgw_job_delete_scan (line 559) | static bool
function cancel_worker_for_job (line 587) | static void
function ts_bgw_job_delete_by_id (line 608) | bool
function ScanTupleResult (line 639) | static ScanTupleResult
function ts_bgw_job_update_by_id (line 768) | bool
function ts_bgw_job_check_max_retries (line 799) | static void
function ts_bgw_job_permission_check (line 829) | void
function ts_bgw_job_validate_job_owner (line 847) | void
function ts_is_telemetry_job (line 873) | bool
function JobResult (line 881) | JobResult
function ts_bgw_job_has_timeout (line 912) | bool
function TimestampTz (line 925) | TimestampTz
function zero_guc (line 936) | static void
function Oid (line 950) | Oid
function Datum (line 1004) | extern Datum
function ts_bgw_job_set_scheduler_test_hook (line 1193) | void
function ts_bgw_job_set_job_entrypoint_function_name (line 1199) | void
function ts_bgw_job_run_and_set_next_start (line 1215) | bool
function ts_bgw_job_insert_relation (line 1258) | int
function ts_bgw_job_validate_schedule_interval (line 1361) | void
FILE: src/bgw/job.h
type MGCallbacks (line 33) | typedef struct MGCallbacks
type BgwJobHistory (line 42) | typedef struct BgwJobHistory
type BgwJob (line 48) | typedef struct BgwJob
type JobResult (line 55) | typedef enum JobResult
FILE: src/bgw/job_stat.c
function bgw_job_stat_next_start_was_set (line 29) | static bool
function ScanTupleResult (line 35) | static ScanTupleResult
function bgw_job_stat_scan_one (line 49) | static bool
function bgw_job_stat_scan_job_id (line 70) | static inline bool
function TSDLLEXPORT (line 90) | TSDLLEXPORT BgwJobStat *
function ScanTupleResult (line 104) | static ScanTupleResult
function ts_bgw_job_stat_delete (line 112) | void
function ScanTupleResult (line 129) | static ScanTupleResult
type JobResultCtx (line 170) | typedef struct
function TimestampTz (line 187) | TimestampTz
function TimestampTz (line 279) | static TimestampTz
function TimestampTz (line 289) | static TimestampTz
function TimestampTz (line 299) | static TimestampTz
function float8 (line 319) | static float8
function TimestampTz (line 334) | static TimestampTz
function TimestampTz (line 445) | static TimestampTz
function TimestampTz (line 459) | static TimestampTz
function ScanTupleResult (line 472) | static ScanTupleResult
function ScanTupleResult (line 539) | static ScanTupleResult
function ScanTupleResult (line 558) | static ScanTupleResult
function bgw_job_stat_insert_relation (line 577) | static bool
function ts_bgw_job_stat_mark_start (line 633) | void
function ts_bgw_job_stat_mark_end (line 660) | void
function ts_bgw_job_stat_mark_crash_reported (line 691) | void
function ts_bgw_job_stat_end_was_marked (line 710) | bool
function TSDLLEXPORT (line 716) | TSDLLEXPORT void
function TSDLLEXPORT (line 740) | TSDLLEXPORT bool
function TSDLLEXPORT (line 760) | TSDLLEXPORT void
function ts_bgw_job_stat_should_execute (line 787) | bool
function TimestampTz (line 797) | TimestampTz
FILE: src/bgw/job_stat.h
type BgwJobStat (line 14) | typedef struct BgwJobStat
FILE: src/bgw/job_stat_history.c
type BgwJobStatHistoryContext (line 19) | typedef struct BgwJobStatHistoryContext
function Jsonb (line 27) | static Jsonb *
function Jsonb (line 70) | static Jsonb *
function bgw_job_stat_history_insert (line 93) | static void
function bgw_job_stat_history_mark_start (line 148) | static void
function bgw_job_stat_history_update_entry (line 158) | static void
function ScanTupleResult (line 201) | static ScanTupleResult
function bgw_job_stat_history_update (line 262) | static void
function ts_bgw_job_stat_history_update (line 299) | void
FILE: src/bgw/job_stat_history.h
type BgwJobStatHistoryUpdateType (line 14) | typedef enum BgwJobStatHistoryUpdateType
FILE: src/bgw/launcher_interface.c
function ts_bgw_worker_reserve (line 16) | extern bool
function ts_bgw_worker_release (line 25) | extern void
function ts_bgw_num_unreserved (line 33) | extern int
function ts_bgw_loader_api_version (line 43) | extern int
function ts_bgw_check_loader_api_version (line 53) | extern void
FILE: src/bgw/scheduler.c
function TimestampTz (line 47) | static TimestampTz
type JobState (line 68) | typedef enum JobState
type ScheduledBgwJob (line 94) | typedef struct ScheduledBgwJob
function BackgroundWorkerHandle (line 116) | BackgroundWorkerHandle *
function assert_that_worker_has_stopped (line 147) | static void
function mark_job_as_started (line 159) | static void
function mark_job_as_ended (line 168) | static void
function ErrorData (line 176) | static ErrorData *
function worker_state_cleanup (line 208) | static void
function scheduled_bgw_job_transition_state_to (line 277) | static void
function on_failure_to_start_job (line 380) | static void
function bgw_scheduler_on_postmaster_death (line 411) | static inline void
function scheduled_ts_bgw_job_start (line 431) | static void
function terminate_and_cleanup_job (line 469) | static void
function List (line 515) | List *
function ts_populate_scheduled_job_tuple (line 595) | void
function cmp_next_start (line 614) | static int
function start_scheduled_jobs (line 629) | static void
function TimestampTz (line 666) | static TimestampTz
function TimestampTz (line 691) | static TimestampTz
function terminate_all_jobs_and_release_workers (line 713) | static void
function wait_for_all_jobs_to_shutdown (line 738) | static void
function check_for_stopped_and_timed_out_jobs (line 752) | static void
function ts_bgw_scheduler_process (line 817) | void
function bgw_scheduler_before_shmem_exit_callback (line 926) | static void
function ts_bgw_scheduler_setup_callbacks (line 932) | void
function ts_bgw_scheduler_setup_mctx (line 941) | void
function handle_sighup (line 950) | static void
function ts_bgw_scheduler_register_signal_handlers (line 967) | void
function Datum (line 983) | Datum
function ts_bgw_job_cache_invalidate_callback (line 1006) | void
FILE: src/bgw/scheduler.h
type ScheduledBgwJob (line 16) | typedef struct ScheduledBgwJob ScheduledBgwJob;
FILE: src/bgw/timer.c
function on_postmaster_death (line 29) | static inline void
function int64 (line 43) | static int64
function wait_using_wait_latch (line 64) | static bool
function Timer (line 98) | static inline const Timer *
function ts_timer_wait (line 104) | bool
function TimestampTz (line 110) | TimestampTz
function ts_timer_set (line 117) | void
function Timer (line 123) | const Timer *
FILE: src/bgw/timer.h
type Timer (line 14) | typedef struct Timer
FILE: src/bgw/worker.h
type BgwParams (line 28) | typedef struct BgwParams
FILE: src/bgw_policy/chunk_stats.c
function ScanTupleResult (line 18) | static ScanTupleResult
function ScanTupleResult (line 29) | static ScanTupleResult
function ts_bgw_policy_chunk_stats_delete_row_only_by_job_id (line 48) | void
function ts_bgw_policy_chunk_stats_delete_by_chunk_id (line 72) | void
function ts_bgw_policy_chunk_stats_insert_with_relation (line 92) | static void
function ts_bgw_policy_chunk_stats_insert (line 116) | void
function BgwPolicyChunkStats (line 127) | BgwPolicyChunkStats *
function ScanTupleResult (line 155) | static ScanTupleResult
function ts_bgw_policy_chunk_stats_record_job_run (line 177) | void
FILE: src/bgw_policy/chunk_stats.h
type BgwPolicyChunkStats (line 11) | typedef struct BgwPolicyChunkStats
FILE: src/bgw_policy/policy.c
function ts_bgw_policy_delete_by_hypertable_id (line 13) | void
function ScanTupleResult (line 28) | ScanTupleResult
FILE: src/bmslist_utils.c
function TsBmsList (line 10) | TsBmsList
function TsBmsList (line 17) | TsBmsList
function TsBmsList (line 39) | TsBmsList
function ts_bmslist_contains_items (line 46) | bool
function ts_bmslist_contains_set (line 72) | bool
function ts_bmslist_free (line 91) | void
FILE: src/bmslist_utils.h
type List (line 20) | typedef List *TsBmsList;
FILE: src/cache.c
type CachePin (line 18) | typedef struct CachePin
function cache_reset_pinned_caches (line 24) | static void
function ts_cache_init (line 36) | void
function cache_destroy (line 62) | static void
function ts_cache_invalidate (line 82) | void
function Cache (line 102) | Cache *
function remove_pin (line 117) | static void
function cache_release_subtxn (line 140) | static int
function ts_cache_release (line 160) | int
function MemoryContext (line 166) | MemoryContext
function release_all_pinned_caches (line 219) | static void
function release_subtxn_pinned_caches (line 239) | static void
function cache_xact_end (line 285) | static void
function cache_subxact_abort (line 330) | static void
function _cache_init (line 359) | void
function _cache_fini (line 367) | void
FILE: src/cache.h
type CacheQueryFlags (line 14) | typedef enum CacheQueryFlags
type CacheQuery (line 23) | typedef struct CacheQuery
type CacheStats (line 31) | typedef struct CacheStats
type Cache (line 38) | typedef struct Cache
FILE: src/cache_invalidate.c
function cache_invalidate_relcache_all (line 56) | static inline void
function ts_cache_invalidate_set_proxy_tables (line 66) | void
function cache_invalidate_relcache_callback (line 81) | static void
function Datum (line 115) | Datum
function cache_invalidate_xact_end (line 122) | static void
function cache_invalidate_subxact_end (line 144) | static void
function _cache_invalidate_init (line 163) | void
function _cache_invalidate_fini (line 171) | void
FILE: src/chunk.c
type ChunkResult (line 111) | typedef enum ChunkResult
type ChunkStubScanCtx (line 127) | typedef struct ChunkStubScanCtx
function chunk_stub_is_valid (line 135) | static bool
type ChunkResult (line 142) | typedef ChunkResult (*on_chunk_stub_func)(ChunkScanCtx *ctx, ChunkStub *...
function HeapTuple (line 159) | static HeapTuple
function ts_chunk_formdata_fill (line 186) | void
function int64 (line 226) | int64
function int64 (line 232) | int64
function chunk_insert_relation (line 238) | static void
function ts_chunk_insert_lock (line 253) | void
type CollisionInfo (line 264) | typedef struct CollisionInfo
function ChunkResult (line 325) | static ChunkResult
function calculate_and_set_new_chunk_interval (line 373) | static bool
function ChunkResult (line 431) | static ChunkResult
function ChunkResult (line 473) | static ChunkResult
function ChunkStub (line 496) | static ChunkStub *
function chunk_collision_resolve (line 564) | static void
function chunk_add_constraints (line 591) | static int
function set_attoptions (line 610) | static void
function create_toast_table (line 681) | static void
function copy_hypertable_acl_to_relid (line 698) | static void
function Oid (line 725) | Oid
function int32 (line 845) | static int32
function Chunk (line 871) | static Chunk *
function chunk_insert_into_metadata_after_lock (line 912) | static void
function chunk_set_replica_identity (line 926) | static void
function chunk_create_table_constraints (line 975) | static void
function Oid (line 1002) | static Oid
function Chunk (line 1019) | static Chunk *
function get_hypertable_publication_filters (line 1035) | static void
function chunk_add_to_publication (line 1078) | static void
function chunk_add_to_publications (line 1099) | static void
function Chunk (line 1113) | static Chunk *
function chunk_add_inheritance (line 1180) | static void
function Chunk (line 1208) | static Chunk *
function Chunk (line 1336) | static Chunk *
function Chunk (line 1369) | Chunk *
function Chunk (line 1451) | Chunk *
function Chunk (line 1478) | Chunk *
function scan_add_chunk_context (line 1530) | static void
function List (line 1559) | List *
function ChunkStub (line 1637) | ChunkStub *
function Chunk (line 1651) | Chunk *
function Chunk (line 1675) | Chunk *
function ScanTupleResult (line 1739) | static ScanTupleResult
function Chunk (line 1778) | static Chunk *
function chunk_scan_ctx_init (line 1822) | static void
function chunk_scan_ctx_destroy (line 1844) | static void
function dimension_slice_and_chunk_constraint_join (line 1850) | static inline void
function chunk_collision_scan (line 1880) | static void
function chunk_scan_ctx_foreach_chunk_stub (line 1912) | static int
type ChunkScanCtxAddChunkData (line 1946) | typedef struct ChunkScanCtxAddChunkData
function ChunkResult (line 1953) | static ChunkResult
function TM_Result (line 1970) | TM_Result
function int32 (line 2039) | int32
function chunks_find_all_in_range_limit (line 2126) | static void
function Datum (line 2160) | Datum
function Chunk (line 2324) | static Chunk *
function Chunk (line 2405) | Chunk *
function chunk_scan_internal (line 2423) | static int
function List (line 2477) | List *
function Chunk (line 2545) | static Chunk *
function Chunk (line 2606) | Chunk *
function Chunk (line 2681) | Chunk *
function Chunk (line 2701) | Chunk *
function ts_chunk_free (line 2712) | void
function Chunk (line 2738) | Chunk *
function Chunk (line 2762) | Chunk *
function chunk_simple_scan (line 2780) | static bool
function chunk_simple_scan_by_name (line 2818) | static bool
function ts_chunk_simple_scan_by_reloid (line 2837) | bool
function chunk_simple_scan_by_id (line 2863) | static bool
function Datum (line 2880) | Datum
function ts_chunk_exists_relid (line 2899) | bool
function int32 (line 2910) | int32
function FormData_chunk (line 2923) | FormData_chunk
function Oid (line 2934) | Oid
function Oid (line 2957) | Oid
function ts_chunk_get_id (line 2968) | bool
function chunk_tuple_delete (line 2989) | static void
function init_scan_by_qualified_table_name (line 3125) | static void
function chunk_delete (line 3142) | static int
function ts_chunk_delete_by_name_internal (line 3156) | static int
function ts_chunk_delete_by_name (line 3173) | int
function ts_chunk_delete_by_relid_and_relname (line 3180) | int
function init_scan_by_hypertable_id (line 3190) | static void
function ts_chunk_delete_by_hypertable_id (line 3201) | int
function ts_chunk_exists_with_compression (line 3211) | bool
function init_scan_by_compressed_chunk_id (line 3233) | static void
function Chunk (line 3245) | Chunk *
function ts_chunk_contains_compressed_data (line 3272) | bool
function List (line 3280) | List *
function List (line 3303) | List *
function ChunkResult (line 3330) | static ChunkResult
function ts_chunk_recreate_all_constraints_for_dimension (line 3343) | void
function chunk_update_catalog_tuple (line 3380) | static void
function lock_chunk_tuple (line 3404) | static bool
function ts_chunk_set_name (line 3470) | bool
function ts_chunk_set_schema (line 3486) | bool
function ts_chunk_set_unordered (line 3502) | bool
function ts_chunk_set_partial (line 3509) | bool
function ts_chunk_set_frozen (line 3535) | bool
function ts_chunk_unset_frozen (line 3541) | bool
function ts_chunk_is_frozen (line 3547) | bool
function ts_chunk_clear_status (line 3556) | bool
function ts_chunk_add_status (line 3591) | static bool
function ts_chunk_set_compressed_chunk (line 3642) | bool
function ts_chunk_clear_compressed_chunk (line 3691) | bool
function ScanTupleResult (line 3741) | static ScanTupleResult
function ts_chunks_rename_schema_name (line 3761) | void
function chunk_cmp (line 3789) | static int
function Datum (line 3812) | static Datum
function ts_chunk_drop (line 3864) | void
function lock_referenced_tables (line 3888) | static void
function List (line 3912) | List *
function Datum (line 4133) | static Datum
function Datum (line 4172) | Datum
function Datum (line 4204) | Datum
function ChunkCompressionStatus (line 4417) | ChunkCompressionStatus
function ts_chunk_is_unordered (line 4461) | bool
function ts_chunk_is_compressed (line 4467) | bool
function ts_chunk_needs_compression (line 4473) | bool
function ts_chunk_needs_recompression (line 4479) | bool
function ts_chunk_is_partial (line 4487) | bool
function ts_chunk_validate_chunk_status_for_operation (line 4515) | bool
function Datum (line 4609) | Datum
function Datum (line 4615) | Datum
function Datum (line 4633) | Datum
function Datum (line 4643) | Datum
function ts_chunk_lock_if_exists (line 4694) | bool
function ScanIterator (line 4720) | ScanIterator
function ts_chunk_scan_iterator_set_chunk_id (line 4729) | void
function Hypercube (line 4748) | static Hypercube *
function add_foreign_table_as_chunk (line 4775) | static void
function ts_chunk_merge_on_dimension (line 4852) | void
function Datum (line 5018) | Datum
function ScanTupleResult (line 5051) | static ScanTupleResult
function ts_chunk_get_osm_chunk_id (line 5071) | int
function ts_osm_chunk_range_is_invalid (line 5116) | bool
function int32 (line 5122) | int32
function ChunkVec (line 5135) | static ChunkVec *
function ChunkVec (line 5151) | ChunkVec *
function ChunkVec (line 5160) | ChunkVec *
function ChunkVec (line 5171) | ChunkVec *
function chunk_creation_time_set_range (line 5210) | static int
function Chunk (line 5267) | static Chunk *
function Chunk (line 5311) | Chunk *
function Datum (line 5346) | Datum
function Datum (line 5371) | Datum
function Datum (line 5385) | Datum
function ts_chunk_detach_by_relid (line 5393) | void
FILE: src/chunk.h
type ChunkCompressionStatus (line 31) | typedef enum ChunkCompressionStatus
type ChunkOperation (line 38) | typedef enum ChunkOperation
type Hypercube (line 49) | typedef struct Hypercube Hypercube;
type Point (line 50) | typedef struct Point Point;
type Hyperspace (line 51) | typedef struct Hyperspace Hyperspace;
type Hypertable (line 52) | typedef struct Hypertable Hypertable;
type Chunk (line 62) | typedef struct Chunk
type ChunkStub (line 82) | typedef struct ChunkStub
type ChunkScanCtx (line 96) | typedef struct ChunkScanCtx
function chunk_stub_is_complete (line 113) | static inline bool
type ChunkScanEntry (line 120) | typedef struct ChunkScanEntry
type DisplayKeyData (line 132) | typedef struct DisplayKeyData
type ChunkVec (line 141) | typedef struct ChunkVec
FILE: src/chunk_adaptive.c
function int64 (line 42) | static int64
function Datum (line 70) | Datum
function int64 (line 84) | static int64
function int64 (line 118) | extern inline int64
type MinMaxResult (line 124) | typedef enum MinMaxResult
function MinMaxResult (line 136) | static MinMaxResult
function MinMaxResult (line 186) | static MinMaxResult
function MinMaxResult (line 233) | static MinMaxResult
function table_has_minmax_index (line 266) | static bool
function chunk_get_minmax (line 283) | static bool
function Datum (line 416) | Datum
function ts_chunk_sizing_func_validate (line 626) | void
function int64 (line 673) | static int64
function ts_chunk_adaptive_sizing_info_validate (line 696) | void
function Datum (line 752) | Datum
function Oid (line 826) | static Oid
function ChunkSizingInfo (line 837) | ChunkSizingInfo *
FILE: src/chunk_adaptive.h
type ChunkSizingInfo (line 10) | typedef struct ChunkSizingInfo
FILE: src/chunk_constraint.c
function ChunkConstraints (line 49) | ChunkConstraints *
function ChunkConstraints (line 63) | ChunkConstraints *
function chunk_constraints_expand (line 77) | static void
function chunk_constraint_dimension_choose_name (line 92) | static void
function chunk_constraint_choose_name (line 98) | static void
function ChunkConstraint (line 118) | ChunkConstraint *
function chunk_constraint_fill_tuple_values (line 154) | static void
function chunk_constraint_insert_relation (line 174) | static void
function ts_chunk_constraints_insert_metadata (line 188) | void
function ts_chunk_constraint_insert (line 210) | void
function ChunkConstraint (line 225) | ChunkConstraint *
function Constraint (line 276) | Constraint *
function Oid (line 378) | static Oid
function Oid (line 405) | static Oid
function DimensionSlice (line 434) | static const DimensionSlice *
function ts_chunk_constraints_create (line 453) | void
function ScanIterator (line 508) | ScanIterator
function ts_chunk_constraint_scan_iterator_set_slice_id (line 517) | void
function ts_chunk_constraint_scan_iterator_set_chunk_id (line 531) | void
function init_scan_by_chunk_id_constraint_name (line 545) | static void
function ChunkConstraints (line 573) | ChunkConstraints *
function ts_chunk_constraint_scan_by_dimension_slice (line 597) | int
function ts_chunk_constraint_scan_by_dimension_slice_to_list (line 659) | int
function ts_chunk_constraint_scan_by_dimension_slice_id (line 690) | int
function chunk_constraint_need_on_chunk (line 712) | static bool
function ts_chunk_constraints_add_dimension_constraints (line 747) | int
type ConstraintContext (line 759) | typedef struct ConstraintContext
function ConstraintProcessStatus (line 768) | static ConstraintProcessStatus
function ts_chunk_constraints_add_inheritable_constraints (line 795) | int
function ConstraintProcessStatus (line 814) | static ConstraintProcessStatus
function ts_chunk_constraints_add_inheritable_check_constraints (line 834) | int
function ts_chunk_constraint_create_on_chunk (line 846) | void
function hypertable_constraint_matches_tuple (line 878) | static bool
function chunk_constraint_drop_constraint (line 887) | static void
function ts_chunk_constraint_delete_by_hypertable_constraint_name (line 911) | int
function ts_chunk_constraint_delete_by_constraint_name (line 936) | int
function ts_chunk_constraint_delete_by_chunk_id (line 956) | int
function ts_chunk_constraint_delete_by_dimension_slice_id (line 979) | int
function ts_chunk_constraints_recreate (line 999) | void
function chunk_constraint_rename_on_chunk_table (line 1022) | static void
function chunk_constraint_rename_hypertable_from_tuple (line 1037) | static void
function ts_chunk_constraint_adjust_meta (line 1082) | int
function ts_chunk_constraint_update_slice_id (line 1136) | bool
function ts_chunk_constraint_rename_hypertable_constraint (line 1182) | int
function ts_chunk_constraint_delete_dimensional_constraints (line 1238) | int
function ts_chunk_constraint_drop_from_tuple (line 1269) | void
function check_chunk_constraint_violated (line 1291) | static void
function ts_chunk_constraint_check_violated (line 1344) | void
FILE: src/chunk_constraint.h
type ChunkConstraint (line 14) | typedef struct ChunkConstraint
type ChunkConstraints (line 19) | typedef struct ChunkConstraints
type Chunk (line 32) | typedef struct Chunk Chunk;
type DimensionSlice (line 33) | typedef struct DimensionSlice DimensionSlice;
type Hypercube (line 34) | typedef struct Hypercube Hypercube;
type ChunkScanCtx (line 35) | typedef struct ChunkScanCtx ChunkScanCtx;
FILE: src/chunk_index.c
function List (line 43) | static List *
function adjust_expr_attnos (line 90) | static void
function chunk_adjust_colref_attnos (line 116) | static void
function ts_adjust_indexinfo_attnos (line 135) | void
function Oid (line 165) | static Oid
function Oid (line 181) | Oid
function Oid (line 197) | static Oid
function Oid (line 234) | static Oid
function Oid (line 308) | static Oid
function chunk_index_create (line 330) | static void
function ts_chunk_index_create_from_adjusted_index_info (line 356) | void
function ts_chunk_index_create_all (line 373) | void
function List (line 427) | List *
function TSDLLEXPORT (line 457) | TSDLLEXPORT Oid
function ts_chunk_index_rename (line 478) | void
function ts_chunk_index_set_tablespace (line 512) | void
function TSDLLEXPORT (line 540) | TSDLLEXPORT void
function Oid (line 550) | static Oid
function TSDLLEXPORT (line 575) | TSDLLEXPORT List *
function ts_chunk_index_move_all (line 618) | void
FILE: src/chunk_index.h
type Chunk (line 17) | typedef struct Chunk Chunk;
type Hypertable (line 18) | typedef struct Hypertable Hypertable;
type ChunkIndexMapping (line 20) | typedef struct ChunkIndexMapping
function chunk_index_columns_changed (line 54) | static inline bool
function chunk_index_need_attnos_adjustment (line 65) | static inline bool
FILE: src/chunk_insert_state.c
function ExprState (line 38) | static inline ExprState *
function create_chunk_rri_constraint_expr (line 57) | static inline void
function ResultRelInfo (line 85) | ResultRelInfo *
function ProjectionInfo (line 109) | static ProjectionInfo *
function List (line 135) | static List *
function List (line 174) | static List *
function setup_on_conflict_state (line 205) | static void
function set_arbiter_indexes (line 325) | static void
function adjust_projections (line 352) | static void
function ChunkInsertState (line 405) | extern ChunkInsertState *
function ts_set_compression_status (line 518) | void
function ts_chunk_insert_state_destroy (line 528) | extern void
FILE: src/chunk_insert_state.h
type ChunkTupleRouting (line 16) | typedef struct ChunkTupleRouting ChunkTupleRouting;
type CompressionSettings (line 17) | typedef struct CompressionSettings CompressionSettings;
type tuple_filtering_constraints (line 18) | typedef struct tuple_filtering_constraints tuple_filtering_constraints;
type Bloom1Hasher (line 19) | typedef struct Bloom1Hasher Bloom1Hasher;
type ScanKeyWithAttnos (line 26) | typedef struct ScanKeyWithAttnos
type CachedDecompressionState (line 38) | typedef struct CachedDecompressionState
type SharedCounters (line 67) | typedef struct SharedCounters
type ChunkInsertState (line 91) | typedef struct ChunkInsertState
FILE: src/chunk_scan.c
function Chunk (line 40) | Chunk **
FILE: src/chunk_tuple_routing.c
function ChunkTupleRouting (line 19) | ChunkTupleRouting *
function ts_chunk_tuple_routing_destroy (line 53) | void
function destroy_chunk_insert_state_single_chunk (line 61) | static void
function destroy_chunk_insert_state (line 67) | static void
function ChunkInsertState (line 73) | extern ChunkInsertState *
function ts_chunk_tuple_routing_decompress_for_insert (line 223) | extern void
FILE: src/chunk_tuple_routing.h
type ModifyHypertableState (line 14) | typedef struct ModifyHypertableState ModifyHypertableState;
type ChunkTupleRouting (line 16) | typedef struct ChunkTupleRouting
FILE: src/compat/compat.h
function ClusterParams (line 252) | static inline ClusterParams *
function get_reindex_options (line 279) | static inline int
type VacuumCutoffs (line 317) | struct VacuumCutoffs
function vacuum_get_cutoffs (line 327) | static inline bool
function AclResult (line 456) | static inline AclResult
function object_ownercheck (line 481) | static inline bool
function RestrictSearchPath (line 503) | static inline void
function pg_cmp_u32 (line 659) | static inline int
function initReadOnlyStringInfo (line 713) | static inline void
function ItemPointer (line 870) | static inline ItemPointer
function Datum (line 876) | static inline Datum
FILE: src/constraint.c
function ts_constraint_process (line 24) | int
function Form_pg_constraint (line 71) | Form_pg_constraint
FILE: src/constraint.h
type ConstraintProcessStatus (line 20) | typedef enum ConstraintProcessStatus
type ConstraintProcessStatus (line 28) | typedef ConstraintProcessStatus (*constraint_func)(HeapTuple constraint_...
FILE: src/copy.c
type TSCopyInsertMethod (line 65) | typedef enum TSCopyInsertMethod
type TSCopyMultiInsertBuffer (line 94) | typedef struct TSCopyMultiInsertBuffer
type TSCopyMultiInsertInfo (line 131) | typedef struct TSCopyMultiInsertInfo
type MultiInsertBufferEntry (line 148) | typedef struct MultiInsertBufferEntry
function CopyChunkState (line 154) | static CopyChunkState *
function can_skip_constraint_check (line 178) | static bool
function TSCopyMultiInsertBuffer (line 217) | static TSCopyMultiInsertBuffer *
function TSCopyMultiInsertBuffer (line 313) | static inline TSCopyMultiInsertBuffer *
function HTAB (line 340) | static HTAB *
function TSCopyMultiInsertInfoInit (line 355) | static void
function TSCopyMultiInsertInfoIsFull (line 374) | static inline bool
function TSCopyMultiInsertBufferFlush (line 387) | static inline int
function TSCopyMultiInsertBufferCleanup (line 538) | static inline void
function TSCmpBuffersByUsage (line 569) | static int
function TSCopyMultiInsertInfoFlush (line 596) | static inline void
function TSCopyMultiInsertInfoFlushAndCleanup (line 658) | static inline void
function TupleTableSlot (line 685) | static inline TupleTableSlot *
function TSCopyMultiInsertInfoStore (line 708) | static inline void
function copy_chunk_state_destroy (line 744) | static void
function next_copy_from (line 751) | static bool
function copy_table_to_chunk_error_callback (line 761) | static void
function TSCopyInsertMethod (line 768) | static TSCopyInsertMethod
function uint64 (line 834) | static uint64
function List (line 1302) | static List *
function copy_constraints_and_check (line 1372) | static void
function timescaledb_DoCopy (line 1435) | void
function next_copy_from_table_to_chunks (line 1516) | static bool
function timescaledb_move_from_table_to_chunks (line 1540) | void
FILE: src/copy.h
type CopyChunkState (line 18) | typedef struct CopyChunkState CopyChunkState;
type Hypertable (line 19) | typedef struct Hypertable Hypertable;
type CopyChunkState (line 24) | typedef struct CopyChunkState
FILE: src/cross_module_fn.c
function error_no_default_fn_community (line 117) | static void
function error_no_default_fn_bool_void_community (line 129) | static bool
function job_execute_default_fn (line 136) | static bool
function tsl_postprocess_plan_stub (line 143) | static void
function process_compress_table_default (line 148) | static bool
function columnstore_setup_default (line 155) | static void
function Datum (line 162) | static Datum
function error_no_default_fn_chunk_insert_state_community (line 175) | static void
function Datum (line 192) | static Datum
function Datum (line 204) | static Datum
function DDLResult (line 216) | static DDLResult
function continuous_agg_update_options_default (line 223) | static void
function continuous_agg_invalidate_raw_ht_all_default (line 230) | static void
function continuous_agg_invalidate_mat_ht_all_default (line 237) | static void
function continuous_agg_dml_invalidate_default (line 245) | static void
function PGDLLEXPORT (line 255) | PGDLLEXPORT Datum
function preprocess_query_tsl_default_fn_community (line 261) | static void
function PGFunction (line 267) | static PGFunction
FILE: src/cross_module_fn.h
type JsonbParseState (line 32) | typedef struct JsonbParseState JsonbParseState;
type Hypertable (line 33) | typedef struct Hypertable Hypertable;
type Chunk (line 34) | typedef struct Chunk Chunk;
type ChunkInsertState (line 35) | typedef struct ChunkInsertState ChunkInsertState;
type CopyChunkState (line 36) | typedef struct CopyChunkState CopyChunkState;
type ModifyHypertableState (line 37) | typedef struct ModifyHypertableState ModifyHypertableState;
type RowCompressor (line 38) | typedef struct RowCompressor RowCompressor;
type BulkWriter (line 39) | typedef struct BulkWriter BulkWriter;
type CrossModuleFunctions (line 41) | typedef struct CrossModuleFunctions
FILE: src/custom_type_cache.c
function CustomTypeInfo (line 29) | extern CustomTypeInfo *
FILE: src/custom_type_cache.h
type CustomType (line 11) | typedef enum CustomType
type CustomTypeInfo (line 19) | typedef struct CustomTypeInfo
FILE: src/debug_point.c
type DebugPoint (line 52) | typedef struct DebugPoint
function uint64 (line 58) | static uint64
function debug_point_init (line 64) | static void
function debug_point_enable (line 76) | static void
function debug_point_release (line 100) | static void
function Datum (line 118) | Datum
function Datum (line 136) | Datum
function Datum (line 154) | Datum
function ts_debug_point_wait (line 178) | void
function ts_debug_point_raise_error_if_enabled (line 250) | void
FILE: src/dimension.c
type Anum_add_dimension (line 38) | enum Anum_add_dimension
type Anum_generic_add_dimension (line 53) | enum Anum_generic_add_dimension
function cmp_dimension_id (line 62) | static int
function Dimension (line 82) | const Dimension *
function Dimension (line 92) | Dimension *
function Dimension (line 109) | const Dimension *
function Dimension (line 115) | Dimension *
function Dimension (line 133) | const Dimension *
function hyperspace_get_num_dimensions_by_type (line 139) | static int
function DimensionType (line 154) | static inline DimensionType
function dimension_fill_in_from_tuple (line 170) | static void
function Datum (line 249) | static Datum
function DimensionSlice (line 269) | static DimensionSlice *
function Datum (line 308) | Datum
function int64 (line 323) | static int64
function DimensionSlice (line 331) | static DimensionSlice *
function Datum (line 368) | Datum
function DimensionSlice (line 382) | DimensionSlice *
function ts_dimension_get_open_slice_ordinal (line 406) | static int
function ts_dimension_get_closed_slice_ordinal (line 447) | static int
function ts_dimension_get_slice_ordinal (line 495) | int
function Hyperspace (line 518) | static Hyperspace *
function ScanTupleResult (line 531) | static ScanTupleResult
function dimension_scan_internal (line 542) | static int
function Hyperspace (line 563) | Hyperspace *
function ScanTupleResult (line 592) | static ScanTupleResult
function int32 (line 605) | int32
function DimensionVec (line 634) | DimensionVec *
function dimension_scan_update (line 640) | static int
function ScanTupleResult (line 667) | static ScanTupleResult
function ts_dimension_delete_by_hypertable_id (line 688) | int
function ScanTupleResult (line 710) | static ScanTupleResult
function int32 (line 779) | static int32
function int32 (line 842) | static int32
function ts_dimension_set_type (line 862) | int
function TSDLLEXPORT (line 879) | TSDLLEXPORT Oid
function ts_dimension_set_name (line 886) | int
function ts_dimension_set_chunk_interval (line 894) | int
function ts_dimension_set_compress_interval (line 904) | int
function Datum (line 922) | Datum
function Point (line 942) | Point *
function TSDLLEXPORT (line 953) | TSDLLEXPORT Point *
function int64 (line 1004) | static int64
function ChunkInterval (line 1031) | static ChunkInterval
function int64 (line 1082) | static int64
function Datum (line 1139) | Datum
function dimension_add_not_null_on_column (line 1154) | static void
function ts_dimension_update (line 1171) | void
function Datum (line 1238) | Datum
function Datum (line 1289) | Datum
function DimensionInfo (line 1320) | DimensionInfo *
function DimensionInfo (line 1337) | DimensionInfo *
function dimension_info_validate_open (line 1354) | static void
function dimension_info_validate_closed (line 1396) | static void
function ts_dimension_info_validate (line 1420) | void
function int32 (line 1508) | int32
function Datum (line 1529) | static Datum
function Datum (line 1585) | static Datum
function Datum (line 1692) | Datum
function TSDLLEXPORT (line 1721) | TSDLLEXPORT Datum
function Datum (line 1737) | static Datum
function TSDLLEXPORT (line 1760) | TSDLLEXPORT Datum
function DimensionInfo (line 1807) | static DimensionInfo *
function Datum (line 1825) | Datum
function Datum (line 1844) | Datum
function Datum (line 1859) | Datum
function ScanTupleResult (line 1871) | static ScanTupleResult
function ts_dimensions_rename_schema_name (line 1931) | void
FILE: src/dimension.h
type PartitioningInfo (line 19) | typedef struct PartitioningInfo PartitioningInfo;
type DimensionSlice (line 20) | typedef struct DimensionSlice DimensionSlice;
type DimensionVec (line 21) | typedef struct DimensionVec DimensionVec;
type ChunkInterval (line 28) | typedef struct ChunkInterval
function chunk_interval_set (line 39) | static inline void
type DimensionType (line 55) | typedef enum DimensionType
type Dimension (line 63) | typedef struct Dimension
type Hyperspace (line 81) | typedef struct Hyperspace
type Point (line 97) | typedef struct Point
type Hypertable (line 117) | typedef struct Hypertable Hypertable;
type DimensionInfo (line 129) | typedef struct DimensionInfo
FILE: src/dimension_slice.c
function DimensionSlice (line 30) | static inline DimensionSlice *
function DimensionSlice (line 36) | static inline DimensionSlice *
function DimensionSlice (line 47) | static inline DimensionSlice *
function HeapTuple (line 62) | static HeapTuple
function dimension_slice_formdata_fill (line 80) | static inline void
function lock_dimension_slice_tuple (line 107) | static bool
function dimension_slice_update_catalog_tuple (line 183) | static void
function dimension_slice_delete_catalog_tuple (line 209) | static void
function DimensionSlice (line 223) | DimensionSlice *
function ts_dimension_slice_cmp (line 235) | int
function ts_dimension_slice_cmp_coordinate (line 246) | int
function tuple_is_deleted (line 259) | static bool
function lock_result_ok_or_abort (line 269) | static void
function ScanTupleResult (line 308) | static ScanTupleResult
function ScanTupleResult (line 339) | static ScanTupleResult
function dimension_slice_scan_limit_direction_internal (line 370) | static int
function dimension_slice_scan_limit_internal (line 394) | static int
function DimensionVec (line 425) | DimensionVec *
function ts_dimension_slice_scan_list (line 467) | void
function ts_dimension_slice_scan_iterator_set_range (line 505) | int
function DimensionVec (line 587) | DimensionVec *
function DimensionVec (line 641) | DimensionVec *
function DimensionVec (line 677) | DimensionVec *
function DimensionVec (line 708) | DimensionVec *
function ScanTupleResult (line 746) | static ScanTupleResult
function ts_dimension_slice_delete_by_dimension_id (line 791) | int
function ts_dimension_slice_delete_by_id (line 819) | int
function ScanTupleResult (line 832) | static ScanTupleResult
function ts_dimension_slice_scan_for_existing (line 871) | bool
function DimensionSlice (line 904) | DimensionSlice *
function ScanTupleResult (line 918) | static ScanTupleResult
function DimensionSlice (line 931) | DimensionSlice *
function ScanIterator (line 957) | ScanIterator
function ts_dimension_slice_scan_iterator_set_slice_id (line 967) | void
function DimensionSlice (line 979) | DimensionSlice *
function DimensionSlice (line 998) | DimensionSlice *
function ts_dimension_slices_collide (line 1016) | bool
function ts_dimension_slices_equal (line 1033) | bool
function ts_dimension_slice_cut (line 1058) | bool
function ts_dimension_slice_free (line 1083) | void
function dimension_slice_insert_relation (line 1091) | static bool
function ts_dimension_slice_insert_multi (line 1131) | int
function ts_dimension_slice_insert (line 1154) | void
function ScanTupleResult (line 1170) | static ScanTupleResult
function DimensionSlice (line 1181) | DimensionSlice *
function DimensionSlice (line 1211) | DimensionSlice *
function int32 (line 1241) | int32
function List (line 1296) | List *
function ts_osm_chunk_range_overlaps (line 1361) | bool
function ts_dimension_slice_range_update (line 1380) | int
FILE: src/dimension_slice.h
type DimensionSlice (line 39) | typedef struct DimensionSlice
type DimensionVec (line 46) | typedef struct DimensionVec DimensionVec;
type Hypercube (line 47) | typedef struct Hypercube Hypercube;
FILE: src/dimension_vector.c
function cmp_slices (line 8) | static int
function cmp_coordinate_and_slice (line 17) | static int
function DimensionVec (line 26) | static DimensionVec *
function DimensionVec (line 42) | DimensionVec *
function DimensionVec (line 53) | DimensionVec *
function DimensionVec (line 64) | DimensionVec *
function DimensionVec (line 80) | DimensionVec *
function DimensionVec (line 92) | DimensionVec *
function ts_dimension_vec_remove_slice (line 99) | void
function dimension_vec_is_sorted (line 112) | static inline bool
function DimensionSlice (line 128) | DimensionSlice *
function ts_dimension_vec_find_slice_index (line 150) | int
function DimensionSlice (line 162) | const DimensionSlice *
function ts_dimension_vec_free (line 171) | void
FILE: src/dimension_vector.h
type DimensionVec (line 17) | typedef struct DimensionVec
FILE: src/estimate.c
function estimate_max_spread_var (line 30) | static double
function estimate_max_spread_opexpr (line 53) | static double
function estimate_max_spread_expr (line 82) | static double
function ts_estimate_group_expr_interval (line 100) | double
function group_estimate_integer_division (line 117) | static double
function group_estimate_funcexpr (line 135) | static double
function group_estimate_expr (line 147) | static double
function group_estimate_opexpr (line 161) | static double
function ts_estimate_group (line 192) | double
FILE: src/event_trigger.c
function List (line 37) | List *
function List (line 88) | static List *
function EventTriggerDropTableConstraint (line 111) | static EventTriggerDropTableConstraint *
function EventTriggerDropRelation (line 130) | static EventTriggerDropRelation *
function EventTriggerDropRelation (line 146) | static EventTriggerDropRelation *
function EventTriggerDropView (line 163) | static EventTriggerDropView *
function EventTriggerDropSchema (line 176) | static EventTriggerDropSchema *
function EventTriggerDropTrigger (line 191) | static EventTriggerDropTrigger *
function EventTriggerDropForeignServer (line 208) | static EventTriggerDropForeignServer *
function List (line 223) | List *
function _event_trigger_init (line 335) | void
function _event_trigger_fini (line 343) | void
FILE: src/event_trigger.h
type EventTriggerDropType (line 11) | typedef enum EventTriggerDropType
type EventTriggerDropObject (line 23) | typedef struct EventTriggerDropObject
type EventTriggerDropTableConstraint (line 28) | typedef struct EventTriggerDropTableConstraint
type EventTriggerDropRelation (line 36) | typedef struct EventTriggerDropRelation
type EventTriggerDropView (line 44) | typedef struct EventTriggerDropView
type EventTriggerDropSchema (line 51) | typedef struct EventTriggerDropSchema
type EventTriggerDropTrigger (line 57) | typedef struct EventTriggerDropTrigger
type EventTriggerDropForeignServer (line 65) | typedef struct EventTriggerDropForeignServer
FILE: src/expression_utils.c
function ts_extract_expr_args (line 29) | bool TSDLLEXPORT
function List (line 118) | List *
function Node (line 146) | static Node *
function Plan (line 203) | Plan *
function Node (line 257) | Node *
FILE: src/expression_utils.h
type Plan (line 19) | typedef Plan *(*ts_plan_tree_walkerfunc)(Plan *, void *);
FILE: src/extension.c
type ExtensionState (line 65) | enum ExtensionState
function extension_loader_present (line 81) | static bool
function ts_extension_check_version (line 89) | void
function ts_extension_check_server_version (line 119) | void
function extension_set_state (line 142) | static bool
function extension_update_state (line 174) | static void
function Oid (line 213) | Oid
function ts_extension_invalidate (line 277) | void
function ts_extension_is_loaded (line 288) | bool
function ts_extension_is_loaded_and_not_upgrading (line 334) | bool
function ts_extension_is_proxy_table_relid (line 357) | bool
function Datum (line 365) | Datum
FILE: src/extension_constants.h
type TsExtensionSchemas (line 26) | typedef enum TsExtensionSchemas
FILE: src/extension_utils.c
type ExtensionState (line 38) | enum ExtensionState
function extension_exists (line 116) | inline static bool
function extension_is_transitioning (line 122) | inline static bool
function extension_current_state (line 141) | static enum ExtensionState
function extension_load_without_preload (line 179) | static void
FILE: src/foreign_key.c
function propagate_fk (line 45) | static void
function ts_chunk_copy_referencing_fk (line 98) | void
function ts_fk_propagate (line 117) | void
function clone_constraint_on_chunk (line 134) | static void
function createForeignKeyActionTriggers (line 262) | static void
function List (line 416) | static List *
function HeapTuple (line 455) | static HeapTuple
function constraint_get_trigger (line 497) | static void
function Oid (line 534) | static Oid
function ts_chunk_drop_referencing_fk_by_chunk_id (line 580) | void
FILE: src/func_cache.c
function Expr (line 39) | static Expr *
function Expr (line 69) | static Expr *
function Expr (line 80) | static Expr *
function Expr (line 98) | static Expr *
function Expr (line 118) | static Expr *
function time_bucket_group_estimate (line 134) | static double
function date_trunc_group_estimate (line 170) | static double
type FuncEntry (line 189) | typedef struct FuncEntry
function Oid (line 519) | static Oid
function ts_func_cache_init (line 526) | void
function FuncInfo (line 599) | FuncInfo *
function FuncInfo (line 612) | FuncInfo *
FILE: src/func_cache.h
type Expr (line 15) | typedef Expr *(*sort_transform_func)(FuncExpr *func);
type FuncOrigin (line 19) | typedef enum
type FuncInfo (line 36) | typedef struct FuncInfo
FILE: src/gapfill.c
function Datum (line 18) | Datum
FILE: src/guc.c
function ts_telemetry_on (line 32) | bool
function ts_function_telemetry_on (line 38) | bool
type config_enum_entry (line 44) | struct config_enum_entry
type config_enum_entry (line 53) | struct config_enum_entry
type config_enum_entry (line 61) | struct config_enum_entry
type config_enum_entry (line 186) | struct config_enum_entry
type FeatureFlag (line 212) | typedef struct
function ts_feature_flag_add (line 237) | static void
function ts_feature_flag_check (line 257) | void
function validate_chunk_cache_sizes (line 279) | static void
function assign_max_cached_chunks_per_hypertable_hook (line 301) | static void
function assign_max_open_chunks_per_insert_hook (line 310) | static void
function Oid (line 316) | static Oid
function check_segmentby_func (line 335) | static bool
function Oid (line 352) | Oid
function Oid (line 358) | static Oid
function check_orderby_func (line 377) | static bool
function Oid (line 394) | Oid
function chunk_skipping_assign_hook (line 407) | static void
function check_default_chunk_time_interval (line 433) | static bool
function assign_default_chunk_time_interval (line 475) | static void
function _guc_init (line 481) | void
FILE: src/guc.h
type CompressTruncateBehaviour (line 88) | typedef enum CompressTruncateBehaviour
type TelemetryLevel (line 97) | typedef enum TelemetryLevel
type DebugRequireOption (line 134) | typedef enum DebugRequireOption
type FeatureFlagType (line 158) | typedef enum
FILE: src/histogram.c
type Histogram (line 42) | typedef struct Histogram
function Datum (line 49) | Datum
function Histogram (line 119) | static inline Histogram *
function Datum (line 133) | Datum
function Datum (line 186) | Datum
function Datum (line 205) | Datum
function Datum (line 238) | Datum
FILE: src/hypercube.c
function Hypercube (line 27) | Hypercube *
function ts_hypercube_free (line 36) | void
function hypercube_is_sorted (line 48) | static inline bool
function Hypercube (line 64) | Hypercube *
function ts_hypercube_equal (line 80) | bool
function cmp_slices_by_dimension_id (line 95) | static int
function DimensionSlice (line 108) | DimensionSlice *
function DimensionSlice (line 128) | DimensionSlice *
function ts_hypercube_slice_sort (line 146) | void
function DimensionSlice (line 155) | const DimensionSlice *
function Hypercube (line 183) | Hypercube *
function ts_hypercube_find_existing_slices (line 236) | int
function Hypercube (line 278) | Hypercube *
function ts_hypercubes_collide (line 345) | bool
FILE: src/hypercube.h
type Hypercube (line 17) | typedef struct Hypercube
FILE: src/hypertable.c
function Oid (line 76) | Oid
function ts_hypertable_has_privs_of (line 99) | bool
function Oid (line 112) | Oid
function ts_hypertable_permissions_check_by_id (line 125) | void
function Oid (line 132) | static Oid
function HeapTuple (line 143) | static HeapTuple
function ts_hypertable_formdata_fill (line 181) | void
function Hypertable (line 242) | Hypertable *
function Hypertable (line 271) | Hypertable *
function ScanTupleResult (line 335) | static ScanTupleResult
function Oid (line 351) | Oid
function int32 (line 385) | int32
function hypertable_scan_limit_internal (line 396) | static int
function hypertable_update_catalog_tuple (line 428) | static void
function lock_hypertable_tuple (line 446) | static bool
function ts_hypertable_scan_with_memory_context (line 510) | int
function TSDLLEXPORT (line 548) | TSDLLEXPORT ObjectAddress
function TSDLLEXPORT (line 610) | TSDLLEXPORT void
function TSDLLEXPORT (line 622) | TSDLLEXPORT void
function ScanTupleResult (line 651) | static ScanTupleResult
function ts_hypertable_delete_by_name (line 704) | int
function ts_hypertable_delete_by_id (line 731) | int
function ts_hypertable_drop (line 753) | void
function ScanTupleResult (line 775) | static ScanTupleResult
function ts_hypertable_reset_associated_schema_name (line 796) | int
function ts_hypertable_set_name (line 818) | int
function ts_hypertable_set_schema (line 832) | int
function ts_hypertable_set_num_dimensions (line 846) | int
function hypertable_insert_relation (line 864) | static void
function hypertable_insert (line 878) | static void
function ScanTupleResult (line 943) | static ScanTupleResult
function Hypertable (line 952) | Hypertable *
function Hypertable (line 962) | Hypertable *
function hypertable_chunk_store_free (line 986) | static void
function Chunk (line 996) | Chunk *
function Chunk (line 1020) | Chunk *
function Chunk (line 1051) | Chunk *
function ts_hypertable_has_tablespace (line 1080) | bool
function hypertable_get_chunk_round_robin_index (line 1088) | static int
function Tablespace (line 1132) | Tablespace *
function Tablespace (line 1167) | Tablespace *
function Oid (line 1185) | static inline Oid
function Oid (line 1201) | Oid
function ts_is_hypertable (line 1207) | bool
function Oid (line 1224) | static Oid
function table_has_rules (line 1266) | inline static bool
function ts_hypertable_has_chunks (line 1272) | bool
function hypertable_create_schema (line 1278) | static void
function hypertable_validate_constraints (line 1300) | static void
function Datum (line 1375) | static Datum
function Datum (line 1425) | static Datum
function Datum (line 1523) | Datum
function Oid (line 1590) | static Oid
function Datum (line 1613) | Datum
function ts_validate_basetable_columns (line 1662) | static void
function ts_hypertable_create_from_info (line 1706) | bool
function ScanTupleResult (line 1971) | static ScanTupleResult
function ts_hypertables_rename_schema_name (line 2015) | void
function ts_is_partitioning_column (line 2033) | bool
function ts_is_partitioning_column_name (line 2046) | bool
function integer_now_func_validate (line 2059) | static void
function Datum (line 2107) | Datum
function ts_hypertable_set_compressed (line 2168) | bool
function ts_hypertable_unset_compressed (line 2187) | bool
function ts_hypertable_set_compress_interval (line 2203) | bool
function ts_hypertable_create_compressed (line 2222) | bool
function int64 (line 2308) | int64
function ts_hypertable_has_compression_table (line 2373) | bool
function ts_hypertable_update_status_osm (line 2391) | bool
function ts_hypertable_update_chunk_sizing (line 2408) | bool
function DimensionSlice (line 2438) | DimensionSlice *
function Datum (line 2492) | Datum
function TSDLLEXPORT (line 2636) | TSDLLEXPORT bool
FILE: src/hypertable.h
type SubspaceStore (line 23) | typedef struct SubspaceStore SubspaceStore;
type Chunk (line 24) | typedef struct Chunk Chunk;
type Hypercube (line 25) | typedef struct Hypercube Hypercube;
type ChunkRangeSpace (line 26) | typedef struct ChunkRangeSpace ChunkRangeSpace;
type Hypertable (line 42) | typedef struct Hypertable
type Anum_create_hypertable (line 53) | enum Anum_create_hypertable
type Anum_generic_create_hypertable (line 65) | enum Anum_generic_create_hypertable
type HypertableCreateFlags (line 76) | typedef enum HypertableCreateFlags
FILE: src/hypertable_cache.c
type HypertableCacheQuery (line 24) | typedef struct HypertableCacheQuery
type HypertableCacheEntry (line 38) | typedef struct
function hypertable_cache_valid_result (line 44) | static bool
function Cache (line 52) | static Cache *
function ScanTupleResult (line 85) | static ScanTupleResult
function hypertable_cache_missing_error (line 136) | static void
function ts_hypertable_cache_invalidate_callback (line 152) | void
function Datum (line 165) | Datum
function Hypertable (line 174) | Hypertable *
function Hypertable (line 192) | Hypertable *
function Hypertable (line 200) | Hypertable *
function TSDLLEXPORT (line 208) | TSDLLEXPORT Hypertable *
function Hypertable (line 216) | Hypertable *
function TSDLLEXPORT (line 231) | extern TSDLLEXPORT Cache *
function _hypertable_cache_init (line 237) | void
function _hypertable_cache_fini (line 244) | void
FILE: src/hypertable_restrict_info.c
type DimensionValues (line 33) | typedef struct DimensionValues
function DimensionRestrictInfoOpen (line 42) | static DimensionRestrictInfoOpen *
function DimensionRestrictInfoClosed (line 53) | static DimensionRestrictInfoClosed *
function DimensionRestrictInfo (line 64) | static DimensionRestrictInfo *
function DimensionRestrictInfo (line 91) | static DimensionRestrictInfo *
function dimension_restrict_info_is_trivial (line 105) | static bool
function dimension_restrict_info_open_add (line 129) | static bool
function List (line 204) | static List *
function dimension_restrict_info_closed_add (line 225) | static bool
function HypertableRestrictInfo (line 272) | HypertableRestrictInfo *
function DimensionRestrictInfo (line 314) | static DimensionRestrictInfo *
type DimensionValues (line 327) | typedef DimensionValues *(*get_dimension_values)(Const *c, bool use_or);
function hypertable_restrict_info_add_expr (line 329) | static void
function DimensionValues (line 505) | static DimensionValues *
function DimensionValues (line 518) | static DimensionValues *
function DimensionValues (line 543) | static DimensionValues *
function hypertable_restrict_info_add_restrict_info (line 551) | static void
function ts_hypertable_restrict_info_add (line 592) | void
function DimensionVec (line 615) | static DimensionVec *
function List (line 642) | static List *
function Chunk (line 766) | Chunk **
function chunk_cmp_impl (line 880) | static int
function chunk_cmp (line 891) | static int
function chunk_cmp_reverse (line 897) | static int
function Chunk (line 914) | Chunk **
FILE: src/hypertable_restrict_info.h
type DimensionRestrictInfo (line 10) | typedef struct DimensionRestrictInfo
type DimensionRestrictInfoOpen (line 15) | typedef struct DimensionRestrictInfoOpen
type DimensionRestrictInfoClosed (line 24) | typedef struct DimensionRestrictInfoClosed
type HypertableRestrictInfo (line 33) | typedef struct HypertableRestrictInfo
FILE: src/import/allpaths.c
function set_foreign_pathlist (line 43) | static void
function set_tablesample_rel_pathlist (line 51) | static void
function ts_create_plain_partial_paths (line 95) | static void
function set_plain_rel_pathlist (line 112) | static void
function ts_set_append_rel_pathlist (line 139) | void
function set_rel_pathlist (line 232) | static void
function set_dummy_rel_pathlist (line 314) | static void
function set_rel_consider_parallel (line 340) | static void
function ts_set_append_rel_size (line 516) | static void
function set_foreign_size (line 818) | static void
function set_tablesample_rel_size (line 832) | static void
function set_plain_rel_size (line 868) | static void
function ts_set_rel_size (line 885) | void
FILE: src/import/heapswap.c
type Oid (line 49) | typedef Oid RelFileNumber;
function ts_swap_relation_files (line 93) | void
function ts_finish_heap_swap (line 472) | void
FILE: src/import/list.c
function List (line 35) | List *
FILE: src/import/planner.c
function ts_make_inh_translation_list (line 46) | void
type PathTarget (line 155) | struct PathTarget
type PlannerInfo (line 156) | struct PlannerInfo
type Query (line 158) | struct Query
type List (line 160) | struct List
type List (line 161) | struct List
type Expr (line 171) | struct Expr
type Expr (line 171) | struct Expr
type Node (line 208) | struct Node
type Aggref (line 221) | struct Aggref
type Aggref (line 221) | struct Aggref
type Aggref (line 225) | struct Aggref
type Aggref (line 232) | struct Aggref
function ts_get_variable_range (line 250) | bool
function Sort (line 378) | Sort *
function Sort (line 406) | Sort *
function Plan (line 474) | Plan *
function List (line 647) | List *
function Node (line 688) | Node *
function Node (line 695) | static Node *
function Result (line 762) | static Result *
function copy_plan_costsize (line 781) | static void
function Plan (line 805) | static Plan *
function ts_add_child_eq_member (line 832) | void
FILE: src/import/planner.h
type PlannerInfo (line 29) | struct PlannerInfo
FILE: src/import/ts_explain.c
function ts_show_expression (line 25) | static void
function ts_show_qual (line 45) | static void
function ts_show_scan_qual (line 65) | void
function ts_show_instrumentation_count (line 80) | void
FILE: src/indexing.c
function index_has_attribute (line 33) | static bool
function ts_indexing_verify_columns (line 86) | void
function ts_indexing_verify_index (line 112) | void
function List (line 122) | static List *
function create_default_index (line 138) | static void
function Node (line 165) | static const Node *
function create_default_indexes (line 183) | static void
function indexing_create_and_verify_hypertable_indexes (line 223) | static void
function ts_indexing_relation_has_primary_or_unique_index (line 278) | bool TSDLLEXPORT
function ObjectAddress (line 317) | extern ObjectAddress
function ts_indexing_verify_indexes (line 396) | void
function ts_indexing_create_default_indexes (line 402) | void
function TSDLLEXPORT (line 408) | TSDLLEXPORT Oid
type IndexValidity (line 445) | typedef enum IndexValidity
function ts_indexing_mark_as (line 451) | static bool
function ts_indexing_mark_as_valid (line 494) | void
function ts_indexing_mark_as_invalid (line 501) | bool
function Datum (line 508) | Datum
function ts_indexing_compare (line 524) | bool
FILE: src/init.c
function cleanup_on_pg_proc_exit (line 70) | static void
function _PG_init (line 93) | void
function TSDLLEXPORT (line 135) | TSDLLEXPORT Datum
FILE: src/jsonb_utils.c
function ts_jsonb_add_null (line 22) | void
function ts_jsonb_add_bool (line 31) | void
function ts_jsonb_add_str (line 42) | void
function ts_jsonb_add_str_element (line 59) | static void
function ts_jsonb_add_str_array (line 76) | void
function PGFunction (line 102) | static PGFunction
function ts_jsonb_set_value_by_type (line 118) | void
function ts_jsonb_add_int32 (line 144) | void
function ts_jsonb_add_int64 (line 153) | void
function ts_jsonb_add_interval (line 162) | void
function ts_jsonb_add_value (line 171) | void
function ts_jsonb_add_pair (line 187) | static void
function ts_jsonb_get_bool_field (line 222) | bool
function int32 (line 240) | int32
function int64 (line 258) | int64
function Interval (line 276) | Interval *
function ts_jsonb_equal (line 291) | bool
function ts_jsonb_has_key_value_str_field (line 312) | bool
FILE: src/license_guc.c
type LicenseType (line 60) | typedef enum
function LicenseType (line 67) | static LicenseType
function ts_license_is_apache (line 79) | bool
function TSDLLEXPORT (line 85) | TSDLLEXPORT void
function tsl_module_load (line 118) | static bool
function tsl_module_init (line 137) | static void
function ts_license_guc_check_hook (line 154) | bool
function ts_license_guc_assign_hook (line 202) | void
FILE: src/loader/bgw_counter.c
type CounterState (line 33) | typedef struct CounterState
function bgw_counter_state_init (line 45) | static void
function ts_bgw_counter_setup_gucs (line 61) | extern void
function ts_bgw_counter_shmem_alloc (line 85) | extern void
function ts_bgw_counter_shmem_startup (line 91) | extern void
function ts_bgw_counter_reinit (line 97) | extern void
function ts_bgw_total_workers_increment_by (line 106) | extern bool
function ts_bgw_total_workers_increment (line 122) | extern bool
function ts_bgw_total_workers_decrement_by (line 128) | extern void
function ts_bgw_total_workers_decrement (line 152) | extern void
function ts_bgw_total_workers_get (line 158) | extern int
FILE: src/loader/bgw_interface.c
function ts_bgw_interface_register_api_version (line 37) | void
function Datum (line 46) | Datum
function Datum (line 52) | Datum
function Datum (line 59) | Datum
function Datum (line 68) | Datum
function Datum (line 79) | Datum
function Datum (line 90) | Datum
FILE: src/loader/bgw_launcher.c
type AckResult (line 56) | typedef enum AckResult
type SchedulerState (line 63) | typedef enum SchedulerState
function launcher_sighup (line 89) | static void
type DbHashEntry (line 118) | typedef struct DbHashEntry
function bgw_on_postmaster_death (line 130) | static void
function report_bgw_limit_exceeded (line 140) | static void
function report_error_on_worker_register_failure (line 152) | static void
function BgwHandleStatus (line 173) | static BgwHandleStatus
function wait_for_background_worker_startup (line 193) | static void
function wait_for_background_worker_shutdown (line 216) | static void
function terminate_background_worker (line 233) | static void
function check_scheduler_restart_time (line 242) | static bool
function ts_bgw_cluster_launcher_init (line 251) | extern void
function register_entrypoint_for_db (line 298) | static bool
function HTAB (line 329) | static HTAB *
function DbHashEntry (line 343) | static DbHashEntry *
type SignalBackendResult (line 375) | enum SignalBackendResult
function ts_signal_backend (line 390) | static enum SignalBackendResult
function terminate_backends_by_backend_type (line 424) | static void
function populate_database_htab (line 454) | static void
function scheduler_modify_state (line 486) | static void
function scheduler_state_trans_disabled_to_enabled (line 495) | static void
function scheduler_state_trans_enabled_to_allocated (line 503) | static void
function scheduler_state_trans_started_to_allocated (line 517) | static void
function scheduler_state_trans_allocated_to_started (line 530) | static void
function scheduler_state_trans_enabled_to_disabled (line 552) | static void
function scheduler_state_trans_allocated_to_disabled (line 560) | static void
function scheduler_state_trans_started_to_disabled (line 570) | static void
function scheduler_state_trans_automatic (line 585) | static void
function scheduler_state_trans_automatic_all (line 607) | static void
function launcher_pre_shmem_cleanup (line 619) | static void
function AckResult (line 669) | static AckResult
function AckResult (line 684) | static AckResult
function AckResult (line 729) | static AckResult
function launcher_handle_message (line 760) | static bool
function Datum (line 815) | extern Datum
function database_checks (line 919) | static void
function process_settings (line 958) | static void
function PGFunction (line 987) | static PGFunction
function Datum (line 1046) | extern Datum
FILE: src/loader/bgw_message_queue.c
type MessageQueue (line 39) | typedef struct MessageQueue
type QueueResponseType (line 51) | typedef enum QueueResponseType
function queue_init (line 65) | static void
function ts_bgw_message_queue_shmem_startup (line 84) | extern void
function ts_bgw_message_queue_alloc (line 92) | extern void
function pid_t (line 108) | static pid_t
function queue_set_reader (line 120) | static void
function queue_reset_reader (line 139) | static void
function QueueResponseType (line 161) | static QueueResponseType
function BgwMessage (line 184) | static BgwMessage *
function BgwMessage (line 207) | static BgwMessage *
function shm_mq_result (line 227) | static shm_mq_result
function enqueue_message_wait_for_ack (line 253) | static bool
function ts_bgw_message_send_and_wait (line 306) | extern bool
function BgwMessage (line 334) | extern BgwMessage *
function ts_bgw_message_queue_set_reader (line 340) | extern void
type MessageAckSent (line 346) | typedef enum MessageAckSent
function MessageAckSent (line 359) | static MessageAckSent
function ts_bgw_message_send_ack (line 405) | extern void
function queue_shmem_cleanup (line 439) | static void
function ts_bgw_message_queue_shmem_cleanup (line 445) | extern void
FILE: src/loader/bgw_message_queue.h
type BgwMessageType (line 11) | typedef enum BgwMessageType
type BgwMessage (line 18) | typedef struct BgwMessage
FILE: src/loader/function_telemetry.c
function ts_function_telemetry_shmem_startup (line 24) | void
function ts_function_telemetry_shmem_alloc (line 63) | void
FILE: src/loader/function_telemetry.h
type FnTelemetryRendezvous (line 12) | typedef struct FnTelemetryRendezvous
type FnTelemetryHashEntry (line 18) | typedef struct FnTelemetryHashEntry
FILE: src/loader/loader.c
type TsExtension (line 118) | typedef struct TsExtension
function extension_is_loaded (line 185) | static bool
function ts_loader_extension_exists (line 198) | extern bool
function drop_statement_drops_extension (line 204) | static bool
function Oid (line 225) | static Oid
function drop_owned_statement_drops_extension (line 266) | static bool
function should_load_on_variable_set (line 292) | static bool
function should_load_on_alter_extension (line 309) | static bool
function should_load_on_create_extension (line 330) | static bool
function load_utility_cmd (line 397) | static bool
function stop_workers_on_db_drop (line 415) | static void
function database_allowconn (line 434) | static bool
function post_analyze_hook (line 467) | static void
function timescaledb_shmem_startup_hook (line 613) | static void
function timescaledb_shmem_request_hook (line 629) | static void
function extension_mark_loader_present (line 641) | static void
function _PG_init (line 649) | void
function do_load (line 711) | inline static void
function extension_check (line 792) | inline static void
function ts_loader_extension_check (line 813) | extern void
function call_extension_post_parse_analyze_hook (line 822) | static void
FILE: src/loader/lwlocks.c
type TSLWLocks (line 23) | typedef struct TSLWLocks
function ts_lwlocks_shmem_startup (line 31) | void
function ts_lwlocks_shmem_alloc (line 66) | void
FILE: src/net/conn.c
function Connection (line 19) | static Connection *
function Connection (line 34) | Connection *
function ts_connection_connect (line 70) | int
function ts_connection_write (line 80) | ssize_t
function ts_connection_read (line 86) | ssize_t
function ts_connection_close (line 92) | void
function ts_connection_set_timeout_millis (line 99) | int
function ts_connection_destroy (line 108) | void
function ts_connection_register (line 119) | int
FILE: src/net/conn.h
type ConnOps (line 10) | typedef struct ConnOps ConnOps;
type ConnectionType (line 12) | typedef enum ConnectionType
type Connection (line 20) | typedef struct Connection
FILE: src/net/conn_internal.h
type ConnOps (line 10) | typedef struct ConnOps
FILE: src/net/conn_plain.c
function set_error (line 20) | static void
function get_error (line 30) | static int
function ts_plain_connect (line 41) | int
function plain_write (line 139) | static ssize_t
function plain_read (line 166) | static ssize_t
function ts_plain_close (line 193) | void
function ts_plain_set_timeout (line 203) | int
function _conn_plain_init (line 262) | void
function _conn_plain_fini (line 286) | void
FILE: src/net/conn_plain.h
type Connection (line 8) | typedef struct Connection Connection;
FILE: src/net/conn_ssl.c
type SSLConnection (line 14) | typedef struct SSLConnection
function ssl_set_error (line 22) | static void
function SSL_CTX (line 29) | static SSL_CTX *
function ssl_setup (line 62) | static int
function ssl_connect (line 115) | static int
function ssl_write (line 129) | static ssize_t
function ssl_read (line 142) | static ssize_t
function ssl_close (line 155) | static void
function _conn_ssl_init (line 267) | void
function _conn_ssl_fini (line 279) | void
FILE: src/net/http.c
function HttpVersion (line 35) | HttpVersion
function HttpError (line 58) | HttpError
FILE: src/net/http.h
type HttpHeader (line 18) | typedef struct HttpHeader
type HttpRequestMethod (line 29) | typedef enum HttpRequestMethod
type HttpVersion (line 35) | typedef enum HttpVersion
type HttpError (line 42) | typedef enum HttpError
type HttpRequest (line 57) | typedef struct HttpRequest HttpRequest;
type Connection (line 58) | typedef struct Connection Connection;
type HttpResponseState (line 80) | typedef struct HttpResponseState HttpResponseState;
FILE: src/net/http_request.c
function HttpHeader (line 21) | HttpHeader *
type HttpRequest (line 46) | typedef struct HttpRequest
function appendOptionalBinaryStringInfo (line 65) | static void
function ts_http_request_init (line 75) | void
function HttpRequest (line 81) | HttpRequest *
function ts_http_request_destroy (line 96) | void
function ts_http_request_set_uri (line 102) | void
function ts_http_request_set_version (line 115) | void
function set_header (line 121) | static void
function ts_http_request_set_header (line 130) | void
function ts_http_request_set_body_jsonb (line 138) | void
function http_request_serialize_method (line 155) | static void
function http_request_serialize_version (line 163) | static void
function http_request_serialize_uri (line 171) | static void
function http_request_serialize_char (line 177) | static void
function http_request_serialize_body (line 183) | static void
function http_header_serialize (line 189) | static void
function http_header_get_content_length (line 198) | static int
FILE: src/net/http_response.c
type HttpParseState (line 20) | typedef enum HttpParseState
type HttpResponseState (line 32) | typedef struct HttpResponseState
function ts_http_response_state_init (line 51) | void
function HttpResponseState (line 58) | HttpResponseState *
function ts_http_response_state_destroy (line 74) | void
function ts_http_response_state_valid_status (line 80) | bool
function ts_http_response_state_is_done (line 92) | bool
function ts_http_response_state_buffer_remaining (line 104) | ssize_t
function ts_http_response_state_status_code (line 141) | int
function ts_http_response_state_content_length (line 147) | size_t
function http_parse_version (line 153) | static bool
function http_parse_status (line 159) | static void
function http_response_state_add_header (line 198) | static void
function http_parse_interm (line 210) | static void
function http_parse_header_name (line 250) | static void
function http_parse_header_value (line 289) | static void
function http_parse_almost_done (line 308) | static void
function ts_http_response_state_parse (line 327) | bool
FILE: src/nodes/chunk_append/chunk_append.c
function ts_is_chunk_append_path (line 27) | bool
function has_joins (line 34) | static bool
function create_group_subpath (line 49) | static void
function ChunkAppendPath (line 66) | ChunkAppendPath *
function Path (line 88) | Path *
function ts_ordered_append_should_optimize (line 480) | bool
function Var (line 630) | static Var *
FILE: src/nodes/chunk_append/chunk_append.h
type ChunkAppendSettingsIndex (line 16) | typedef enum
type ChunkAppendPrivateIndex (line 29) | typedef enum
type ChunkAppendPath (line 39) | typedef struct ChunkAppendPath
FILE: src/nodes/chunk_append/exec.c
type SubplanState (line 43) | typedef enum SubplanState
type ParallelChunkAppendState (line 61) | typedef struct ParallelChunkAppendState
type ChunkAppendState (line 68) | typedef struct ChunkAppendState
function Node (line 169) | Node *
function do_startup_exclusion (line 207) | static void
function chunk_append_begin (line 310) | static void
function perform_plan_init (line 381) | static void
function can_exclude_constraints_using_clauses (line 431) | static bool
function initialize_runtime_exclusion (line 458) | static void
function TupleTableSlot (line 550) | static TupleTableSlot *
function get_next_subplan (line 601) | static int
function choose_next_subplan_non_parallel (line 629) | static void
function choose_next_subplan_for_worker (line 635) | static void
function chunk_append_end (line 723) | static void
function chunk_append_rescan (line 738) | static void
function Size (line 773) | static Size
function init_pstate (line 784) | static void
function chunk_append_initialize_dsm (line 816) | static void
function chunk_append_reinitialize_dsm (line 846) | static void
function chunk_append_initialize_worker (line 861) | static void
function LWLock (line 912) | static LWLock *
function List (line 934) | List *
function List (line 980) | List *
function Node (line 996) | static Node *
function List (line 1043) | static List *
function can_exclude_chunk (line 1148) | static bool
function initialize_constraints (line 1197) | static void
function chunk_append_explain (line 1248) | static void
function show_sort_group_keys (line 1288) | static void
function show_sortorder_options (line 1341) | static void
FILE: src/nodes/chunk_append/planner.c
function ts_is_chunk_append_plan (line 40) | bool
function _chunk_append_init (line 47) | void
function Plan (line 53) | static Plan *
function Plan (line 86) | Plan *
function Sort (line 325) | static Sort *
function Scan (line 345) | Scan *
FILE: src/nodes/chunk_append/transform.c
function Expr (line 39) | Expr *
FILE: src/nodes/constraint_aware_append/constraint_aware_append.c
function excluded_by_constraint (line 49) | static bool
function Plan (line 62) | static Plan *
function can_exclude_chunk (line 81) | static bool
function List (line 99) | static List *
function ca_append_begin (line 119) | static void
function TupleTableSlot (line 291) | static TupleTableSlot *
function ca_append_end (line 323) | static void
function ca_append_rescan (line 332) | static void
function ca_append_explain (line 341) | static void
function Node (line 360) | static Node *
function Plan (line 379) | static Plan *
function Path (line 500) | Path *
function ts_constraint_aware_append_possible (line 549) | bool
function ts_is_constraint_aware_append_path (line 592) | bool
function _constraint_aware_append_init (line 599) | void
FILE: src/nodes/constraint_aware_append/constraint_aware_append.h
type ConstraintAwareAppendPath (line 11) | typedef struct ConstraintAwareAppendPath
type ConstraintAwareAppendState (line 16) | typedef struct ConstraintAwareAppendState
type Hypertable (line 24) | typedef struct Hypertable Hypertable;
FILE: src/nodes/modify_hypertable.c
function AttrNumber (line 24) | static AttrNumber
function rel_has_dropped_attrs (line 36) | static bool
function should_use_direct_compress (line 54) | static bool
function modify_hypertable_begin (line 97) | static void
function TupleTableSlot (line 169) | static TupleTableSlot *
function modify_hypertable_end (line 176) | static void
function modify_hypertable_rescan (line 214) | static void
function is_chunk_append_or_projection (line 224) | static bool
function modify_hypertable_explain (line 232) | static void
function Node (line 342) | static Node *
function ts_is_modify_hypertable_plan (line 361) | bool
function List (line 384) | static List *
function ts_modify_hypertable_fixup_tlist (line 409) | void
function List (line 437) | List *
function Plan (line 463) | static Plan *
function Path (line 570) | Path *
FILE: src/nodes/modify_hypertable.h
type ModifyTableContext (line 16) | typedef struct ModifyTableContext ModifyTableContext;
type RowCompressor (line 17) | typedef struct RowCompressor RowCompressor;
type BulkWriter (line 18) | typedef struct BulkWriter BulkWriter;
type ModifyHypertablePath (line 20) | typedef struct ModifyHypertablePath
type ModifyHypertableState (line 31) | typedef struct ModifyHypertableState
FILE: src/nodes/modify_hypertable_exec.c
type ModifyTableContext (line 88) | typedef struct ModifyTableContext
type UpdateContext (line 132) | typedef struct UpdateContext
function ExecCheckPlanOutput (line 215) | static void
function TupleTableSlot (line 307) | static TupleTableSlot *
function ExecCheckTupleVisible (line 379) | static void
function ExecCheckTIDVisible (line 413) | static void
function ExecInitInsertProjection (line 440) | static void
function ExecInitUpdateProjection (line 510) | static void
function TupleTableSlot (line 568) | static TupleTableSlot *
function TupleTableSlot (line 613) | static TupleTableSlot *
function TupleTableSlot (line 650) | TupleTableSlot *
function ExecBatchInsert (line 1013) | static void
function ExecPendingInserts (line 1073) | static void
function ExecDeletePrologue (line 1106) | static bool
function TM_Result (line 1138) | static TM_Result
function ExecDeleteEpilogue (line 1160) | static void
function TupleTableSlot (line 1218) | static TupleTableSlot *
function ExecUpdatePrologue (line 1511) | static bool
function ExecUpdatePrepareSlot (line 1554) | static void
function TM_Result (line 1589) | static TM_Result
function ExecUpdateEpilogue (line 1678) | static void
function TupleTableSlot (line 1756) | static TupleTableSlot *
function ExecOnConflictUpdate (line 2016) | static bool
function TupleTableSlot (line 2252) | TupleTableSlot *
function fireBSTriggers (line 2810) | static void
function fireASTriggers (line 2848) | static void
function checkDMLOnFrozenChunk (line 2881) | static void checkDMLOnFrozenChunk(ResultRelInfo *resultRelInfo)
function TupleTableSlot (line 3373) | static TupleTableSlot *
function TupleTableSlot (line 3496) | TupleTableSlot *
FILE: src/osm_callbacks.c
function OsmCallbacks_Versioned (line 13) | static OsmCallbacks_Versioned *
function OsmCallbacks (line 25) | static OsmCallbacks *
function chunk_insert_check_hook_type (line 33) | chunk_insert_check_hook_type
function hypertable_drop_hook_type (line 51) | hypertable_drop_hook_type
function hypertable_drop_chunks_hook_type (line 69) | hypertable_drop_chunks_hook_type
FILE: src/osm_callbacks.h
type List (line 14) | typedef List *(*hypertable_drop_chunks_hook_type)(Oid osm_chunk_oid,
type OsmCallbacks (line 28) | typedef struct
type OsmCallbacks_Versioned (line 34) | typedef struct
FILE: src/partition_chunk.c
function partcache_xact_callback (line 41) | static void
function ts_partition_cache_insert_chunk (line 61) | void
function PartChunkCacheEntry (line 99) | PartChunkCacheEntry *
function ts_partition_cache_destroy (line 115) | void
function ts_partition_chunk_prepare_attributes (line 135) | void
function partition_chunk_attach (line 316) | static void
function ts_executor_end_hook (line 386) | static void
function _executor_init (line 426) | void
function _executor_fini (line 433) | void
FILE: src/partition_chunk.h
type PartChunkCacheEntry (line 19) | typedef struct PartChunkCacheEntry
FILE: src/partitioning.c
function closed_dim_partitioning_func_filter (line 50) | static bool
function open_dim_partitioning_func_filter (line 58) | static bool
function ts_partitioning_func_is_valid (line 66) | bool
function Oid (line 91) | Oid
function ts_partitioning_func_is_closed_default (line 103) | static bool
function partitioning_func_set_func_fmgr (line 115) | static void
function Oid (line 149) | static Oid
function PartitioningInfo (line 170) | PartitioningInfo *
function TSDLLEXPORT (line 236) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 267) | TSDLLEXPORT Datum
function Oid (line 294) | static Oid
type PartFuncCache (line 350) | typedef struct PartFuncCache
function PartFuncCache (line 357) | static PartFuncCache *
function Datum (line 379) | Datum
function Datum (line 437) | Datum
FILE: src/partitioning.h
type PartitioningFunc (line 25) | typedef struct PartitioningFunc
type PartitioningInfo (line 38) | typedef struct PartitioningInfo
FILE: src/planner/agg_bookend.c
type FirstLastAggInfo (line 69) | typedef struct FirstLastAggInfo
type MutatorContext (line 76) | typedef struct MutatorContext
function Node (line 94) | Node *
function replace_aggref_in_tlist (line 130) | void
function StrategyNumber (line 142) | static StrategyNumber
function is_first_last_node (line 157) | static bool
function contains_first_last_node (line 172) | static bool
function ts_preprocess_first_last_aggregates (line 210) | void
function find_first_last_aggs_walker (line 403) | static bool
function build_first_last_path (line 527) | static bool
function first_last_qp_callback (line 766) | static void
FILE: src/planner/constify_now.c
function Dimension (line 38) | static const Dimension *
function is_valid_now_func (line 47) | bool
function is_valid_now_expr (line 60) | static bool
function Const (line 153) | static Const *
function OpExpr (line 173) | static OpExpr *
function Node (line 244) | Node *
FILE: src/planner/constraint_cleanup.c
function restrictinfo_is_marked (line 17) | static bool
function List (line 35) | static List *
function indexpath_cleanup (line 64) | static void
function ts_planner_constraint_cleanup (line 82) | void
FILE: src/planner/expand_hypertable.c
type CollectQualCtx (line 68) | typedef struct CollectQualCtx
function is_time_bucket_function (line 80) | static bool
function ts_add_append_rel_infos (line 90) | static void
function is_timestamptz_op_interval (line 115) | static bool
function Const (line 137) | static Const *
function int64 (line 193) | static int64
function OpExpr (line 245) | static OpExpr *
type TimeBucketInfo (line 381) | typedef struct TimeBucketInfo
type TimeBucketQual (line 395) | typedef struct TimeBucketQual
function extract_time_bucket_qual (line 408) | static bool
function time_bucket_width_to_integral (line 482) | static bool
function Expr (line 589) | Expr *
function Node (line 690) | static Node *
function Node (line 755) | static Node *
function collect_join_quals (line 806) | static void
function collect_quals_walker (line 852) | static bool
function chunk_cmp_chunk_reloid (line 883) | static int
function Chunk (line 896) | static Chunk **
function should_order_append (line 918) | static bool
function List (line 943) | static List *
function Chunk (line 1004) | static Chunk **
function timebucket_annotate_walker (line 1063) | static bool
function ts_plan_expand_timebucket_annotate (line 1083) | void
function List (line 1105) | static List *
function chunk_fully_covered (line 1139) | static bool
function ts_plan_expand_hypertable_chunks (line 1199) | void
function restrictinfo_has_qual (line 1476) | static bool
function propagate_join_quals (line 1488) | void
FILE: src/planner/planner.c
type BaserelInfoEntry (line 69) | typedef struct BaserelInfoEntry
type BaserelInfo_hash (line 133) | struct BaserelInfo_hash
function ts_add_baserel_cache_entry_for_chunk (line 139) | void
function rte_mark_for_expansion (line 160) | static void
function rte_mark_for_fk_expansion (line 174) | static void
function ts_rte_is_marked_for_expansion (line 187) | bool
function Cache (line 211) | static Cache *
function planner_hcache_pop (line 221) | static void
function planner_hcache_exists (line 242) | static bool
function Cache (line 248) | static Cache *
function Hypertable (line 266) | Hypertable *
function ts_rte_is_hypertable (line 277) | bool
type PreprocessQueryContext (line 288) | typedef struct
function replace_now_mock_walker (line 297) | void
function preprocess_query (line 354) | static bool
function preprocess_fk_checks (line 495) | static void
function PlannedStmt (line 600) | static PlannedStmt *
function RangeTblEntry (line 732) | static RangeTblEntry *
function BaserelInfoEntry (line 765) | static BaserelInfoEntry *
function TsRelType (line 824) | TsRelType
function should_chunk_append (line 947) | static inline bool
function should_constraint_aware_append (line 1087) | static inline bool
function rte_should_expand (line 1099) | static bool
function expand_hypertables (line 1108) | static void
function apply_optimizations (line 1199) | static void
function valid_hook_call (line 1315) | static bool
function dml_involves_hypertable (line 1321) | static bool
function timescaledb_set_rel_pathlist (line 1330) | static void
function timescaledb_get_relation_info_hook (line 1422) | static void
function join_involves_hypertable (line 1524) | static bool
function involves_hypertable (line 1542) | static bool
function List (line 1587) | static List *
function timescaledb_create_upper_paths_hook (line 1687) | static void
function contains_join_param_walker (line 1724) | static bool
function ts_contains_join_param (line 1738) | bool
function contains_external_param_walker (line 1744) | static bool
function ts_contains_external_param (line 1758) | bool
function List (line 1764) | static List *
function check_cagg_view_rte (line 1782) | static bool
function cagg_reorder_groupby_clause (line 1827) | static void
function _planner_init (line 1882) | void
function _planner_fini (line 1897) | void
FILE: src/planner/planner.h
type Chunk (line 28) | typedef struct Chunk Chunk;
type Hypertable (line 29) | typedef struct Hypertable Hypertable;
type TimescaleDBPrivate (line 30) | typedef struct TimescaleDBPrivate
function TimescaleDBPrivate (line 50) | static inline TimescaleDBPrivate *
function TimescaleDBPrivate (line 58) | static inline TimescaleDBPrivate *
type TsRelType (line 73) | typedef enum TsRelType
function Chunk (line 117) | static inline const Chunk *
FILE: src/planner/space_constraint.c
function Dimension (line 28) | static Dimension *
function ts_is_equality_operator (line 51) | bool
function is_valid_space_constraint (line 87) | static bool
function is_valid_scalar_space_constraint (line 121) | static bool
function FuncExpr (line 170) | static FuncExpr *
function OpExpr (line 187) | static OpExpr *
function ScalarArrayOpExpr (line 229) | static ScalarArrayOpExpr *
function Node (line 295) | Node *
FILE: src/process_utility.c
function prev_ProcessUtility (line 116) | static void
function check_chunk_alter_table_operation_allowed (line 139) | static void
function check_continuous_agg_alter_table_allowed (line 235) | static void
function ts_hypertable_has_compressed_chunks (line 267) | static bool
function check_alter_table_allowed_on_ht_with_compression (line 276) | static void
function check_altertable_add_column_for_compressed (line 349) | static void
function relation_not_only (line 444) | static void
function check_table_in_rangevar_list (line 453) | static bool
function add_chunk_oid (line 470) | static void
function DDLResult (line 488) | static DDLResult
function process_drop_procedure_start (line 537) | static void
function replace_attr_if_changed (line 588) | static void
function ts_bgw_job_update_proc (line 607) | static void
function ts_bgw_job_rename_schema_name (line 630) | static void
function DDLResult (line 658) | static DDLResult
function process_alterprocedureschema (line 691) | static void
function process_alterviewschema (line 704) | static void
function process_altertableschema (line 727) | static void
function DDLResult (line 773) | static DDLResult
function DDLResult (line 797) | static DDLResult
function foreach_chunk (line 900) | static int
function foreach_compressed_chunk (line 927) | static int
function foreach_chunk_multitransaction (line 949) | static int
type VacuumCtx (line 989) | typedef struct VacuumCtx
function chunk_has_missing_attrs (line 997) | static bool
function register_chunk_for_rebuild_if_needed (line 1021) | static void
function add_chunk_to_vacuum (line 1051) | static void
function List (line 1086) | static List *
function DDLResult (line 1139) | static DDLResult
function process_truncate_chunk (line 1233) | static void
function relation_should_recurse (line 1245) | static bool
function handle_truncate_hypertable (line 1252) | static void
function DDLResult (line 1265) | static DDLResult
function process_drop_table_chunk (line 1520) | static void
function process_drop_chunk (line 1536) | static void
function DDLResult (line 1607) | static DDLResult
function process_drop_hypertable_index (line 1687) | static void
function DDLResult (line 1733) | static DDLResult
function process_grant_add_by_rel (line 1750) | static void
function process_grant_add_by_name (line 1762) | static void
function process_relations_in_namespace (line 1775) | static void
function process_grant_add_by_schema (line 1821) | static void
function DDLResult (line 1859) | static DDLResult
function DDLResult (line 1994) | static DDLResult
function process_drop_view_start (line 2014) | static void
function process_drop_continuous_aggregates (line 2032) | static void
function fetch_role_info (line 2063) | static bool
function DDLResult (line 2084) | static DDLResult
function DDLResult (line 2119) | static DDLResult
function reindex_chunk (line 2157) | static void
function DDLResult (line 2183) | static DDLResult
function process_rename_view (line 2253) | static void
function process_rename_table (line 2264) | static void
function DDLResult (line 2291) | static DDLResult
function process_rename_index (line 2429) | static void
function process_rename_schema (line 2446) | static void
function process_rename_procedure (line 2470) | static void
function rename_hypertable_constraint (line 2480) | static void
function alter_hypertable_constraint (line 2489) | static void
function validate_hypertable_constraint (line 2522) | static void
function rename_hypertable_trigger (line 2539) | static void
function process_rename_constraint_or_trigger (line 2549) | static void
function DDLResult (line 2579) | static DDLResult
function process_altertable_change_owner_chunk (line 2632) | static void
function process_altertable_change_owner_bgw_jobs (line 2641) | static void
function process_altertable_change_owner (line 2661) | static void
type ChunkConstraintInfo (line 2687) | typedef struct ChunkConstraintInfo
function validate_index_constraints (line 2701) | static void
function validate_check_constraint (line 2793) | static void
function process_add_constraint_chunk (line 2855) | static void
function process_altertable_add_constraint (line 2926) | static void
function process_altertable_alter_constraint_end (line 2940) | static void
function process_altertable_validate_constraint_end (line 2946) | static void
function validate_set_not_null (line 2955) | static void
function process_altertable_alter_not_null (line 3032) | static void
function process_altertable_drop_column (line 3053) | static void
function verify_constraint_hypertable (line 3078) | static void
function verify_constraint (line 3148) | static void
function verify_constraint_list (line 3160) | static void
type HypertableIndexOptions (line 3173) | typedef struct HypertableIndexOptions
type CreateIndexInfo (line 3198) | typedef struct CreateIndexInfo
function process_index_chunk (line 3213) | static void
function process_index_chunk_multitransaction (line 3248) | static void
type HypertableIndexFlags (line 3350) | typedef enum HypertableIndexFlags
function multitransaction_create_index_mark_valid (line 3367) | static bool
function DDLResult (line 3384) | static DDLResult
function chunk_index_mappings_cmp (line 3616) | static int
function DDLResult (line 3638) | static DDLResult
type CreateTableInfo (line 3806) | typedef struct CreateTableInfo
function process_create_table_end (line 3856) | static void
function process_alter_column_type_start (line 4028) | static void
function process_alter_column_type_end (line 4094) | static void
function process_altertable_clusteron_end (line 4111) | static void
function process_altertable_chunk (line 4138) | static void
function process_altertable_chunk_replica_identity (line 4153) | static void
function process_altertable_replica_identity (line 4190) | static void
function process_altertable_set_tablespace_end (line 4214) | static void
function process_altertable_end_index (line 4259) | static void
function process_altertable_chunk_propagate_to_compressed (line 4295) | static void
function DDLResult (line 4319) | static DDLResult
function continuous_agg_with_clause_perm_check (line 4487) | static void
function List (line 4498) | static List *
function alter_table_by_relation (line 4528) | static void
function alter_table_by_name (line 4536) | static void
function alter_hypertable_by_id (line 4543) | static void
function DDLResult (line 4558) | static DDLResult
function DDLResult (line 4631) | static DDLResult
function DDLResult (line 4669) | static DDLResult
function process_altertable_end_subcmd (line 4686) | static void
function process_altertable_end_subcmds (line 4883) | static void
function process_altertable_end_table (line 4896) | static void
function process_altertable_end (line 4966) | static void
function DDLResult (line 4984) | static DDLResult
function DDLResult (line 5065) | static DDLResult
function ts_bgw_job_update_owner (line 5085) | static void
function DDLResult (line 5105) | static DDLResult
function check_no_timescale_options (line 5133) | static void
function DDLResult (line 5151) | static DDLResult
function DDLResult (line 5193) | static DDLResult
function DDLResult (line 5245) | static DDLResult
function DDLResult (line 5263) | static DDLResult
function DDLResult (line 5349) | static DDLResult
function DDLResult (line 5461) | static DDLResult
function DDLResult (line 5484) | static DDLResult
function DDLResult (line 5506) | static DDLResult
function process_ddl_command_end (line 5607) | static void
function process_drop_constraint_on_chunk (line 5623) | static void
function process_drop_table_constraint (line 5634) | static void
function process_drop_table (line 5667) | static void
function process_sql_drop_schema (line 5688) | static void
function process_drop_trigger (line 5717) | static void
function process_drop_view (line 5735) | static void
function process_ddl_sql_drop (line 5741) | static void
function timescaledb_ddl_command_start (line 5772) | static void
function process_ddl_event_command_end (line 5827) | static void
function process_ddl_event_sql_drop (line 5851) | static void
function Datum (line 5867) | Datum
function ts_process_utility_set_expect_chunk_modification (line 5886) | extern void
function ts_process_utility_is_top_level (line 5892) | bool
function ts_process_utility_is_context_nonatomic (line 5898) | bool
function ts_process_utility_context_reset (line 5905) | void
function process_utility_xact_abort (line 5911) | static void
function process_utility_subxact_abort (line 5932) | static void
function _process_utility_init (line 5947) | void
function _process_utility_fini (line 5956) | void
FILE: src/process_utility.h
type ProcessUtilityArgs (line 16) | typedef struct ProcessUtilityArgs
type DDLResult (line 31) | typedef enum
type DDLResult (line 37) | typedef DDLResult (*ts_process_utility_handler_t)(ProcessUtilityArgs *ar...
FILE: src/scan_iterator.c
function TSDLLEXPORT (line 10) | TSDLLEXPORT void
function ts_scan_iterator_end (line 16) | void
function ts_scan_iterator_close (line 22) | void
function TSDLLEXPORT (line 30) | TSDLLEXPORT void
function TSDLLEXPORT (line 56) | TSDLLEXPORT void
FILE: src/scan_iterator.h
type ScanIterator (line 16) | typedef struct ScanIterator
function TupleInfo (line 58) | static inline TupleInfo *
function TupleTableSlot (line 64) | static inline TupleTableSlot *
function HeapTuple (line 70) | static inline HeapTuple
function TupleDesc (line 76) | static inline TupleDesc
function MemoryContext (line 82) | static inline MemoryContext
function ts_scan_iterator_start_scan (line 94) | static inline void
function TupleInfo (line 100) | static inline TupleInfo *
function ts_scan_iterator_scan_key_reset (line 107) | static inline void
function ts_scan_iterator_is_started (line 113) | static inline bool
function ts_scan_iterator_start_or_restart_scan (line 134) | static inline void
FILE: src/scanner.c
type ScannerType (line 20) | enum ScannerType
type Scanner (line 29) | typedef struct Scanner
function Relation (line 40) | static Relation
function ScanDesc (line 47) | static ScanDesc
function table_scanner_getnext (line 56) | static bool
function table_scanner_rescan (line 66) | static void
function table_scanner_endscan (line 72) | static void
function table_scanner_close (line 78) | static void
function Relation (line 87) | static Relation
function ScanDesc (line 95) | static ScanDesc
function index_scanner_getnext (line 111) | static bool
function index_scanner_rescan (line 124) | static void
function index_scanner_endscan (line 130) | static void
function index_scanner_close (line 136) | static void
function Scanner (line 166) | static inline Scanner *
function TSDLLEXPORT (line 175) | TSDLLEXPORT void
function prepare_scan (line 191) | static void
function TSDLLEXPORT (line 255) | TSDLLEXPORT Relation
function TSDLLEXPORT (line 278) | TSDLLEXPORT void
function ts_scanner_limit_reached (line 334) | static inline bool
function scanner_cleanup (line 340) | static void
function TSDLLEXPORT (line 363) | TSDLLEXPORT void
function TSDLLEXPORT (line 386) | TSDLLEXPORT void
function TSDLLEXPORT (line 401) | TSDLLEXPORT TupleInfo *
function TSDLLEXPORT (line 467) | TSDLLEXPORT int
function TSDLLEXPORT (line 509) | TSDLLEXPORT bool
function ItemPointer (line 538) | ItemPointer
function HeapTuple (line 544) | HeapTuple
function TupleDesc (line 550) | TupleDesc
FILE: src/scanner.h
type ScanTupLock (line 17) | typedef struct ScanTupLock
type TupleInfo (line 25) | typedef struct TupleInfo
type ScanTupleResult (line 49) | typedef enum ScanTupleResult
type ScanFilterResult (line 56) | typedef enum ScanFilterResult
type ScanTupleResult (line 62) | typedef ScanTupleResult (*tuple_found_func)(TupleInfo *ti, void *data);
type ScanFilterResult (line 63) | typedef ScanFilterResult (*tuple_filter_func)(const TupleInfo *ti, void ...
type ScanDesc (line 66) | typedef union ScanDesc
type ScannerFlags (line 72) | typedef enum ScannerFlags
type InternalScannerCtx (line 84) | typedef struct InternalScannerCtx
type ScannerCtx (line 99) | typedef struct ScannerCtx
FILE: src/sort_transform.c
function Expr (line 35) | static Expr *
function Expr (line 59) | static Expr *
function Expr (line 86) | static inline Expr *
function Expr (line 121) | static inline Expr *
function Expr (line 205) | Expr *
function List (line 428) | List *
function ts_sort_transform_replace_pathkeys (line 537) | void
FILE: src/subspace_store.c
type SubspaceStoreInternalNode (line 24) | typedef struct SubspaceStoreInternalNode
type SubspaceStore (line 31) | typedef struct SubspaceStore
function SubspaceStoreInternalNode (line 40) | static inline SubspaceStoreInternalNode *
function subspace_store_internal_node_free (line 51) | static inline void
function subspace_store_internal_node_descendants (line 58) | static size_t
function SubspaceStore (line 72) | SubspaceStore *
function ts_subspace_store_add (line 87) | void
function ts_subspace_store_free (line 221) | void
function MemoryContext (line 228) | MemoryContext
FILE: src/subspace_store.h
type Hypercube (line 17) | typedef struct Hypercube Hypercube;
type Point (line 18) | typedef struct Point Point;
type SubspaceStore (line 19) | typedef struct SubspaceStore SubspaceStore;
FILE: src/telemetry/functions.c
type AllowedFnHashEntry (line 39) | typedef struct AllowedFnHashEntry
function HTAB (line 54) | static HTAB *
function fn_telemetry_entry_vec (line 123) | static fn_telemetry_entry_vec *
function fn_telemetry_entry_vec (line 183) | fn_telemetry_entry_vec *
function ts_function_telemetry_reset_counts (line 232) | void
function function_telemetry_increment (line 268) | static bool
function function_gather_checker (line 297) | static bool
function function_gather_walker (line 304) | static bool
function HTAB (line 324) | static HTAB *
function store_function_counts_in_shared_mem (line 346) | static void
function ts_telemetry_function_info_gather (line 408) | void
FILE: src/telemetry/functions.h
type FnTelemetryEntry (line 10) | typedef struct FnTelemetryEntry
FILE: src/telemetry/replication.c
function ReplicationInfo (line 12) | ReplicationInfo
FILE: src/telemetry/replication.h
type ReplicationInfo (line 12) | typedef struct ReplicationInfo
FILE: src/telemetry/stats.c
type StatsContext (line 30) | typedef struct StatsContext
function StatsRelType (line 39) | static StatsRelType
function StatsRelType (line 61) | static StatsRelType
function StatsRelType (line 87) | static StatsRelType
function StatsRelType (line 111) | static StatsRelType
function StatsRelType (line 127) | static StatsRelType
function StatsRelType (line 142) | static StatsRelType
function StatsRelType (line 158) | static StatsRelType
function add_storage (line 183) | static void
function process_relation (line 195) | static void
function process_hypertable (line 212) | static void
function process_continuous_agg (line 221) | static void
function process_partition (line 242) | static void
function add_chunk_stats (line 266) | static void
function get_chunk_compression_stats (line 294) | static bool
function process_chunk (line 358) | static void
function is_pg_schema (line 392) | static bool
function is_ts_schema (line 406) | static bool
function should_ignore_relation (line 421) | static bool
function ts_telemetry_stats_gather (line 432) | void
FILE: src/telemetry/stats.h
type StatsRelType (line 11) | typedef enum StatsRelType
type StatsType (line 28) | typedef enum StatsType
type BaseStats (line 36) | typedef struct BaseStats
type StorageStats (line 42) | typedef struct StorageStats
type HyperStats (line 48) | typedef struct HyperStats
type CaggStats (line 68) | typedef struct CaggStats
type TelemetryStats (line 76) | typedef struct TelemetryStats
type TelemetryJobStats (line 86) | typedef struct TelemetryJobStats
FILE: src/telemetry/telemetry.c
function BgwJobTypeCount (line 106) | static BgwJobTypeCount
function char_in_valid_version_digits (line 162) | static bool
function ts_validate_server_version (line 182) | bool
function ts_check_version_response (line 223) | void
function int32 (line 255) | static int32
function add_job_counts (line 261) | static void
function JsonbValue (line 278) | static JsonbValue *
function add_errors_by_sqlerrcode (line 332) | static void
function JsonbValue (line 412) | static JsonbValue *
function add_job_stats_by_job_type (line 435) | static void
function int64 (line 540) | static int64
function add_related_extensions (line 546) | static void
function JsonbValue (line 622) | static JsonbValue *
function JsonbValue (line 666) | static JsonbValue *
function add_function_call_telemetry (line 712) | static void
function add_replication_telemetry (line 750) | static void
function add_query_result_dict (line 798) | static void
function Jsonb (line 856) | static Jsonb *
function HttpRequest (line 1052) | HttpRequest *
function ConnectionType (line 1068) | static ConnectionType
function Connection (line 1082) | Connection *
function ts_telemetry_main_wrapper (line 1108) | bool
function ts_telemetry_main (line 1114) | bool
function Datum (line 1224) | Datum
FILE: src/telemetry/telemetry.h
type BgwJobTypeCount (line 27) | typedef struct BgwJobTypeCount
type VersionResult (line 42) | typedef struct VersionResult
FILE: src/telemetry/telemetry_metadata.c
function ts_telemetry_event_truncate (line 20) | void
function ts_telemetry_events_add (line 34) | void
function ts_telemetry_metadata_add_values (line 78) | void
FILE: src/time_bucket.c
function TSDLLEXPORT (line 57) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 71) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 85) | TSDLLEXPORT Datum
function validate_month_bucket (line 141) | void
function DateADT (line 163) | static DateADT
function int64 (line 187) | static inline int64
function TSDLLEXPORT (line 201) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 243) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 263) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 305) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 329) | TSDLLEXPORT Datum
function check_period_is_daily (line 398) | static inline void
function TSDLLEXPORT (line 419) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 463) | TSDLLEXPORT Datum
function Datum (line 491) | Datum
function TSDLLEXPORT (line 511) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 547) | TSDLLEXPORT Datum
function TSDLLEXPORT (line 588) | TSDLLEXPORT int64
function TSDLLEXPORT (line 603) | TSDLLEXPORT int64
FILE: src/time_utils.c
function TSDLLEXPORT (line 33) | TSDLLEXPORT Datum
function Datum (line 72) | Datum
function int64 (line 142) | int64
function Oid (line 192) | static Oid
function Datum (line 211) | Datum
function Datum (line 246) | Datum
function Datum (line 270) | Datum
function Datum (line 296) | Datum
function Datum (line 320) | Datum
function Datum (line 329) | Datum
function int64 (line 356) | int64
function int64 (line 385) | int64
function int64 (line 416) | int64
function int64 (line 445) | int64
function int64 (line 454) | int64
function int64 (line 476) | int64
function int64 (line 485) | int64
function int64 (line 507) | int64
function int64 (line 524) | int64
function int64 (line 544) | int64
function int64 (line 556) | int64
function Datum (line 596) | Datum
function Datum (line 616) | Datum
function Datum (line 634) | Datum
function Datum (line 660) | Datum
function Datum (line 666) | Datum
FILE: src/timezones.c
function ts_is_valid_timezone_name (line 16) | bool
FILE: src/trigger.c
function ts_trigger_create_on_chunk (line 29) | void
function for_each_trigger (line 80) | static inline void
function create_trigger_handler (line 108) | static bool
function ts_trigger_create_all_on_chunk (line 141) | void
function check_for_transition_table (line 166) | static bool
function ts_check_unsupported_triggers (line 182) | void
FILE: src/ts_catalog/array_utils.c
function TSDLLEXPORT (line 26) | extern TSDLLEXPORT int
function TSDLLEXPORT (line 37) | extern TSDLLEXPORT bool
function TSDLLEXPORT (line 65) | extern TSDLLEXPORT bool
function TSDLLEXPORT (line 101) | extern TSDLLEXPORT void
function TSDLLEXPORT (line 137) | extern TSDLLEXPORT int
function TSDLLEXPORT (line 173) | extern TSDLLEXPORT ArrayType *
function TSDLLEXPORT (line 217) | extern TSDLLEXPORT bool
function TSDLLEXPORT (line 231) | extern TSDLLEXPORT const char *
function TSDLLEXPORT (line 246) | extern TSDLLEXPORT ArrayType *
function TSDLLEXPORT (line 277) | extern TSDLLEXPORT ArrayType *
FILE: src/ts_catalog/catalog.c
type InternalFunctionDef (line 296) | typedef struct InternalFunctionDef
function catalog_is_valid (line 330) | static bool
function Oid (line 339) | static Oid
function catalog_database_info_init (line 366) | static void
function TSDLLEXPORT (line 378) | TSDLLEXPORT CatalogDatabaseInfo *
function ts_catalog_table_info_init (line 399) | void
function TSDLLEXPORT (line 457) | TSDLLEXPORT Catalog *
function ts_catalog_reset (line 515) | void
function CatalogTable (line 524) | static CatalogTable
function ts_is_catalog_table (line 549) | bool
function TSDLLEXPORT (line 558) | TSDLLEXPORT int64
function Oid (line 572) | Oid
function TSDLLEXPORT (line 603) | TSDLLEXPORT bool
function TSDLLEXPORT (line 624) | TSDLLEXPORT void
function ts_catalog_insert_only (line 633) | void
function ts_catalog_insert (line 640) | void
function TSDLLEXPORT (line 651) | TSDLLEXPORT void
function TSDLLEXPORT (line 660) | TSDLLEXPORT void
function ts_catalog_update_tid_only (line 669) | void
function ts_catalog_update_tid (line 676) | void
function TSDLLEXPORT (line 684) | TSDLLEXPORT void
function ts_catalog_delete_tid_only (line 690) | void
function ts_catalog_delete_tid (line 697) | void
function ts_catalog_invalidate_cache (line 726) | void
function TSDLLEXPORT (line 761) | TSDLLEXPORT bool
function TSDLLEXPORT (line 781) | TSDLLEXPORT void
function TSDLLEXPORT (line 808) | extern TSDLLEXPORT void
FILE: src/ts_catalog/catalog.h
type CatalogTable (line 33) | typedef enum CatalogTable
type TableInfoDef (line 62) | typedef struct TableInfoDef
type TableIndexDef (line 68) | typedef struct TableIndexDef
type InternalFunction (line 90) | typedef enum InternalFunction
type Anum_hypertable (line 106) | enum Anum_hypertable
type FormData_hypertable (line 125) | typedef struct FormData_hypertable
type FormData_hypertable (line 141) | typedef FormData_hypertable *Form_hypertable;
type Anum_hypertable_pkey_idx (line 144) | enum Anum_hypertable_pkey_idx
type Anum_hypertable_name_idx (line 153) | enum Anum_hypertable_name_idx
type Anum_dimension (line 177) | enum Anum_dimension
type FormData_dimension (line 196) | typedef struct FormData_dimension
type FormData_dimension (line 214) | typedef FormData_dimension *Form_dimension;
type Anum_dimension_id_idx (line 216) | enum Anum_dimension_id_idx
type Anum_dimension_hypertable_id_column_name_idx (line 224) | enum Anum_dimension_hypertable_id_column_name_idx
type Anum_dimension_slice (line 248) | enum Anum_dimension_slice
type FormData_dimension_slice (line 259) | typedef struct FormData_dimension_slice
type FormData_dimension_slice (line 267) | typedef FormData_dimension_slice *Form_dimension_slice;
type Anum_dimension_slice_id_idx (line 269) | enum Anum_dimension_slice_id_idx
type Anum_dimension_slice_dimension_id_range_start_range_end_idx (line 277) | enum Anum_dimension_slice_dimension_id_range_start_range_end_idx
type Anum_chunk_column_stats (line 303) | enum Anum_chunk_column_stats
type FormData_chunk_column_stats (line 317) | typedef struct FormData_chunk_column_stats
type FormData_chunk_column_stats (line 328) | typedef FormData_chunk_column_stats *Form_chunk_column_stats;
type Anum_chunk_column_stats_id_idx (line 330) | enum Anum_chunk_column_stats_id_idx
type Anum_chunk_column_stats_ht_id_chunk_id_column_name_range_start_range_end_idx (line 338) | enum Anum_chunk_column_stats_ht_id_chunk_id_column_name_range_start_rang...
type Anum_chunk (line 366) | enum Anum_chunk
type FormData_chunk (line 381) | typedef struct FormData_chunk
type FormData_chunk (line 393) | typedef FormData_chunk *Form_chunk;
type Anum_chunk_idx (line 406) | enum Anum_chunk_idx
type Anum_chunk_hypertable_id_idx (line 411) | enum Anum_chunk_hypertable_id_idx
type Anum_chunk_compressed_chunk_id_idx (line 416) | enum Anum_chunk_compressed_chunk_id_idx
type Anum_chunk_schema_name_idx (line 421) | enum Anum_chunk_schema_name_idx
type Anum_chunk_osm_chunk_idx (line 427) | enum Anum_chunk_osm_chunk_idx
type Anum_chunk_hypertable_id_creation_time_idx (line 433) | enum Anum_chunk_hypertable_id_creation_time_idx
type Anum_chunk_constraint (line 447) | enum Anum_chunk_constraint
type FormData_chunk_constraint (line 459) | typedef struct FormData_chunk_constraint
type FormData_chunk_constraint (line 467) | typedef FormData_chunk_constraint *Form_chunk_constraint;
type Anum_chunk_constraint_dimension_slice_id_idx (line 476) | enum Anum_chunk_constraint_dimension_slice_id_idx
type Anum_chunk_constraint_chunk_id_constraint_name_idx (line 482) | enum Anum_chunk_constraint_chunk_id_constraint_name_idx
type Anum_tablespace (line 497) | enum Anum_tablespace
type FormData_tablespace (line 507) | typedef struct FormData_tablespace
type FormData_tablespace (line 514) | typedef FormData_tablespace *Form_tablespace;
type Anum_tablespace_pkey_idx (line 523) | enum Anum_tablespace_pkey_idx
type FormData_tablespace_pkey_idx (line 529) | typedef struct FormData_tablespace_pkey_idx
type Anum_tablespace_hypertable_id_tablespace_name_idx (line 534) | enum Anum_tablespace_hypertable_id_tablespace_name_idx
type FormData_tablespace_hypertable_id_tablespace_name_idx (line 541) | typedef struct FormData_tablespace_hypertable_id_tablespace_name_idx
type Anum_bgw_job (line 555) | enum Anum_bgw_job
type FormData_bgw_job (line 581) | typedef struct FormData_bgw_job
type FormData_bgw_job (line 602) | typedef FormData_bgw_job *Form_bgw_job;
type Anum_bgw_job_pkey_idx (line 611) | enum Anum_bgw_job_pkey_idx
type Anum_bgw_job_proc_hypertable_id_idx (line 619) | enum Anum_bgw_job_proc_hypertable_id_idx
type Anum_bgw_job_stat (line 637) | enum Anum_bgw_job_stat
type FormData_bgw_job_stat (line 659) | typedef struct FormData_bgw_job_stat
type FormData_bgw_job_stat (line 678) | typedef FormData_bgw_job_stat *Form_bgw_job_stat;
type Anum_bgw_job_stat_pkey_idx (line 686) | enum Anum_bgw_job_stat_pkey_idx
type Anum_bgw_job_stat_history (line 696) | enum Anum_bgw_job_stat_history
type FormData_bgw_job_stat_history (line 710) | typedef struct FormData_bgw_job_stat_history
type FormData_bgw_job_stat_history (line 721) | typedef FormData_bgw_job_stat_history *Form_bgw_job_stat_history;
type Anum_bgw_job_stat_history_pkey_idx (line 729) | enum Anum_bgw_job_stat_history_pkey_idx
type Anum_metadata (line 745) | enum Anum_metadata
type FormData_metadata (line 755) | typedef struct FormData_metadata
type FormData_metadata (line 761) | typedef FormData_metadata *Form_metadata;
type Anum_metadata_pkey_idx (line 764) | enum Anum_metadata_pkey_idx
type Anum_telemetry_event (line 784) | enum Anum_telemetry_event
type Anum_bgw_policy_chunk_stats (line 797) | enum Anum_bgw_policy_chunk_stats
type FormData_bgw_policy_chunk_stats (line 808) | typedef struct FormData_bgw_policy_chunk_stats
type FormData_bgw_policy_chunk_stats (line 816) | typedef FormData_bgw_policy_chunk_stats *Form_bgw_job_chunk_stats;
type Anum_bgw_policy_chunk_stats_job_id_chunk_id_idx (line 824) | enum Anum_bgw_policy_chunk_stats_job_id_chunk_id_idx
type FormData_bgw_policy_chunk_stats_job_id_chunk_id_idx (line 831) | typedef struct FormData_bgw_policy_chunk_stats_job_id_chunk_id_idx
type Anum_continuous_agg (line 843) | typedef enum Anum_continuous_agg
type FormData_continuous_agg (line 860) | typedef struct FormData_continuous_agg
type FormData_continuous_agg (line 874) | typedef FormData_continuous_agg *Form_continuous_agg;
type Anum_continuous_agg_partial_view_schema_partial_view_name_key (line 885) | typedef enum Anum_continuous_agg_partial_view_schema_partial_view_name_key
type Anum_continuous_agg_pkey (line 895) | typedef enum Anum_continuous_agg_pkey
type Anum_continuous_agg_user_view_schema_user_view_name_key (line 903) | typedef enum Anum_continuous_agg_user_view_schema_user_view_name_key
type Anum_continuous_agg_raw_hypertable_id_idx (line 913) | typedef enum Anum_continuous_agg_raw_hypertable_id_idx
type Anum_continuous_aggs_bucket_function (line 925) | typedef enum Anum_continuous_aggs_bucket_function
type Anum_continuous_aggs_bucket_function_pkey (line 945) | typedef enum Anum_continuous_aggs_bucket_function_pkey
type Anum_continuous_aggs_hypertable_invalidation_log (line 963) | typedef enum Anum_continuous_aggs_hypertable_invalidation_log
type FormData_continuous_aggs_hypertable_invalidation_log (line 974) | typedef struct FormData_continuous_aggs_hypertable_invalidation_log
type FormData_continuous_aggs_hypertable_invalidation_log (line 981) | typedef FormData_continuous_aggs_hypertable_invalidation_log
type Anum_continuous_aggs_hypertable_invalidation_log_idx (line 989) | typedef enum Anum_continuous_aggs_hypertable_invalidation_log_idx
type Anum_continuous_aggs_invalidation_threshold (line 1001) | typedef enum Anum_continuous_aggs_invalidation_threshold
type FormData_continuous_aggs_invalidation_threshold (line 1011) | typedef struct FormData_continuous_aggs_invalidation_threshold
type FormData_continuous_aggs_invalidation_threshold (line 1017) | typedef FormData_continuous_aggs_invalidation_threshold
type Anum_continuous_aggs_invalidation_threshold_pkey (line 1025) | typedef enum Anum_continuous_aggs_invalidation_threshold_pkey
type Anum_continuous_aggs_materialization_invalidation_log (line 1037) | typedef enum Anum_continuous_aggs_materialization_invalidation_log
type FormData_continuous_aggs_materialization_invalidation_log (line 1048) | typedef struct FormData_continuous_aggs_materialization_invalidation_log
type FormData_continuous_aggs_materialization_invalidation_log (line 1055) | typedef FormData_continuous_aggs_materialization_invalidation_log
type Anum_continuous_aggs_materialization_invalidation_log_idx (line 1063) | typedef enum Anum_continuous_aggs_materialization_invalidation_log_idx
type Anum_continuous_aggs_materialization_ranges (line 1075) | typedef enum Anum_continuous_aggs_materialization_ranges
type FormData_continuous_aggs_materialization_ranges (line 1086) | typedef struct FormData_continuous_aggs_materialization_ranges
type FormData_continuous_aggs_materialization_ranges (line 1093) | typedef FormData_continuous_aggs_materialization_ranges
type Anum_continuous_aggs_materialization_ranges_idx (line 1101) | typedef enum Anum_continuous_aggs_materialization_ranges_idx
type Anum_continuous_aggs_watermark (line 1113) | typedef enum Anum_continuous_aggs_watermark
type FormData_continuous_aggs_watermark (line 1122) | typedef struct FormData_continuous_aggs_watermark
type FormData_continuous_aggs_watermark (line 1128) | typedef FormData_continuous_aggs_watermark *Form_continuous_aggs_watermark;
type Anum_continuous_aggs_watermark_pkey (line 1136) | typedef enum Anum_continuous_aggs_watermark_pkey
type Anum_compression_settings (line 1146) | typedef enum Anum_compression_settings
type FormData_compression_settings (line 1160) | typedef struct FormData_compression_settings
type FormData_compression_settings (line 1171) | typedef FormData_compression_settings *Form_compression_settings;
type Anum_compression_settings_pkey (line 1180) | typedef enum Anum_compression_settings_pkey
type Anum_compression_settings_compress_relid_idx (line 1188) | typedef enum Anum_compression_settings_compress_relid_idx
type Anum_compression_chunk_size (line 1198) | typedef enum Anum_compression_chunk_size
type FormData_compression_chunk_size (line 1216) | typedef struct FormData_compression_chunk_size
type FormData_compression_chunk_size (line 1231) | typedef FormData_compression_chunk_size *Form_compression_chunk_size;
type Anum_compression_chunk_size_pkey (line 1238) | typedef enum Anum_compression_chunk_size_pkey
type Anum_chunk_rewrite (line 1248) | typedef enum Anum_chunk_rewrite
type FormData_chunk_rewrite (line 1257) | typedef struct FormData_chunk_rewrite
type FormData_chunk_rewrite (line 1263) | typedef FormData_chunk_rewrite *Form_chunk_rewrite;
type Anum_chunk_rewrite_pkey (line 1270) | typedef enum Anum_chunk_rewrite_pkey
type CacheType (line 1284) | typedef enum CacheType
type CatalogTableInfo (line 1292) | typedef struct CatalogTableInfo
type CatalogDatabaseInfo (line 1301) | typedef struct CatalogDatabaseInfo
type Catalog (line 1309) | typedef struct Catalog
type CatalogSecurityContext (line 1327) | typedef struct CatalogSecurityContext
function Oid (line 1364) | static inline Oid
function Oid (line 1370) | static inline Oid
FILE: src/ts_catalog/chunk_column_stats.c
type Anum_enable_chunk_column_stats (line 38) | enum Anum_enable_chunk_column_stats
type Anum_disable_chunk_column_stats (line 52) | enum Anum_disable_chunk_column_stats
function Datum (line 67) | static Datum
function Datum (line 94) | static Datum
function int32 (line 123) | static int32
function int32 (line 155) | static int32
function ScanTupleResult (line 168) | static ScanTupleResult
function chunk_column_stats_scan_internal (line 202) | static int
function ts_chunk_column_stats_update_by_id (line 224) | int
function ts_chunk_column_stats_validate (line 246) | static void
function Datum (line 292) | static Datum
function Datum (line 403) | Datum
function Datum (line 441) | Datum
function Dimension (line 524) | Dimension *
function Constraint (line 547) | static Constraint *
function fill_form_from_slot (line 623) | static void
function ScanTupleResult (line 656) | static ScanTupleResult
function ChunkRangeSpace (line 667) | ChunkRangeSpace *
function ScanTupleResult (line 716) | static ScanTupleResult
function Form_chunk_column_stats (line 724) | Form_chunk_column_stats
function chunk_get_minmax (line 786) | static bool
function ts_chunk_column_stats_calculate (line 869) | int
function ts_chunk_column_stats_insert (line 969) | int
function ts_chunk_column_stats_drop (line 1015) | void
function ScanTupleResult (line 1022) | static ScanTupleResult
function ts_chunk_column_stats_delete_by_ht_colname (line 1037) | int
function ts_chunk_column_stats_delete_by_chunk_id (line 1069) | int
function ts_chunk_column_stats_reset_by_chunk_id (line 1097) | int
function ts_chunk_column_stats_delete_by_hypertable_id (line 1128) | int
function chunk_column_stats_scan_iterator_set (line 1162) | static int
function List (line 1211) | List *
function ts_chunk_column_stats_set_name (line 1331) | int
function ScanTupleResult (line 1383) | static ScanTupleResult
function ts_chunk_column_stats_set_invalid (line 1412) | void
type CheckList (line 1443) | typedef struct CheckList
function ScanTupleResult (line 1450) | static ScanTupleResult
function List (line 1479) | List *
FILE: src/ts_catalog/chunk_column_stats.h
type ChunkRangeSpace (line 18) | typedef struct ChunkRangeSpace
FILE: src/ts_catalog/chunk_rewrite.c
function HeapTuple (line 44) | static HeapTuple
function ts_chunk_rewrite_add (line 61) | void
function ts_chunk_rewrite_get_with_lock (line 82) | bool
function ts_chunk_rewrite_delete_by_tid (line 149) | void
function ChunkRewriteDeleteResult (line 174) | ChunkRewriteDeleteResult
function Datum (line 223) | Datum
FILE: src/ts_catalog/chunk_rewrite.h
type ChunkRewriteDeleteResult (line 17) | typedef enum ChunkRewriteDeleteResult
FILE: src/ts_catalog/compression_chunk_size.c
function init_scan_by_uncompressed_chunk_id (line 16) | static void
function TSDLLEXPORT (line 28) | TSDLLEXPORT int
function TSDLLEXPORT (line 50) | TSDLLEXPORT bool
function TSDLLEXPORT (line 80) | TSDLLEXPORT bool
FILE: src/ts_catalog/compression_settings.c
function ts_compression_settings_equal (line 32) | bool
function ts_compression_settings_equal_with_defaults (line 52) | bool
function CompressionSettings (line 66) | CompressionSettings *
function CompressionSettings (line 80) | CompressionSettings *
function compression_settings_fill_from_tuple (line 121) | static void
function compression_settings_iterator_init (line 179) | static void
function CompressionSettings (line 201) | static CompressionSettings *
function TSDLLEXPORT (line 223) | TSDLLEXPORT CompressionSettings *
function TSDLLEXPORT (line 237) | TSDLLEXPORT CompressionSettings *
function compression_settings_delete (line 252) | static bool
function TSDLLEXPORT (line 275) | TSDLLEXPORT bool
function TSDLLEXPORT (line 284) | TSDLLEXPORT bool
function TSDLLEXPORT (line 294) | TSDLLEXPORT bool
function compression_settings_rename_column (line 302) | static void
function TSDLLEXPORT (line 358) | TSDLLEXPORT void
function TSDLLEXPORT (line 380) | TSDLLEXPORT int
function HeapTuple (line 481) | static HeapTuple
function ScanTupleResult (line 528) | static ScanTupleResult
function ts_convert_sparse_index_config_to_jsonb (line 545) | void
function ts_contains_sparse_index_config (line 597) | bool
function Jsonb (line 660) | Jsonb *
function Jsonb (line 718) | Jsonb *
function ts_qsort_attrnumber_cmp (line 769) | int
function SparseIndexSettings (line 778) | SparseIndexSettings *
function Jsonb (line 1046) | Jsonb *
function ts_free_sparse_index_settings (line 1104) | void
function List (line 1178) | List *
function PerColumnCompressionSettings (line 1272) | PerColumnCompressionSettings *
function List (line 1291) | List *
function Bitmapset (line 1305) | static Bitmapset *
function TsBmsList (line 1338) | TsBmsList
function List (line 1355) | List *
FILE: src/ts_catalog/compression_settings.h
type CompressionSettings (line 14) | typedef struct CompressionSettings
type Sparse
Copy disabled (too large)
Download .json
Condensed preview — 2739 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,821K chars).
[
{
"path": ".clang-format",
"chars": 4486,
"preview": "---\nLanguage: Cpp\n# BasedOnStyle: LLVM\nAccessModifierOffset: -2\nAlignAfterOpenBracket: Align\nAlignConsecutiveAss"
},
{
"path": ".codecov.yml",
"chars": 304,
"preview": "# If it says that commit YAML is invalid again,\n# validate it with:\n# curl --data-binary @.codecov.yml https://codecov.i"
},
{
"path": ".dir-locals.el",
"chars": 848,
"preview": ";; see also src/tools/editors/emacs.samples in the PostgreSQL source\n;; tree for more complete settings\n\n((c-mode . ((c-"
},
{
"path": ".editorconfig",
"chars": 227,
"preview": "root = true\n\n[*]\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\nend_of_line = lf\n\n[*.{c,h}]"
},
{
"path": ".git-blame-ignore-revs",
"chars": 1360,
"preview": "# This file contains a list of commits that are not likely what you\n# are looking for in a blame, such as mass reformatt"
},
{
"path": ".github/CODE_OF_CONDUCT.md",
"chars": 91,
"preview": "The Timescale Code of Conduct can be found at <https://www.timescale.com/code-of-conduct>.\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 3884,
"preview": "---\nname: Bug report\ndescription: Is something not working? Help us fix it!\ntitle: \"[Bug]: <Title>\"\nlabels: [\"bug\", \"tri"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 576,
"preview": "blank_issues_enabled: true\ncontact_links:\n - name: Support Request\n url: https://www.timescale.com/support\n about"
},
{
"path": ".github/ISSUE_TEMPLATE/enhancement.yml",
"chars": 1686,
"preview": "---\nname: Enhancement\ndescription: Suggest an enhancement to existing functionality\ntitle: \"[Enhancement]: <Title>\"\nlabe"
},
{
"path": ".github/ISSUE_TEMPLATE/feature.yml",
"chars": 1335,
"preview": "---\nname: Feature request\ndescription: Suggest a new feature for TimescaleDB\ntitle: \"[Feature]: <Feature name>\"\nlabels: "
},
{
"path": ".github/PULL_REQUEST_TEMPLATE/pull_request_template.md",
"chars": 2135,
"preview": "- [ ] Add [CHANGELOG](https://github.com/timescale/timescaledb/blob/main/CHANGELOG.md) updates\n- [ ] Needs [documentatio"
},
{
"path": ".github/ci_settings.py",
"chars": 845,
"preview": "#!/usr/bin/env python\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the includ"
},
{
"path": ".github/codespell-ignore-words",
"chars": 47,
"preview": "brin\nclos\ninh\ninout\nisnt\nlarg\nrelaction\ntextin\n"
},
{
"path": ".github/filters.yaml",
"chars": 309,
"preview": "shell:\n - '**.sh'\n - .github/workflows/shellcheck.yaml\nsql:\n - 'sql/**'\n - '.github/**'\nsrc:\n - 'CMakeLists.txt'\n "
},
{
"path": ".github/gh_config_reader.py",
"chars": 777,
"preview": "#!/usr/bin/env python\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the includ"
},
{
"path": ".github/gh_matrix_builder.py",
"chars": 14106,
"preview": "#!/usr/bin/env python\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the includ"
},
{
"path": ".github/workflows/abi.yaml",
"chars": 5732,
"preview": "# Test minimum and maximum ABI compatible postgres version\n#\n# Build timescaledb against specific postgres version and t"
},
{
"path": ".github/workflows/apt-installcheck.yaml",
"chars": 4509,
"preview": "# Test running make installcheck on our APT packages.\nname: \"Packaging tests: Installcheck for APT\"\n\"on\":\n schedule:\n "
},
{
"path": ".github/workflows/apt-packages.yaml",
"chars": 4784,
"preview": "# Test installing our ubuntu and debian packages for the latest version.\nname: \"Packaging tests: APT\"\n\"on\":\n schedule:\n"
},
{
"path": ".github/workflows/backport-trigger.yaml",
"chars": 625,
"preview": "# A helper workflow to trigger the run of the backport workflow on the main\n# branch, when a release branch or the main "
},
{
"path": ".github/workflows/backport.yaml",
"chars": 1403,
"preview": "name: Backport Bug Fixes\non:\n schedule:\n # Run weekdays 12:00 on main branch, so that it doesn't wreak havoc on\n "
},
{
"path": ".github/workflows/catalog-updates-check.yaml",
"chars": 1215,
"preview": "name: Check for unsafe catalog updates\n\"on\":\n pull_request:\n push:\n branches:\n - main\n - ?.*.x\njobs:\n ch"
},
{
"path": ".github/workflows/changelog-check.yaml",
"chars": 3574,
"preview": "name: Check for changelog entry file\n\"on\":\n pull_request:\n types: [opened, synchronize, reopened, edited]\n branch"
},
{
"path": ".github/workflows/claude-code-review.yaml",
"chars": 1387,
"preview": "name: Claude Code Review\n\non:\n workflow_dispatch: # Manual trigger only, use @claude mentions for on-demand reviews\n\njo"
},
{
"path": ".github/workflows/coccinelle.yaml",
"chars": 743,
"preview": "# Check our codebase for defective programming patterns\nname: Coccinelle\n\"on\":\n pull_request:\n push:\n branches:\n "
},
{
"path": ".github/workflows/code_style.yaml",
"chars": 5440,
"preview": "name: Code style\n\"on\":\n push:\n branches:\n - main\n - ?.*.x\n pull_request:\n\njobs:\n cmake_checks:\n name:"
},
{
"path": ".github/workflows/coverity.yaml",
"chars": 2025,
"preview": "name: Coverity\n\"on\":\n schedule:\n # run at 22:00 on every saturday\n - cron: '0 22 * * TUE,SAT'\n push:\n branche"
},
{
"path": ".github/workflows/docker-images.yaml",
"chars": 2267,
"preview": "# Test our docker images are built with the most recent version\n# The main purpose of this test is to check the image is"
},
{
"path": ".github/workflows/extras-diagnostic.yaml",
"chars": 1498,
"preview": "# Test diagnostic script from timescaledb-extras works\nname: \"timescaledb-extras diagnostic\"\n\"on\":\n schedule:\n # run"
},
{
"path": ".github/workflows/homebrew.yaml",
"chars": 1869,
"preview": "# Test installation of our homebrew tap for latest version\nname: \"Packaging tests: Homebrew\"\n\"on\":\n schedule:\n # run"
},
{
"path": ".github/workflows/issue-handling.yaml",
"chars": 7965,
"preview": "name: Process issue workflows\n\n\"on\":\n issues:\n types: [opened, closed, labeled]\n issue_comment:\n types: [created"
},
{
"path": ".github/workflows/label-handling.yaml",
"chars": 7645,
"preview": "#\n# Collection of actions to run when a label is added\n# to an issue or pull request\n#\nname: Label Handling\n\non:\n pull_"
},
{
"path": ".github/workflows/label-released-prs.yaml",
"chars": 746,
"preview": "# Apply \"released\" labels to the PRs that got into a particular release.\nname: Label Released PRs\n\non:\n release:\n ty"
},
{
"path": ".github/workflows/libfuzzer.yaml",
"chars": 15458,
"preview": "name: Libfuzzer\n\"on\":\n schedule:\n # run daily 1:00 on main branch\n - cron: '0 1 * * *'\n push:\n branches:\n "
},
{
"path": ".github/workflows/linux-32bit-build-and-test.yaml",
"chars": 12344,
"preview": "name: Regression Linux i386\n\"on\":\n schedule:\n # run daily 0:00 on main branch\n # Since we use the date as a part "
},
{
"path": ".github/workflows/linux-build-and-test.yaml",
"chars": 14565,
"preview": "name: Regression\n\"on\":\n schedule:\n # run daily 0:00 on main branch\n # Since we use the date as a part of the cach"
},
{
"path": ".github/workflows/loader_check.yml",
"chars": 7455,
"preview": "name: Check for loader changes\n\"on\":\n pull_request:\n types: [opened, synchronize, reopened, labeled, unlabeled, edit"
},
{
"path": ".github/workflows/memory-tests.yaml",
"chars": 2345,
"preview": "name: Memory tests\n\"on\":\n push:\n branches:\n - main\n - ?.*.x\n - memory_test\n - trigger/memory_tes"
},
{
"path": ".github/workflows/nightly_cloud_smoke_test.yaml",
"chars": 3979,
"preview": "name: Nightly - Update smoke test on release branch\n\n# QA: run the upgrade smoke tests with the last 10 releases \n# agai"
},
{
"path": ".github/workflows/pg_ladybug.yaml",
"chars": 1646,
"preview": "name: pg_ladybug\n\"on\":\n pull_request:\n push:\n branches:\n - main\n - ?.*.x\njobs:\n pg_ladybug:\n runs-on:"
},
{
"path": ".github/workflows/pg_upgrade-test.yaml",
"chars": 5392,
"preview": "name: pg_upgrade test\n\"on\":\n push:\n branches:\n - main\n - ?.*.x\n - prerelease_test\n pull_request:\n\njo"
},
{
"path": ".github/workflows/pgspot.yaml",
"chars": 3321,
"preview": "# Test our extension sql scripts are following security best practices\nname: pgspot\n\"on\":\n pull_request:\n push:\n br"
},
{
"path": ".github/workflows/pr-approvals.yaml",
"chars": 2449,
"preview": "# All PRs except trivial ones should require 2 approvals, since this a global setting\n# we cannot make this decision fro"
},
{
"path": ".github/workflows/pr-handling.yaml",
"chars": 1429,
"preview": "name: Assign PR to author and reviewers\n\n# This workflow runs on the pull_request_target event:\n# https://docs.github.co"
},
{
"path": ".github/workflows/pr-validation.yaml",
"chars": 2208,
"preview": "name: Pull Request Validation\n\"on\":\n pull_request:\n types: [opened, synchronize, reopened, edited, auto_merge_enable"
},
{
"path": ".github/workflows/prerelease-sanity.yaml",
"chars": 2057,
"preview": "name: Prerelease Sanity\n\"on\":\n push:\n branches:\n - prerelease_test\n pull_request:\n branches: \"?.*.x\"\n pa"
},
{
"path": ".github/workflows/release_build_packages.yml",
"chars": 5563,
"preview": "name: \"Packaging: Build distributions\"\n\n\"on\":\n release:\n types: [published]\n\njobs:\n update:\n runs-on: ubuntu-lat"
},
{
"path": ".github/workflows/release_feature_freeze_ceremony.yaml",
"chars": 8786,
"preview": "name: Release - Feature Freeze Ceremony\n\n#\n# Feature Freeze\n# \n# prereqs: \n# 0. needs approval from another person to ru"
},
{
"path": ".github/workflows/release_post_release_ceremony.yaml",
"chars": 4640,
"preview": "name: Release - Post Release Ceremony\n\n#\n# Post Release Workflow\n#\n# 0. trigger the generate GUCs workflow in the docs r"
},
{
"path": ".github/workflows/rpm-packages.yaml",
"chars": 4800,
"preview": "# Test rpm package installation for latest version\nname: \"Packaging tests: RPM\"\n\"on\":\n schedule:\n # run daily 0:00 o"
},
{
"path": ".github/workflows/sanitizer-build-and-test.yaml",
"chars": 10429,
"preview": "# Run regression tests under memory sanitizer\nname: Sanitizer test\n\"on\":\n schedule:\n # run daily 0:00 on main branch"
},
{
"path": ".github/workflows/shellcheck.yaml",
"chars": 1344,
"preview": "# Test our shell scripts for bugs\nname: Shellcheck\n\"on\":\n pull_request:\n push:\n branches:\n - main\n - ?.*."
},
{
"path": ".github/workflows/snapshot-abi.yaml",
"chars": 6545,
"preview": "# Test ABI versions against snapshot\n#\n#\n\nname: ABI Test Against Snapshot\n\"on\":\n schedule:\n # run daily 20:00 on mai"
},
{
"path": ".github/workflows/sqlsmith.yaml",
"chars": 5803,
"preview": "name: SQLsmith\n\"on\":\n schedule:\n # run daily 2:00 on main branch\n - cron: '0 2 * * *'\n workflow_dispatch:\n push"
},
{
"path": ".github/workflows/stalebot.yaml",
"chars": 1919,
"preview": "name: 'Close stale issues and PRs'\n\"on\":\n schedule:\n - cron: '30 1 * * *'\n workflow_dispatch:\n pull_request:\n p"
},
{
"path": ".github/workflows/tests-fail-on-old-code.yaml",
"chars": 7375,
"preview": "# This workflow verifies that new tests fail when run against old code.\n# It helps ensure tests are actually testing the"
},
{
"path": ".github/workflows/trigger-package-tests.yaml",
"chars": 703,
"preview": "# Trigger the Pre-Release tests\n#\n# Params:\n# ref: branch, tag or SHA to checkout, defaults to `main`\n# \nname: Trigger"
},
{
"path": ".github/workflows/trigger-prerelease-tests.yaml",
"chars": 699,
"preview": "# Trigger the Pre-Release tests\n#\n# Params:\n# ref: branch, tag or SHA to checkout, defaults to `main`\n# \nname: Trigger"
},
{
"path": ".github/workflows/update-test.yaml",
"chars": 3955,
"preview": "name: Update and Downgrade\n\"on\":\n push:\n branches:\n - main\n - ?.*.x\n - prerelease_test\n pull_request"
},
{
"path": ".github/workflows/windows-build-and-test.yaml",
"chars": 17903,
"preview": "# Test building the extension on Windows\nname: Regression Windows\n\"on\":\n schedule:\n # run daily 0:00 on main branch\n"
},
{
"path": ".github/workflows/windows-packages.yaml",
"chars": 2770,
"preview": "# Test installation of windows package for latest version\nname: \"Packaging tests: Windows\"\n\"on\":\n schedule:\n # run d"
},
{
"path": ".gitignore",
"chars": 492,
"preview": "\\#*#\n.#*\n*~\n**/CMakeFiles/\n**/CMakeCache.txt\n/sql/tests/unit/testoutputs.tmp\n/sql/timescaledb--*.sql\n/sql/pre_install/*."
},
{
"path": ".perltidyrc",
"chars": 361,
"preview": "--add-whitespace\n--delete-old-whitespace\n--entab-leading-whitespace=4\n--keep-old-blank-lines=2\n--maximum-line-length=78\n"
},
{
"path": ".pull-review",
"chars": 2039,
"preview": "---\n# pull-review config version (required)\nversion: 1\n\n# use review requests instead of assignees to assign reviewers t"
},
{
"path": ".unreleased/chunk-param",
"chars": 83,
"preview": "Implements: #9368 Enable runtime chunk exclusion on inner side of nested loop join\n"
},
{
"path": ".unreleased/columnar-function",
"chars": 106,
"preview": "Implements: #9117 Support functions like `time_bucket` in the columnar aggregation and grouping pipeline.\n"
},
{
"path": ".unreleased/constant-gapfill",
"chars": 75,
"preview": "Fixes: #7629 Forbid non-constant timezone parameter in time_bucket_gapfill\n"
},
{
"path": ".unreleased/direct-loss",
"chars": 119,
"preview": "Fixes: #9381 Data loss with direct compress with client-ordered data in an INSERT SELECT from a compressed hypertable.\n"
},
{
"path": ".unreleased/in-any-chunk-exclusion",
"chars": 75,
"preview": "Implements: #9398 Fix chunk exclusion for IN/ANY on open (time) dimensions\n"
},
{
"path": ".unreleased/parameterized-merge",
"chars": 122,
"preview": "Fixes: #9356 Potential crash when using a hypertable with partial compression or space partitioning in a nested loop joi"
},
{
"path": ".unreleased/pr_8983",
"chars": 58,
"preview": "Implements: #8983 Add GUC for default chunk time interval\n"
},
{
"path": ".unreleased/pr_9142",
"chars": 74,
"preview": "Implements: #9142 Remove column `dropped` from _timescaledb_catalog.chunk\n"
},
{
"path": ".unreleased/pr_9238",
"chars": 77,
"preview": "Implements: #9238 Support non-partial aggregates with vectorized aggregation\n"
},
{
"path": ".unreleased/pr_9253",
"chars": 59,
"preview": "Implements: #9253 Support VectorAgg in subqueries and CTEs\n"
},
{
"path": ".unreleased/pr_9266",
"chars": 67,
"preview": "Implements: #9266 Add support for HAVING to vectorized aggregation\n"
},
{
"path": ".unreleased/pr_9267",
"chars": 55,
"preview": "Implements: #9267 Enable ColumnarIndexScan custom scan\n"
},
{
"path": ".unreleased/pr_9312",
"chars": 146,
"preview": "Implements: #9312 Remove advisory locks from bgw jobs and add graceful cancellation\nThanks: @leppaott for reporting a de"
},
{
"path": ".unreleased/pr_9334",
"chars": 68,
"preview": "Implements: #9334 Fix out-of-range timestamp error in WHERE clauses\n"
},
{
"path": ".unreleased/pr_9372",
"chars": 79,
"preview": "Implements: #9372 Push down composite bloom filter checks to SELECT execution.\n"
},
{
"path": ".unreleased/pr_9374",
"chars": 111,
"preview": "Implements: #9374 Use bloom filters to eliminate decompression of unrelated compressed batches during UPSERTs.\n"
},
{
"path": ".unreleased/pr_9376",
"chars": 165,
"preview": "Fixes: #9376 Allow CREATE EXTENSION after drop in the same session\nThanks: @janpio for reporting an issue with CREATE EX"
},
{
"path": ".unreleased/pr_9378",
"chars": 165,
"preview": "Fixes: #9378 Fix FK constraint failure when inserting into hypertable with referencing FK\nThanks: @bronzinni for reporti"
},
{
"path": ".unreleased/pr_9382",
"chars": 81,
"preview": "Implements: #9382 Fix chunk creation failure after replica identity invalidation\n"
},
{
"path": ".unreleased/pr_9399",
"chars": 91,
"preview": "Implements: #9399 Use bloom filters to reduce decompression during UPDATE/DELETE commands.\n"
},
{
"path": ".unreleased/pr_9413",
"chars": 67,
"preview": "Fixes: #9413 Fix incorrect decompress markers on full batch delete\n"
},
{
"path": ".unreleased/pr_9414",
"chars": 73,
"preview": "Fixes: #9414 Fix NULL compression handling in estimate_uncompressed_size\n"
},
{
"path": ".unreleased/pr_9417",
"chars": 45,
"preview": "Fixes: #9417 Fix segfault in bloom1_contains\n"
},
{
"path": ".unreleased/saop-pushdown",
"chars": 272,
"preview": "Implements: #9192 Push down scalar array operations into the columnar metadata scan by transforming them into an OR/AND "
},
{
"path": ".unreleased/text-minmax",
"chars": 96,
"preview": "Implements: #9104 Support min(text), max(text) for C collation in columnar aggregation pipeline\n"
},
{
"path": ".unreleased/wrong-partition",
"chars": 83,
"preview": "Fixes: #9344 Wrong result or crash on cross-type comparison of partitioning column\n"
},
{
"path": ".yamllint.yaml",
"chars": 61,
"preview": "rules:\n document-start: disable\n line-length:\n max: 250\n"
},
{
"path": "CHANGELOG.md",
"chars": 243443,
"preview": "# TimescaleDB Changelog\n\n**Please note: When updating your database, you should connect using\nThis page lists all the la"
},
{
"path": "CMakeLists.txt",
"chars": 24035,
"preview": "cmake_minimum_required(VERSION 3.15)\n\nlist(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)\n\ninclude(CheckCCo"
},
{
"path": "CONTRIBUTING.md",
"chars": 10493,
"preview": "# Contributing to TimescaleDB\n\nWe appreciate any help the community can provide to make TimescaleDB better! \n\nYou can h"
},
{
"path": "LICENSE",
"chars": 807,
"preview": "Source code in this repository is variously licensed under the Apache License\nVersion 2.0, an Apache compatible license,"
},
{
"path": "LICENSE-APACHE",
"chars": 10174,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NOTICE",
"chars": 2468,
"preview": "TimescaleDB (TM)\n\nCopyright (c) 2017-2026 Timescale, Inc. All Rights Reserved.\nCopyright (c) 2016-2017 440 Labs, Inc. "
},
{
"path": "README.md",
"chars": 19804,
"preview": "<div align=center>\n<picture align=center>\n <source srcset=\"https://assets.timescale.com/timescale-web/brand/show/hor"
},
{
"path": "SECURITY.md",
"chars": 1491,
"preview": "# Security Policy\n\nWe aim to keep TimescaleDB safe for everyone. \nPublicly disclosing security bugs in a public forum ca"
},
{
"path": "bootstrap",
"chars": 1120,
"preview": "#!/usr/bin/env bash\n\n# This bootstrap scripts set up the build environment for TimescaleDB\n# Any flags will be passed on"
},
{
"path": "bootstrap.bat",
"chars": 774,
"preview": "@echo off\n:: This bootstrap scripts set up the build environment for TimescaleDB\n:: Any flags will be passed on to CMake"
},
{
"path": "cmake/GenerateScripts.cmake",
"chars": 4053,
"preview": "# Functions to generate downgrade scripts\n\n# generate_downgrade_script(<options>)\n#\n# Create a downgrade script from a s"
},
{
"path": "cmake/GenerateTestSchedule.cmake",
"chars": 1987,
"preview": "# generate_test_schedul(<output file> ...)\n#\n# A test schedule is generated for the files in TEST_FILES. The test schedu"
},
{
"path": "cmake/GitCommands.cmake",
"chars": 3099,
"preview": "# Git helper functions and macros\n\n# git_get_versioned(VERSION <version> FILES <path> ...)\n#\n# Get files by name relativ"
},
{
"path": "cmake/ScriptFiles.cmake",
"chars": 2875,
"preview": "# File defining all variables used to generate script files.\n#\n# This is needed for the downgrade script since files can"
},
{
"path": "coccinelle/README.md",
"chars": 1068,
"preview": "This directory contains scripts to check the codebase for defective\nprogramming patterns, eg use after free or not freei"
},
{
"path": "coccinelle/attrnumbergetattroffset.cocci",
"chars": 710,
"preview": "//\n// find missing `AttrNumberGetAttrOffset` usage\n//\n// Postgres has `AttrNumberGetAttrOffset()` macro to proper access"
},
{
"path": "coccinelle/bms_result.cocci",
"chars": 1560,
"preview": "// Some bitmap set operations recycle one of the input parameters or return\n// a reference to a new bitmap set. The foll"
},
{
"path": "coccinelle/hash_create.cocci",
"chars": 923,
"preview": "// find hash_create calls without HASH_CONTEXT flag\n//\n// hash_create calls without HASH_CONTEXT flag will create the ha"
},
{
"path": "coccinelle/heap_freetuple.cocci",
"chars": 475,
"preview": "// find heap_form_tuple with missing heap_freetuple calls\n@ heap_form_tuple @\nidentifier tuple;\nposition p;\n@@\n\ntuple@p "
},
{
"path": "coccinelle/hypertable_cache.cocci",
"chars": 1214,
"preview": "// find hypertable uses after cache release\n@ cache_get @\nexpression cache, ht, htid, relid, rv, schema, table, flags;\np"
},
{
"path": "coccinelle/hypertable_cache2.cocci",
"chars": 1345,
"preview": "// find use after free bugs due to premature cache releases\n// this will find bugs of the following form:\n// ht = ts_hyp"
},
{
"path": "coccinelle/mcxt.cocci",
"chars": 507,
"preview": "// find MemoryContextSwitchTo missing a context switch back\n@ MemoryContextSwitch @\nlocal idexpression oldctx;\nposition "
},
{
"path": "coccinelle/namedata.cocci",
"chars": 1245,
"preview": "// NameData is a fixed-size type of 64 bytes. Using strlcpy to copy data into a\n// NameData struct can cause problems be"
},
{
"path": "coccinelle/oidisvalid.cocci",
"chars": 1033,
"preview": "//\n// find comparisons against `InvalidOid`\n//\n// Postgres has `OidIsValid()` macro to check if a given Oid is valid or "
},
{
"path": "coverage/CMakeLists.txt",
"chars": 6467,
"preview": "# CMake targets for generating code coverage reports\n#\n# Note that the targets in here are not needed to enable code cov"
},
{
"path": "coverage/README.md",
"chars": 1569,
"preview": "# Code coverage for TimescaleDB\n\nCode coverage can be enabled for TimescaleDB builds by setting the\noption `-DCODECOVEAG"
},
{
"path": "docs/BuildSource.md",
"chars": 2617,
"preview": "### Building from source\n\n#### Building from source (Unix-based systems)\n\nIf you are building from source for **non-deve"
},
{
"path": "docs/MultiNodeDeprecation.md",
"chars": 3183,
"preview": "## Multi-node Deprecation\r\n\r\nMulti-node support has been deprecated.\r\nTimescaleDB 2.13 is the last version that will inc"
},
{
"path": "docs/StyleGuide.md",
"chars": 6266,
"preview": "# TimescaleDB code style guide\n\nSource code should follow the\n[PostgreSQL coding conventions](https://www.postgresql.org"
},
{
"path": "docs/getting-started/README.md",
"chars": 7590,
"preview": "# TimescaleDB Examples\n\nThis directory contains complete, standalone examples to help you get started with TimescaleDB u"
},
{
"path": "docs/getting-started/events-uuidv7/README.md",
"chars": 13752,
"preview": "# Application Events with UUIDv7 Example\n\nGet started with TimescaleDB using application event data leveraging UUIDv7 id"
},
{
"path": "docs/getting-started/financial-ticks/README.md",
"chars": 9187,
"preview": "# Financial Market Data Example\n\nThis example will demonstrate financial tick and candlestick data analysis with Timesca"
},
{
"path": "docs/getting-started/nyc-taxi/README.md",
"chars": 14474,
"preview": "# NYC Taxi Data Example\n\nGet started with TimescaleDB using New York City taxi trip data. This example demonstrates how "
},
{
"path": "docs/getting-started/nyc-taxi/nyc-taxi-queries.sql",
"chars": 2283,
"preview": "-- Sample analytical queries for NYC Taxi dataset\n-- These showcase TimescaleDB's columnstore performance\n\n\\echo '=== Sa"
},
{
"path": "docs/getting-started/nyc-taxi/nyc-taxi-sample.csv",
"chars": 492,
"preview": "vendor_id,pickup_boroname,pickup_datetime,dropoff_datetime,passenger_count,trip_distance,pickup_longitude,pickup_latitud"
},
{
"path": "docs/getting-started/nyc-taxi/nyc-taxi-schema.sql",
"chars": 3373,
"preview": "-- TimescaleDB NYC Taxi Example Schema\n--\n-- This schema demonstrates optimal design for high-volume transportation data"
},
{
"path": "scripts/CMakeLists.txt",
"chars": 272,
"preview": "find_program(\n NM\n NAMES nm\n PATHS /usr/bin /usr/local/bin /opt/local/bin)\nif(NM)\n message(STATUS \"Using nm ${NM}\")\n"
},
{
"path": "scripts/backport.py",
"chars": 20423,
"preview": "#!/usr/bin/env python3\n\nimport os\nimport random\nimport re\nimport string\nimport subprocess\nimport sys\n\nfrom github import"
},
{
"path": "scripts/bundle_coredumps.sh",
"chars": 430,
"preview": "#!/bin/bash\n\nTARGET=coredumps\nCOREDUMP_DIR=/var/lib/systemd/coredump\n\nset -e\n\nmkdir -p \"$TARGET\"\n\n# get information from"
},
{
"path": "scripts/c_license_header-apache.h",
"chars": 189,
"preview": "/*\n * This file and its contents are licensed under the Apache License 2.0.\n * Please see the included NOTICE for copyri"
},
{
"path": "scripts/c_license_header-timescale.h",
"chars": 191,
"preview": "/*\n * This file and its contents are licensed under the Timescale License.\n * Please see the included NOTICE for copyrig"
},
{
"path": "scripts/changelog/generate.sh",
"chars": 2241,
"preview": "#!/usr/bin/env bash\nset -eu\n\n#\n# This script build a CHANGELOG.md for a new release\n#\n\necho_changelog() {\n echo \"${1}"
},
{
"path": "scripts/changelog/template.rfc822",
"chars": 285,
"preview": "Backward-Incompatible Change: #NNNNN <one line description of the feature>\n\nImplements: #NNNNN <one line description of "
},
{
"path": "scripts/check_changelog_format.py",
"chars": 4739,
"preview": "#!/usr/bin/env python3\n\nimport sys\nimport re\nimport os\n\nimport github # this is PyGithub.\n\nimport requests\nimport strin"
},
{
"path": "scripts/check_file_license.sh",
"chars": 2667,
"preview": "#!/bin/bash\n\nget_c_license() {\n awk 'BEGIN {ORS=\"\"}{if($1 == \"*/\") {print; exit;}} {print}' $1\n}\n\nget_sql_license() {"
},
{
"path": "scripts/check_license.sh",
"chars": 1305,
"preview": "#! /bin/bash\n\nSCRIPT_DIR=$(dirname ${0})\nSRC_DIR=$(dirname ${SCRIPT_DIR})\n\n# we skip license checks for:\n# - the updat"
},
{
"path": "scripts/check_license_all.sh",
"chars": 512,
"preview": "#!/bin/bash\nSCRIPT_DIR=$(dirname $0)\nBASE_DIR=$(dirname ${SCRIPT_DIR})\n\nSRC_DIR=$BASE_DIR ${SCRIPT_DIR}/check_license.sh"
},
{
"path": "scripts/check_missing_gitignore_for_template_tests.sh",
"chars": 420,
"preview": "#!/bin/bash\n\nERROR=0\n\nfor FILE in $(git ls-files | grep '\\.sql\\.in')\ndo\n DIRNAME=$(dirname \"${FILE}\")\n FILENAME=$(base"
},
{
"path": "scripts/check_orphaned_test_output_files.sh",
"chars": 503,
"preview": "#!/bin/bash\n\nERROR=0\n\nfor FILE in $(git ls-files test/expected/*-[0-9][0-9].out tsl/test/expected/*-[0-9][0-9].out)\ndo\n "
},
{
"path": "scripts/check_sql_script.py",
"chars": 4256,
"preview": "#!/usr/bin/env python\n\n# Check SQL script components for problematic patterns. This script is\n# intended to be run on th"
},
{
"path": "scripts/check_unnecessary_template_tests.sh",
"chars": 486,
"preview": "#!/bin/bash\n\nERROR=0\n\nfor FILE in $(git ls-files test/sql/*.sql.in tsl/test/sql/*.sql.in)\ndo\n DIRNAME=$(dirname \"${FILE"
},
{
"path": "scripts/check_unreferenced_files.sh",
"chars": 842,
"preview": "#!/bin/bash\n\nSCRIPT_DIR=$(dirname ${0})\nBASE_DIR=$(pwd)/$SCRIPT_DIR/..\n\nunreferenced=0\n\nfunction get_filenames {\n echo "
},
{
"path": "scripts/check_updates.py",
"chars": 8584,
"preview": "#!/usr/bin/env python\n\n# Check SQL update script for undesirable patterns. This script is\n# intended to be run on the co"
},
{
"path": "scripts/clang_format_all.sh",
"chars": 504,
"preview": "#!/bin/bash\n\n# we need to convert script dir to an absolute path\nSCRIPT_DIR=$(cd \"$(dirname $0)\" || exit; pwd)\nBASE_DIR="
},
{
"path": "scripts/clang_format_wrapper.sh",
"chars": 2148,
"preview": "#!/bin/bash\n\n# clang-format misunderstand sql function written in C because they have the signature\n# Datum my_func(PG"
},
{
"path": "scripts/cmake_format_all.sh",
"chars": 240,
"preview": "#!/bin/bash\n\nSCRIPTDIR=$(cd \"$(dirname $0)\" || exit; pwd)\nBASEDIR=$(dirname $SCRIPTDIR)\n\nfind $BASEDIR -name CMakeLists."
},
{
"path": "scripts/coccinelle.sh",
"chars": 379,
"preview": "#!/bin/bash\n\nset -o pipefail\n\nSCRIPT_DIR=$(dirname \"${0}\")\nFAILED=false\ntrue > coccinelle.diff\n\nfor f in \"${SCRIPT_DIR}\""
},
{
"path": "scripts/delete_released_change_logs.sh",
"chars": 416,
"preview": "#!/bin/bash\n\n# Check if both old_version and new_version have been provided\nif [[ -z \"$1\" || -z \"$2\" ]]; then\n echo \"Us"
},
{
"path": "scripts/docker-build.sh",
"chars": 3907,
"preview": "#!/usr/bin/env bash\n#\n# This script builds a development TimescaleDB image from the\n# currently checked out source on th"
},
{
"path": "scripts/docker-run-tests.sh",
"chars": 1614,
"preview": "#!/usr/bin/env bash\n#\n# This script runs the TimescaleDB tests through a standard PostgreSQL\n# container, first installi"
},
{
"path": "scripts/dump_meta_data.sql",
"chars": 5472,
"preview": "--\n-- This file is licensed under the Apache License, see LICENSE-APACHE\n-- at the top level directory of the TimescaleD"
},
{
"path": "scripts/export_prefix_check.sh.in",
"chars": 3065,
"preview": "#!/bin/bash\n\nif [ ! -x \"@NM@\" ];\nthen\n echo \"Cannot check export format because nm is not installed\" >&2\n exit 1\nfi\n\nD"
},
{
"path": "scripts/githooks/.gitignore",
"chars": 24,
"preview": "/__pycache__/\n/*.pyc\n/*~"
},
{
"path": "scripts/githooks/commit_msg.py",
"chars": 6202,
"preview": "#!/usr/bin/env python3\n\n# Check a Git commit message according to the seven rules of a good commit message:\n# https://ch"
},
{
"path": "scripts/githooks/commit_msg_tests.py",
"chars": 3929,
"preview": "#!/usr/bin/env python3\n\nimport unittest\nfrom commit_msg import GitCommitMessage\n\n\nclass TestCommitMsg(unittest.TestCase)"
},
{
"path": "scripts/label-released.py",
"chars": 8661,
"preview": "#!/usr/bin/env python3\n\"\"\"\nLook at commits between the given release and the previous one, and label all\nPRs that made t"
},
{
"path": "scripts/license_apache.spec",
"chars": 179,
"preview": "# This file and its contents are licensed under the Apache License 2.0.\n# Please see the included NOTICE for copyright i"
},
{
"path": "scripts/license_tsl.spec",
"chars": 181,
"preview": "# This file and its contents are licensed under the Timescale License.\n# Please see the included NOTICE for copyright in"
},
{
"path": "scripts/memory_leaks.sql",
"chars": 1385,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "scripts/out_of_order_random_direct.sql",
"chars": 650,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "scripts/perltidy_format_all.sh",
"chars": 489,
"preview": "#!/bin/bash\n\nSCRIPTDIR=$(cd \"$(dirname $0)\" || exit; pwd)\nBASEDIR=$(dirname $SCRIPTDIR)\n\nPERLTIDY=${PERLTIDY:-perltidy}\n"
},
{
"path": "scripts/release/build_post_release_artefacts.sh",
"chars": 2323,
"preview": "#!/bin/bash\n\n#\n# Build the necessary artefacts for the forwardporting the\n# the release to `main` (Minor & Patch)\n# - up"
},
{
"path": "scripts/release/build_release_artefacts.sh",
"chars": 1885,
"preview": "#!/bin/bash\n\n#\n# Build the necessary artefacts for the next release (Minor & Patch)\n# - up & down files for the next ver"
},
{
"path": "scripts/release/create_minor_release_branch.sh",
"chars": 643,
"preview": "#!/bin/bash\nset -eu\n\n# Folder, where we have cloned repositories' sources\nSOURCES_DIR=\"timescaledb\"\n\nFORK_DIR=\"timescale"
},
{
"path": "scripts/release/ready_fork_for_commit.sh",
"chars": 1280,
"preview": "#!/bin/bash\nset -eu\n\n\necho \"---- Setting git user parameters as per current global git configuration ----\"\n\n# GITHUB_USE"
},
{
"path": "scripts/run_sql.sh",
"chars": 297,
"preview": "#!/usr/bin/env bash\n\n# To avoid pw writing, add localhost:5432:*:postgres:test to ~/.pgpass\nset -u\nset -e\n\nPWD=$(pwd)\nDI"
},
{
"path": "scripts/shellcheck-ci.sh",
"chars": 253,
"preview": "#!/bin/bash\nset -e\n\nfind ./* .github -type f -executable \\\n -exec bash -c '[ \"$(file --brief --mime-type \"$1\")\" == \"tex"
},
{
"path": "scripts/sql_license_apache.sql",
"chars": 183,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "scripts/sql_license_tsl.sql",
"chars": 184,
"preview": "-- This file and its contents are licensed under the Timescale License.\n-- Please see the included NOTICE for copyright "
},
{
"path": "scripts/start-local-docker.ps1",
"chars": 4540,
"preview": "#requires -Version 5.1\n$ErrorActionPreference = \"Stop\"\n\n# --- Configuration ---\n$IMAGE_NAME = \"timescale/timescaledb"
},
{
"path": "scripts/start-local-docker.sh",
"chars": 6506,
"preview": "#!/bin/sh\nset -e\n\n#\n# Getting Started script with Docker\n# \n# URL: https://tsdb.co/start-local \n#\n\n# --- Configuration -"
},
{
"path": "scripts/suppressions/README.md",
"chars": 656,
"preview": "# Suppressions for Clang Sanitizers #\n\nThis folder contains [supression files](https://clang.llvm.org/docs/SanitizerSpec"
},
{
"path": "scripts/suppressions/suppr_asan.txt",
"chars": 85,
"preview": "#suppress getaddrinfo due to internal error on macos\ninterceptor_via_fun:getaddrinfo\n"
},
{
"path": "scripts/suppressions/suppr_leak.txt",
"chars": 686,
"preview": "leak:save_ps_display_args\nleak:psql/startup.c\n#don't care about the frontend leaks\nleak:fe_memutils.c\nleak:fe-connect.c\n"
},
{
"path": "scripts/suppressions/suppr_ub.txt",
"chars": 1117,
"preview": "alignment:pg_comp_crc32c_sse42\nalignment:array_cmp\nalignment:array_iter_setup\nalignment:array_out\nalignment:array_unnest"
},
{
"path": "scripts/test_downgrade.sh",
"chars": 1503,
"preview": "#!/bin/bash\n\nset -e\n\nSCRIPT_DIR=$(dirname $0)\nPG_MAJOR_VERSION=$(pg_config --version | awk '{print $2}' | awk -F. '{prin"
},
{
"path": "scripts/test_license.sql",
"chars": 183,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "scripts/test_memory_spikes.py",
"chars": 5204,
"preview": "#!/usr/bin/env python\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the includ"
},
{
"path": "scripts/test_pg_upgrade.py",
"chars": 3938,
"preview": "#!/usr/bin/env python3\n\nimport os\nimport sys\n\nfrom shutil import rmtree\nfrom testgres import get_new_node, PostgresNode\n"
},
{
"path": "scripts/test_regressions.sh",
"chars": 2708,
"preview": "#!/bin/bash\nset -eu\n\n#\n# Run regression check\n#\n# Param: <next_version>\n# Param: <connection_string>\n#\n\nif [ \"$#\" -ne 2 "
},
{
"path": "scripts/test_sanitizers.sh",
"chars": 3490,
"preview": "#!/bin/bash\n\nset -e\nset -o pipefail\n\nDO_CLEANUP=true\nSCRIPT_DIR=${SCRIPT_DIR:-$(dirname \"$0\")}\nEXCLUDE_PATTERN=${EXCLUDE"
},
{
"path": "scripts/test_update_from_version.sh",
"chars": 5761,
"preview": "#!/usr/bin/env bash\n\n# During the update test the following databases will be created:\n# - baseline: fresh installation "
},
{
"path": "scripts/test_update_smoke.sh",
"chars": 6949,
"preview": "#!/bin/bash\n# shellcheck disable=SC2129,SC2230\n# SC2129: Consider using { cmd1; cmd2; } >> file instead of individual re"
},
{
"path": "scripts/test_updates.sh",
"chars": 3831,
"preview": "#!/bin/bash\n\nset -eu\n\nSCRIPT_DIR=$(readlink -f \"$(dirname $0)\")\nPG_MAJOR_VERSION=$(pg_config --version | awk '{print $2}"
},
{
"path": "scripts/ts_dump.sh",
"chars": 1737,
"preview": "#!/usr/bin/env bash\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the included"
},
{
"path": "scripts/ts_restore.sh",
"chars": 1315,
"preview": "#!/usr/bin/env bash\n\n# This file and its contents are licensed under the Apache License 2.0.\n# Please see the included"
},
{
"path": "scripts/upload_ci_stats.sh",
"chars": 5941,
"preview": "#!/usr/bin/env bash\nset -xue\nset -o pipefail\n\nif [ -z \"${CI_STATS_DB:-}\" ]\nthen\n # The secret with the stats db conne"
},
{
"path": "sql/CMakeLists.txt",
"chars": 8603,
"preview": "set(INSTALL_FILE ${PROJECT_NAME}--${PROJECT_VERSION_MOD}.sql)\n\ninclude(ScriptFiles)\n\n# These files represent the modific"
},
{
"path": "sql/bgw_scheduler.sql",
"chars": 670,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/bgw_startup.sql",
"chars": 243,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/bookend.sql",
"chars": 3397,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/cagg_utils.sql",
"chars": 1492,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/cat.cmake",
"chars": 713,
"preview": "\nIF(POLICY CMP0012)\n CMAKE_POLICY(SET CMP0012 NEW)\nENDIF()\n\nif (NOT DEFINED STRIP_REPLACE)\n set(STRIP_REPLACE OFF)\nend"
},
{
"path": "sql/chunk.sql",
"chars": 4543,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/chunk_constraint.sql",
"chars": 4188,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/comment_apache.sql",
"chars": 307,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/comment_tsl.sql",
"chars": 308,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/compat.sql",
"chars": 31869,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
},
{
"path": "sql/compression.sql",
"chars": 674,
"preview": "-- This file and its contents are licensed under the Apache License 2.0.\n-- Please see the included NOTICE for copyright"
}
]
// ... and 2539 more files (download for full content)
About this extraction
This page contains the full source code of the timescale/timescaledb GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2739 files (37.2 MB), approximately 4.1M tokens, and a symbol index with 5500 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.