Skip to content

Conversation

carlopi
Copy link
Contributor

@carlopi carlopi commented Oct 24, 2024

This is on top of #14531 (first 4 commits), so that can be checked first, but I though it was better to have also the more complete picture.

@carlopi
Copy link
Contributor Author

carlopi commented Oct 25, 2024

Also here tests looks mostly good to me, I am running one more check (https://github.com/carlopi/duckdb/actions/runs/11513916092) on how would CI behaving when building / distributing extensions (expecially R.yml might go wrong / not be tested as well in regular CI)

@carlopi carlopi marked this pull request as ready for review October 25, 2024 10:54
@carlopi carlopi marked this pull request as draft October 25, 2024 10:54
@carlopi carlopi marked this pull request as ready for review October 25, 2024 12:59
@carlopi carlopi changed the title Move httpfs to out-of-tree [DRAFT] Move httpfs to out-of-tree Oct 25, 2024
@carlopi carlopi requested a review from samansmink October 25, 2024 12:59
@duckdb-draftbot duckdb-draftbot marked this pull request as draft October 25, 2024 13:38
@carlopi carlopi marked this pull request as ready for review October 25, 2024 13:42
@duckdb-draftbot duckdb-draftbot marked this pull request as draft October 27, 2024 08:26
@carlopi carlopi marked this pull request as ready for review October 27, 2024 09:19
@samansmink
Copy link
Contributor

CI failure does seem related, otherwise looks good

Mytherin and others added 27 commits November 5, 2024 12:52
This PR does some clean-up in the Value interface and serialization:

* `Value::EMPTYLIST` and `Value::EMPTYARRAY` are removed, instead the
interface `Value::LIST(type, values)` can be used to generate an empty
list/array
* `Value::MAP` and `Value::STRUCT` now correctly insert casts to enforce
that the values are internally consistent with the defined types
* `LogicalType::ANY` is explicitly supported in nested value types - in
which case these types are ignored, i.e. we can do
`Value::LIST(LogicalType::ANY, values)` with a list of values of any
type
* Avoid unnecessary recursive type serialization: when serializing
nested values, we no longer need to serialize the type of every value if
the type is defined (i.e. not `LogicalType::ANY`). Instead, the type
from the upper-layer is used (i.e. if we have
`LogicalType::LIST(LogicalType::INT)`, the child elements are
deserialized as `LogicalType::INT`).
* For backwards compatibility, we still serialize the type in every
`Value` also in nested values, unless the serialization version is set
to `>= 1.2.0`.
This PR fixes various nightly CI issues, e.g. fixing some new warnings
that are breaking builds
This PR adds support for the `.decimal_sep` and `.thousand_sep` options
that can be used in the CLI to configure how these are rendered. Note
that this is only respected in `duckbox` mode currently. Example usage:

```sql
.decimal_sep ,
.thousand_sep _
SELECT 12345.6;
┌──────────────┐
│   12345.6    │
│ decimal(6,1) │
├──────────────┤
│     12_345,6 │
└──────────────┘
```

Note that there is one restriction - this currently does not work with
nested types yet but only for numbers at the top-level.
)

Supersedes duckdb#12359

This PR adds a new property to functions - `FunctionCollationHandling`.
This can be used to handle collations across different functions in an
easy way. There are three settings:

* **PROPAGATE_COLLATIONS (default)**: Propagate collations, but do not
apply them. This means that if the function returns `VARCHAR`, and any
of the input arguments are `VARCHAR`, the return type will inherit the
collations of the input arguments.
* **PUSH_COMBINABLE_COLLATIONS**: Propagates collations and applies
**combinable** collations prior to calling the function. Combinable
collations are "simple" collations like `nocase` and `noaccent`, but not
`icu` collations that are more complex.
* **IGNORE_COLLATIONS**: Ignore collations entirely.

`PUSH_COMBINABLE_COLLATIONS` is used for various functions, e.g.
`contains`, `starts_with`, `glob`, `like`, etc:

```sql
D SELECT 'hello' COLLATE NOCASE LIKE '%HEL%' AS result;
┌─────────┐
│ result  │
│ boolean │
├─────────┤
│ true    │
└─────────┘
```
)

fixes duckdblabs/duckdb-internal#3180

And this is a followup to duckdb#13617 

If the table being filtered is large enough, the order of the
expressions will get moved around due to adaptive filtering. To prevent
this, expression reordering now places severe penalties on expressions
that can throw, effectively forcing them to be executed last. Then
during adaptive filters, we set the likelihood of swapping filters that
can throw to 0. This allows other filters to be swapped, but not
filters. that can throw.
…14713)

This PR implements duckdb#14696

This allows function calls that take lambda expressions to be made
through the expression API
@duckdb-draftbot duckdb-draftbot marked this pull request as draft November 6, 2024 10:38
@carlopi carlopi closed this Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants