Skip to content

Merge PG12 version 1.3.0 into the master branch. - #1015

Merged
jrgemignani merged 98 commits into
apache:masterfrom
jrgemignani:master_PG12
Jul 7, 2023
Merged

Merge PG12 version 1.3.0 into the master branch.#1015
jrgemignani merged 98 commits into
apache:masterfrom
jrgemignani:master_PG12

Conversation

@jrgemignani

@jrgemignanijrgemignani commented Jul 5, 2023

Copy link
Copy Markdown
Contributor

PR for moving the master branch up to PostgreSQL 12.

It contains all of the latest work in the master branch in addition to all of the changes made to go from PostgreSQL 11 to 12. When this PR is merged the master will be the latest and on PostgreSQL 12.

muhammadshoaiband others added 30 commits August 24, 2022 08:35
This is an initial version of AGE for PG12.
Co-authored-by: Alex Kwak <emotionbug@apache.org>
Co-authored-by: Ibrar Ahmad <ibrar.ahmed@percona.com>
Co-authored-by: Josh Innis <JoshInnis@gmail.com>
Co-authored-by: John Gemignani <jrgemignani@gmail.com>
This is a patch to remove the word incubate from AGE for PG12
Updated the README and RELEASE files.
Co-authored-by: Ibrar Ahmed <“ibrar.ahmed@percona.com”>
Added the ability to pass parameters to the cypher() function via
a function called age_prepare_cypher().
This extra function is necessary because the cypher() function itself
isn't actually executed - it is instead transformed and replaced. This
means that it needs to have its input parameters resolved prior to
that transform. However, parameters aren't resolved until the
execution phase. So, another command to resolve them needs to run
prior to the cypher() function call.
This mainly impacts the drivers, which will need to be updated.
Additionally, modified the golang driver as an example of this new
usage.
Added regression tests.
Modified the python driver to pass parameters to the cypher() function
via age_prepare_cypher()
Modified README for the python driver
Temporary update to show diffs.
Temporary change to view regression errors.
Temporary installcheck test
Temporary installcheck for debugging
On regression test failure, dump the failure to the log.
Fixed compare_agtype_scalar_values returned result. It used a
function, varstr_cmp, that wasn't guaranteed to return 1, 0, or -1.
It was only guaranteed to return >0, 0, or <0. This caused some
builds to fail during the regression tests, as 1, 0, or -1 were
expected.
This change will implement running of the go driver unit tests
upon every pull commit made to the `drivers/golang` code.
It uses the `paths` directive to ensure the github action workflow
only runs when the go driver code is changed.
The docker-compose file is required to instaniate a postgres
instance, needed for unit testing.
* Update to go version 1.19, as 1.16 is EOL
The current version of the driver is 1.16 which went EOL Feb 2021
This upgrades to 1.19 and also configures CI to retrospectively
test back to 1.18 (1.17 is EOL). This will give test coverage
for all actively supported go versions.
* Also update readme go version
* Fixed a bug where python driver throws error when build from source
* Moved required packages to requirements.txt
* Update Readme
Rearranged instructions and added instructions to install from requirements.txt
* Fixed a typo in exceptions.py file
Fixed a typo 'SqlExcution' on line 62 in exceptions.py file
 modified: Makefile
modified: README.md
modified: RELEASE
renamed: age--1.1.0.sql -> age--1.1.1.sql
modified: age.control
 modified: NOTICE
modified: RELEASE
new file: age--1.1.0--1.1.1.sql
Queries can now call functions using the form CALL ... YIELD.
CALL ... YIELD can be used in some of the following forms:
Individual:
CALL
CALL YIELD
CALL YIELD WHERE UPDATE/RETURN
Subqueries:
READING_CLAUSE CALL YIELD UPDATE/RETURN
CALL YIELD READING_CLAUSE UPDATE/RETURN
In the future, CALL YIELD support for record returning functions and
multiple variable output functions can be added.
Known Issue with WHERE clause where a WHERE in a MATCH + CALL subquery
does not filter results is known.
Co-authored-by: Dehowe Feng <dehowefeng@gmail.com>
Conflicts:
README.md
Co-authored-by: John Gemignani <jrgemignani@gmail.com>
Typo fix where an if statement check was causing a logic error that
caused the where statement to be ignored.
Regression tests added to address this and thoroughly check WHERE
clauses as well.
Co-authored by: John Gemignani <jrgemignani@gmail.com>
Fixed the EXPLAIN command to allow for nested cypher commands within
more complex SQL queries.
Fixed the delete_global_graphs function. It was not keeping track of
the previous graph global context pointer.
This was causing a memory leak for multiple graph contexts if
individual graphs were deleted.
Updated the behavior of invalid labels to return NULL rather than
throw an error.
Added additional regression tests as well.
Added license header to the following 3 files -
regress/sql/age_global_graph.sql
regress/sql/age_load.sql
regress/sql/index.sql
Adjusted regression tests for these 3.
MuhammadTahaNaveedand others added 6 commits March 28, 2023 15:47
* Implement CI test for jdbc driver
- Modify jdbc driver to pull correct AGE image from docker hub.
- Also added logger to display the result of tests i.e. passing,
failing etc.
* Implement CI test for nodejs driver
- Modified connection params to connect with running docker instance.
- Fixed failing tests by modifying the expected outcomes.
- Include asf header as key/value to avoid EJSONPARSE error.
"//" key will never be used by npm for any purpose,
and is reserved for comments.
* Update docker-compose to pull age image from corresponding pg version tag
- Removed external links from readme.
- Updated version to 1.0.0
 modified: Makefile
modified: README.md
modified: RELEASE
renamed: age--1.1.1.sql -> age--1.3.0.sql
modified: age.control
Corrected an entry in the RELEASE notes for release.
Corrected the RELEASE notes. One entry was pointing to an incorrect
pull request.
Conflicts:
.github/workflows/go-driver.yml
.github/workflows/jdbc-driver.yaml
.github/workflows/nodejs-driver.yaml
.github/workflows/python-driver.yaml
.gitignore
CONTRIBUTING.md
Dockerfile
NOTICE
README.md
RELEASE
age--1.3.0.sql
drivers/README
drivers/docker-compose.yml
drivers/golang/README.md
drivers/golang/age/builder.go
drivers/golang/age/mapper.go
drivers/golang/go.mod
drivers/golang/go.sum
drivers/golang/parser/README.md
drivers/jdbc/README.md
drivers/jdbc/lib/build.gradle.kts
drivers/jdbc/lib/src/test/java/org/apache/age/jdbc/BaseDockerizedTest.java
drivers/nodejs/README.md
drivers/python/README.md
drivers/python/age/age.py
drivers/python/age/exceptions.py
drivers/python/setup.py
drivers/python/test_age_py.py
regress/expected/age_global_graph.out
regress/expected/catalog.out
regress/expected/cypher_call.out
regress/expected/cypher_match.out
regress/expected/cypher_merge.out
regress/expected/cypher_set.out
regress/sql/age_global_graph.sql
regress/sql/cypher_call.sql
regress/sql/cypher_match.sql
regress/sql/cypher_set.sql
src/backend/catalog/ag_label.c
src/backend/commands/label_commands.c
src/backend/executor/cypher_create.c
src/backend/executor/cypher_merge.c
src/backend/executor/cypher_set.c
src/backend/parser/cypher_analyze.c
src/backend/parser/cypher_clause.c
src/backend/parser/cypher_gram.y
src/backend/utils/adt/agtype.c
src/backend/utils/cache/ag_cache.c
src/backend/utils/graph_generation.c
src/backend/utils/load/age_load.c
src/include/catalog/ag_label.h
src/include/commands/label_commands.h
@dehowefdehowef mentioned this pull request Jul 5, 2023
Comment threadsrc/backend/utils/graph_generation.c
Comment threadsrc/backend/parser/cypher_clause.c Outdated
Comment threadsrc/backend/utils/adt/agtype.c Outdated
Comment threadsrc/backend/utils/adt/agtype.c Outdated
Comment threadsrc/backend/utils/adt/agtype.c Outdated
Comment threadsrc/backend/utils/adt/agtype.c Outdated
Comment threadsrc/backend/utils/adt/agtype.c Outdated
Comment thread.github/workflows/installcheck.yml Outdated
Comment threadREADME.md
On branch master_PG12 modified the following files to
correct whitespace, typos, duplicates, and clarity -
modified: src/backend/executor/cypher_set.c
modified: src/backend/parser/cypher_clause.c
modified: src/backend/utils/adt/agtype.c
modified: src/backend/utils/adt/graphid.c
modified: age--1.3.0.sql
modified: regress/expected/catalog.out
modified: regress/sql/catalog.sql
modified: src/backend/nodes/cypher_readfuncs.c
modified: src/include/nodes/cypher_nodes.h
modified: src/backend/catalog/ag_graph.c
modified: src/backend/executor/cypher_create.c
modified: src/backend/executor/cypher_merge.c
modified: src/backend/utils/adt/graphid.c
modified: src/backend/utils/graph_generation.c
modified: src/backend/commands/label_commands.c
modified: src/backend/parser/cypher_analyze.c
modified: src/backend/utils/load/ag_load_edges.c
modified: src/backend/utils/load/ag_load_labels.c
These files were modified from specifying PG12 to
specifying the master. Mostly related to the CI flow -
modified: .github/workflows/installcheck.yaml
modified: META.json
modified: drivers/docker-compose.yml
modified: drivers/jdbc/lib/src/test/java/org/apache/age/jdbc/BaseDockerizedTest.java
renamed: .github/workflows/installcheck.yml -> .github/workflows/installcheck.yaml
@jrgemignani

Copy link
Copy Markdown
ContributorAuthor

@dehowef@eyab@muhammadshoaib@rafsun42@MuhammadTahaNaveed

Please review the latest changes just pushed and leave your comments. Tomorrow we will be discussing whether to merge it into the master.

@muhammadshoaib

Copy link
Copy Markdown
Contributor

Looks good to me.

@dehowef

Copy link
Copy Markdown
Member

Looks good to me~~ Great work~

@jrgemignanijrgemignani changed the title Merge of PG12 into the master branch.Merge PG12 into the master branch.Jul 7, 2023
@rafsun42

Copy link
Copy Markdown
Member

Looks good!

@eyab

eyab commented Jul 7, 2023

Copy link
Copy Markdown
Member

Looks good to me. Great job!!

@MuhammadTahaNaveed

Copy link
Copy Markdown
Member

👍🏻
Looks good to me!

@jrgemignanijrgemignani changed the title Merge PG12 into the master branch.Merge PG12 version 1.3.0 into the master branch.Jul 7, 2023
@jrgemignani
jrgemignani merged commit c075703 into apache:masterJul 7, 2023
@jrgemignani

Copy link
Copy Markdown
ContributorAuthor

Thank you to everyone who helped make this PR possible!

M4rcxs pushed a commit to M4rcxs/age that referenced this pull request Jul 18, 2023
Merge PG12 version 1.3.0 into the master branch
PR 1015 contains the merge of the branch PG12 (version 1.3.0) into
the master branch. This will fold in all of the changes that are
specific to the branch PG12 and future branches. As the master branch
is already ahead of version 1.3.0, it will also create a master branch
that is on PostgreSQL 12 and completely up-to-date. PG11 is already
completely up-to-date.
Note: Effective as of the merge of this PR, the master branch will be on
PostgreSQL 12.
* Post merge corrections and modifications
On branch master_PG12 modified the following files to
correct whitespace, typos, duplicates, and clarity -
modified: src/backend/executor/cypher_set.c
modified: src/backend/parser/cypher_clause.c
modified: src/backend/utils/adt/agtype.c
modified: src/backend/utils/adt/graphid.c
modified: age--1.3.0.sql
modified: regress/expected/catalog.out
modified: regress/sql/catalog.sql
modified: src/backend/nodes/cypher_readfuncs.c
modified: src/include/nodes/cypher_nodes.h
modified: src/backend/catalog/ag_graph.c
modified: src/backend/executor/cypher_create.c
modified: src/backend/executor/cypher_merge.c
modified: src/backend/utils/adt/graphid.c
modified: src/backend/utils/graph_generation.c
modified: src/backend/commands/label_commands.c
modified: src/backend/parser/cypher_analyze.c
modified: src/backend/utils/load/ag_load_edges.c
modified: src/backend/utils/load/ag_load_labels.c
These files were modified from specifying PG12 specifically
to specifying the master. Mostly related to the CI work flow -
modified: .github/workflows/installcheck.yaml
modified: META.json
modified: drivers/docker-compose.yml
modified: drivers/jdbc/lib/src/test/java/org/apache/age/jdbc/BaseDockerizedTest.java
renamed: .github/workflows/installcheck.yml -> .github/workflows/installcheck.yaml
For work specific to PG12 branch and PG11 to 12 -
Co-authored-by: John Gemignani <jrgemignani@gmail.com>
Co-authored-by: Shoaib <muhemmed.shoaib@gmail.com>
Co-authored-by: Alex Kwak <emotionbug@apache.org>
Co-authored-by: Ibrar Ahmad <ibrar.ahmed@percona.com>
Co-authored-by: Josh Innis <JoshInnis@gmail.com>
Co-authored-by: eyab <badaleya@gmail.com>
Co-authored-by: Dehowe Feng <dehowefeng@gmail.com>
Co-authored-by: jbiz805 <49049733+jbiz805@users.noreply.github.com>
Co-authored-by: Rafsun Masud <rafsun82@gmail.com>
Co-authored-by: Utkarsh Kansal <u_kansal@yahoo.com>
Co-authored-by: Dehowe Feng <8065116+dehowef@users.noreply.github.com>
Co-authored-by: Muhammad Taha Naveed <m.taha.naveed27@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

20 participants

@jrgemignani@muhammadshoaib@dehowef@rafsun42@eyab@MuhammadTahaNaveed@lukehinds@Hunaid2000@jbiz805@Dzordzu@parvit@PragyanD@imranzaheer612@Zahid07@RC-002@MatheusFarias03@markgomer@KamleshKumar427@Pratikkapsime@maazzzzz