graphql-engine/server/tests-py/queries/graphql_query/boolexp/basic/setup.yaml
Alexis King 25c5f97de2 Fix new hdb_table_info_agg query to fetch column base types
We mostly want to do this to make queries against information_schema
tables work, which the console cares about. information_schema tables
use types like sql_identifier, which have no corresponding array types
defined! Therefore, in order to generate valid queries for _in and _nin
conditions, we need to treat them as their base types, instead.
2020-01-08 16:45:54 -06:00

289 lines
5.3 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'
- type: run_sql
args:
sql: |
CREATE TABLE "uuid_test" (
id serial primary key,
uuid_col UUID NOT NULL
)
- type: track_table
args:
name: uuid_test
schema: public
- type: insert
args:
table: uuid_test
objects:
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e5
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e6
- uuid_col: 28d6d683-1317-49f7-b1cf-7d195242e4e7
# Tables to test '_exist' field
- type: run_sql
args:
sql: |
create table "user" (
id serial primary key,
name text not null unique,
is_admin boolean default false
);
insert into "user" (name, is_admin)
values ('user_1', false), ('user_2', true)
;
create table account (
id serial primary key,
account_no integer not null unique
);
insert into account (account_no) values (1), (2) ;
- type: track_table
args:
name: user
schema: public
- type: track_table
args:
name: account
schema: public
- type: create_select_permission
args:
table: account
role: user
permission:
columns:
- id
- account_no
filter:
_exists:
_table: user
_where:
id: X-Hasura-User-Id
is_admin: true
- type: run_sql
args:
sql: |
CREATE TABLE table_with_sql_identifier
( id serial PRIMARY KEY
, sql_id information_schema.sql_identifier );
INSERT INTO table_with_sql_identifier (sql_id)
VALUES ('one'), ('one'), ('two'), ('three'), ('four'), ('one'), ('two');
- type: track_table
args: table_with_sql_identifier