Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Readme update #1939

Closed
wants to merge 334 commits into from
Closed

Readme update #1939

wants to merge 334 commits into from

Conversation

Allison-E
Copy link
Contributor

I added a link to the open-source .NET driver for Apache AGE.

rafsun42 and others added 30 commits January 4, 2023 10:30
For example, 'SET v = {..}' will remove all properties of
v and set the provided map as its properties.
This patch is credited to deem0n (Dmitriy Dorofeev). Many thanks!

Fixed a typo that causes a backup of a passed in variable to become
indeterminate. This, in turn, caused the restoration of that variable
to become indeterminate.

Fixed a typo that caused the incorrect hash, label_name_graph_cache_hash,
to be initialized instead of, label_oid_cache_hash.

Added the ag_graph and ag_label tables to the pg_dump output.
* 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.2.0.sql
    modified:   age.control
* Added comments for create_graph function
-age_exists, which is the executor for exists(property) function, was making up to 3 redundant memory accesses.
-exists(property) predicate function only serves to check if a property exists or not.
-In Cypher, if a property is assigned the value of NULL, this is considered the same as the property not existing at all. Thus the function calls to get the value type is not needed as the check for the null argument itself filters out all NULL inputs. If a property passes this check, it implies existence.
Additional changes:
Null properties are removed from cypher maps in certain cases.
A new property `cypher_map.keep_null` is added. It is set while
transforming CREATE, MATCH and SET clause. Based on its value,
transform_cypher_map tells executor whether to keep the null
properties in maps that appear in the mentioned clauses.

Cases of null removal:
  - For CREATE and SET with equal operator, nulls are removed.

  - For MATCH, nulls are not removed.

  - For SET with plus-equal operator, nulls are kept during
  transformation, but removed after execution.

  - For any other cases, nulls are removed by default.
- This CI workflow will run python driver unit tests and ensure that any
  PR/commit that modifies files under age/drivers/python is passing the tests.
- Moved docker-compose.yaml file in age/drivers/golang to age/drivers,because
  this is required to instaniate a postgres instance, needed for unit testing.
- Modified host address of connection params to localhost in 'test_age_py.py'
  to connect to postgres instance running in docker container.
Updated developer mailing list email
Added user mailing list subscription
Added different video tutorials in it which will help in installation of Apache Age on Windows and MacOS.
Added PostgreSQL 11 badge
- Added installcheck.yaml
- Removed .travis.yaml file
* added paths directive to on: pull request
* Now this CI will only run when a commit or PR has touched any file in drivers/golang
* Added comments for create_graph function
-age_exists, which is the executor for exists(property) function, was making up to 3 redundant memory accesses.
-exists(property) predicate function only serves to check if a property exists or not.
-In Cypher, if a property is assigned the value of NULL, this is considered the same as the property not existing at all. Thus the function calls to get the value type is not needed as the check for the null argument itself filters out all NULL inputs. If a property passes this check, it implies existence.
Additional changes:
Null properties are removed from cypher maps in certain cases.
A new property `cypher_map.keep_null` is added. It is set while
transforming CREATE, MATCH and SET clause. Based on its value,
transform_cypher_map tells executor whether to keep the null
properties in maps that appear in the mentioned clauses.

Cases of null removal:
  - For CREATE and SET with equal operator, nulls are removed.

  - For MATCH, nulls are not removed.

  - For SET with plus-equal operator, nulls are kept during
  transformation, but removed after execution.

  - For any other cases, nulls are removed by default.
- This CI workflow will run python driver unit tests and ensure that any
  PR/commit that modifies files under age/drivers/python is passing the tests.
- Moved docker-compose.yaml file in age/drivers/golang to age/drivers,because
  this is required to instaniate a postgres instance, needed for unit testing.
- Modified host address of connection params to localhost in 'test_age_py.py'
  to connect to postgres instance running in docker container.
Updated developer mailing list email
Added user mailing list subscription
Added different video tutorials in it which will help in installation of Apache Age on Windows and MacOS.
- Added installcheck.yaml
- Removed .travis.yaml file
* added paths directive to on: pull request
* Now this CI will only run when a commit or PR has touched any file in drivers/golang
* Updated Readme for drivers folder and added important links related to
Apache-AGE project which were included in other readme files.

* Updated NodeJS driver readme and added important links of Apache-AGE
project as included in other readme files.
- This CI will only run whenever a PR or commit touches files
  drivers/jdbc.

- Added logger to display the result of tests i.e. passing,
  failing etc.
- Removed path directive
- Included PG11 as trigger branch
Found async function without any await expressions in NodeJS Driver. Async keyword is used in Asynchronous programming and for the functions that wait for some responses. These functions dont need to be Asynchronous.
- Removed path directive
- Included PG11 as trigger branch
jrgemignani and others added 27 commits April 17, 2024 03:33
…e#1750)

Added the command graph_stats. This command will force a reload of
the specified graph. This is done to generate current statistics
and dump any warning messages about the graph generated during a
the load.

Cleaned up some messaging from the VLE load process for duplicate
vertices and edges.

Added regression tests.
fix the typos, trivial
Implemented integer conversion to boolean in both toBoolean and
toBooleanList functions. Also made corresponding changes to regression
tests and broke long lines to adhere to the 79-column line length limit
in the toBooleanList function.
Edited connection string to be more generic.
* Implement COUNT Subquery with PG specifications

Implements a version of COUNT subquery that evaluates the
underlying subquery according to Postgres subquery specifications.

Modifies the grammar to accept all valid input for both COUNT
and EXISTS subqueries.

Add regression tests related to COUNT

Modify the subquery regression tests to accomodate changes
introduced in this update.

* Implement Constraints on Subqueries

Added logic to support constraints on subqueries.

Added an expression tree walker to traverse expr trees. This logic
can be expanded to search expr trees for other exprs outside of
subqueries as well.

Changed OPTIONAL MATCH logic to accomodate for subqueries.

Changed the grammar for COUNT () functions to use a keyword.
This avoids grammatical errors with other components.

Add regression tests for subqueries as well as some for the expr
tree walker. Reformatted previous regression tests.
…1799)

Fixed issue 1767: create table as select * from cypher()... throws
an error -

ERROR:  unhandled cypher(cstring) function call

CREATE TABLE AS is a utility command and therefore is not seen by the
query tree walker. This is by design, per the query_tree_walker code
comments. This is why the cypher command wasn't transformed causing
the above error.

The fix was to add a check for utility commands in the Query section
of the convert_cypher_walker. If found, the embedded query from
CreateTableAsStmts nodes is extracted and processed.

NOTE: This only enables the utility command CreateTableAsStmts nodes.
      Others will need to be added on a case by case basis.

Added regression tests.
Integrated datum_image_hash and datum_image_eq to the logic for the
VLE edge property datum match.

Additionally, both were added to agtype_eq and agtype_ne.

The hope is that, for large datums, these routines will improve
performance.

No impact to regression tests.
* update for psycopg3

* set a default argparse namespace  in case tests are run in such a way that argparse is bypassed.
- Added a check for the case where the list comprehension is used with
  `WITH *`. Handled this case by adding entries in targetlist to the
  group clause.

- Added regression tests.
- This action will now add "override-stale" label to the PRs
  that are by apache/age committers, this will prevent stale
  action from touching these PRs.
- All the PRs sent to master and PGXX branches will now require atleast
  1  approving review.
- Due to the recent changes in the docker image tags, the CI workflows
  need to be updated to use the new tags.
Added logic to support returnless unions in subqueries.

Added regression tests to support this addition. Modified
regression tests to capture more cases.
- This workflow will send the first notice to the
  issue/PR author after 45 days of inactivity and
  will close the issue/PR after 7 further days of
  inactivity.
- Only the issues/PRs after 1st Jan 2023 will be
  affected by this workflow.
- Maximum of 500 issues/PRs can be processed in
  one run of this workflow.
- This workflow will run after every 24 hours.
- Issues/PRs with the label `override-stale`
  will not be affected by this workflow.
- "Abondoned" label will be added to the issues/PRs
  which are closed by this workflow.
…che#879)

Corrected typos and grammatical errors in apache-age-basic.ipynb
…pache#1881)

Fixed issue 1878, an issue with delete_global_graphs during parallel
regression tests.

Added locking and some more defensive copies.

No regression tests were impacted.
Replaces `CALL expr . expr` to `CALL expr_var . expr_func_norm`. There was
a if-block before that checked if the first `expr` is a ColumnRef and the
second `expr` is a FuncCall node. That check is not need now since expr_var
and expr_func_norm are reduced to ColumnRef and FuncCall node respectively.

This change also prevents shift\reduce ambiguity with CALL subquery syntax.
- Changed the first notice period to 60 days and
  closing period to 14 days.
- Changed label to 'Stale' from 'Abondoned'
On Debian's s390x architecture, some regression tests were failing
because the result set was reordered. Fix by attaching ORDER BY in
problematic cases.
* Order some regression tests for stability on big-endian

On Debian's s390x architecture, some regression tests were failing
because the result set was reordered. Fix by attaching ORDER BY in
problematic cases.

* Move agtype_hash_cmp tests to separate file

Output of the agtype_hash_cmp function varies depending on the machine
endianness. Move tests to a separate file and supply little-endian and
big-endian output expected files.
Fixed agtype_build_map to allow objects to be created with more than
50 pairs. This is a PostgreSQL limitation on the number of function
arguments.

To achieve this, the agtype_add, aka concat operator, was used to
concat objects together when the limit was reached for the number
of arguments.

Added regression tests.
- Fix a markdown link grammar mistake.
- Fix some "Age" misspellings to "AGE".
Added the function is_valid_label_name (apache#1911) per user request.

This function will return a boolean value for any agtype string
passed, depending on whether it is a valid name for a label. For
all other types, not an agtype string, it will error out. Depending
on user requirements, this could be changed in the future.

Added regression tests.
Converted all single line comments in C file to multiline comments based PostgreSQL coding conventions
Fixed issue 1910: Server crashes when using exists(path) with explicit
length paths.

The crash was caused because transform_ColumnRef did not pass down the
levels_up value into scanNSItemForColumn.

Upon fixing that issue, it was found that the transform_cypher_node
function did not correctly process the vle_function_end_var end
variable. In some cases, in the WHERE clause, it needs to be created.

Added regression tests.
…E from the $libdir/plugins directory (apache#1935)

This is useful when a non-superuser login is used for the connection.

Additionally, fixed a small bug where a memoryview was not transformed to bytes before decoding into a UTF-8 string. 

Co-authored-by: Daan Wagenaar <[email protected]>
@github-actions github-actions bot added the PG13 PostgreSQL13 label Jul 1, 2024
@Allison-E Allison-E closed this Jul 1, 2024
@Allison-E Allison-E deleted the readme-update branch July 1, 2024 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PG13 PostgreSQL13
Projects
None yet
Development

Successfully merging this pull request may close these issues.