pg_lake
pg_lake: Postgres with Iceberg and data lake access
파일 탐색기
최종 버전 다운로드 (.zip)- prefer-postgres-apis.mdc
- action.yml
- action.yml
- action.yml
- action.yml
- lint.yml
- pytest_all.yml
- CODEOWNERS
- dco.yml
- pull_request_template.md
- repo_meta.yaml
- entrypoint-pgduck-server.sh
- entrypoint-postgres.sh
- init-pgduck-server.sql
- init-postgres.sql
- init-s3.sh
- .dockerignore
- .env
- docker-compose.yml
- Dockerfile
- LOCAL_DEV.md
- README.md
- TASKFILE.md
- Taskfile.yml
- building-from-source.md
- data-lake-import-export.md
- dbt.md
- file-formats-reference.md
- iceberg-tables.md
- query-data-lake-files.md
- README.md
- spatial.md
- use-case-log-management.md
- README.md
- .gitkeep
- return_stats.patch
- composite-type-resolution.patch
- libpq-resource-leaks.patch
- max-chunk-size-bytes.patch
- nullify_multidim_arrays.patch
- numeric-nan.patch
- postgis-geometry-wkb.patch
- relation-size-page-estimate.patch
- snapshot.patch
- append-blob-idempotency.patch
- caching_file_system.cpp
- file_cache_manager.cpp
- file_utils.cpp
- functions.cpp
- httpfs_extended.cpp
- pg_lake_s3fs.cpp
- region_aware_s3fs.cpp
- caching_file_system.hpp
- file_cache_manager.hpp
- file_utils.hpp
- functions.hpp
- httpfs_extended.hpp
- pg_lake_s3fs.hpp
- region_aware_s3fs.hpp
- pgduck_log_utils.h
- query_listener.hpp
- utility_functions.hpp
- duckdb_pglake_extension.hpp
- duckdb_pglake_extension.cpp
- utility_functions.cpp
- duckdb_pglake_test.py
- README.md
- portfile.cmake
- vcpkg.json
- .editorconfig
- CMakeLists.txt
- duckdb
- duckdb-postgres
- extension_config.cmake
- LICENSE
- Makefile
- README.md
- vcpkg.json
- pgduck_shippability.md
- writes.md
- attached_worker.h
- base_workers.h
- extension_control_file.h
- extension_dependencies.h
- extension_ids.h
- pg_compat.h
- pg_extension_base_ids.h
- spi_helpers.h
- attached_worker.c
- base_worker_launcher.c
- extension_control_file.c
- extension_dependencies.c
- extension_ids.c
- library_preloader.c
- pg_compat.c
- pg_extension_base.c
- pg_extension_base_ids.c
- pg_extension_base_test_common.h
- init.c
- Makefile
- pg_extension_base_test.c
- Makefile
- pg_extension_base_test_ext1--1.0--1.1.sql
- pg_extension_base_test_ext1--1.0.sql
- pg_extension_base_test_ext1.control
- init.c
- Makefile
- pg_extension_base_test_ext2--1.0--1.1.sql
- pg_extension_base_test_ext2--1.0.sql
- pg_extension_base_test_ext2.control
- init.c
- Makefile
- pg_extension_base_test_ext3--1.0--1.1.sql
- pg_extension_base_test_ext3--1.0.sql
- pg_extension_base_test_ext3.control
- pg_extension_base_hibernate.c
- Makefile
- pg_extension_base_test_hibernate--1.0.sql
- pg_extension_base_test_hibernate.control
- pg_extension_base_oneshot.c
- Makefile
- pg_extension_base_test_oneshot--1.0.sql
- pg_extension_base_test_oneshot.control
- worker_launcher.h
- pg_extension_base_scheduler.c
- Makefile
- pg_extension_base_test_scheduler--1.0.sql
- pg_extension_base_test_scheduler.control
- test_attached_workers.py
- test_base_worker_launcher.py
- test_extension_control_path.py
- test_extension_dependencies.py
- test_library_preloader.py
- conftest.py
- Makefile
- pg_extension_base--1.5--1.6.sql
- pg_extension_base--1.6--3.1.sql
- pg_extension_base--1.6.sql
- pg_extension_base--3.1--3.2.sql
- pg_extension_base--3.2--3.3.sql
- pg_extension_base--3.3--3.4.sql
- pg_extension_base--3.4--3.5.sql
- pg_extension_base.control
- README.md
- pg_extension_updater.c
- Makefile
- pg_extension_updater--1.0--1.1.sql
- pg_extension_updater--1.1--3.1.sql
- pg_extension_updater--1.1.sql
- pg_extension_updater--3.1--3.2.sql
- pg_extension_updater--3.2--3.3.sql
- pg_extension_updater--3.3--3.4.sql
- pg_extension_updater--3.4--3.5.sql
- pg_extension_updater.control
- README.md
- init.c
- pg_lake_version.c
- test_pg_lake_basics.py
- conftest.py
- Makefile
- pg_lake--2.4--3.0.sql
- pg_lake--3.0--3.1.sql
- pg_lake--3.0.sql
- pg_lake--3.1--3.2.sql
- pg_lake--3.2--3.3.sql
- pg_lake--3.3--3.4.sql
- pg_lake--3.4--3.5.sql
- pg_lake.control
- benchmark.h
- benchmark.c
- init.c
- tpcds.c
- tpch.c
- test_clickbench.py
- test_security.py
- test_tpcds.py
- test_tpch.py
- conftest.py
- Makefile
- pg_lake_benchmark--3.0--3.1.sql
- pg_lake_benchmark--3.0.sql
- pg_lake_benchmark--3.1--3.2.sql
- pg_lake_benchmark--3.2--3.3.sql
- pg_lake_benchmark--3.3--3.4.sql
- pg_lake_benchmark--3.4--3.5.sql
- pg_lake_benchmark.control
- README.md
- copy.h
- copy_io.h
- create_table.h
- copy.c
- copy_io.c
- create_table.c
- cancellation.c
- types.c
- init.c
- test_cancellation.py
- test_complex_types.py
- test_create_table.py
- test_csv_copy.py
- test_delta_copy.py
- test_duckdb_reserved_keyword_copy.py
- test_gcs_copy.py
- test_iceberg_copy.py
- test_iceberg_modified_table.py
- test_json_copy.py
- test_parquet_copy.py
- test_pg17.py
- test_r2_copy.py
- test_s3_copy.py
- test_security.py
- conftest.py
- Makefile
- pg_lake_copy--2.4--3.0.sql
- pg_lake_copy--3.0--3.1.sql
- pg_lake_copy--3.0.sql
- pg_lake_copy--3.1--3.2.sql
- pg_lake_copy--3.2--3.3.sql
- pg_lake_copy--3.3--3.4.sql
- pg_lake_copy--3.4--3.5.sql
- pg_lake_copy.control
- deletion_queue.h
- in_progress_files.h
- copy_format.h
- remote_query.h
- csv_options.h
- csv_writer.h
- data_file_stats.h
- data_files.h
- utility_hook.h
- btree_gist.h
- pg_extension_base.h
- pg_lake.h
- pg_lake_benchmark.h
- pg_lake_copy.h
- pg_lake_engine.h
- pg_lake_iceberg.h
- pg_lake_replication.h
- pg_lake_spatial.h
- pg_lake_table.h
- pg_map.h
- pg_parquet.h
- postgis.h
- json_reader.h
- json_utils.h
- advisory_locks.h
- field.h
- geoparquet.h
- leaf_field.h
- alter_table.h
- columns.h
- const.h
- expression.h
- options.h
- rte.h
- roles.h
- pg_version_compat.h
- array_conversion.h
- cache_control.h
- cache_worker.h
- client.h
- compatibility_mode.h
- delete_data.h
- explain.h
- gdal.h
- geometry.h
- iceberg_datum_validation.h
- iceberg_query_validation.h
- iceberg_validation.h
- keywords.h
- map.h
- map_conversion.h
- numeric.h
- parallel_command.h
- parse_struct.h
- read_data.h
- region.h
- remote_storage.h
- rewrite_query.h
- serialize.h
- shippable_builtin_functions.h
- shippable_builtin_operators.h
- shippable_spatial_functions.h
- shippable_spatial_operators.h
- sniff_csv.h
- struct_conversion.h
- to_char.h
- type.h
- vended_secrets.h
- write_data.h
- execute.h
- local_storage.h
- array_utils.h
- catalog_type.h
- compare_utils.h
- database_utils.h
- injection_points.h
- item_pointer_utils.h
- numeric.h
- operator_utils.h
- parallel_workers.h
- path_hash.h
- pgconn.h
- plan_cache.h
- rel_utils.h
- s3_reader_utils.h
- s3_writer_utils.h
- string_utils.h
- table_type.h
- temporal_utils.h
- timetz.h
- url_encode.h
- deletion_queue.c
- in_progress_files.c
- copy_format.c
- remote_query.c
- csv_options.c
- csv_writer.c
- data_file_stats.c
- data_files.c
- utility_hook.c
- btree_gist.c
- pg_lake.c
- pg_lake_benchmark.c
- pg_lake_copy.c
- pg_lake_engine.c
- pg_lake_iceberg.c
- pg_lake_replication.c
- pg_lake_spatial.c
- pg_lake_table.c
- pg_map.c
- pg_parquet.c
- postgis.c
- pg_lake_to_date.c
- pg_lake_to_postgres.c
- json_reader.c
- json_utils.c
- field.c
- geoparquet.c
- leaf_field.c
- alter_table.c
- columns.c
- const.c
- expression.c
- options.c
- rte.c
- roles.c
- array_conversion.c
- cache_control.c
- cache_worker.c
- client.c
- delete_data.c
- duckdb_kwlist.h
- explain.c
- gdal.c
- geometry.c
- iceberg_datum_validation.c
- iceberg_query_validation.c
- iceberg_validation.c
- keywords.c
- map.c
- map_conversion.c
- numeric.c
- parallel_command.c
- parse_struct.c
- read_data.c
- region.c
- remote_storage.c
- rewrite_query.c
- serialize.c
- shippable_builtin_functions.c
- shippable_builtin_operators.c
- shippable_spatial_functions.c
- shippable_spatial_operators.c
- sniff_csv.c
- struct_conversion.c
- to_char.c
- type.c
- vended_secrets.c
- write_data.c
- execute.c
- local_storage.c
- array_utils.c
- catalog_type.c
- compare_utils.c
- database_utils.c
- item_pointer_utils.c
- operator_utils.c
- parallel_workers.c
- path_hash.c
- pgconn.c
- plan_cache.c
- rel_utils.c
- s3_reader_utils.c
- s3_writer_utils.c
- string_utils.c
- table_type.c
- temporal_utils.c
- url_encode.c
- init.c
- Makefile
- pg_lake_engine--2.4--3.0.sql
- pg_lake_engine--3.0--3.1.sql
- pg_lake_engine--3.0.sql
- pg_lake_engine--3.1--3.2.sql
- pg_lake_engine--3.2--3.3.sql
- pg_lake_engine--3.3--3.4.sql
- pg_lake_engine--3.4--3.5.sql
- pg_lake_engine.control
- avro_init.h
- avro_reader.h
- avro_writer.h
- http_client.h
- datafile.h
- manifest.h
- manifest_entry.h
- manifest_list.h
- partitioning.h
- snapshot.h
- table_metadata.h
- table_schema.h
- find_referenced_files.h
- manifest_merge.h
- vacuum.h
- partition.h
- spec_generation.h
- api.h
- catalog.h
- compatibility_mode.h
- data_file_stats.h
- hash_utils.h
- iceberg_field.h
- iceberg_representation.h
- iceberg_type_binary_serde.h
- iceberg_type_json_serde.h
- iceberg_type_numeric_binary_serde.h
- manifest_list_schema_v2.h
- manifest_schema_v2.h
- manifest_spec.h
- metadata_operations.h
- metadata_spec.h
- truncate_utils.h
- utils.h
- object_store_catalog.h
- rest_catalog.h
- storage_credentials.h
- avro_init.c
- avro_reader.c
- avro_writer.c
- http_client.c
- datafile.c
- manifest.c
- manifest_entry.c
- manifest_list.c
- snapshot.c
- table_metadata.c
- table_schema.c
- find_referenced_files.c
- manifest_merge.c
- partition.c
- spec_generation.c
- catalog.c
- compatibility_mode.c
- data_file_stats.c
- external_metadata_modification.c
- iceberg_field.c
- iceberg_functions.c
- iceberg_representation.c
- iceberg_type_binary_serde.c
- iceberg_type_json_serde.c
- iceberg_type_numeric_binary_serde.c
- metadata_operations.c
- read_manifest.c
- read_table_metadata.c
- write_manifest.c
- write_table_metadata.c
- object_store_catalog.c
- rest_catalog.c
- rest_catalog_auth.c
- rest_catalog_ddl.c
- rest_catalog_http.c
- rest_catalog_ops.c
- rest_catalog_options.c
- storage_credentials.c
- rest_catalog.c
- s3_writer.c
- test_http_client.c
- test_iceberg_binary_serde.c
- test_iceberg_field_ids.c
- test_iceberg_manifest.c
- test_iceberg_representation.c
- test_iceberg_table_metadata.c
- url_encode.c
- enum_utils.c
- murmur.c
- truncate_utils.c
- init.c
- test_avro_block_header.py
- test_iceberg_avro.py
- test_iceberg_binary_serde.py
- test_iceberg_catalog.py
- test_iceberg_data_file_stats.py
- test_iceberg_functions.py
- test_iceberg_metadata_json.py
- test_iceberg_metadata_via_pyiceberg.py
- test_iceberg_metadata_via_spark.py
- test_iceberg_representation.py
- test_iceberg_url_encode.py
- test_iceberg_v3_read.py
- test_parallel_uploads.py
- test_polaris_conn.py
- test_security.py
- test_token_refresh_on_retry.py
- test_vended_credentials.py
- conftest.py
- Makefile
- pg_lake_iceberg--2.4--3.0.sql
- pg_lake_iceberg--3.0--3.1.sql
- pg_lake_iceberg--3.0.sql
- pg_lake_iceberg--3.1--3.2.sql
- pg_lake_iceberg--3.2--3.3.sql
- pg_lake_iceberg--3.3--3.4.sql
- pg_lake_iceberg--3.4--3.5.sql
- pg_lake_iceberg.control
- init.c
- test_gdal.py
- test_iceberg_unsupported_types.py
- test_internal_schema.py
- test_spatial_basics.py
- test_spatial_function_pushdown.py
- test_spatial_geoparquet.py
- test_spatial_operator_pushdown.py
- conftest.py
- Makefile
- pg_lake_spatial--2.4--3.0.sql
- pg_lake_spatial--3.0--3.1.sql
- pg_lake_spatial--3.0.sql
- pg_lake_spatial--3.1--3.2.sql
- pg_lake_spatial--3.2--3.3.sql
- pg_lake_spatial--3.3--3.4.sql
- pg_lake_spatial--3.4--3.5.sql
- pg_lake_spatial.control
- access_method.h
- alter_table.h
- create_table.h
- ddl_changes.h
- drop_table.h
- vacuum.h
- describe.h
- transform_query_to_duckdb.h
- row_id_mappings.h
- field_id_mapping_catalog.h
- register_field_ids.h
- data_file_pruning.h
- data_file_stats_catalog.h
- data_files_catalog.h
- data_files_catalog_internal.h
- deparse_ruleutils.h
- multi_data_file_dest.h
- partition_pushdown.h
- partition_transform.h
- pg_lake_table.h
- position_delete_dest.h
- row_ids.h
- shippable.h
- snapshot.h
- update_tracking.h
- writable_table.h
- partition_by_parser.h
- partition_spec_catalog.h
- partitioned_dest_receiver.h
- dbt.h
- explain.h
- extensible_nodes.h
- insert_select.h
- pushdown_utils.h
- query_pushdown.h
- restriction_collector.h
- recover.h
- hide_lake_objects.h
- track_iceberg_metadata_changes.h
- transaction_hooks.h
- s3_file_utils.h
- access_method.c
- cache_functions.c
- alter_table.c
- create_table.c
- create_table_as_select.c
- ddl_changes.c
- drop_table.c
- vacuum.c
- describe.c
- transform_query_to_duckdb.c
- row_id_mappings.c
- partition_by_parser.c
- partition_spec_catalog.c
- partitioned_dest_receiver.c
- field_id_mapping_catalog.c
- register_field_ids.c
- data_file_pruning.c
- data_file_stats_catalog.c
- data_files_catalog.c
- data_files_catalog_batch.c
- deparse.c
- deparse_ruleutils.c
- multi_data_file_dest.c
- option.c
- partition_pushdown.c
- partition_transform.c
- pg_lake_table.c
- position_delete_dest.c
- row_ids.c
- shippable.c
- snapshot.c
- table_size.c
- update_tracking.c
- writable_table.c
- dbt.c
- explain.c
- extensible_nodes.c
- insert_select.c
- pushdown_utils.c
- query_pushdown.c
- restriction_collector.c
- recover.c
- add_files_to_table.c
- hide_lake_objects.c
- test_iceberg_table_metadata.c
- test_partition_tuple.c
- external_heavy_asserts.c
- track_iceberg_metadata_changes.c
- transaction_hooks.c
- s3_file_utils.c
- init.c
- .gitkeep
- .gitkeep
- random_string.sql
- my_first_dbt_model.sql
- my_second_dbt_model.sql
- schema.yml
- .gitkeep
- .gitkeep
- .gitkeep
- .gitignore
- .user.yml
- dbt_project.yml
- profiles.yml
- README.md
- test_cache_public.py
- test_hugging_face.py
- test_region_switch.py
- test_vended_credentials_e2e.py
- isolation_concurrent_iceberg_add_data_file.out
- isolation_concurrent_iceberg_ddl.out
- isolation_concurrent_iceberg_dml.out
- isolation_concurrent_writable_table_dml.out
- isolation_iceberg_repeatable_read.out
- isolation_iceberg_serializable.out
- isolation_concurrent_dml.spec
- isolation_concurrent_iceberg_add_data_file.spec
- isolation_concurrent_iceberg_ddl.spec
- isolation_concurrent_iceberg_dml.spec
- isolation_concurrent_writable_table_dml.spec
- isolation_iceberg_repeatable_read.spec
- isolation_iceberg_serializable.spec
- isolation_schedule
- test_isolation.py
- test_array.py
- test_bool.py
- test_bpchar.py
- test_bytea.py
- test_char.py
- test_date.py
- test_float4.py
- test_float8.py
- test_int2.py
- test_int4.py
- test_int8.py
- test_interval.py
- test_json.py
- test_map_extract.py
- test_numeric.py
- test_text.py
- test_time.py
- test_timestamp.py
- test_timestamptz.py
- test_timetz.py
- test_uuid.py
- test_array_function_pushdown.py
- test_audit.py
- test_autovacuum.py
- test_autovacuum_compact_data_files.py
- test_avg_aggregate_pushdown.py
- test_bucket_partitioned_writes.py
- test_caching.py
- test_cmk.py
- test_collate.py
- test_column_inference.py
- test_compatibility_mode.py
- test_complex_types.py
- test_composite_unnest.py
- test_compressed_fdw.py
- test_copy_on_write_max_delete_rows.py
- test_count_aggregate_pushdown.py
- test_create_as_select.py
- test_create_drop_extension.py
- test_create_iceberg_table_load_from.py
- test_create_table.py
- test_csv_date_format.py
- test_csv_options.py
- test_csv_tables.py
- test_cte_subquery_pushdown.py
- test_data_file_hook_temp_table.py
- test_data_file_pruning.py
- test_data_load_iceberg.py
- test_date_partitioned_writes.py
- test_dbt.py
- test_ddl.py
- test_ddl_snapshot.py
- test_delete_file.py
- test_deletion_queue_batching.py
- test_delta_read_only.py
- test_dml_returning.py
- test_domain.py
- test_drop_table.py
- test_duckdb_array_crash.py
- test_duckdb_reserved_keywords.py
- test_encode_decode_pushdown.py
- test_explain.py
- test_expression_pushdown.py
- test_external_data_sets.py
- test_fieldselect_pushdown.py
- test_file_preview.py
- test_filename.py
- test_float_roundtrip.py
- test_generate_series.py
- test_grouping_set_pushdown.py
- test_hide_internal_queries.py
- test_hide_registered_extension.py
- test_iceberg_add_table.py
- test_iceberg_alter_external_path.py
- test_iceberg_catalog_server.py
- test_iceberg_changelog.py
- test_iceberg_copy_from_pushdown.py
- test_iceberg_ddl.py
- test_iceberg_empty_table.py
- test_iceberg_field_ids.py
- test_iceberg_in_progress_files.py
- test_iceberg_in_tx.py
- test_iceberg_interval_type.py
- test_iceberg_merge_manifest.py
- test_iceberg_partitions_misc.py
- test_iceberg_read_only.py
- test_iceberg_read_only_modified_file.py
- test_iceberg_read_only_table.py
- test_iceberg_referenced_files.py
- test_iceberg_remove_unreferenced_files.py
- test_iceberg_rename_ddl.py
- test_iceberg_size_clamping.py
- test_iceberg_size_clamping_containers.py
- test_iceberg_table_size.py
- test_iceberg_timetz_type.py
- test_iceberg_tmp_objects.py
- test_iceberg_types.py
- test_iceberg_unreferenced_files.py
- test_iceberg_uuid_compat.py
- test_iceberg_validation.py
- test_iceberg_xacts.py
- test_identity_partitioned_writes.py
- test_inheritance.py
- test_insert_select_pushdown.py
- test_issue_215_plpgsql_ctas.py
- test_join_alias.py
- test_join_pushdown.py
- test_json_tables.py
- test_jsonb_pushdown.py
- test_limit_pushdown.py
- test_list_file.py
- test_logical_replication.py
- test_mathematical_functions_pushdown.py
- test_max_snapshot_age_option.py
- test_min_max_aggregate_pushdown.py
- test_missing_alias_pushdown.py
- test_modify_iceberg_rest_table.py
- test_modify_iceberg_table.py
- test_multi_expr_partition_writes.py
- test_multi_user_database.py
- test_non_pushdown.py
- test_numeric_cast_operators.py
- test_numeric_not_supported_by_duckdb.py
- test_object_store_catalog.py
- test_orderby_pushdown.py
- test_partition_evolution.py
- test_partition_pruning.py
- test_partitioned.py
- test_partitioned_files.py
- test_partitioned_pushdown.py
- test_permissions.py
- test_pg_lake_iceberg_apply_partition_transform.py
- test_pg_lake_iceberg_metadata.py
- test_pg_lake_iceberg_partition_by.py
- test_pg_lake_iceberg_stats.py
- test_pgduck_server_crash.py
- test_plpgsql.py
- test_polaris_catalog.py
- test_polaris_catalog_writable.py
- test_postgres_compat_sql.py
- test_prepared.py
- test_queries.py
- test_read_replica.py
- test_recovery.py
- test_regex_text_search.py
- test_relation_restriction.py
- test_row_ids.py
- test_s3log.py
- test_security.py
- test_select_expressions.py
- test_set_operation_pushdown.py
- test_settings.py
- test_special_numeric.py
- test_sql_json_pushdown.py
- test_stage_location_integration.py
- test_statistics_aggregate_pushdown.py
- test_string_agg_pushdown.py
- test_sum_aggregate_pushdown.py
- test_text_function_pushdown.py
- test_time_functions.py
- test_timezone.py
- test_to_char.py
- test_truncate_partitioned_writes.py
- test_unbounded_numeric.py
- test_unnest.py
- test_unsupported_numeric_as_double.py
- test_update_delete_iceberg.py
- test_vacuum_failure.py
- test_vended_credentials_enforced.py
- test_vended_credentials_polaris.py
- test_view_pushdown.py
- test_window_function_pushdown.py
- test_with_postgres_fdw.py
- test_writable_iceberg.py
- test_writable_iceberg_common.py
- test_writable_table_delete.py
- test_writable_table_insert.py
- test_writable_table_update.py
- test_writable_table_vacuum.py
- test_writable_tables.py
- pg_lake_table_test_data_file_hook.c
- Makefile
- pg_lake_table_test_data_file_hook--1.0.sql
- pg_lake_table_test_data_file_hook.control
- pg_lake_table_test_hideable.c
- Makefile
- pg_lake_table_test_hideable--1.0.sql
- pg_lake_table_test_hideable.control
- test_post_upgrade.py
- conftest.py
- Makefile
- pg_lake_table--2.4-1--3.0.sql
- pg_lake_table--3.0--3.1.sql
- pg_lake_table--3.0.sql
- pg_lake_table--3.1--3.2.sql
- pg_lake_table--3.2--3.3.sql
- pg_lake_table--3.3--3.4.sql
- pg_lake_table--3.4--3.5.sql
- pg_lake_table.control
- map.c
- extension_test.py
- conftest.py
- .gitignore
- Makefile
- pg_map--1.1--1.2.sql
- pg_map--1.2--3.1.sql
- pg_map--1.2.sql
- pg_map--3.1--3.2.sql
- pg_map--3.2--3.3.sql
- pg_map--3.3--3.4.sql
- pg_map--3.4--3.5.sql
- pg_map.control
- README.md
- command_line.h
- duckdb.h
- duckdb_pglake.h
- type_conversion.h
- client_threadpool.h
- pgserver.h
- pgsession.h
- pgsession_io.h
- pqformat.h
- hex.h
- numutils.h
- pg_log_utils.h
- pgduck_log_utils.h
- pidfile.h
- string_utils.h
- command_line.c
- duckdb.c
- type_conversion.c
- client_threadpool.c
- pgserver.c
- pgsession.c
- pgsession_io.c
- pqformat.c
- hex.c
- numutils.c
- pgduck_log_utils.c
- string_utils.c
- time.c
- main.c
- pidfile.c
- .gitignore
- Makefile
- prepared_statements.c
- select-only.sql
- simple-update.sql
- tpcb-like.sql
- conftest.py
- test_caching.py
- test_cancellations.py
- test_cli.py
- test_functions.py
- test_pgbench.py
- test_postgres_scanner.py
- test_postgres_scanner_geometry.py
- test_psql.py
- test_query_progress.py
- test_return_stats_decimal.py
- test_s3.py
- test_server_protocol_failures.py
- test_server_start.py
- test_simple_server.py
- test_stat_activity.py
- test_types.py
- test_vended_secrets.py
- utils_protocol.py
- test_secrets.sql
- Makefile
- README.md
- __init__.py
- cloud_storage.py
- comparisons.py
- core_fixtures.py
- db.py
- delta.py
- explain.py
- iceberg.py
- json.py
- moto_iam_storage.py
- polaris.py
- pytest_config.py
- random_values.py
- server.py
- server_params.py
- spark.py
- type_setup.py
- .gitignore
- Makefile
- polaris
- README.md
- rest_catalog_server.sh
- dot-field-name.avro
- equality-ids-manifest.avro
- local-path-manifest.avro
- .00000000000000000000.json.crc
- 00000000000000000000.json
- .part-00000-8d0390a3-f797-4265-b9c2-da1c941680a3.c000.snappy.parquet.crc
- part-00000-8d0390a3-f797-4265-b9c2-da1c941680a3.c000.snappy.parquet
- .part-00000-88fba1af-b28d-4303-9c85-9a97be631d40.c000.snappy.parquet.crc
- part-00000-88fba1af-b28d-4303-9c85-9a97be631d40.c000.snappy.parquet
- .part-00000-030076e1-5ec9-47c2-830a-1569f823b6ee.c000.snappy.parquet.crc
- part-00000-030076e1-5ec9-47c2-830a-1569f823b6ee.c000.snappy.parquet
- Fahrradrouten.zip
- S_USA.OtherSubSurfaceRight.zip
- 00000-0-b90f69a8-9d0b-4b71-9c17-cd377b91cc69-00001.parquet
- 00000-a4ad5170-ba27-42ef-96dc-db0c1d8d1967.metadata.json
- 00001-c591dd86-3c92-4d94-8a07-3eda38167148.metadata.json
- 38be813e-9b78-4704-a06e-894398332366-m0.avro
- snap-1852021276567276625-1-38be813e-9b78-4704-a06e-894398332366.avro
- 2024-09-24-00-00-00-106A30CF799F4C34
- 2024-09-24-00-00-00-E4406BFBA47302DF
- 2024-09-24-00-00-00-E8F24E9CC7B6CBAE
- bp_bug.json
- bp_bug.parquet
- canada.json
- canada.parquet
- census_compressed.json
- census_compressed.parquet
- censusblock.json
- censusblock.parquet
- censustractsgeo.json
- censustractsgeo.parquet
- city_temperature.json
- city_temperature.parquet
- clean_sane_header.json
- clean_sane_header.parquet
- cms1.json
- cms1.parquet
- cms2.json
- cms2.parquet
- cms_compressed.json
- cms_compressed.parquet
- cms_drug.json
- cms_drug.parquet
- cms_observation_compressed.json
- cms_observation_compressed.parquet
- cms_physicians_compressed.json
- cms_physicians_compressed.parquet
- cmsperson.json
- cmsperson.parquet
- covidgeo.json
- covidgeo.parquet
- covidgrid.json
- covidgrid.parquet
- covidnyt.json
- covidnyt.parquet
- covidsymp.json
- covidsymp.parquet
- covidtrials.json
- covidtrials.parquet
- covidtrials_gzip.parquet
- cryptoerrors.json
- cryptoerrors.parquet
- cryptomigrations.json
- cryptomigrations.parquet
- cryptoops.json
- cryptoops.parquet
- cryptoops2.json
- cryptoops2.parquet
- cryptoops3.json
- cryptoops3.parquet
- cryptoops4.json
- cryptoops4.parquet
- cymbaltrades.json
- cymbaltrades.parquet
- dataflixdamage.json
- dataflixdamage.parquet
- delta_byte_array_multiple_pages.json
- delta_byte_array_multiple_pages.parquet
- ebiassay.json
- ebiassay.parquet
- eclipsephotos.json
- eclipsephotos.parquet
- event_baserunning_advance_attempt.json
- event_baserunning_advance_attempt.parquet
- example_rn.json
- example_rn.parquet
- faaairports.json
- faaairports.parquet
- fccads.json
- fccads.parquet
- fdadrug.json
- fdadrug.parquet
- fdafood.json
- fdafood.parquet
- fdafoodevents.json
- fdafoodevents.parquet
- fhrallergy.json
- fhrallergy.parquet
- fhrgoal.json
- fhrgoal.parquet
- fhrpract.json
- fhrpract.parquet
- g1_1e7_1e2_0_0.json
- g1_1e7_1e2_0_0.parquet
- g1_1e7_1e2_5_0.json
- g1_1e7_1e2_5_0.parquet
- ga4ecomm.json
- ga4ecomm.parquet
- ga4ecomm_gzip.parquet
- gdeltbooks.json
- gdeltbooks.parquet
- gencannabis.json
- gencannabis.parquet
- geoports.json
- geoports.parquet
- githublicenses.json
- githublicenses.parquet
- githubnested_gzip.json
- githubnested_gzip.parquet
- hits.json
- hits.parquet
- idcananalysis.json
- idcananalysis.parquet
- imdbreviews.json
- imdbreviews.parquet
- immunedb.json
- immunedb.parquet
- invalid_unicode_scrambled.json
- invalid_unicode_scrambled.parquet
- issue2102_one.json
- issue2102_one.parquet
- issue2102_two.json
- issue2102_two.parquet
- issue_5968.json
- issue_5968.parquet
- j1_1e7_1e1_0_0.json
- j1_1e7_1e1_0_0.parquet
- j1_1e7_1e4_0_0.json
- j1_1e7_1e4_0_0.parquet
- j1_1e7_1e7_0_0.json
- j1_1e7_1e7_0_0.parquet
- j1_1e7_na_0_0.json
- j1_1e7_na_0_0.parquet
- job_aka_name.json
- job_aka_name.parquet
- job_aka_title.json
- job_aka_title.parquet
- job_cast_info.json
- job_cast_info.parquet
- job_char_name.json
- job_char_name.parquet
- job_comp_cast_type.json
- job_comp_cast_type.parquet
- job_company_name.json
- job_company_name.parquet
- job_company_type.json
- job_company_type.parquet
- job_complete_cast.json
- job_complete_cast.parquet
- job_info_type.json
- job_info_type.parquet
- job_keyword.json
- job_keyword.parquet
- job_kind_type.json
- job_kind_type.parquet
- job_link_type.json
- job_link_type.parquet
- job_movie_companies.json
- job_movie_companies.parquet
- job_movie_info.json
- job_movie_info.parquet
- job_movie_info_idx.json
- job_movie_info_idx.parquet
- job_movie_keyword.json
- job_movie_keyword.parquet
- job_movie_link.json
- job_movie_link.parquet
- job_name.json
- job_name.parquet
- job_person_info.json
- job_person_info.parquet
- job_role_type.json
- job_role_type.parquet
- job_title.json
- job_title.parquet
- lineitemsf1.json
- lineitemsf1.parquet
- mlcensus.json
- mlcensus.parquet
- momaartworks.json
- moonphases.json
- moonphases.parquet
- ncaagames.json
- ncaagames.parquet
- ncaahistgames.json
- ncaahistgames.parquet
- ncesipeds.json
- ncesipeds.parquet
- ncesipeds2.json
- ncesipeds2.parquet
- noaa.parquet
- noaagsod29.json
- noaagsod29.parquet
- noaahurricanes.json
- noaahurricanes.parquet
- nppeshealthtaxo.json
- nppeshealthtaxo.parquet
- nypdcollisions.json
- nypdcollisions.parquet
- openairquality_gzip.json
- openairquality_gzip.parquet
- openbuildings.json
- openbuildings.parquet
- orders.json
- orders.parquet
- patentsdef.json
- patentsdef.parquet
- patentsdef_snappy.parquet
- pckgadvisories_gzip.parquet
- person_delete_candidates.json
- person_delete_candidates.parquet
- person_likes_comment.json
- person_likes_comment.parquet
- propertiesrent.json
- searchphrase.json
- searchphrase.parquet
- snowflake_lineitem_export.parquet
- stocks_germany_sample.json
- stocks_germany_sample.parquet
- stocks_uk.json
- stocks_uk.parquet
- sunroofsolar.json
- sunroofsolar.parquet
- taxi_2019_04.json
- taxi_2019_04.parquet
- taxi_2019_05.json
- taxi_2019_05.parquet
- taxi_2019_06.json
- taxi_2019_06.parquet
- thelookorders.json
- thelookorders.parquet
- themetobjects.json
- themetobjects.parquet
- themetvision.json
- themetvision.parquet
- title_principals_tsv.json
- title_principals_tsv.parquet
- umiamismall.json
- umiamismall.parquet
- us_er_da_ta.json
- us_er_da_ta.parquet
- userdata1.json
- userdata1.parquet
- usitcsinvest.json
- usitcsinvest.parquet
- usitcsinvest_snappy.json
- usitcsinvest_snappy.parquet
- yellowcab.json
- yellowcab.parquet
- e1d648c8-9076-48aa-ba99-3e181f21f433-m0.avro
- e2a44fb7-8e3b-4dfe-80fa-e37c28e8e227-m0.avro
- fb108f8a-7a95-4ffb-adf4-014040732448-m0.avro
- snap-1090305341596015032-1-e2a44fb7-8e3b-4dfe-80fa-e37c28e8e227.avro
- snap-488156656739391699-1-e1d648c8-9076-48aa-ba99-3e181f21f433.avro
- snap-5519858476622110340-1-fb108f8a-7a95-4ffb-adf4-014040732448.avro
- 00000-16d66250-33fd-432a-b404-3a9f2cf851c3.metadata.json
- 00001-03556740-5d59-4620-8dac-0741f2426c32.metadata.json
- 00002-871f788d-4cae-4d37-ba2b-fd81d911e4d3.metadata.json
- 00003-55c2c7cc-c01c-41f3-8df3-a66efb40d67b.metadata.json
- 00004-13de53d0-10b9-4d99-b962-d8d5144c2f82.metadata.json
- 00005-54b3cdc0-4803-4338-9c3d-599e3e0b9569.metadata.json
- 00006-62db7883-d971-4de4-b524-0f3bec9e0c2c.metadata.json
- 00007-0e21d3b8-43a7-4be6-a24e-ff4b707ed75a.metadata.json
- 00008-905fe661-e415-416b-bb31-7da4fd518d78.metadata.json
- 00009-5f2b4e74-75d7-4790-b0f4-9f2fae5a7c8b.metadata.json
- 00010-731c9bb2-a95c-4a0c-bbb7-be49c5f899c8.metadata.json
- 00011-5a3cd672-abc7-4b2d-b20d-34e8beb7c78f.metadata.json
- 00012-20904cef-875a-43ae-be62-f96452da302f.metadata.json
- 00013-2814d57a-3431-42eb-ba9f-95e93f3b72dd.metadata.json
- 00013-fab5f4a5-5f37-4a49-844e-c7732aee2e2b.metadata.json
- 00014-03cde792-9be4-43dc-a29a-e9a05dcb5d21.metadata.json
- 00015-4bf2c51b-128e-434a-8a2b-8a7f7f43f2ce.metadata.json
- 00015-9428fa1e-68a0-443c-80de-85d48ecfff9c.metadata.json
- 00016-09ae5a8f-f72f-4f33-b040-434e0f9998fe.metadata.json
- 00016-5c7c2f4b-af19-49aa-8263-da7407c566ed.metadata.json
- readme.md
- snap-2128163989549911625-1-16914803-2a85-43f0-9530-f6c13bd8152b.avro
- snap-372362281220277903-1-f340c746-f833-4891-9509-bb378a25abab.avro
- table-statistics.metadata.json
- TableMetadataPartitionStatisticsFiles.json
- TableMetadataStatisticsFiles.json
- TableMetadataV2Valid.json
- TableMetadataV2ValidMinimal.json
- 00000-0-279ab3b9-b8b3-4f64-80e0-c9b213dcc739-00001.parquet
- 00000-1-bc02af8d-85bd-4c53-878c-139e86dde034-00001.parquet
- 00000-2-bf01174f-cc05-4b2d-b319-0508056a27b0-00001.parquet
- 00000-3-21d47de4-4df1-47e5-8dbc-754db2aaa562-00001.parquet
- 00000-4-673e0aa8-fe1e-4017-8404-5761f186a316-00001.parquet
- 00000-7-8d1d2534-1d06-48fe-ae0a-b136da51b059-00001.parquet
- 00000-8-9baf72b2-c270-4ff1-a393-e9d1260122ce-00001.parquet
- 00000-85f841a7-ebbd-45cb-a936-c75c73920848.metadata.json
- 00001-5a68e584-253e-4680-aef4-570a5ad35138.metadata.json
- 00002-b18fbed9-9576-4626-9048-d40f82be3caa.metadata.json
- 00003-5993f915-5792-44bb-af0c-dc9a9b563041.metadata.json
- 00004-7892a27e-908e-4bdc-aded-3a81f77ee168.metadata.json
- 00005-17e8d629-c056-4070-b181-e80be8a57e38.metadata.json
- 00006-7f552c17-272c-4ad9-92bc-f5f75eb78947.metadata.json
- 00007-20fca3bd-2b09-40d7-94ae-21524bcebb3b.metadata.json
- 00008-3b35a0e4-2050-41ea-a870-519ab35a7679.metadata.json
- 00009-fbc79bf7-d4e5-42af-ac5c-26f9171fa8dd.metadata.json
- 00010-f7c1d235-8f98-4b6e-be43-2f3f1d2b932f.metadata.json
- 00011-6bd76f24-f850-4fb0-a829-dc9152d5f1cf.metadata.json
- 00012-6d210da0-607a-4b81-a899-85b21f0f36f4.metadata.json
- 00013-0cfc30af-a802-4a38-9355-4ef102c0fe77.metadata.json
- 12e1af3a-4445-4afa-a8db-28f0ef16209d-m0.avro
- 270ed45f-626f-4cbb-93bd-612c567e7918-m0.avro
- 38b8318a-08a1-4451-8f94-7c808054cbf6-m0.avro
- 83d79b33-9a5e-4849-9d25-7bf4301803f1-m0.avro
- b0c5974f-7d82-41b0-9c67-792b21dd990f-m0.avro
- bc171be1-7343-4e9b-8713-3de019e50e42-m0.avro
- cbab2fde-2f4e-44d9-9acd-7e7527fa9303-m0.avro
- snap-1877754490068263764-1-bc171be1-7343-4e9b-8713-3de019e50e42.avro
- snap-2927371044726920068-1-270ed45f-626f-4cbb-93bd-612c567e7918.avro
- snap-3350645522663493875-1-12e1af3a-4445-4afa-a8db-28f0ef16209d.avro
- snap-3590364610732464672-1-38b8318a-08a1-4451-8f94-7c808054cbf6.avro
- snap-6580775499616836840-1-cbab2fde-2f4e-44d9-9acd-7e7527fa9303.avro
- snap-6974443355414711815-1-b0c5974f-7d82-41b0-9c67-792b21dd990f.avro
- snap-7409334672293008548-1-83d79b33-9a5e-4849-9d25-7bf4301803f1.avro
- 00000-0-d21dad3c-1c79-40a1-88d3-1a8bd1c463da-00001.parquet
- 00000-12-6b217ff6-ec88-45df-95a0-fe3a337e541e-00001-deletes.parquet
- 00000-15-10c07c50-eecc-4442-9bd1-31c6fbbe5084-00001-deletes.parquet
- 00000-17-993107b3-f307-4de7-b6ec-310f302da732-00001-deletes.parquet
- 00000-17-993107b3-f307-4de7-b6ec-310f302da732-00001.parquet
- 00000-2-2ea4d781-a4d5-42da-8708-834cfed189c7-00001.parquet
- 00000-4-04bf220c-f1ec-4466-b0b0-492b8c58ab2d-00001.parquet
- 00000-6-f0febbca-e7aa-4e2e-9dca-54486afe6efc-00001.parquet
- 00000-8-55662b67-369f-47a1-b3de-ab82e11bca9a-00001.parquet
- 00000-9-fee626ea-f2f4-4f01-9aa1-e01e52f8bc7b-00001.parquet
- 00001-1-d21dad3c-1c79-40a1-88d3-1a8bd1c463da-00001.parquet
- 00001-3-2ea4d781-a4d5-42da-8708-834cfed189c7-00001.parquet
- 00001-5-04bf220c-f1ec-4466-b0b0-492b8c58ab2d-00001.parquet
- 00001-7-f0febbca-e7aa-4e2e-9dca-54486afe6efc-00001.parquet
- 00000-e79de093-2976-491e-965a-e356a226956e.metadata.json
- 00001-416a5bad-4ede-4f79-b364-2951426146cf.metadata.json
- 00002-ba616221-49be-46d1-9bf6-4b6e8d266f97.metadata.json
- 00003-b53ba760-109c-462c-9f80-7a383edcfcb9.metadata.json
- 00004-9eeb9ec3-bfbf-432c-8c2f-0880b8f5ad68.metadata.json
- 00005-2245d101-e574-4fc0-830f-3363fe0ff949.metadata.json
- 00006-82ecf490-e28d-4f09-95d5-e3ca2af6d040.metadata.json
- 00007-94268859-f2ed-40ce-a7c0-fdc7065fa48a.metadata.json
- 00008-e314b675-e986-4afa-b743-8079e5e066b1.metadata.json
- 00009-5c29aedb-463b-4b80-b0d5-c1d7fc957770.metadata.json
- 1ff385e2-e656-4de5-90d2-73b7571fd634-m0.avro
- 29b47ec4-4407-45aa-ba2e-a814438b1546-m0.avro
- 6fa4c86c-da11-4420-857e-b70d71cf866f-m0.avro
- 73be5627-915f-4f67-9bc4-7777dd314036-m0.avro
- 86b1a489-2ddd-4e56-9b9c-ba5a478a6908-m0.avro
- 8a1f6992-f7ad-41e1-a428-92cdd892676a-m0.avro
- 8a1f6992-f7ad-41e1-a428-92cdd892676a-m1.avro
- ac5215f4-6170-49df-bc5b-5cc202fcbcc1-m0.avro
- d68b78fa-f080-4857-ab13-4c8234215f72-m0.avro
- e081bfcf-354e-4b33-97e5-30660bf41602-m0.avro
- snap-2040969491287915588-1-8a1f6992-f7ad-41e1-a428-92cdd892676a.avro
- snap-2801806189136843147-1-73be5627-915f-4f67-9bc4-7777dd314036.avro
- snap-3096055023671232994-1-d68b78fa-f080-4857-ab13-4c8234215f72.avro
- snap-4152124371647362938-1-1ff385e2-e656-4de5-90d2-73b7571fd634.avro
- snap-5557283981880311846-1-6fa4c86c-da11-4420-857e-b70d71cf866f.avro
- snap-6879074458883558306-1-29b47ec4-4407-45aa-ba2e-a814438b1546.avro
- snap-7459451945897571250-1-ac5215f4-6170-49df-bc5b-5cc202fcbcc1.avro
- snap-7916041895131830669-1-86b1a489-2ddd-4e56-9b9c-ba5a478a6908.avro
- snap-8828047398473763164-1-e081bfcf-354e-4b33-97e5-30660bf41602.avro
- 00000-10-7669e9f7-8baf-4bb4-add0-5434bae4164e-00001.parquet
- 00000-4-e27d38bd-c551-43e5-a8bb-102b7412300f-00001.parquet
- 00000-6-957487b0-51ed-4bab-a71d-d162f9eb39ea-00001.parquet
- 00000-8-c37ae1e9-afb4-4615-87f7-7a5c168ec478-00001.parquet
- 00001-11-7669e9f7-8baf-4bb4-add0-5434bae4164e-00001.parquet
- 00001-5-e27d38bd-c551-43e5-a8bb-102b7412300f-00001.parquet
- 00001-7-957487b0-51ed-4bab-a71d-d162f9eb39ea-00001.parquet
- 00001-9-c37ae1e9-afb4-4615-87f7-7a5c168ec478-00001.parquet
- 00006-1286832e-c061-4b16-8a85-a4b7dd3e89f1.metadata.json
- 00007-975aa27f-da5a-4058-807f-7b5a1e80345a.metadata.json
- 09f124bd-9a6a-40ae-a00a-e80f60bc910b-m0.avro
- 09f124bd-9a6a-40ae-a00a-e80f60bc910b-m1.avro
- 11be8aa6-fec3-44f8-9492-73089137b912-m0.avro
- 7f2ac1ca-4014-42a8-86d8-3166123642f9-m0.avro
- a182e4a1-a14b-42bf-a2b6-52f2cf362ece-m0.avro
- ca3d011c-dffd-43da-9fc0-ced7a4ac5a35-m0.avro
- snap-1606975766868358947-1-a182e4a1-a14b-42bf-a2b6-52f2cf362ece.avro
- snap-6368732805770415778-1-09f124bd-9a6a-40ae-a00a-e80f60bc910b.avro
- utils_pytest.py
- bump_extension_versions.py
- generate_duckdb_kwlist.py
- .dir-locals.el
- .editorconfig
- .gitignore
- .gitmodules
- .pre-commit-config.yaml
- .typos.toml
- avro
- avro.patch
- CLAUDE.md
- install.sh
- LICENSE
- Makefile
- pglake-arch.png
- Pipfile
- Pipfile.lock
- pytest.ini
- README.md
- shared.mk
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/Snowflake-Labs/pg_lake
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd pg_lake
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. Docker
쉬움 추천사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker compose -f docker/docker-compose.yml up -d --build
compose 설정 파일에 정의된 서비스들을 대상으로 명령을 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
3. CMake
보통사전 준비물
cd duckdb_pglake
이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.
mkdir build && cd build
빌드 결과물을 담을 폴더를 만들고 그 안으로 이동합니다.
cmake ..
소스코드를 분석해 빌드 설정 파일을 생성합니다 (build 폴더 안에서 실행해야 함).
make
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
build 폴더 안에 실행 파일이 생성됐는지 확인하고, 직접 실행해보세요 (예: ./build/앱이름).
4. Python
쉬움사전 준비물
pipenv install
이 명령어를 터미널에 그대로 입력해 실행하세요.
python <실행할 파일명>.py # README에서 정확한 실행 파일명을 확인하세요
파이썬 스크립트(또는 모듈)를 실행합니다.
에러 메시지 없이 실행되고 터미널에 안내 문구가 출력되면 정상입니다.
5. Make
보통사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Make Linux/macOS는 보통 기본 설치되어 있습니다. Windows는 별도 설치(예: MSYS2, WSL)가 필요합니다.
make
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
에러 없이 끝나면 성공입니다. 생성된 실행 파일을 직접 실행해보세요.
// repository documentation
Was this content helpful?
(0 ratings)
