Closed
Conversation
Implemented the DELETE clause and fixed an error with how CREATE, SET, and REMOVE interacted with Postgres' transaction system.
Added * as a valid grammar item for the RETURN command. For example -
MATCH (u) RETURN *;
Added components to mask out our "hidden" variables and aliases.
Added the option to omit edges in the grammar. For example -
MATCH (u)--(v) RETURN u, v;
MATCH (u)-->(p)<--(v) RETURN u, p, v;
Added the components for Variable Length Edges (Relationships). However,
VLE commands are disallowed until implementation.
Added regression tests.
Added an explicit cast for agtype to text (TEXTOID) type.
Added new tags
Added age-database tag
Added copy, serialization and deserialization functions for the CREATE, SET, REMOVE and DELETE data structures. This makes these clauses compatiple with the Prepared Statements and pl/pgsql functions.
Added the ability to typecast from agtype to PG's bigint and float8. Added regression tests.
Overloaded operators for agtype and int operations to bypass implicit float casting. Added regression tests
Removed mention to Bitnine
Changed the input for the following aggregate functions to
agtype -
stddev, stddevp, avg, sum, percentilecont, and
percentildisc.
Adjusted the regression tests to use casts to PG floats, where
necessary. This is to allow the removal of the implicit cast to
float8 from agtype.
Adjusted the regression tests to reflect the small changes for some
of the output using the above adjusted functions.
Switch from Bitnine to ASF
Overloaded comparison and arithmetic operators to handle agtype and int2, int4, int8, float4 and float8 operations. Removed the implicit cast to float8. Added regression tests for all cases.
README Add Viewer Tools in AGE
Added a cast assignment to fix SKIP and LIMIT clauses. Before, they were passed agtype when they needed an int type. Wrote regression tests for SKIP and LIMIT clauses.
Overloaded comparison and arithmetic operators to handle numerics. Added logic to handle agtype null input for any_functions. Added regression tests for mod cases, which were previously missing. Added regression tests to handle agtype null input.
Implements the label function which returns the label of the given vertex or edge.
Simplified the logic for getting the graphid of entities where the entity already exists. Replaced the cypher_target_node field from transform entity with declared_in_current_clause. Renamed some AttrNumber in the cypher_target_node and cypher_create_path to reflect that they are AttrNumbers. Altered the id fields in cypher_target_node to simplify the logic. Added documentation to the transform_entity data structure. Added documentation to the cypher_target_node function. Altered the flow of logic when the CREATE clause must process all children tuples in one call of exec_cypher_create to be like the delete clause logic.
Added and refactored regression tests for null operations.
Added the PostgreSQL utility command EXPLAIN to AGE's openCypher
grammar and transform logic. The following forms are allowed -
EXPLAIN
EXPLAIN VERBOSE
EXPLAIN ANALYZE
EXPLAIN ANALYZE VERBOSE
Note: Using ANALYZE with EXPLAIN will cause the execution of the
openCypher command.
EXPLAIN can be used in AGE as follows -
EXPLAIN MATCH (u)-[e]->(v) RETURN u;
EXPLAIN VERBOSE MATCH (u)-[e]->(v) RETURN u;
EXPLAIN ANALYZE MATCH (u)-[e]->(v) RETURN u;
EXPLAIN ANALYZE VERBOSE MATCH (u)-[e]->(v) RETURN u;
The EXPLAIN command in AGE is implemented through PostgreSQL's
EXPLAIN command logic. So, the output should be familiar to PG users.
For more information please see PostgreSQL's documention on EXPLAIN.
* fix: (driver/nodejs) replaced to ANTLR4 Parser. * fix: (driver/nodejs) enable eslint. * fix: (driver/nodejs) insert copyright.
Implemented PostgreSQL CASE statements into AGE. CASE has the following forms: CASE WHEN condition THEN result END CASE expression WHEN value THEN result END The logic that CASE uses is largely similar to that of PostgreSQL's CASE logic.
Addressed issue when database was forcibly terminated when vertex labels were assigned to edge labels and vice versa. Added regression tests for this case as well.
Modified error message when using existing graph name for new graph. Now it checks before starting the create graph process if a graph with the current name already exists or not. If the a graph with input name already exists it quits the graph creation process with an error. This resolves issue #66 on Github. Added regression tests for this case as well.
This reverts commit 1dea9e7. The patch 'Refactor HeapTuple Retrieval Logic' was pushed incorrectly.
-age_log10, age_e,age_exp function VOLATILITY changed from STABLE to IMMUTABLE -No database lookup or external configuration required for these functions -IMMUTABLE class allows the optimizer to build an index for faster processing
* add name validation for graphs and labels * update test script to use valid graph name
…ng(),age_size() (#434)
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 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
* Added function to create a Barbell Graph * Created auxiliary function to get_next_val_internal; * Currently creates a bridge of no vertexes between graphs, will be implemented next. * Added signature to age_create_barbell_graph * Moved bracket to next line to macth code standards * Fixed patterns to match code standards * moved PG_FUNCTION_INFO_V1(age_create_barbell_graph) next to age_create_barbell_graph function; * added brackets to if/else conditions if just one line; * moved get_nextval_internal auxiliary function to the beggining of the file.
Author
|
This was for testing purpose. Ignore |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Starting page added along with animations in the logo.