tinybird-toolset 2.4.11__tar.gz → 2.4.14__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.11/src/tinybird_toolset.egg-info → tinybird_toolset-2.4.14}/PKG-INFO +1 -1
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/conf.py +39 -5
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/setup.py +1 -1
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14/src/tinybird_toolset.egg-info}/PKG-INFO +1 -1
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_convert_to_row_binary.py +43 -4
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/LICENSE +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/MANIFEST.in +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/README.md +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/setup.cfg +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/chtoolset/__init__.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/chtoolset/query.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/SOURCES.txt +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/dependency_links.txt +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/requires.txt +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/top_level.txt +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_check_compatible_types.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_check_write_query.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_chquery.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_explain_ast.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_get_columns_from_create_query.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_get_left_table.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_internal_cache.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_normalize_query_keep_names.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_normalize_table_column.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_parse_create_materialized_view_target_table.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_replace_tables.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_replace_tables_backward_compat.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_rewrite_aggregation_states.py +0 -0
- {tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/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:
|
|
@@ -123,6 +141,11 @@ class ClickHouseBuildExt(build_ext):
|
|
|
123
141
|
# Temporary for debugging: some functions are missing from libdbms.a, this is in the private repo pmaster already so we should include it from the repo
|
|
124
142
|
apply_patch("patches/dbmsfunctions.patch")
|
|
125
143
|
|
|
144
|
+
# Range-check narrow-integer Field inserts so JSON/Dynamic paths widen instead of
|
|
145
|
+
# silently wrapping (1944 -> -104). Backport of the ColumnVector::tryInsert fix;
|
|
146
|
+
# remove once the fix lands in the pinned ClickHouse submodule.
|
|
147
|
+
apply_patch("patches/ColumnVectorTryInsert.patch")
|
|
148
|
+
|
|
126
149
|
if sys.platform == 'darwin':
|
|
127
150
|
# We disable whole_archive options destined for AppleClang, which is unsupported but keeps being a PITA
|
|
128
151
|
apply_patch("patches/darwin.patch")
|
|
@@ -276,10 +299,13 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
276
299
|
def cflags():
|
|
277
300
|
cflags_list = CustomBuildWithFromCH.ninja_extractor_other('FLAGS')
|
|
278
301
|
include_list = list(map(transform_path, CustomBuildWithFromCH.ninja_extractor_other('INCLUDES')))
|
|
279
|
-
#
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
302
|
+
# Replace -I with -isystem: these are external headers and we don't want to see warnings from them
|
|
303
|
+
include_list = [flag.replace('-I', '-isystem', 1) if flag.startswith('-I') else flag for flag in include_list]
|
|
304
|
+
# Remove -W flags, set our own warnings
|
|
305
|
+
cflags_list = [flag for flag in cflags_list if not flag.startswith('-W')]
|
|
306
|
+
other_list = CLANG_WARNINGS.copy()
|
|
307
|
+
other_list += ['-Werror'] # Treat warnings as errors
|
|
308
|
+
|
|
283
309
|
if BUILD_FOR_VALGRIND:
|
|
284
310
|
other_list += ['-g', '-gdwarf-4']
|
|
285
311
|
elif DEBUG_SYMBOLS:
|
|
@@ -332,6 +358,10 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
332
358
|
|
|
333
359
|
# Remove -Wl,--no-undefined since Python symbols will undefined
|
|
334
360
|
link_flags = filter(lambda flag: flag.find('--no-undefined') == -1, link_flags)
|
|
361
|
+
if sys.platform == 'darwin':
|
|
362
|
+
# -undefined dynamic_lookup (added in extra_libs) already permits all undefined
|
|
363
|
+
# symbols, so an explicit -Wl,-U,<symbol> is redundant and makes ld emit a warning.
|
|
364
|
+
link_flags = filter(lambda flag: not flag.startswith('-Wl,-U,'), link_flags)
|
|
335
365
|
return " ".join(link_flags)
|
|
336
366
|
|
|
337
367
|
@staticmethod
|
|
@@ -384,7 +414,11 @@ class CustomBuildWithFromCH(build_ext):
|
|
|
384
414
|
linker = getattr(self.compiler, "linker_so_cxx")
|
|
385
415
|
linker = [COMPILER_CC] + split_quoted(self.ldflags()) + linker[1:]
|
|
386
416
|
|
|
387
|
-
compiler += ['-
|
|
417
|
+
compiler += ['-I', TOOLSET_PATH]
|
|
418
|
+
# Make include_dirs (Python headers; set by setuptools) to -isystem: prevents warnings from Python headers
|
|
419
|
+
for d in self.include_dirs or []:
|
|
420
|
+
compiler += ['-isystem', d]
|
|
421
|
+
self.include_dirs = []
|
|
388
422
|
|
|
389
423
|
self.compiler.set_executable("compiler_so", compiler)
|
|
390
424
|
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
|
'{}',
|
|
@@ -8309,20 +8346,22 @@ TEST_CASES = [
|
|
|
8309
8346
|
1, 0),
|
|
8310
8347
|
|
|
8311
8348
|
|
|
8312
|
-
# schemaless JSON encoded as string
|
|
8349
|
+
# schemaless JSON encoded as string widens too-narrow integer types instead of
|
|
8350
|
+
# overflowing: y=22 first pins the path to Int8, then y=220 widens it to Int16
|
|
8351
|
+
# rather than wrapping to -36 (CH-440, ColumnVector::tryInsert range check)
|
|
8313
8352
|
(ConversionMode.ONLY_LEGACY,
|
|
8314
8353
|
[('v', 'Map(String, JSON)', '$', False)],
|
|
8315
8354
|
'{"a":{"x":11,"y":22},"b":{"x":110,"y":220}}',
|
|
8316
|
-
b'\x00\x02\x01a\x0f{"x":11,"y":22}\x01b\x11{"x":110,"y"
|
|
8355
|
+
b'\x00\x02\x01a\x0f{"x":11,"y":22}\x01b\x11{"x":110,"y":220}',
|
|
8317
8356
|
b'',
|
|
8318
8357
|
1, 0),
|
|
8319
8358
|
(ConversionMode.ONLY_LEGACY,
|
|
8320
8359
|
[('json', 'Map(String, JSON)', "$", False)],
|
|
8321
8360
|
'{"a":"{\\"x\\":11,\\"y\\":22}","b":"{\\"x\\":110,\\"y\\":220}"}',
|
|
8322
|
-
b'\x00\x02\x01a\x0f{"x":11,"y":22}\x01b\x11{"x":110,"y"
|
|
8361
|
+
b'\x00\x02\x01a\x0f{"x":11,"y":22}\x01b\x11{"x":110,"y":220}',
|
|
8323
8362
|
b'',
|
|
8324
8363
|
1, 0),
|
|
8325
|
-
#
|
|
8364
|
+
# binary JSON encoding stores per-value type tags, so it already preserved the value
|
|
8326
8365
|
(ConversionMode.ONLY_NONLEGACY,
|
|
8327
8366
|
[('v', 'Map(String, JSON)', '$', False)],
|
|
8328
8367
|
'{"a":{"x":11,"y":22},"b":{"x":110,"y":220}}',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/src/tinybird_toolset.egg-info/requires.txt
RENAMED
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/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.11 → tinybird_toolset-2.4.14}/tests/test_get_columns_from_create_query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_normalize_query_keep_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_replace_tables_backward_compat.py
RENAMED
|
File without changes
|
{tinybird_toolset-2.4.11 → tinybird_toolset-2.4.14}/tests/test_rewrite_aggregation_states.py
RENAMED
|
File without changes
|
|
File without changes
|