tinybird-toolset 2.4.10__tar.gz → 2.4.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tinybird_toolset-2.4.10/src/tinybird_toolset.egg-info → tinybird_toolset-2.4.13}/PKG-INFO +1 -1
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/conf.py +34 -5
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/setup.py +1 -1
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13/src/tinybird_toolset.egg-info}/PKG-INFO +1 -1
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_convert_to_row_binary.py +37 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_replace_tables_backward_compat.py +5 -3
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/LICENSE +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/MANIFEST.in +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/README.md +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/setup.cfg +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/chtoolset/__init__.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/chtoolset/query.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/SOURCES.txt +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/dependency_links.txt +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/requires.txt +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/top_level.txt +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_check_compatible_types.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_check_write_query.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_chquery.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_explain_ast.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_get_columns_from_create_query.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_get_left_table.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_internal_cache.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_normalize_query_keep_names.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_normalize_table_column.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_parse_create_materialized_view_target_table.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_replace_tables.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_rewrite_aggregation_states.py +0 -0
- {tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_tables.py +0 -0
|
@@ -32,6 +32,24 @@ MSAN_ENABLED = bool(os.environ.get('MSAN_ENABLED', '')) # MemorySanitizer
|
|
|
32
32
|
TSAN_ENABLED = bool(os.environ.get('TSAN_ENABLED', '')) # ThreadSanitizer
|
|
33
33
|
THINLTO_FLAG = '-flto=thin'
|
|
34
34
|
|
|
35
|
+
# Taken from https://github.com/cpp-best-practices/cmake_template/blob/a3971f5b45/cmake/CompilerWarnings.cmake
|
|
36
|
+
CLANG_WARNINGS = [
|
|
37
|
+
'-Wall',
|
|
38
|
+
'-Wextra',
|
|
39
|
+
'-Wshadow',
|
|
40
|
+
'-Wnon-virtual-dtor',
|
|
41
|
+
'-Wold-style-cast',
|
|
42
|
+
'-Wcast-align',
|
|
43
|
+
'-Wunused',
|
|
44
|
+
'-Woverloaded-virtual',
|
|
45
|
+
'-Wpedantic',
|
|
46
|
+
'-Wconversion',
|
|
47
|
+
'-Wnull-dereference',
|
|
48
|
+
'-Wdouble-promotion',
|
|
49
|
+
'-Wformat=2',
|
|
50
|
+
'-Wimplicit-fallthrough',
|
|
51
|
+
]
|
|
52
|
+
|
|
35
53
|
|
|
36
54
|
def apply_patch(patch_path):
|
|
37
55
|
if OMIT_PATCHES:
|
|
@@ -276,10 +294,13 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
276
294
|
def cflags():
|
|
277
295
|
cflags_list = CustomBuildWithFromCH.ninja_extractor_other('FLAGS')
|
|
278
296
|
include_list = list(map(transform_path, CustomBuildWithFromCH.ninja_extractor_other('INCLUDES')))
|
|
279
|
-
#
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
# Replace -I with -isystem: these are external headers and we don't want to see warnings from them
|
|
298
|
+
include_list = [flag.replace('-I', '-isystem', 1) if flag.startswith('-I') else flag for flag in include_list]
|
|
299
|
+
# Remove -W flags, set our own warnings
|
|
300
|
+
cflags_list = [flag for flag in cflags_list if not flag.startswith('-W')]
|
|
301
|
+
other_list = CLANG_WARNINGS.copy()
|
|
302
|
+
other_list += ['-Werror'] # Treat warnings as errors
|
|
303
|
+
|
|
283
304
|
if BUILD_FOR_VALGRIND:
|
|
284
305
|
other_list += ['-g', '-gdwarf-4']
|
|
285
306
|
elif DEBUG_SYMBOLS:
|
|
@@ -332,6 +353,10 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
332
353
|
|
|
333
354
|
# Remove -Wl,--no-undefined since Python symbols will undefined
|
|
334
355
|
link_flags = filter(lambda flag: flag.find('--no-undefined') == -1, link_flags)
|
|
356
|
+
if sys.platform == 'darwin':
|
|
357
|
+
# -undefined dynamic_lookup (added in extra_libs) already permits all undefined
|
|
358
|
+
# symbols, so an explicit -Wl,-U,<symbol> is redundant and makes ld emit a warning.
|
|
359
|
+
link_flags = filter(lambda flag: not flag.startswith('-Wl,-U,'), link_flags)
|
|
335
360
|
return " ".join(link_flags)
|
|
336
361
|
|
|
337
362
|
@staticmethod
|
|
@@ -384,7 +409,11 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
384
409
|
linker = getattr(self.compiler, "linker_so_cxx")
|
|
385
410
|
linker = [COMPILER_CC] + split_quoted(self.ldflags()) + linker[1:]
|
|
386
411
|
|
|
387
|
-
compiler += ['-
|
|
412
|
+
compiler += ['-I', TOOLSET_PATH]
|
|
413
|
+
# Make include_dirs (Python headers; set by setuptools) to -isystem: prevents warnings from Python headers
|
|
414
|
+
for d in self.include_dirs or []:
|
|
415
|
+
compiler += ['-isystem', d]
|
|
416
|
+
self.include_dirs = []
|
|
388
417
|
|
|
389
418
|
self.compiler.set_executable("compiler_so", compiler)
|
|
390
419
|
self.compiler.set_executable("compiler_so_cxx", compiler)
|
|
@@ -5134,6 +5134,43 @@ TEST_CASES = [
|
|
|
5134
5134
|
b'\x00\x00L-100000000000000000000000000000000000000000000000000000000000000000000000000\x00\x01\x1dInvalid decimal string format\x00\x01\x05value\x01\x01',
|
|
5135
5135
|
0, 1),
|
|
5136
5136
|
|
|
5137
|
+
# Booleans imported into Decimal must produce EXACTLY 1.0 and 0.0, without precision loss
|
|
5138
|
+
(ConversionMode.ONLY_LEGACY,
|
|
5139
|
+
[('t', 'Decimal32(4)', '$.t', False), ('f', 'Decimal32(4)', '$.f', False)],
|
|
5140
|
+
'{"t":true,"f":false}',
|
|
5141
|
+
b'\x00\x10\x27\x00\x00\x00\x00\x00\x00\x00',
|
|
5142
|
+
b'',
|
|
5143
|
+
1, 0),
|
|
5144
|
+
|
|
5145
|
+
(ConversionMode.ONLY_LEGACY,
|
|
5146
|
+
[('t', 'Decimal64(8)', '$.t', False), ('f', 'Decimal64(8)', '$.f', False)],
|
|
5147
|
+
'{"t":true,"f":false}',
|
|
5148
|
+
b'\x00\x00\xe1\xf5\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
|
|
5149
|
+
b'',
|
|
5150
|
+
1, 0),
|
|
5151
|
+
|
|
5152
|
+
(ConversionMode.ONLY_LEGACY,
|
|
5153
|
+
[('t', 'Decimal128(30)', '$.t', False), ('f', 'Decimal128(30)', '$.f', False)],
|
|
5154
|
+
'{"t":true,"f":false}',
|
|
5155
|
+
b'\x00\x00\x00\x00\x40\xea\xed\x74\x46\xd0\x9c\x2c\x9f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
|
|
5156
|
+
b'',
|
|
5157
|
+
1, 0),
|
|
5158
|
+
|
|
5159
|
+
(ConversionMode.ONLY_LEGACY,
|
|
5160
|
+
[('t', 'Decimal256(50)', '$.t', False), ('f', 'Decimal256(50)', '$.f', False)],
|
|
5161
|
+
'{"t":true,"f":false}',
|
|
5162
|
+
b'\x00\x00\x00\x00\x00\x00\x00\x64\xb5\xfd\x34\x05\xc4\xd2\x87\x66\x92\xf9\x15\x3b\x6c\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
|
|
5163
|
+
b'',
|
|
5164
|
+
1, 0),
|
|
5165
|
+
|
|
5166
|
+
# Non-legacy mode rejects booleans imported into Decimal columns: the row is quarantined.
|
|
5167
|
+
(ConversionMode.ONLY_NONLEGACY,
|
|
5168
|
+
[('value', 'Decimal128(30)', '$.value', False)],
|
|
5169
|
+
'{"value": true}',
|
|
5170
|
+
b'',
|
|
5171
|
+
b"\x00\x00\x04true\x00\x01XInvalid value true for type 'Decimal(38, 30)' in column 'value' with jsonpath '$.value'.\x00\x01\x05value\x01\x01",
|
|
5172
|
+
0, 1),
|
|
5173
|
+
|
|
5137
5174
|
(ConversionMode.ALWAYS,
|
|
5138
5175
|
[('value', 'FixedString(6)', '$.value', False)],
|
|
5139
5176
|
'{}',
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_replace_tables_backward_compat.py
RENAMED
|
@@ -370,14 +370,16 @@ def _log_cases(cases):
|
|
|
370
370
|
|
|
371
371
|
def _results_match(baseline, target, function_name=None):
|
|
372
372
|
# Allow specific functions to transition from blocked to allowed
|
|
373
|
-
ALLOWED_UNBLOCKS = {"getSetting"}
|
|
373
|
+
ALLOWED_UNBLOCKS = {"getSetting", "hasAllTokens", "hasAnyTokens", "hasPhrase"}
|
|
374
374
|
|
|
375
375
|
if baseline.get("ok") != target.get("ok"):
|
|
376
376
|
# Check if this is an allowed unblock (was blocked, now allowed)
|
|
377
377
|
is_unblock = (not baseline.get("ok") and target.get("ok"))
|
|
378
378
|
is_allowed = function_name in ALLOWED_UNBLOCKS
|
|
379
|
-
|
|
380
|
-
|
|
379
|
+
# Blocked via deny list ("is restricted") or absent from allowlist ("Unknown function ...").
|
|
380
|
+
baseline_error = baseline.get("error_message", "")
|
|
381
|
+
is_block = "is restricted" in baseline_error or "Unknown function" in baseline_error
|
|
382
|
+
if is_unblock and is_allowed and is_block:
|
|
381
383
|
return True # This is an expected breaking change
|
|
382
384
|
return False
|
|
383
385
|
if baseline.get("ok"):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/requires.txt
RENAMED
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/src/tinybird_toolset.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_get_columns_from_create_query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_normalize_query_keep_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.10 → tinybird_toolset-2.4.13}/tests/test_rewrite_aggregation_states.py
RENAMED
|
File without changes
|
|
File without changes
|