Skip to content

Make table functions always report engine 'StorageProxy' in system.tables#64771

Merged
alexey-milovidov merged 1 commit intomasterfrom
tfname
Jun 4, 2024
Merged

Make table functions always report engine 'StorageProxy' in system.tables#64771
alexey-milovidov merged 1 commit intomasterfrom
tfname

Conversation

@al13n321
Copy link
Copy Markdown
Member

@al13n321 al13n321 commented Jun 3, 2024

Changelog category (leave one):

  • Not for changelog (changelog entry is not required)

For table-function-based tables, the engine shown in system.tables could change over time. E.g. (edited):

:) CREATE TABLE a (a int) AS s3('http://some_addr/some_bucket/data.tsv', '', '', 'TSV');
:) select engine from system.tables where database = 'default' and name = 'a'
   ┌─engine───────┐
1. │ StorageProxy │
   └──────────────┘
:) select count() from a
:) select engine from system.tables where database = 'default' and name = 'a'
   ┌─engine─┐
1. │ S3     │
   └────────┘

This behavior (a) seems weird, and (b) made 02888_system_tables_with_inaccessible_table_function flaky. This PR makes the engine always be reported as 'StorageProxy'.

(Alternatively we could propagate the underlying engine name, probably by adding a new virtual function in ITableFunction and implementing it in all ~32 table functions. Or report the table function name instead of IStorage's name, that would be trivial. LMK if you think we should do that instead of 'StorageProxy'.)

@robot-ch-test-poll4 robot-ch-test-poll4 added the pr-not-for-changelog This PR should not be mentioned in the changelog label Jun 4, 2024
@robot-ch-test-poll4
Copy link
Copy Markdown
Contributor

robot-ch-test-poll4 commented Jun 4, 2024

This is an automated comment for commit 16bf3e3 with description of existing statuses. It's updated for the latest CI running

⏳ Click here to open a full report in a separate page

Check nameDescriptionStatus
CI runningA meta-check that indicates the running CI. Normally, it's in success or pending state. The failed status indicates some problems with the PR⏳ pending
Successful checks
Check nameDescriptionStatus
A SyncIf it fails, ask a maintainer for help✅ success
ClickHouse build checkBuilds ClickHouse in various configurations for use in further steps. You have to fix the builds that fail. Build logs often has enough information to fix the error, but you might have to reproduce the failure locally. The cmake options can be found in the build log, grepping for cmake. Use these options and follow the general build process✅ success
Compatibility checkChecks that clickhouse binary runs on distributions with old libc versions. If it fails, ask a maintainer for help✅ success
Docs checkBuilds and tests the documentation✅ success
Fast testNormally this is the first check that is ran for a PR. It builds ClickHouse and runs most of stateless functional tests, omitting some. If it fails, further checks are not started until it is fixed. Look at the report to see which tests fail, then reproduce the failure locally as described here✅ success
Flaky testsChecks if new added or modified tests are flaky by running them repeatedly, in parallel, with more randomization. Functional tests are run 100 times with address sanitizer, and additional randomization of thread scheduling. Integration tests are run up to 10 times. If at least once a new test has failed, or was too long, this check will be red. We don't allow flaky tests, read the doc✅ success
Integration testsThe integration tests report. In parenthesis the package type is given, and in square brackets are the optional part/total tests✅ success
Mergeable CheckChecks if all other necessary checks are successful✅ success
PR CheckThere's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
Stateful testsRuns stateful functional tests for ClickHouse binaries built in various configurations -- release, debug, with sanitizers, etc✅ success
Stateless testsRuns stateless functional tests for ClickHouse binaries built in various configurations -- release, debug, with sanitizers, etc✅ success
Style checkRuns a set of checks to keep the code style clean. If some of tests failed, see the related log from the report✅ success
Unit testsRuns the unit tests for different release types✅ success

@alexey-milovidov alexey-milovidov self-assigned this Jun 4, 2024
Copy link
Copy Markdown
Member

@alexey-milovidov alexey-milovidov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good solution.

@alexey-milovidov alexey-milovidov added this pull request to the merge queue Jun 4, 2024
Merged via the queue into master with commit b0d6b0f Jun 4, 2024
@alexey-milovidov alexey-milovidov deleted the tfname branch June 4, 2024 02:46
@robot-clickhouse-ci-2 robot-clickhouse-ci-2 added the pr-synced-to-cloud The PR is synced to the cloud repo label Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-not-for-changelog This PR should not be mentioned in the changelog pr-synced-to-cloud The PR is synced to the cloud repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants