-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
304 lines (289 loc) · 8.47 KB
/
Copy pathCMakeLists.txt
File metadata and controls
304 lines (289 loc) · 8.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
include(GenerateTestSchedule)
# These are the files for the 'postgresql' configuration. This is the default,
# so unless you have a good reason, add new test files here.
set(TEST_FILES
agg_partials_pushdown.sql
bgw_job_ddl.sql
bgw_policy.sql
bgw_security.sql
cagg_add_column.sql
cagg_ddl.sql
cagg_direct_compress.sql
chunk_append_space_runtime_exclusion.sql
cagg_errors.sql
cagg_granular_refresh_api.sql
cagg_invalidation.sql
cagg_invalidation_variable_bucket.sql
cagg_policy.sql
cagg_query.sql
cagg_query_using_merge.sql
cagg_refresh_using_trigger.sql
cagg_refresh_using_merge.sql
cagg_skip_invalidation.sql
cagg_union_view.sql
cagg_utils.sql
chunk_publication_compression.sql
columnstore_aliases.sql
compact_chunk.sql
compaction_policy.sql
compress_auto_sparse_index.sql
compress_batch_size.sql
compress_bitmap_scan.sql
compress_bloom.sql
compress_bloom_dml.sql
compress_default.sql
compress_dml_aux.sql
compress_dml_bitmap_rescan.sql
compress_dml_copy.sql
compress_explain.sql
compress_firstlast_sparse.sql
compress_float8_corrupt.sql
compress_qualpushdown_complex.sql
compress_qualpushdown_saop.sql
compress_sparse_config.sql
compress_stats.sql
compress_unordered_sort.sql
compressed_collation.sql
compressed_detoaster.sql
compression.sql
compression_allocation.sql
compression_conflicts.sql
compression_constraints.sql
compression_create_compressed_table.sql
compression_defaults.sql
compression_fks.sql
compression_indexcreate.sql
compression_insert.sql
compression_null_dump_restore.sql
compression_nulls_and_defaults.sql
compression_policy.sql
compression_qualpushdown.sql
compression_sequence_num_removal.sql
compression_settings.sql
compression_sorted_merge.sql
compression_sorted_merge_distinct.sql
compression_sorted_merge_unordered.sql
compression_trigger.sql
compression_uuid.sql
create_table_with.sql
decompress_batch.sql
decompress_index.sql
direct_compress_analyze_segmentby.sql
direct_compress_insert.sql
direct_compress_policy.sql
move.sql
plan_skip_scan_pg_partition.sql
policy_generalization.sql
rebuild_columnstore_tests.sql
rebuild_sparse_index.sql
recompression_integrity_tests.sql
recompression_integrity_unordered.sql
recompression_nullable_orderby.sql
reorder.sql
size_utils_tsl.sql
skip_scan.sql
skip_scan_dagg.sql
split_chunk.sql
transparent_decompression_join_index.sql
uncompressed_size.sql
unlogged.sql
vector_agg_expr.sql
vector_agg_functions.sql
vector_agg_groupagg.sql
vector_agg_param.sql
vectorized_aggregation.sql)
set(TEST_TEMPLATES
cagg_hierarchical_realtime.sql.in
cagg_permissions.sql.in
cagg_planning.sql.in
cagg_rewrites.sql.in
cagg_watermark.sql.in
columnar_index_scan.sql.in
columnar_scan_cost.sql.in
compress_sort_transform.sql.in
compress_bloom_sparse.sql.in
compress_observ.sql.in
compression_permissions.sql.in
foreign_keys_test.sql.in
memoize.sql.in
modify_exclusion.sql.in
ordered_append.sql.in
plan_skip_scan.sql.in
plan_skip_scan_dagg.sql.in
plan_skip_scan_notnull.sql.in
vector_agg_planning.sql.in
transparent_decompression.sql.in
transparent_decompression_ordered_index.sql.in)
if(USE_TELEMETRY)
list(APPEND TEST_FILES bgw_telemetry.sql)
endif()
if(NOT APPLE)
list(APPEND TEST_FILES direct_compress_copy.sql)
endif()
if(CMAKE_BUILD_TYPE MATCHES Debug)
list(
APPEND
TEST_FILES
attach_chunk.sql
bgw_custom.sql
bgw_db_scheduler.sql
bgw_job_stat_history.sql
bgw_job_stat_history_errors.sql
bgw_job_stat_history_errors_permissions.sql
bgw_db_scheduler_fixed.sql
bgw_scheduler_control.sql
bgw_scheduler_restart.sql
bgw_reorder_drop_chunks.sql
scheduler_fixed.sql
cagg_policy_concurrent.sql
cagg_policy_incremental.sql
cagg_refresh_cleanup.sql
cagg_refresh_incremental.sql
chunk_column_stats.sql
compress_bgw_reorder_drop_chunks.sql
compress_bloom_legacy_v1.sql
chunk_api.sql
chunk_merge.sql
chunk_utils_compression.sql
chunk_utils_internal.sql
compress_bloom_sparse_debug.sql
compress_composite_bloom_debug.sql
compression_algos.sql
compression_bgw.sql
compression_bools.sql
compression_bool_vectorized.sql
compression_ddl.sql
compression_delete_bitmapscan.sql
compression_errors.sql
compression_hypertable.sql
compression_merge.sql
compression_indexscan.sql
compression_segment_meta.sql
compression_sorted_merge_columns.sql
compression_sorted_merge_filter.sql
cagg.sql
cagg_bgw.sql
cagg_bgw_drop_chunks.sql
cagg_drop_chunks.sql
cagg_dump.sql
cagg_joins.sql
cagg_multi.sql
cagg_on_cagg_joins.sql
cagg_on_cagg.sql
cagg_policy_run.sql
cagg_tableam.sql
cagg_usage.sql
cagg_uuid.sql
columnar_scan_memory.sql
decompress_memory.sql
decompress_vector_qual.sql
detach_chunk.sql
direct_compress_memory.sql
hypertable_generalization.sql
insert_memory_usage.sql
information_view_chunk_count.sql
read_only.sql
tsl_tables.sql
uuid_policies.sql
license_tsl.sql
merge_chunks.sql
merge_compress.sql
fixed_schedules.sql
recompress_chunk_segmentwise.sql
feature_flags.sql
vector_agg_byte.sql
vector_agg_default.sql
vector_agg_filter.sql
vector_agg_grouping.sql
vector_agg_text.sql
vector_agg_text_overflow.sql
vector_agg_memory.sql
vector_agg_modify_hypertable.sql
vector_agg_segmentby.sql
vector_agg_uuid.sql
vector_qual_default.sql
vacuum.sql)
list(APPEND TEST_TEMPLATES compression_update_delete.sql.in
transparent_decompression_queries.sql.in)
if(USE_TELEMETRY)
list(APPEND TEST_FILES telemetry_stats.sql)
endif()
endif(CMAKE_BUILD_TYPE MATCHES Debug)
if((${PG_VERSION_MAJOR} GREATER_EQUAL "17"))
list(APPEND TEST_FILES privilege_maintain.sql)
list(APPEND TEST_TEMPLATES merge_append_partially_compressed.sql.in)
if(CMAKE_BUILD_TYPE MATCHES Debug)
list(APPEND TEST_FILES vector_agg_expr_debug.sql)
endif(CMAKE_BUILD_TYPE MATCHES Debug)
endif()
if((${PG_VERSION_MAJOR} EQUAL "18"))
# WAL numbers will differ on 32-bit platform / PG versions so we only run on
# 64-bit PG18
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
list(APPEND TEST_FILES explain_wal.sql)
endif()
endif()
if((${PG_VERSION_MAJOR} GREATER_EQUAL "18"))
list(APPEND TEST_FILES constraints_not_valid.sql)
endif()
set(SOLO_TESTS
# This interferes with other tests since it reloads the config to increase
# log level.
bgw_custom
bgw_scheduler_control
bgw_scheduler_restart
bgw_db_scheduler
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
compression_ddl
cagg_bgw
cagg_ddl
cagg_dump
cagg_policy_incremental
explain_wal
move
reorder
split_chunk
telemetry_stats)
# Check if PostgreSQL was compiled with JIT support
set(PG_CONFIG_H "${PG_INCLUDEDIR}/pg_config.h")
if(EXISTS ${PG_CONFIG_H})
file(STRINGS "${PG_CONFIG_H}" PG_USE_LLVM
REGEX "^#[\t ]*define[\t ]+USE_LLVM[\t ]+1.*")
if(PG_USE_LLVM)
list(APPEND TEST_FILES jit.sql)
endif()
endif()
# Regression tests that vary with PostgreSQL version. Generated test files are
# put in the original source directory since all tests must be in the same
# directory. These files are updated when the template is edited, but not when
# the output file is deleted. If the output is deleted either recreate it
# manually, or rerun cmake on the root dir.
foreach(TEMPLATE_FILE ${TEST_TEMPLATES})
string(LENGTH ${TEMPLATE_FILE} TEMPLATE_NAME_LEN)
math(EXPR TEMPLATE_NAME_LEN ${TEMPLATE_NAME_LEN}-7)
string(SUBSTRING ${TEMPLATE_FILE} 0 ${TEMPLATE_NAME_LEN} TEMPLATE)
set(TEST_FILE ${TEMPLATE}-${TEST_VERSION_SUFFIX}.sql)
configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE}
COPYONLY)
list(APPEND TEST_FILES ${TEST_FILE})
endforeach(TEMPLATE_FILE)
if(NOT TEST_GROUP_SIZE)
set(PARALLEL_GROUP_SIZE 10)
else()
set(PARALLEL_GROUP_SIZE ${TEST_GROUP_SIZE})
endif()
# Generate a test schedule
generate_test_schedule(
${TEST_SCHEDULE}
TEST_FILES
${TEST_FILES}
SOLO
${SOLO_TESTS}
GROUP_SIZE
${PARALLEL_GROUP_SIZE})