Skip to content

feat: add SQL join method - #1584

Merged
lvca merged 1 commit into
ArcadeData:mainfrom
gramian:join
May 3, 2024
Merged

feat: add SQL join method#1584
lvca merged 1 commit into
ArcadeData:mainfrom
gramian:join

Conversation

@gramian

@gramian gramian commented May 3, 2024

Copy link
Copy Markdown
Collaborator

What does this PR do?

This change adds a join SQL method which returns its input as string and in case of a list input the list elements are concatenated to a string with a separator supplied by an optional argument that is a comma by default.

Motivation

A join method is available in other DSLs I use.

Checklist

  • I have run the build using mvn clean package command
  • My unit tests cover both failure and success scenarios

@lvca
lvca self-requested a review May 3, 2024 23:12
@lvca lvca added the enhancement New feature or request label May 3, 2024
@lvca lvca added this to the 24.5.1 milestone May 3, 2024
@lvca
lvca merged commit 2b71175 into ArcadeData:main May 3, 2024
@lvca

lvca commented May 3, 2024

Copy link
Copy Markdown
Member

Love it, thanks!

@robfrank robfrank mentioned this pull request May 4, 2024
2 tasks
tae898 pushed a commit to humemai/arcadedb-embedded-python that referenced this pull request Jun 28, 2026
mergify Bot added a commit that referenced this pull request Aug 23, 2026
…p ci]

Bumps the go-modules group in /e2e-go with 2 updates: [github.com/stretchr/testify](https://github.com/stretchr/testify) and [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus).
Updates `github.com/stretchr/testify` from 1.11.1 to 1.12.1
Release notes

*Sourced from [github.com/stretchr/testify's releases](https://github.com/stretchr/testify/releases).*

> v1.12.1
> -------
>
> This is the first release which has the minimum dependencies practical in testify v1. The last remaining dependencies are github.com/stretchr/objx which itself has no dependencies, and go.yaml.in/yaml/v3. Removing objx would require v2, it cannot be vendored. Removing YAML would require vendoring the yaml library, which would do more harm than good. It's better to become aware of vulnerabilities in the official yaml package than to attempt to maintain our own.
>
> What's Changed
> --------------
>
> * Change yaml library to `go.yaml.in/yaml/v3` by [`@​harryzcy`](https://github.com/harryzcy) in [stretchr/testify#1935](https://redirect.github.com/stretchr/testify/pull/1935)
> * change yaml library to go.yaml.in/yaml/v3 by [`@​boekkooi-impossiblecloud`](https://github.com/boekkooi-impossiblecloud) in [stretchr/testify#1772](https://redirect.github.com/stretchr/testify/pull/1772)
>
> New Contributors
> ----------------
>
> * [`@​harryzcy`](https://github.com/harryzcy) made their first contribution in [stretchr/testify#1935](https://redirect.github.com/stretchr/testify/pull/1935)
> * [`@​boekkooi-impossiblecloud`](https://github.com/boekkooi-impossiblecloud) made their first contribution in [stretchr/testify#1772](https://redirect.github.com/stretchr/testify/pull/1772)
>
> **Full Changelog**: <stretchr/testify@v1.12.0...v1.12.1>
>
> What's Changed
> --------------
>
> * Change yaml library to `go.yaml.in/yaml/v3` by [`@​harryzcy`](https://github.com/harryzcy) in [stretchr/testify#1935](https://redirect.github.com/stretchr/testify/pull/1935)
> * change yaml library to go.yaml.in/yaml/v3 by [`@​boekkooi-impossiblecloud`](https://github.com/boekkooi-impossiblecloud) in [stretchr/testify#1772](https://redirect.github.com/stretchr/testify/pull/1772)
>
> New Contributors
> ----------------
>
> * [`@​harryzcy`](https://github.com/harryzcy) made their first contribution in [stretchr/testify#1935](https://redirect.github.com/stretchr/testify/pull/1935)
> * [`@​boekkooi-impossiblecloud`](https://github.com/boekkooi-impossiblecloud) made their first contribution in [stretchr/testify#1772](https://redirect.github.com/stretchr/testify/pull/1772)
>
> **Full Changelog**: <stretchr/testify@v1.12.0...v1.12.1>
>
> v1.12.0
> -------
>
> What's Changed
> --------------
>
> ### Functional Changes
>
> * assert: make \*AssertionFunc types just aliases by [`@​dolmen`](https://github.com/dolmen) in [stretchr/testify#1563](https://redirect.github.com/stretchr/testify/pull/1563)
>
> ### Fixes
>
> * mock: avoid panic when expected type is nil in Arguments.Diff by [`@​mutaiib`](https://github.com/mutaiib) in [stretchr/testify#1775](https://redirect.github.com/stretchr/testify/pull/1775)
> * mock: revert to pre-v1.11.0 argument matching behavior for mutating stringers by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1786](https://redirect.github.com/stretchr/testify/pull/1786)
> * suite: validate method signatures and continue execution for valid tests by [`@​vyas-git`](https://github.com/vyas-git) in [stretchr/testify#1665](https://redirect.github.com/stretchr/testify/pull/1665)
> * assert.PanicsWithError: report error message by [`@​olivergondza`](https://github.com/olivergondza) in [stretchr/testify#1400](https://redirect.github.com/stretchr/testify/pull/1400)
> * assert: IsIncreasing et al can return false w/out failing by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1787](https://redirect.github.com/stretchr/testify/pull/1787)
> * add type to error message of assert.Same by [`@​egawata`](https://github.com/egawata) in [stretchr/testify#1792](https://redirect.github.com/stretchr/testify/pull/1792)
> * mock.AssertExpectationsForObjects fix panic with wrong testObject type. by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1795](https://redirect.github.com/stretchr/testify/pull/1795)
> * assert: truncate very long objects in test failure messages by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1646](https://redirect.github.com/stretchr/testify/pull/1646)
> * assert: fix NotSubset error messages using %#v instead of %q (fixes [#1800](https://redirect.github.com/stretchr/testify/issues/1800)) by [`@​nghiack7`](https://github.com/nghiack7) in [stretchr/testify#1888](https://redirect.github.com/stretchr/testify/pull/1888)
> * suite: prevent panic when SetupTest skips with HandleStats by [`@​blackwell-systems`](https://github.com/blackwell-systems) in [stretchr/testify#1877](https://redirect.github.com/stretchr/testify/pull/1877)
>
> ### Documentation, Build & CI
>
> * CI: test also with Go 1.23 by [`@​dolmen`](https://github.com/dolmen) in [stretchr/testify#1783](https://redirect.github.com/stretchr/testify/pull/1783)
> * Vendor unmaintained github.com/pmezard/go-difflib by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1708](https://redirect.github.com/stretchr/testify/pull/1708)
> * Promote ccoVeille to maintainer by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1784](https://redirect.github.com/stretchr/testify/pull/1784)
> * build(deps): bump actions/setup-go from 5 to 6 by [`@​dependabot`](https://github.com/dependabot)[bot] in [stretchr/testify#1790](https://redirect.github.com/stretchr/testify/pull/1790)
> * assert.YAMLEq: Document mutlidoc behavior by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1791](https://redirect.github.com/stretchr/testify/pull/1791)
> * \_codegen: copy dependency github.com/ernesto-jimenez/gogen/imports by [`@​dolmen`](https://github.com/dolmen) in [stretchr/testify#1782](https://redirect.github.com/stretchr/testify/pull/1782)
> * doc: remove ineffective inline code blocks by [`@​brackendawson`](https://github.com/brackendawson) in [stretchr/testify#1714](https://redirect.github.com/stretchr/testify/pull/1714)
> * Tag generated assertions as non-generated in new .gitattributes by [`@​ubunatic`](https://github.com/ubunatic) in [stretchr/testify#1815](https://redirect.github.com/stretchr/testify/pull/1815)

... (truncated)


Commits

* [`959dbda`](stretchr/testify@959dbda) Merge pull request [#1935](https://redirect.github.com/stretchr/testify/issues/1935) from harryzcy/yaml-update
* [`9bb7176`](stretchr/testify@9bb7176) Update go.yaml.in/yaml/v3 to v3.0.5
* [`001eb79`](stretchr/testify@001eb79) Merge pull request [#1905](https://redirect.github.com/stretchr/testify/issues/1905) from Kentzo/patch-1
* [`ad40f38`](stretchr/testify@ad40f38) Merge pull request [#1906](https://redirect.github.com/stretchr/testify/issues/1906) from stretchr/dependabot/github\_actions/actions/chec...
* [`3bae017`](stretchr/testify@3bae017) build(deps): bump actions/checkout from 6.0.2 to 6.0.3
* [`f8c01f3`](stretchr/testify@f8c01f3) mock: Mock.Return does not exist anymore
* [`12f8b56`](stretchr/testify@12f8b56) Merge pull request [#1563](https://redirect.github.com/stretchr/testify/issues/1563) from stretchr/make-AssertionFunc-types-aliases
* [`a11649e`](stretchr/testify@a11649e) assert: make \*AssertionFunc type just aliases
* [`dc20f41`](stretchr/testify@dc20f41) Merge pull request [#1890](https://redirect.github.com/stretchr/testify/issues/1890) from stretchr/dolmen/codegen-modernize
* [`098f8d7`](stretchr/testify@098f8d7) \_codegen: use strings.Builder
* Additional commits viewable in [compare view](stretchr/testify@v1.11.1...v1.12.1)
  
Updates `github.com/sirupsen/logrus` from 1.9.4 to 1.10.1
Release notes

*Sourced from [github.com/sirupsen/logrus's releases](https://github.com/sirupsen/logrus/releases).*

> v1.10.1
> -------
>
> Logrus v1.10.1
> ==============
>
> This patch release fixes two issues in field formatting and handling:
>
> * Fix a regression introduced in v1.10.0 where `TextFormatter` could panic
>   when formatting nil or panicking `error` and `fmt.Stringer` values.
> * Allow function-backed values implementing `error` to be used with
>   `WithError`, `WithField`, and `WithFields`.
>
> Dependency Changes
>
> * update github.com/stretchr/testify to v1.12.0
>
> **Full Changelog**: <sirupsen/logrus@v1.10.0...v1.10.1>
>
> v1.10.0
> -------
>
> Logrus v1.10.0
> ==============
>
> This release focuses on substantial performance improvements, concurrency correctness, and better interoperability with modern Go logging APIs.
>
> 🚀 Performance
> -------------
>
> Major improvements across `TextFormatter`, entry handling, and common logger paths:
>
> * ~17% lower geomean runtime across the benchmark suite
> * ~27% higher geomean formatter throughput
> * Common enabled logging paths are ~30–44% faster
> * `WithError` is ~40% faster
> * Chained fields are ~46% faster
> * `TextFormatter` paths are up to ~40% faster
> * Allocation counts are reduced by ~25–74% across measured `TextFormatter` cases, with the largest reductions in colored output
>
> The improvements also show up in complete logger paths:
>
> * Logger + `TextFormatter` is ~31% faster, with ~24% fewer allocations
> * Logger + `JSONFormatter` is ~21% faster, with ~10% fewer allocations
>
> `JSONFormatter` itself remains largely unchanged in runtime performance, with small allocation reductions.
>
> 🔄 `log/slog` interoperability
> -----------------------------
>
> v1.10 adds bidirectional interoperability between Logrus and Go's `log/slog`:
>
> * A Logrus `slog` hook can forward existing Logrus entries to an `slog` logger.
> * `hooks/slog.NewHandler` implements `slog.Handler`, allowing `log/slog` records to use an existing Logrus logger and its hooks, formatter, and output.
> * The handler preserves levels, fields, groups, context, record timestamps, and optionally caller information.
> * Caller reporting is configured per handler, without requiring Logrus's logger-wide `ReportCaller` option.
> * Custom `slog` levels can be mapped to Logrus levels.

... (truncated)


Changelog

*Sourced from [github.com/sirupsen/logrus's changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md).*

> 1.10.1
> ------
>
> Fixes:
>
> * Fix a regression introduced in v1.10.0 where `TextFormatter` could panic
>   when formatting nil or panicking `error` and `fmt.Stringer` values.
> * Allow function-backed implementations of `error` as field values.
>
> 1.10.0
> ------
>
> Fixes:
>
> * Fix reentrant logging deadlocks in formatter paths.
> * Fix race conditions in formatter and entry handling.
> * Fix generic `Log`, `Logf`, `Logln`, and `LogFn` methods unexpectedly
>   panicking when called with `PanicLevel`. Use the corresponding `Panic`
>   methods when panic behavior is desired.
> * Improve concurrency safety around formatter and hook access.
>
> Features:
>
> * Add `slog` hook for forwarding Logrus entries to `log/slog`.
> * Add `slog.Handler` for forwarding `log/slog` records to a Logrus logger,
>   including levels, fields, groups, context, time, and optional caller
>   reporting. The hook and handler can also be combined to help migrate
>   between Logrus and `log/slog`.
> * Add minimal, composable logging interfaces for each log level. This enables
>   consumers to depend on narrower interfaces, making it easier to substitute
>   or adapt logging implementations.
> * Allow `Entry.Caller` to be set explicitly and preserve it across derived
>   entries, enabling custom caller detection without Logrus overwriting
>   caller information when `ReportCaller` is enabled.
>
> Changed:
>
> * Raise minimum supported Go version to 1.23.
> * TextFormatter now renders `[]byte` values as raw/quoted strings instead of slice-of-ints.
> * TextFormatter now uses distinct dimmed colors for debug and trace output.
> * TextFormatter now automatically enables colors on Windows terminals with ANSI support,
>   matching the behavior on other platforms.
> * `Entry.HasCaller` is now deprecated in favor of checking `Entry.Caller` directly.
> * Deprecated `MutexWrap`, which was unintentionally exposed as public API.
>   It remains available as an alias for compatibility but should not be used
>   directly.
>
> Performance:
>
> * Significantly improve TextFormatter performance and reduce allocations.
> * Optimize common Entry and Logger hot paths.
> * Reduce allocations in caller reporting.

... (truncated)


Commits

* [`8b673a9`](sirupsen/logrus@8b673a9) Merge pull request [#1583](https://redirect.github.com/sirupsen/logrus/issues/1583) from thaJeztah/release\_1.10.1
* [`0b920ad`](sirupsen/logrus@0b920ad) Merge pull request [#1584](https://redirect.github.com/sirupsen/logrus/issues/1584) from thaJeztah/more\_coverage
* [`5e20694`](sirupsen/logrus@5e20694) TextFormatter: cover nil pointer method receivers
* [`8312732`](sirupsen/logrus@8312732) update changelog for v1.10.1
* [`e987a40`](sirupsen/logrus@e987a40) Merge pull request [#1582](https://redirect.github.com/sirupsen/logrus/issues/1582) from thaJeztah/panic\_handler
* [`17d574b`](sirupsen/logrus@17d574b) TextFormatter: recover panics from Error and String methods
* [`134c80f`](sirupsen/logrus@134c80f) Merge pull request [#1579](https://redirect.github.com/sirupsen/logrus/issues/1579) from thaJeztah/err\_handling
* [`7350f42`](sirupsen/logrus@7350f42) logger: WithError: wrap logger.WithError for consistency
* [`b3369d2`](sirupsen/logrus@b3369d2) entry: allow function-backed error fields
* [`1080083`](sirupsen/logrus@1080083) Merge pull request [#1578](https://redirect.github.com/sirupsen/logrus/issues/1578) from thaJeztah/err\_handling\_tests
* Additional commits viewable in [compare view](sirupsen/logrus@v1.9.4...v1.10.1)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore  major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore  minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore  ` will remove the ignore condition of the specified dependency and ignore conditions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants