mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-17 20:41:49 +03:00
459a7adbfb
While it looks like a lot of work in FromIr.hs, you can rather review the type changes in `Hasura.Backends.MySQL.Types.Internal` and the changes to FromIr are only to reflect that. Essentially we're simplifying the FromIr code to not think about SQL-based joins: instead, FromIr produces fields necessary for the dataloader Plan/Execute to do their job properly. I've done my best to ensure that all the hunks in the diff in this PR are minimal for slightly easier perusing. I think future PRs will be more intentionally well structured, rather than created retroactively. **Preceding PR:** #2549 **Next PR**: #2367 The tests have been run like this on my machine. I don't know more beyond that. ``` docker run -i -e "PYTEST_ADDOPTS=--color=yes" -e "TERM=xterm-256color" --net=host -v`pwd`:`pwd` -w`pwd`/server/tests-py chrisdone/hasura-pytest:b0f26f615 pytest --hge-urls="http://localhost:8080" --pg-urls="postgres://chinook:chinook@localhost:5432/chinook" --backend mysql -k MySQL ``` PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2608 Co-authored-by: Abby Sassel <3883855+sassela@users.noreply.github.com> GitOrigin-RevId: a6483335c3036963360dde7d7d7eaf10859351cb
95 lines
2.7 KiB
YAML
95 lines
2.7 KiB
YAML
# For MySQL, every statement ends with a `;\n` (that's a semicolon followed by
|
|
# a newline), and it cannot parse the next if a new statement follows after an
|
|
# indentation, like we normally write for other backends. So breaking apart the
|
|
# requests into individual statements turned out to be the ergonomic way to make
|
|
# this work.
|
|
#
|
|
# Also tried typical YAML multi-line (block) syntax in all combinations `|`,
|
|
# `>` with `+` and `-`, including specification of the indentation levels with
|
|
# numbers, without success.
|
|
#
|
|
# NOTE: For local development, if manual data seeding is ever necessary, we
|
|
# maintain a `mysql-ddl-dml.sql` that should always remain in sync with this
|
|
# file.
|
|
|
|
type: bulk
|
|
args:
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
DROP TABLE IF EXISTS article;
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
DROP TABLE IF EXISTS author;
|
|
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
CREATE TABLE author
|
|
(
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(45) UNIQUE KEY,
|
|
createdAt DATETIME
|
|
);
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
INSERT INTO author
|
|
(name, createdAt)
|
|
VALUES
|
|
( 'Author 1', '2017-09-21 09:39:44' ),
|
|
( 'Author 2', '2017-09-21 09:50:44' );
|
|
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
CREATE TABLE article (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
title TEXT,
|
|
content TEXT,
|
|
is_published BIT,
|
|
published_on TIMESTAMP,
|
|
author_id INT UNSIGNED,
|
|
co_author_id INT UNSIGNED,
|
|
FOREIGN KEY (author_id) REFERENCES author(id),
|
|
FOREIGN KEY (co_author_id) REFERENCES author(id)
|
|
);
|
|
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
INSERT INTO article
|
|
(title, content, author_id, is_published)
|
|
VALUES
|
|
( 'Article 1', 'Sample article content 1', 1, 0 ),
|
|
( 'Article 2', 'Sample article content 2', 1, 1 ),
|
|
( 'Article 3', 'Sample article content 3', 2, 1 );
|
|
|
|
|
|
# NOTE on dropping tables that have dependent views:
|
|
# ref: https://dev.mysql.com/doc/refman/5.7/en/view-restrictions.html
|
|
#
|
|
# You can use DROP TABLE or ALTER TABLE to drop or alter a table that is used
|
|
# in a view definition. No warning results from the DROP or ALTER operation,
|
|
# even though this invalidates the view. Instead, an error occurs later, when
|
|
# the view is used. CHECK TABLE can be used to check for views that have been
|
|
# invalidated by DROP or ALTER operations.
|
|
- type: mysql_run_sql
|
|
args:
|
|
source: mysql
|
|
sql: |
|
|
CREATE OR REPLACE VIEW search_author_view AS
|
|
SELECT * FROM author;
|