diff --git a/docs/cn/guides/55-performance/01-virtual-column.md b/docs/cn/guides/55-performance/01-virtual-column.md index 4eee42289d..8ad750f2c7 100644 --- a/docs/cn/guides/55-performance/01-virtual-column.md +++ b/docs/cn/guides/55-performance/01-virtual-column.md @@ -35,21 +35,13 @@ import EEFeature from '@site/src/components/EEFeature'; ## 配置 -```sql --- 启用功能(实验性) -SET enable_experimental_virtual_column = 1; - --- 可选:控制自动刷新行为 -SET enable_refresh_virtual_column_after_write = 1; -- 默认启用 -``` +虚拟列自 v1.2.832 起默认启用,无需额外配置。 ## 完整示例 演示自动虚拟列创建与性能优势: ```sql -SET enable_experimental_virtual_column=1; - -- 创建表 'test',含整型 id 列和 Variant 类型 val 列 CREATE TABLE test(id int, val variant); @@ -168,4 +160,4 @@ SHOW VIRTUAL COLUMNS WHERE table='test'; --- -*虚拟列在后台自动工作——只需启用功能,Databend 将优化您的 JSON 查询。* \ No newline at end of file +*虚拟列在后台自动工作——只需启用功能,Databend 将优化您的 JSON 查询。* diff --git a/docs/cn/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md b/docs/cn/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md index 717d13b843..7553a7d27c 100644 --- a/docs/cn/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md +++ b/docs/cn/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md @@ -4,15 +4,15 @@ title: system.virtual_columns import FunctionDescription from '@site/src/components/FunctionDescription'; - + 包含系统中已创建的虚拟列 (Virtual Column) 的信息。 另请参阅:[SHOW VIRTUAL COLUMNS](../../10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md) -```sql -SET enable_experimental_virtual_column=1; +虚拟列自 v1.2.832 起默认启用。 +```sql SELECT * FROM system.virtual_columns; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ @@ -22,4 +22,4 @@ SELECT * FROM system.virtual_columns; │ default │ test │ val │ 3000000000 │ ['id'] │ UInt64 │ │ default │ test │ val │ 3000000001 │ ['name'] │ String │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md b/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md index 3530260bf9..2259efabe8 100644 --- a/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md +++ b/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md @@ -5,7 +5,7 @@ sidebar_position: 3 import FunctionDescription from '@site/src/components/FunctionDescription'; - + import EEFeature from '@site/src/components/EEFeature'; @@ -13,10 +13,11 @@ import EEFeature from '@site/src/components/EEFeature'; Databend 中的 `REFRESH VIRTUAL COLUMN` 命令用于显式触发现有表的 virtual column 的创建。虽然 Databend 会自动管理新数据的 virtual column,但在某些特定情况下,需要手动刷新才能充分利用此功能。 +虚拟列自 v1.2.832 起默认启用。 + ## 何时使用 `REFRESH VIRTUAL COLUMN` - **在启用功能之前已存在的表:** 如果你的表包含在启用 virtual column 功能*之前*(或在升级到具有自动 virtual column 创建的版本之前)创建的 `VARIANT` 数据,则需要刷新 virtual column 以启用查询加速。Databend 不会自动为这些表中已存在的数据创建 virtual column。 -- **禁用写入时自动刷新:** 如果在数据摄取期间将 `enable_refresh_virtual_column_after_write` 设置为 `0`(禁用),则 Databend 将*不会*在写入数据时自动创建 virtual column。在这种情况下,如果希望从性能改进中受益,则必须在加载数据后手动刷新 virtual column。 ## 语法 @@ -29,10 +30,6 @@ REFRESH VIRTUAL COLUMN FOR 此示例刷新名为“test”的表的 virtual column: ```sql -SET enable_experimental_virtual_column=1; - -SET enable_refresh_virtual_column_after_write=0; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -49,7 +46,7 @@ VALUES REFRESH VIRTUAL COLUMN FOR test; -SHOW VIRTUAL COLUMNS WHERE table = 'test'; +SHOW VIRTUAL COLUMNS WHERE table = 'test' AND database = 'default'; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ database │ table │ source_column │ virtual_column_id │ virtual_column_name │ virtual_column_type │ │ String │ String │ String │ UInt32 │ String │ String │ @@ -57,4 +54,4 @@ SHOW VIRTUAL COLUMNS WHERE table = 'test'; │ default │ test │ val │ 3000000000 │ ['id'] │ UInt64 │ │ default │ test │ val │ 3000000001 │ ['name'] │ String │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md b/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md index 292e8f3fbd..1b198732ca 100644 --- a/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md +++ b/docs/cn/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md @@ -4,7 +4,7 @@ sidebar_position: 4 --- import FunctionDescription from '@site/src/components/FunctionDescription'; - + import EEFeature from '@site/src/components/EEFeature'; @@ -12,19 +12,21 @@ import EEFeature from '@site/src/components/EEFeature'; 显示系统中创建的 virtual column。等效于 `SELECT * FROM system.virtual_columns`。 +虚拟列自 v1.2.832 起默认启用。 + 另请参阅:[system.virtual_columns](../../../00-sql-reference/31-system-tables/system-virtual-columns.md) -## 语法 +## 推荐语法 + +通过最直接的用法查看特定表(或不带条件查看全部): ```sql -SHOW VIRTUAL COLUMNS [ LIKE '' | WHERE ] | [ LIMIT ] +SHOW VIRTUAL COLUMNS [WHERE table = '' AND database = ''] ``` ## 示例 ```sql -SET enable_experimental_virtual_column=1; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -39,7 +41,7 @@ VALUES '{"id":2,"name":"databricks"}' ); -SHOW VIRTUAL COLUMNS WHERE table = 'test'; +SHOW VIRTUAL COLUMNS WHERE table = 'test' AND database = 'default'; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ database │ table │ source_column │ virtual_column_id │ virtual_column_name │ virtual_column_type │ │ String │ String │ String │ UInt32 │ String │ String │ @@ -47,4 +49,4 @@ SHOW VIRTUAL COLUMNS WHERE table = 'test'; │ default │ test │ val │ 3000000000 │ ['id'] │ UInt64 │ │ default │ test │ val │ 3000000001 │ ['name'] │ String │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/cn/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md b/docs/cn/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md index a7098ccbe6..fb25fb9506 100644 --- a/docs/cn/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md +++ b/docs/cn/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md @@ -13,8 +13,6 @@ FUSE_VIRTUAL_COLUMN('', ''[, '']) ## 示例 ```sql -SET enable_experimental_virtual_column=1; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -47,4 +45,4 @@ SELECT * FROM FUSE_VIRTUAL_COLUMN('default', 'test'); │ │ │ 0a01_v2.parque │ │ │ │ │ │ │ │ │ │ │ t │ │ │ │ │ │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/en/guides/55-performance/01-virtual-column.md b/docs/en/guides/55-performance/01-virtual-column.md index 16cc33a625..646a0e4996 100644 --- a/docs/en/guides/55-performance/01-virtual-column.md +++ b/docs/en/guides/55-performance/01-virtual-column.md @@ -36,21 +36,13 @@ When querying JSON data, traditional databases must parse the entire JSON struct ## Configuration -```sql --- Enable the feature (experimental) -SET enable_experimental_virtual_column = 1; - --- Optional: Control auto-refresh behavior -SET enable_refresh_virtual_column_after_write = 1; -- Default: enabled -``` +Virtual columns are enabled by default starting from v1.2.832 and require no additional configuration. ## Complete Example This example demonstrates automatic virtual column creation and performance benefits: ```sql -SET enable_experimental_virtual_column=1; - -- Create a table named 'test' with columns 'id' and 'val' of type Variant. CREATE TABLE test(id int, val variant); @@ -169,4 +161,4 @@ Virtual columns typically provide: --- -*Virtual columns work automatically in the background - simply enable the feature and let Databend optimize your JSON queries.* +*Virtual columns work automatically in the background—Databend optimizes your JSON queries with zero configuration.* diff --git a/docs/en/guides/81-how-databend-works/03-how-databend-json-variant-works.md b/docs/en/guides/81-how-databend-works/03-how-databend-json-variant-works.md index 011dc69f6a..481503a93b 100644 --- a/docs/en/guides/81-how-databend-works/03-how-databend-json-variant-works.md +++ b/docs/en/guides/81-how-databend-works/03-how-databend-json-variant-works.md @@ -140,6 +140,10 @@ Behind the scenes Databend keeps track of which JSON path produced each virtual With indexing handled behind the scenes, you interact with Variant columns using familiar syntax and functions. +### Inspect Virtual Columns + +Use [`SHOW VIRTUAL COLUMNS`](/sql/sql-commands/ddl/virtual-column/show-virtual-columns) to list the automatically generated virtual columns for a table when you want to verify what JSON paths Databend has materialised. + ### Access Syntax Databend understands both Snowflake-style and PostgreSQL-style selectors; whichever style you prefer, the engine routes them through the same key-path parser and reuses the JSON indexes. Continuing with an `orders` example, you can reach nested fields like this: diff --git a/docs/en/sql-reference/00-sql-reference/31-system-tables/system-query-log.md b/docs/en/sql-reference/00-sql-reference/31-system-tables/system-query-log.md index 5346240b3b..64592526f6 100644 --- a/docs/en/sql-reference/00-sql-reference/31-system-tables/system-query-log.md +++ b/docs/en/sql-reference/00-sql-reference/31-system-tables/system-query-log.md @@ -98,7 +98,7 @@ written_io_bytes_cost_ms: 0 stack_trace: server_version: v1.2.731-nightly-eb671da5e5(rust-1.88.0-nightly-2025-04-27T06:06:12.942159732Z) query_tag: eric - session_settings: acquire_lock_timeout=30, aggregate_spilling_memory_ratio=60, auto_compaction_imperfect_blocks_threshold=25, auto_compaction_segments_limit=3, collation=utf8, compact_max_block_selection=10000, copy_dedup_full_path_by_default=0, cost_factor_aggregate_per_row=5, cost_factor_hash_table_per_row=10, cost_factor_network_per_row=50, create_query_flight_client_with_current_rt=1, data_retention_time_in_days=1, ddl_column_type_nullable=1, default_order_by_null=nulls_last, disable_join_reorder=0, disable_variant_check=0, dynamic_sample_time_budget_ms=0, efficiently_memory_group_by=0, enable_aggregating_index_scan=1, enable_analyze_histogram=0, enable_auto_fix_missing_bloom_index=0, enable_auto_vacuum=0, enable_block_stream_write=0, enable_bloom_runtime_filter=1, enable_cbo=1, enable_clickhouse_handler=0, enable_compact_after_multi_table_insert=0, enable_compact_after_write=1, enable_dio=1, enable_distributed_compact=0, enable_distributed_copy_into=1, enable_distributed_merge_into=1, enable_distributed_pruning=1, enable_distributed_recluster=0, enable_distributed_replace_into=0, enable_dphyp=1, enable_dst_hour_fix=0, enable_expand_roles=1, enable_experimental_aggregate_hashtable=1, enable_experimental_merge_into=1, enable_experimental_procedure=0, enable_experimental_queries_executor=0, enable_experimental_rbac_check=1, enable_geo_create_table=0, enable_hive_parquet_predict_pushdown=1, enable_last_snapshot_location_hint=1, enable_loser_tree_merge_sort=1, enable_materialized_cte=1, enable_merge_into_row_fetch=1, enable_new_copy_for_text_formats=1, enable_optimizer_trace=0, enable_parallel_multi_merge_sort=1, enable_parquet_page_index=1, enable_parquet_prewhere=0, enable_parquet_rowgroup_pruning=1, enable_planner_cache=1, enable_prune_cache=1, enable_prune_pipeline=1, enable_query_result_cache=0, enable_refresh_aggregating_index_after_write=1, enable_refresh_virtual_column_after_write=1, enable_replace_into_partitioning=1, enable_strict_datetime_parser=1, enable_table_lock=1, enforce_broadcast_join=0, enforce_shuffle_join=0, error_on_nondeterministic_update=1, external_server_connect_timeout_secs=10, external_server_request_batch_rows=65536, external_server_request_max_threads=256, external_server_request_retry_times=8, external_server_request_timeout_secs=180, flight_client_timeout=60, flight_connection_max_retry_times=0, flight_connection_retry_interval=1, force_aggregate_data_spill=0, force_join_data_spill=0, force_sort_data_spill=0, force_window_data_spill=0, format_null_as_str=1, geometry_output_format=GeoJSON, group_by_shuffle_mode=before_merge, group_by_two_level_threshold=20000, hide_options_in_show_create_table=1, hilbert_clustering_min_bytes=107374182400, hilbert_num_range_ids=1000, hilbert_sample_size_per_block=1000, hive_parquet_chunk_size=16384, http_handler_result_timeout_secs=60, idle_transaction_timeout_secs=14400, inlist_to_join_threshold=1024, input_read_buffer_size=4194304, join_spilling_buffer_threshold_per_proc_mb=512, join_spilling_memory_ratio=60, join_spilling_partition_bits=4, lazy_read_threshold=1000, load_file_metadata_expire_hours=24, max_block_size=65536, max_cte_recursive_depth=1000, max_execute_time_in_seconds=0, max_inlist_to_or=3, max_memory_usage=6574653440, max_push_down_limit=10000, max_query_memory_usage=0, max_result_rows=0, max_set_operator_count=18446744073709551615, max_spill_io_requests=48, max_storage_io_requests=48, max_threads=8, max_vacuum_temp_files_after_query=18446744073709551615, network_policy=, numeric_cast_option=rounding, optimizer_skip_list=, parquet_fast_read_bytes=16777216, parquet_max_block_size=8192, parse_datetime_ignore_remainder=1, persist_materialized_cte=0, prefer_broadcast_join=1, purge_duplicated_files_in_copy=0, query_flight_compression=LZ4, query_out_of_memory_behavior=throw, query_result_cache_allow_inconsistent=0, query_result_cache_max_bytes=1048576, query_result_cache_min_execute_secs=1, query_result_cache_ttl_secs=300, query_tag=eric, quoted_ident_case_sensitive=1, random_function_seed=0, recluster_block_size=1972396032, recluster_timeout_secs=43200, replace_into_bloom_pruning_max_column_number=4, replace_into_shuffle_strategy=0, sandbox_tenant=, script_max_steps=10000, short_sql_max_length=128, sort_spilling_batch_bytes=8388608, sort_spilling_memory_ratio=60, spilling_file_format=parquet, spilling_to_disk_vacuum_unknown_temp_dirs_limit=18446744073709551615, sql_dialect=PostgreSQL, statement_queue_ttl_in_seconds=15, statement_queued_timeout_in_seconds=0, storage_fetch_part_num=2, storage_io_max_page_bytes_for_read=524288, storage_io_min_bytes_for_seek=48, storage_read_buffer_size=1048576, stream_consume_batch_size_hint=0, table_lock_expire_secs=30, timezone=UTC, unquoted_ident_case_sensitive=0, use_parquet2=0, use_vacuum2_to_purge_transient_table_data=0, warehouse=, window_num_partitions=256, window_partition_sort_block_size=65536, window_partition_spilling_memory_ratio=60, window_partition_spilling_to_disk_bytes_limit=0, window_spill_unit_size_mb=256, scope: SESSION + session_settings: acquire_lock_timeout=30, aggregate_spilling_memory_ratio=60, auto_compaction_imperfect_blocks_threshold=25, auto_compaction_segments_limit=3, collation=utf8, compact_max_block_selection=10000, copy_dedup_full_path_by_default=0, cost_factor_aggregate_per_row=5, cost_factor_hash_table_per_row=10, cost_factor_network_per_row=50, create_query_flight_client_with_current_rt=1, data_retention_time_in_days=1, ddl_column_type_nullable=1, default_order_by_null=nulls_last, disable_join_reorder=0, disable_variant_check=0, dynamic_sample_time_budget_ms=0, efficiently_memory_group_by=0, enable_aggregating_index_scan=1, enable_analyze_histogram=0, enable_auto_fix_missing_bloom_index=0, enable_auto_vacuum=0, enable_block_stream_write=0, enable_bloom_runtime_filter=1, enable_cbo=1, enable_clickhouse_handler=0, enable_compact_after_multi_table_insert=0, enable_compact_after_write=1, enable_dio=1, enable_distributed_compact=0, enable_distributed_copy_into=1, enable_distributed_merge_into=1, enable_distributed_pruning=1, enable_distributed_recluster=0, enable_distributed_replace_into=0, enable_dphyp=1, enable_dst_hour_fix=0, enable_expand_roles=1, enable_experimental_aggregate_hashtable=1, enable_experimental_merge_into=1, enable_experimental_procedure=0, enable_experimental_queries_executor=0, enable_experimental_rbac_check=1, enable_geo_create_table=0, enable_hive_parquet_predict_pushdown=1, enable_last_snapshot_location_hint=1, enable_loser_tree_merge_sort=1, enable_materialized_cte=1, enable_merge_into_row_fetch=1, enable_new_copy_for_text_formats=1, enable_optimizer_trace=0, enable_parallel_multi_merge_sort=1, enable_parquet_page_index=1, enable_parquet_prewhere=0, enable_parquet_rowgroup_pruning=1, enable_planner_cache=1, enable_prune_cache=1, enable_prune_pipeline=1, enable_query_result_cache=0, enable_refresh_aggregating_index_after_write=1, enable_replace_into_partitioning=1, enable_strict_datetime_parser=1, enable_table_lock=1, enforce_broadcast_join=0, enforce_shuffle_join=0, error_on_nondeterministic_update=1, external_server_connect_timeout_secs=10, external_server_request_batch_rows=65536, external_server_request_max_threads=256, external_server_request_retry_times=8, external_server_request_timeout_secs=180, flight_client_timeout=60, flight_connection_max_retry_times=0, flight_connection_retry_interval=1, force_aggregate_data_spill=0, force_join_data_spill=0, force_sort_data_spill=0, force_window_data_spill=0, format_null_as_str=1, geometry_output_format=GeoJSON, group_by_shuffle_mode=before_merge, group_by_two_level_threshold=20000, hide_options_in_show_create_table=1, hilbert_clustering_min_bytes=107374182400, hilbert_num_range_ids=1000, hilbert_sample_size_per_block=1000, hive_parquet_chunk_size=16384, http_handler_result_timeout_secs=60, idle_transaction_timeout_secs=14400, inlist_to_join_threshold=1024, input_read_buffer_size=4194304, join_spilling_buffer_threshold_per_proc_mb=512, join_spilling_memory_ratio=60, join_spilling_partition_bits=4, lazy_read_threshold=1000, load_file_metadata_expire_hours=24, max_block_size=65536, max_cte_recursive_depth=1000, max_execute_time_in_seconds=0, max_inlist_to_or=3, max_memory_usage=6574653440, max_push_down_limit=10000, max_query_memory_usage=0, max_result_rows=0, max_set_operator_count=18446744073709551615, max_spill_io_requests=48, max_storage_io_requests=48, max_threads=8, max_vacuum_temp_files_after_query=18446744073709551615, network_policy=, numeric_cast_option=rounding, optimizer_skip_list=, parquet_fast_read_bytes=16777216, parquet_max_block_size=8192, parse_datetime_ignore_remainder=1, persist_materialized_cte=0, prefer_broadcast_join=1, purge_duplicated_files_in_copy=0, query_flight_compression=LZ4, query_out_of_memory_behavior=throw, query_result_cache_allow_inconsistent=0, query_result_cache_max_bytes=1048576, query_result_cache_min_execute_secs=1, query_result_cache_ttl_secs=300, query_tag=eric, quoted_ident_case_sensitive=1, random_function_seed=0, recluster_block_size=1972396032, recluster_timeout_secs=43200, replace_into_bloom_pruning_max_column_number=4, replace_into_shuffle_strategy=0, sandbox_tenant=, script_max_steps=10000, short_sql_max_length=128, sort_spilling_batch_bytes=8388608, sort_spilling_memory_ratio=60, spilling_file_format=parquet, spilling_to_disk_vacuum_unknown_temp_dirs_limit=18446744073709551615, sql_dialect=PostgreSQL, statement_queue_ttl_in_seconds=15, statement_queued_timeout_in_seconds=0, storage_fetch_part_num=2, storage_io_max_page_bytes_for_read=524288, storage_io_min_bytes_for_seek=48, storage_read_buffer_size=1048576, stream_consume_batch_size_hint=0, table_lock_expire_secs=30, timezone=UTC, unquoted_ident_case_sensitive=0, use_parquet2=0, use_vacuum2_to_purge_transient_table_data=0, warehouse=, window_num_partitions=256, window_partition_sort_block_size=65536, window_partition_spilling_memory_ratio=60, window_partition_spilling_to_disk_bytes_limit=0, window_spill_unit_size_mb=256, scope: SESSION extra: has_profile: true peek_memory_usage: {"bwElPLZxWt0F8LOFAqsIL2":576850} diff --git a/docs/en/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md b/docs/en/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md index b0ddbfbc31..cc0320b6ef 100644 --- a/docs/en/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md +++ b/docs/en/sql-reference/00-sql-reference/31-system-tables/system-virtual-columns.md @@ -4,15 +4,15 @@ title: system.virtual_columns import FunctionDescription from '@site/src/components/FunctionDescription'; - + Contains information about the created virtual columns in the system. See also: [SHOW VIRTUAL COLUMNS](../../10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md) -```sql -SET enable_experimental_virtual_column=1; +Virtual columns are enabled by default starting from v1.2.832. +```sql SELECT * FROM system.virtual_columns; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ @@ -22,4 +22,4 @@ SELECT * FROM system.virtual_columns; │ default │ test │ val │ 3000000000 │ ['id'] │ UInt64 │ │ default │ test │ val │ 3000000001 │ ['name'] │ String │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md b/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md index d9ff4fdd4d..27404f3ee3 100644 --- a/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md +++ b/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/refresh-virtual-column.md @@ -5,7 +5,7 @@ sidebar_position: 3 import FunctionDescription from '@site/src/components/FunctionDescription'; - + import EEFeature from '@site/src/components/EEFeature'; @@ -13,10 +13,11 @@ import EEFeature from '@site/src/components/EEFeature'; The `REFRESH VIRTUAL COLUMN` command in Databend is used to explicitly trigger the creation of virtual columns for existing tables. While Databend automatically manages virtual columns for new data, there are specific scenarios where manual refreshing is necessary to take full advantage of this feature. +Virtual columns are enabled by default starting from v1.2.832. + ## When to Use `REFRESH VIRTUAL COLUMN` - **Existing Tables Before Feature Enablement:** If you have tables containing `VARIANT` data that were created *before* the virtual column feature was enabled (or before upgrading to a version with automatic virtual column creation), you need to refresh the virtual columns to enable query acceleration. Databend will not automatically create virtual columns for data that already exists in these tables. -- **Disabled Automatic Refresh on Write:** If the `enable_refresh_virtual_column_after_write` setting is set to `0` (disabled) during data ingestion, Databend will *not* automatically create virtual columns as data is written. In this case, you must manually refresh the virtual columns after the data has been loaded if you wish to benefit from the performance improvements. ## Syntax @@ -29,10 +30,6 @@ REFRESH VIRTUAL COLUMN FOR
This example refreshes virtual columns for a table named 'test': ```sql -SET enable_experimental_virtual_column=1; - -SET enable_refresh_virtual_column_after_write=0; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -49,7 +46,7 @@ VALUES REFRESH VIRTUAL COLUMN FOR test; -SHOW VIRTUAL COLUMNS WHERE table = 'test'; +SHOW VIRTUAL COLUMNS WHERE table = 'test' AND database = 'default'; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ database │ table │ source_column │ virtual_column_id │ virtual_column_name │ virtual_column_type │ │ String │ String │ String │ UInt32 │ String │ String │ diff --git a/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md b/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md index 06a7957579..7bc17e8b0d 100644 --- a/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md +++ b/docs/en/sql-reference/10-sql-commands/00-ddl/07-virtual-column/show-virtual-columns.md @@ -4,7 +4,7 @@ sidebar_position: 4 --- import FunctionDescription from '@site/src/components/FunctionDescription'; - + import EEFeature from '@site/src/components/EEFeature'; @@ -12,19 +12,21 @@ import EEFeature from '@site/src/components/EEFeature'; Shows the created virtual columns in the system. Equivalent to `SELECT * FROM system.virtual_columns`. +Virtual columns are enabled by default starting from v1.2.832. + See also: [system.virtual_columns](../../../00-sql-reference/31-system-tables/system-virtual-columns.md) -## Syntax +## Preferred Syntax + +Use the command in its simplest, most useful form to inspect a specific table or list all virtual columns: ```sql -SHOW VIRTUAL COLUMNS [ LIKE '' | WHERE ] | [ LIMIT ] +SHOW VIRTUAL COLUMNS [WHERE table = '' AND database = ''] ``` ## Example ```sql -SET enable_experimental_virtual_column=1; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -39,7 +41,7 @@ VALUES '{"id":2,"name":"databricks"}' ); -SHOW VIRTUAL COLUMNS WHERE table = 'test'; +SHOW VIRTUAL COLUMNS WHERE table = 'test' AND database = 'default'; ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ database │ table │ source_column │ virtual_column_id │ virtual_column_name │ virtual_column_type │ │ String │ String │ String │ UInt32 │ String │ String │ @@ -47,4 +49,4 @@ SHOW VIRTUAL COLUMNS WHERE table = 'test'; │ default │ test │ val │ 3000000000 │ ['id'] │ UInt64 │ │ default │ test │ val │ 3000000001 │ ['name'] │ String │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +``` diff --git a/docs/en/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md b/docs/en/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md index ceb9ed8c8c..96254be59d 100644 --- a/docs/en/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md +++ b/docs/en/sql-reference/20-sql-functions/16-system-functions/fuse_virtual_column.md @@ -13,8 +13,6 @@ FUSE_VIRTUAL_COLUMN('', ''[, '']) ## Examples ```sql -SET enable_experimental_virtual_column=1; - CREATE TABLE test(id int, val variant); INSERT INTO @@ -47,4 +45,4 @@ SELECT * FROM FUSE_VIRTUAL_COLUMN('default', 'test'); │ │ │ 0a01_v2.parque │ │ │ │ │ │ │ │ │ │ │ t │ │ │ │ │ │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ -``` \ No newline at end of file +```