graphql-engine/server/tests-py/queries/graphql_query/boolexp/basic/setup.yaml
Vamshi Surabhi 47dcae1614
fix sql generation for boolean expressions, closes #853 (#1037)
When using self referential relationships in boolean expressions, the exists clause incorrectly uses the table names to qualify columns which will be the same for parent table and the child table. This is now fixed by generating unique aliases as we traverse down the relationships.
2018-11-16 18:10:23 +05:30

212 lines
3.7 KiB
YAML

type: bulk
args:
#Author table
- type: run_sql
args:
sql: |
create table author(
id serial primary key,
name text unique,
is_registered boolean not null default false
);
- type: track_table
args:
schema: public
name: author
#Article table
- type: run_sql
args:
sql: |
CREATE TABLE article (
id SERIAL PRIMARY KEY,
title TEXT,
content TEXT,
author_id INTEGER REFERENCES author(id),
is_published BOOLEAN,
published_on TIMESTAMP
)
- type: track_table
args:
schema: public
name: article
#Article table
- type: run_sql
args:
sql: |
CREATE TABLE city (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
country TEXT NOT NULL
)
- type: track_table
args:
schema: public
name: city
#Set timezone
- type: run_sql
args:
sql: |
SET TIME ZONE 'UTC';
#Article order
- type: run_sql
args:
sql: |
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
received_at TIMESTAMP WITH TIME ZONE NOT NULL,
delivered_at TIMESTAMP WITH TIME ZONE
)
- type: track_table
args:
schema: public
name: orders
#Object relationship
- type: create_object_relationship
args:
table: article
name: author
using:
foreign_key_constraint_on: author_id
#Array relationship
- type: create_array_relationship
args:
table: author
name: articles
using:
foreign_key_constraint_on:
table: article
column: author_id
#Message table
- type: run_sql
args:
sql: |
CREATE TABLE message (
id int PRIMARY KEY,
content TEXT NOT NULL,
parent_id INT NULL
);
alter table message
add constraint parent_fk foreign key (parent_id)
references message(id)
- type: track_table
args:
schema: public
name: message
# parent obj rel
- type: create_object_relationship
args:
table: message
name: parent
using:
foreign_key_constraint_on: parent_id
# children array rel
- type: create_array_relationship
args:
table: message
name: children
using:
foreign_key_constraint_on:
table: message
column: parent_id
#Insert messages
- type: insert
args:
table: message
objects:
- id: 1
content: "hello world"
parent_id: null
- id: 2
content: "content 2"
parent_id: 1
- id: 3
content: "content 3"
parent_id: 1
- id: 4
content: "ahoy"
parent_id: null
- id: 5
content: "content 5"
parent_id: 4
- id: 6
content: "hello there"
parent_id: 4
#Insert Authors
- type: insert
args:
table: author
objects:
- name: Author 1
is_registered: true
- name: Author 2
is_registered: true
- name: Author 3
is_registered: false
- type: run_sql
args:
sql: |
insert into article (title,content,author_id,is_published)
values
(
'Article 1',
'Sample article content 1',
1,
false
),
(
'Article 2',
'Sample article content 2',
1,
true
),
(
'Article 3',
'Sample article content 3',
2,
false
),
(
'Article 4',
'Sample article content 4',
3,
true
)
- type: insert
args:
table: city
objects:
- name: Durham
country: USA
- name: New York
country: USA
- name: Framlingham
country: UK
- name: New Orleans
country: USA
- type: insert
args:
table: orders
objects:
- received_at: '2018-09-21T09:39:44Z'
- received_at: '2018-09-21T09:40:44Z'
delivered_at: '2018-09-21T09:50:44Z'