blob: 235052a08e05ac8a7adc7798cc8a4d5542ad2d7b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
LOAD 'age';
SET search_path = ag_catalog;
SELECT * FROM create_complete_graph('gp1',5,'edges','vertices');
NOTICE: graph "gp1" has been created
NOTICE: VLabel "vertices" has been created
NOTICE: ELabel "edges" has been created
create_complete_graph
-----------------------
(1 row)
SELECT COUNT(*) FROM gp1."edges";
count
-------
10
(1 row)
SELECT COUNT(*) FROM gp1."vertices";
count
-------
5
(1 row)
SELECT * FROM cypher('gp1', $$MATCH (a)-[e]->(b) RETURN e$$) as (n agtype);
n
----------------------------------------------------------------------------------------------------------------------------
{"id": 1125899906842625, "label": "edges", "end_id": 844424930131970, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842629, "label": "edges", "end_id": 844424930131971, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842626, "label": "edges", "end_id": 844424930131971, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842630, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842627, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842632, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131971, "properties": {}}::edge
{"id": 1125899906842631, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842634, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131972, "properties": {}}::edge
{"id": 1125899906842633, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131971, "properties": {}}::edge
{"id": 1125899906842628, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131969, "properties": {}}::edge
(10 rows)
SELECT * FROM create_complete_graph('gp1',5,'edges','vertices');
create_complete_graph
-----------------------
(1 row)
SELECT COUNT(*) FROM gp1."edges";
count
-------
20
(1 row)
SELECT COUNT(*) FROM gp1."vertices";
count
-------
10
(1 row)
SELECT * FROM create_complete_graph('gp2',5,'edges');
NOTICE: graph "gp2" has been created
NOTICE: ELabel "edges" has been created
create_complete_graph
-----------------------
(1 row)
-- SHOULD FAIL
SELECT * FROM create_complete_graph('gp3',5, NULL);
ERROR: edge label can not be NULL
SELECT * FROM create_complete_graph('gp4',NULL,NULL);
ERROR: number of nodes can not be NULL
SELECT * FROM create_complete_graph(NULL,NULL,NULL);
ERROR: graph name can not be NULL
-- Should error out because same labels are used for both vertices and edges
SELECT * FROM create_complete_graph('gp5',5,'label','label');
ERROR: vertex and edge label can not be same
-- DROPPING GRAPHS
SELECT drop_graph('gp1', true);
NOTICE: drop cascades to 4 other objects
DETAIL: drop cascades to table gp1._ag_label_vertex
drop cascades to table gp1._ag_label_edge
drop cascades to table gp1.vertices
drop cascades to table gp1.edges
NOTICE: graph "gp1" has been dropped
drop_graph
------------
(1 row)
SELECT drop_graph('gp2', true);
NOTICE: drop cascades to 3 other objects
DETAIL: drop cascades to table gp2._ag_label_vertex
drop cascades to table gp2._ag_label_edge
drop cascades to table gp2.edges
NOTICE: graph "gp2" has been dropped
drop_graph
------------
(1 row)
-- Tests for barbell graph generation
SELECT * FROM age_create_barbell_graph('gp1',5,0,'vertices',NULL,'edges',NULL);
NOTICE: graph "gp1" has been created
NOTICE: VLabel "vertices" has been created
NOTICE: ELabel "edges" has been created
age_create_barbell_graph
--------------------------
(1 row)
SELECT COUNT(*) FROM gp1."edges";
count
-------
21
(1 row)
SELECT COUNT(*) FROM gp1."vertices";
count
-------
10
(1 row)
SELECT * FROM cypher('gp1', $$MATCH (a)-[e]->(b) RETURN e$$) as (n agtype);
n
----------------------------------------------------------------------------------------------------------------------------
{"id": 1125899906842625, "label": "edges", "end_id": 844424930131970, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842629, "label": "edges", "end_id": 844424930131971, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842626, "label": "edges", "end_id": 844424930131971, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842627, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842632, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131971, "properties": {}}::edge
{"id": 1125899906842630, "label": "edges", "end_id": 844424930131972, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842634, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131972, "properties": {}}::edge
{"id": 1125899906842628, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131969, "properties": {}}::edge
{"id": 1125899906842631, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131970, "properties": {}}::edge
{"id": 1125899906842633, "label": "edges", "end_id": 844424930131973, "start_id": 844424930131971, "properties": {}}::edge
{"id": 1125899906842635, "label": "edges", "end_id": 844424930131975, "start_id": 844424930131974, "properties": {}}::edge
{"id": 1125899906842639, "label": "edges", "end_id": 844424930131976, "start_id": 844424930131975, "properties": {}}::edge
{"id": 1125899906842636, "label": "edges", "end_id": 844424930131976, "start_id": 844424930131974, "properties": {}}::edge
{"id": 1125899906842637, "label": "edges", "end_id": 844424930131977, "start_id": 844424930131974, "properties": {}}::edge
{"id": 1125899906842642, "label": "edges", "end_id": 844424930131977, "start_id": 844424930131976, "properties": {}}::edge
{"id": 1125899906842640, "label": "edges", "end_id": 844424930131977, "start_id": 844424930131975, "properties": {}}::edge
{"id": 1125899906842644, "label": "edges", "end_id": 844424930131978, "start_id": 844424930131977, "properties": {}}::edge
{"id": 1125899906842638, "label": "edges", "end_id": 844424930131978, "start_id": 844424930131974, "properties": {}}::edge
{"id": 1125899906842641, "label": "edges", "end_id": 844424930131978, "start_id": 844424930131975, "properties": {}}::edge
{"id": 1125899906842643, "label": "edges", "end_id": 844424930131978, "start_id": 844424930131976, "properties": {}}::edge
{"id": 1125899906842645, "label": "edges", "end_id": 844424930131978, "start_id": 844424930131969, "properties": {}}::edge
(21 rows)
SELECT * FROM age_create_barbell_graph('gp1',5,0,'vertices',NULL,'edges',NULL);
age_create_barbell_graph
--------------------------
(1 row)
SELECT COUNT(*) FROM gp1."edges";
count
-------
42
(1 row)
SELECT COUNT(*) FROM gp1."vertices";
count
-------
20
(1 row)
SELECT * FROM age_create_barbell_graph('gp2',5,10,'vertices',NULL,'edges',NULL);
NOTICE: graph "gp2" has been created
NOTICE: VLabel "vertices" has been created
NOTICE: ELabel "edges" has been created
age_create_barbell_graph
--------------------------
(1 row)
-- SHOULD FAIL
SELECT * FROM age_create_barbell_graph(NULL,NULL,NULL,NULL,NULL,NULL,NULL);
ERROR: Graph name cannot be NULL
SELECT * FROM age_create_barbell_graph('gp2',NULL,0,'vertices',NULL,'edges',NULL);
ERROR: Graph size cannot be NULL or lower than 3
SELECT * FROM age_create_barbell_graph('gp3',5,NULL,'vertices',NULL,'edges',NULL);
ERROR: Bridge size cannot be NULL or lower than 0
SELECT * FROM age_create_barbell_graph('gp4',NULL,0,'vertices',NULL,'edges',NULL);
ERROR: Graph size cannot be NULL or lower than 3
SELECT * FROM age_create_barbell_graph('gp5',5,0,'vertices',NULL,NULL,NULL);
ERROR: edge label can not be NULL
-- Should error out because same labels are used for both vertices and edges
SELECT * FROM age_create_barbell_graph('gp6',5,10,'label',NULL,'label',NULL);
ERROR: vertex and edge label can not be same
-- DROPPING GRAPHS
SELECT drop_graph('gp1', true);
NOTICE: drop cascades to 4 other objects
DETAIL: drop cascades to table gp1._ag_label_vertex
drop cascades to table gp1._ag_label_edge
drop cascades to table gp1.vertices
drop cascades to table gp1.edges
NOTICE: graph "gp1" has been dropped
drop_graph
------------
(1 row)
SELECT drop_graph('gp2', true);
NOTICE: drop cascades to 4 other objects
DETAIL: drop cascades to table gp2._ag_label_vertex
drop cascades to table gp2._ag_label_edge
drop cascades to table gp2.vertices
drop cascades to table gp2.edges
NOTICE: graph "gp2" has been dropped
drop_graph
------------
(1 row)