/* * 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 TO ag_catalog; -- -- Start of tests -- SELECT * FROM create_graph('analyze'); NOTICE: graph "analyze" has been created create_graph -------------- (1 row) SELECT * FROM cypher('analyze', $$ CREATE (u) RETURN u $$) AS (result agtype); result ---------------------------------------------------------------- {"id": 281474976710657, "label": "", "properties": {}}::vertex (1 row) -- should error due to invalid input to cypher function SELECT * FROM cypher(NULL, NULL) AS (result agtype); ERROR: a name constant is expected LINE 1: SELECT * FROM cypher(NULL, NULL) AS (result agtype); ^ SELECT * FROM cypher('analyze', NULL) AS (result agtype); ERROR: a dollar-quoted string constant is expected LINE 1: SELECT * FROM cypher('analyze', NULL) AS (result agtype); ^ SELECT * FROM cypher(NULL, '') AS (result agtype); ERROR: a name constant is expected LINE 1: SELECT * FROM cypher(NULL, '') AS (result agtype); ^ SELECT * FROM cypher('', '') AS (result agtype); ERROR: a dollar-quoted string constant is expected LINE 1: SELECT * FROM cypher('', '') AS (result agtype); ^ SELECT * FROM cypher('analyze', '') AS (result agtype); ERROR: a dollar-quoted string constant is expected LINE 1: SELECT * FROM cypher('analyze', '') AS (result agtype); ^ -- should error due to bad cypher statement SELECT * FROM cypher('analyze', $$ $$) AS (result agtype); ERROR: syntax error at end of input LINE 1: SELECT * FROM cypher('analyze', $$ $$) AS (result agtype); ^ -- should return false due to invalid input to age_prepare_function SELECT * FROM age_prepare_cypher(NULL, NULL); age_prepare_cypher -------------------- f (1 row) SELECT * FROM age_prepare_cypher('analyze', NULL); age_prepare_cypher -------------------- f (1 row) SELECT * FROM age_prepare_cypher(NULL, ''); age_prepare_cypher -------------------- f (1 row) -- should return true but cypher should fail SELECT * FROM age_prepare_cypher('analyze', ''); age_prepare_cypher -------------------- t (1 row) SELECT * FROM cypher(NULL, NULL) AS (result agtype); ERROR: syntax error at end of input LINE 1: SELECT * FROM cypher(NULL, NULL) AS (result agtype); ^ -- should return true and execute cypher command SELECT * FROM age_prepare_cypher('analyze', 'MATCH (u) RETURN (u)'); age_prepare_cypher -------------------- t (1 row) SELECT * FROM cypher(NULL, NULL) AS (result agtype); result ---------------------------------------------------------------- {"id": 281474976710657, "label": "", "properties": {}}::vertex (1 row) -- should error due to invalid input to cypher function SELECT * FROM cypher(NULL, NULL) AS (result agtype); ERROR: a name constant is expected LINE 1: SELECT * FROM cypher(NULL, NULL) AS (result agtype); ^ -- should return true but cypher should fail SELECT * FROM age_prepare_cypher('analyze', '$$ $$'); age_prepare_cypher -------------------- t (1 row) SELECT * FROM cypher(NULL, NULL) AS (result agtype); ERROR: unexpected character at or near "$" LINE 1: SELECT * FROM cypher(NULL, NULL) AS (result agtype); ^ -- should return errors SELECT * FROM cypher() AS (result agtype); ERROR: cypher function requires a minimum of 2 arguments SELECT * FROM cypher(NULL) AS (result agtype); ERROR: cypher function requires a minimum of 2 arguments -- drop graphs SELECT * FROM drop_graph('analyze', true); NOTICE: drop cascades to 2 other objects DETAIL: drop cascades to table "analyze"._ag_label_vertex drop cascades to table "analyze"._ag_label_edge NOTICE: graph "analyze" has been dropped drop_graph ------------ (1 row) -- -- End of tests --