- Deparsing improvements by @herwinw
- Ignore pg_query.so in git checkout #110 @herwinw
- Prefer dir over File.dirname(FILE) #110 @herwinw
- Deparsing improvements
- SELECT DISTINCT clause #77 @Papierkorb
- "CASE expr WHEN ... END" clause #78 @Papierkorb
- LEFT/RIGHT/FULL/NATURAL JOIN #79 @Papierkorb
- SELECT that includes schema name #80 @jcsjcs
- Parse CTEs and nested selects in INSERT/UPDATE #76 @jcoleman
- Drop explicit json dependency #74 @yuki24
- IMPORTANT: Major version bump to indicate backwards incompatible parse tree change!
- Update to Postgres 10 parser and fingerprint version 2
- This is a backwards-incompatible change in parser output format, although it should be relatively easy to update most programs. This can't be avoided since Postgres does not guarantee parse trees stay the same across versions
- Update to libpg_query 9.5-1.7.1
- Allow "$1 FROM $2" to be parsed (new with pg_stat_statements in Postgres 10)
- Update to libpg_query 9.5-1.7.0
- Fixes compilation old gcc before 4.6.0 #73
- 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.