Skip to content

Conversation

@norberttech
Copy link
Member

Resolves: #xxx

Change Log


Added

  • Added pg_query_is_utility_stmt(string $sql) : bool function
  • extension installation tests on macos on ci/cd

Fixed

  • installation of the extension on macos

Changed

  • Updated libpg_query to latest version
  • ci/cd workflow testing installation of the extension through pie

Removed

Deprecated

Security

- added: macOS support for pg-query-ext CI build matrix
- added: macOS libtool fix in config.m4 to prevent symbol conflicts with
system protobuf-c
- changed: PIE install test now uses local repository path instead of
Packagist 1.x-dev
- changed: Simplified pg-query-ext documentation by removing
--with-pg-version option
- added: New `pg_query_is_utility_stmt()` function to quickly check if
SQL contains DDL/utility statements without full parsing
- changed: Updated libpg_query from 17-6.1.0 to 17-6.2.1 (PostgreSQL
17.7)
@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Flow PHP - Benchmarks

Comparing PR against 1.x baseline

+----------------------+---------------------------------+-------------------------------------+------+-----+----------+------+------------+--------+
| package              | benchmark                       | subject                             | revs | its | mem_peak | mode | total_time | rstdev |
+----------------------+---------------------------------+-------------------------------------+------+-----+----------+------+------------+--------+
| [adapter-csv]        | CSVLoaderBench                  | bench_load_1k                       | 1    | 3   | 9.794mb  | ERR  | 46.88ms    | ±0.34% |
| [adapter-csv]        | CSVExtractorBench               | bench_extract_1k                    | 1    | 3   | 5.828mb  | ERR  | 149.64ms   | ±1.42% |
| [adapter-doctrine]   | DbalExtractorBench              | bench_extract_1k_keyset             | 1    | 3   | 15.242mb | ERR  | 107.30ms   | ±0.78% |
| [adapter-doctrine]   | DbalExtractorBench              | bench_extract_1k_limit_offset       | 1    | 3   | 15.257mb | ERR  | 97.72ms    | ±1.40% |
| [adapter-doctrine]   | DbalLoaderBench                 | bench_load_1k                       | 1    | 3   | 15.279mb | ERR  | 214.79ms   | ±1.76% |
| [adapter-excel]      | ExcelLoaderBench                | bench_load_1k_ods                   | 1    | 3   | 9.864mb  | ERR  | 101.54ms   | ±0.42% |
| [adapter-excel]      | ExcelLoaderBench                | bench_load_1k_xlsx                  | 1    | 3   | 10.002mb | ERR  | 108.96ms   | ±0.67% |
| [adapter-excel]      | ExcelExtractorBench             | bench_extract_1k_ods                | 1    | 3   | 8.169mb  | ERR  | 525.68ms   | ±1.01% |
| [adapter-excel]      | ExcelExtractorBench             | bench_extract_1k_xlsx               | 1    | 3   | 8.191mb  | ERR  | 733.02ms   | ±0.58% |
| [adapter-json]       | JsonExtractorBench              | bench_extract_1k                    | 1    | 3   | 5.828mb  | ERR  | 171.54ms   | ±1.59% |
| [adapter-json]       | JsonLoaderBench                 | bench_load_1k                       | 1    | 3   | 9.797mb  | ERR  | 41.34ms    | ±2.16% |
| [adapter-parquet]    | ParquetExtractorBench           | bench_extract_1k                    | 1    | 3   | 5.828mb  | ERR  | 340.98ms   | ±1.13% |
| [adapter-parquet]    | ParquetLoaderBench              | bench_load_1k                       | 1    | 3   | 14.166mb | ERR  | 620.41ms   | ±0.36% |
| [adapter-postgresql] | PostgreSqlLoaderBench           | bench_load_1k                       | 1    | 3   | 16.096mb | ERR  | 204.63ms   | ±0.66% |
| [adapter-postgresql] | PostgreSqlExtractorBench        | bench_extract_1k_cursor             | 1    | 3   | 16.039mb | ERR  | 167.83ms   | ±0.79% |
| [adapter-postgresql] | PostgreSqlExtractorBench        | bench_extract_1k_keyset             | 1    | 3   | 16.045mb | ERR  | 254.21ms   | ±1.92% |
| [adapter-postgresql] | PostgreSqlExtractorBench        | bench_extract_1k_limit_offset       | 1    | 3   | 16.049mb | ERR  | 266.42ms   | ±1.46% |
| [adapter-text]       | TextLoaderBench                 | bench_load_1k                       | 1    | 3   | 9.926mb  | ERR  | 10.33ms    | ±1.14% |
| [adapter-text]       | TextExtractorBench              | bench_extract_1k                    | 1    | 3   | 5.828mb  | ERR  | 22.63ms    | ±0.70% |
| [adapter-xml]        | XmlExtractorBench               | bench_extract_1k                    | 1    | 3   | 5.828mb  | ERR  | 345.79ms   | ±0.52% |
| [data-frame]         | RowsBench                       | bench_chunk_100_on_1k               | 1000 | 3   | 10.782mb | ERR  | 98.20ms    | ±0.42% |
| [data-frame]         | RowsBench                       | bench_diff_left_10_on_100           | 10   | 3   | 10.848mb | ERR  | 32.92ms    | ±2.12% |
| [data-frame]         | RowsBench                       | bench_diff_right_10_on_100          | 10   | 3   | 10.848mb | ERR  | 31.83ms    | ±1.03% |
| [data-frame]         | RowsBench                       | bench_filter_on_100                 | 10   | 3   | 10.755mb | ERR  | 1.02ms     | ±0.50% |
| [data-frame]         | RowsBench                       | bench_find_on_100                   | 10   | 3   | 10.756mb | ERR  | 1.09ms     | ±1.37% |
| [data-frame]         | RowsBench                       | bench_find_one_on_100               | 10   | 3   | 10.759mb | ERR  | 1.08ms     | ±1.63% |
| [data-frame]         | RowsBench                       | bench_partition_by_on_100           | 10   | 3   | 10.900mb | ERR  | 4.30ms     | ±2.14% |
| [data-frame]         | RowsBench                       | bench_sort_asc_on_100               | 10   | 3   | 10.757mb | ERR  | 10.22ms    | ±1.26% |
| [data-frame]         | RowsBench                       | bench_sort_by_on_100                | 10   | 3   | 10.766mb | ERR  | 10.33ms    | ±0.97% |
| [data-frame]         | RowsBench                       | bench_sort_desc_on_100              | 10   | 3   | 10.764mb | ERR  | 10.16ms    | ±0.72% |
| [data-frame]         | RowsBench                       | bench_sort_entries_on_100           | 10   | 3   | 10.839mb | ERR  | 19.52ms    | ±0.25% |
| [data-frame]         | RowsBench                       | bench_unique_on_100                 | 10   | 3   | 10.849mb | ERR  | 159.50ms   | ±1.12% |
| [data-frame]         | TypeDetectorBench               | bench_type_detector                 | 1    | 3   | 6.060mb  | ERR  | 25.95ms    | ±0.06% |
| [data-frame]         | RenameEachEntryTransformerBench | bench_transform_1k_rows             | 1    | 3   | 5.829mb  | ERR  | 78.45ms    | ±0.84% |
| [data-frame]         | RenameEntryTransformerBench     | bench_transform_1k_rows             | 10   | 10  | 5.829mb  | ERR  | 221.37ms   | ±1.60% |
| [data-frame]         | EntryFactoryBench               | bench_entry_factory                 | 3    | 3   | 13.015mb | ERR  | 630.41ms   | ±1.21% |
| [data-frame]         | EntryFactoryBench               | bench_entry_factory                 | 3    | 3   | 6.060mb  | ERR  | 60.99ms    | ±1.09% |
| [parquet]            | ParquetReaderBench              | bench_page_headers                  | 10   | 3   | 5.828mb  | ERR  | 133.52ms   | ±0.62% |
| [parquet]            | ParquetReaderBench              | bench_read_values_all_columns       | 1    | 3   | 5.828mb  | ERR  | 186.46ms   | ±0.56% |
| [parquet]            | ParquetReaderBench              | bench_read_values_single_column     | 10   | 3   | 5.828mb  | ERR  | 78.46ms    | ±0.35% |
| [parquet]            | ParquetReaderBench              | bench_read_values_with_limit        | 1    | 3   | 5.828mb  | ERR  | 43.24ms    | ±0.78% |
| [parquet]            | ParquetWriterBench              | bench_write_batch                   | 1    | 3   | 6.032mb  | ERR  | 711.63ms   | ±2.12% |
| [parquet]            | ParquetWriterBench              | bench_write_gzip                    | 1    | 3   | 6.349mb  | ERR  | 804.53ms   | ±0.76% |
| [parquet]            | ParquetWriterBench              | bench_write_row_by_row              | 1    | 3   | 6.032mb  | ERR  | 715.00ms   | ±2.00% |
| [parquet]            | ParquetWriterBench              | bench_write_snappy                  | 1    | 3   | 6.032mb  | ERR  | 708.44ms   | ±0.83% |
| [parquet]            | ParquetWriterBench              | bench_write_uncompressed            | 1    | 3   | 6.032mb  | ERR  | 704.10ms   | ±1.38% |
| [telemetry]          | LogExportBench                  | bench_export_100_logs               | 3    | 5   | 5.829mb  | ERR  | 29.19ms    | ±2.09% |
| [telemetry]          | LogExportBench                  | bench_export_100_logs               | 3    | 5   | 5.829mb  | ERR  | 309.78ms   | ±1.20% |
| [telemetry]          | LogExportBench                  | bench_export_100_logs               | 3    | 5   | 5.829mb  | ERR  | 30.01ms    | ±1.26% |
| [telemetry]          | LogExportBench                  | bench_export_100_logs               | 3    | 5   | 5.829mb  | ERR  | 319.91ms   | ±1.55% |
| [telemetry]          | SpanExportBench                 | bench_export_100_spans              | 3    | 5   | 5.829mb  | ERR  | 43.78ms    | ±1.00% |
| [telemetry]          | SpanExportBench                 | bench_export_100_spans              | 3    | 5   | 5.829mb  | ERR  | 326.85ms   | ±1.82% |
| [telemetry]          | SpanExportBench                 | bench_export_100_spans              | 3    | 5   | 5.829mb  | ERR  | 41.37ms    | ±2.14% |
| [telemetry]          | SpanExportBench                 | bench_export_100_spans              | 3    | 5   | 5.829mb  | ERR  | 343.93ms   | ±1.41% |
| [telemetry]          | MetricExportBench               | bench_export_100_counter_increments | 3    | 5   | 5.829mb  | ERR  | 1.28ms     | ±1.09% |
| [telemetry]          | MetricExportBench               | bench_export_100_counter_increments | 3    | 5   | 5.829mb  | ERR  | 1.24ms     | ±1.55% |
| [telemetry]          | MetricExportBench               | bench_export_100_counter_increments | 3    | 5   | 5.829mb  | ERR  | 1.55ms     | ±2.11% |
| [telemetry]          | MetricExportBench               | bench_export_100_counter_increments | 3    | 5   | 5.829mb  | ERR  | 1.64ms     | ±1.09% |
| [telemetry]          | MetricExportBench               | bench_export_100_histogram_records  | 3    | 5   | 5.829mb  | ERR  | 2.30ms     | ±1.56% |
| [telemetry]          | MetricExportBench               | bench_export_100_histogram_records  | 3    | 5   | 5.829mb  | ERR  | 2.29ms     | ±1.24% |
| [telemetry]          | MetricExportBench               | bench_export_100_histogram_records  | 3    | 5   | 5.829mb  | ERR  | 2.70ms     | ±1.77% |
| [telemetry]          | MetricExportBench               | bench_export_100_histogram_records  | 3    | 5   | 5.829mb  | ERR  | 2.73ms     | ±1.20% |
+----------------------+---------------------------------+-------------------------------------+------+-----+----------+------+------------+--------+

@codecov
Copy link

codecov bot commented Jan 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.86%. Comparing base (2a9ed57) to head (98a33f2).
⚠️ Report is 7 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##              1.x    #2164      +/-   ##
==========================================
+ Coverage   83.63%   83.86%   +0.23%     
==========================================
  Files        1274     1274              
  Lines       45528    45528              
==========================================
+ Hits        38077    38183     +106     
+ Misses       7451     7345     -106     
Components Coverage Δ
etl 90.54% <ø> (+0.89%) ⬆️
cli 85.76% <ø> (ø)
lib-array-dot 94.82% <ø> (ø)
lib-azure-sdk 60.01% <ø> (ø)
lib-doctrine-dbal-bulk 95.16% <ø> (ø)
lib-filesystem 80.44% <ø> (ø)
lib-types 88.98% <ø> (+1.51%) ⬆️
lib-parquet 68.25% <ø> (ø)
lib-parquet-viewer 83.04% <ø> (ø)
lib-snappy 90.18% <ø> (+0.46%) ⬆️
bridge-filesystem-async-aws 90.95% <ø> (ø)
bridge-filesystem-azure 89.38% <ø> (ø)
bridge-monolog-http 97.45% <ø> (ø)
bridge-openapi-specification 91.50% <ø> (ø)
symfony-http-foundation 74.11% <ø> (ø)
adapter-chartjs 86.33% <ø> (ø)
adapter-csv 89.30% <ø> (ø)
adapter-doctrine 92.00% <ø> (ø)
adapter-elasticsearch 97.02% <ø> (ø)
adapter-google-sheet 97.05% <ø> (ø)
adapter-http 65.94% <ø> (ø)
adapter-json 89.69% <ø> (ø)
adapter-logger 83.33% <ø> (ø)
adapter-meilisearch 97.77% <ø> (ø)
adapter-parquet 79.92% <ø> (ø)
adapter-text 86.84% <ø> (ø)
adapter-xml 82.66% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

- added: macOS support for PIE installation test in GitHub Actions
workflow
- fixed: pg-query-ext build on macOS by using pkg-config to find
protobuf-c library paths
- fixed: PIE installation from local path repository by specifying
dev-1.x version constraint
@norberttech norberttech merged commit 4abcd4d into 1.x Jan 21, 2026
24 of 25 checks passed
@norberttech norberttech deleted the pg-quer-ext-installation branch January 21, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants