- Fix table detection for SELECTs that have sub-SELECTs without FROM clause #69
- Support table detection in sub-SELECTs in JOINs #68 @seanmdick
- Legacy ".parsetree" helper: Fix "Between" and "In" operator does not have "AEXPR" #66
- For new applications please use ".tree" method which uses the native structure returned from libpg_query which resembles Postgres node names more closely
- Fix regression in 0.13.1 that broke ".tables" logic for COPY statements that don't have a target table (i.e. are reading out data vs copying in)
- Introduce split between SELECT/DML/DDL for tables method #65 @chrisfrommann
- Backwards compatible, use the new select_tables/dml_tables/ddl_tables to access the categorized table references
- Update libpg_query to 9.5-1.6.2
- Update to Fingerprinting Version 1.3
- Attributes to be ignored:
- RangeVar.relname (if node also has RangeVar.relpersistence = "t")
- Special cases: List nodes where parent field name is valuesLists
- Follow same logic described for fromClause/targetList/cols/rexpr
- Attributes to be ignored:
- Update to Fingerprinting Version 1.3
- Update libpg_query to 9.5-1.6.1
- Update to Fingerprinting Version 1.2
- Ignore portalname in DeclareCursorStmt, FetchStmt and ClosePortalStmt
- Update to Fingerprinting Version 1.2
- Update libpg_query to 9.5-1.6.0
- BREAKING CHANGE in PgQuery.normalize(..) output
- This matches the change in the upcoming Postgres 10, and makes it easier to migrate applications to the new normalization format using $1..$N instead of ?
- Deparse coldeflist #64 @jcsjcs
- Use Integer class for checking integer instead of Fixnum #62 @makimoto
- Compatibility with Ruby 2.4 #59 @merqlove
- Deparse varchar and numeric casts without arguments #61 @jcsjcs
- Update to newest libpg_query version (9.5-1.4.2)
- Cut off fingerprints at 100 nodes deep to avoid excessive runtimes/memory
- Fix warning on Linux due to missing asprintf include
- Improved deparsing @jcsjcs
- Fix build on BSD systems #58 @myfreeweb
- Update to newest libpg_query version (9.5-1.4.1)
- This release makes sure we work correctly in threaded environments
- Updated fingerprinting logic to version 1.1
- Fixes an issue with UpdateStmt target lists being ignored
- Update to newest libpg_query version (9.5-1.4.0)
- Improved table name analysis (#tables method)
- Based on PostgreSQL 9.5.3
- Use LLVM extracted parser for significantly improved build times (via libpg_query)
- Deparsing Improvements
- Fix issue with A_CONST string values in
.parsetree
compatibility layer (Fixes #47)
- Add support for Ruby 1.9 (Fixes #44)
- Based on PostgreSQL 9.5.2
- NOTE: Output format for the parse tree has changed (backwards incompatible!),
it is recommended you extensively test any direct reading/modification of
the tree data in your own code
- You can use the
.parsetree
translator method to ease the transition, note however that there are still a few incompatible changes
- You can use the
- New
.fingerprint
method (backwards incompatible as well), see https://github.com/lfittl/libpg_query/wiki/Fingerprinting - Removes PostgreSQL source and tarball after build process has finished, to reduce diskspace requirements of the installed gem
- Use fixed git version for libpg_query (PostgreSQL 9.4 based)
- NOTE: 0.8 will be the last series with the initial parse tree format, 0.9 will introduce a newer, more stable, but backwards incompatible parse tree format
- Deparsing
- Abstracted parser access into libpg_query #24
- libpg_query
- Restructure build process to use upstream tarballs #35
- Avoid bison/flex dependency to make deployment easier #31
- Solve issues with deployments to Heroku #32
- Deparsing
- HAVING and FOR UPDATE #36 @JackDanger
- Deparsing
- Constraints & Interval Types #28 @JackDanger
- Cross joins #29 @mme
- ALTER TABLE #30 @JackDanger
- LIMIT and OFFSET #33 @jcsjcs
- Deparsing
- COUNT(*) @JackDanger
- Window clauses Chris Martin
- CREATE TABLE/VIEW/FUNCTION @JackDanger
- Return exact location for parser errors @JackDanger
- Speed up gem install by not generating rdoc/ri for the Postgres source
- Deparsing: Support WITH clauses in INSERT/UPDATE/DELETE @JackDanger
- Make sure gemspec includes all necessary files
- Deparsing (experimental)
- Turns parse trees into SQL again
- New truncate method to smartly truncate based on less important query parts
- Thanks to @mme & @JackDanger for their contributions
- Restructure extension C code
- Add table/filter columns support for CTEs
- Extract views as tables from CREATE/REFRESH VIEW
- Refactor code using generic treewalker
- fingerprint: Normalize IN lists
- param_refs: Fix length attribute in result
- Query fingerprinting
- Filter columns (aka columns referenced in a query's WHERE clause)
- Parameter references: Returns all $1/$2/etc like references in the query with their location
- Remove dependency on active_support
- Fix compilation of C extension
- Fix gemspec
- Speed up build time by only building necessary objects
- PostgreSQL 9.4 parser
See git commit log for previous releases.