diff --git a/Cargo.lock b/Cargo.lock index 4bb77bedd..91a43f3dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2348,7 +2348,7 @@ dependencies = [ [[package]] name = "synalog" -version = "2.0.0" +version = "2.1.0" dependencies = [ "anyhow", "duckdb", diff --git a/Cargo.toml b/Cargo.toml index 7304faebf..5aa60b25f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "synalog" -version = "2.0.0" +version = "2.1.0" edition = "2024" description = "Logic programming for AI agents: Datalog-family language compiling to optimized SQL" license = "Apache-2.0" diff --git a/README.md b/README.md index ae0219199..dd5a06492 100644 --- a/README.md +++ b/README.md @@ -120,13 +120,13 @@ $ synalog program.l run EngineeringTeam - `--limit` / `--offset` paginate the result. - `--csv` (with `run`) prints results as CSV instead of the rendered table. - `--search REGEX` (with `print`/`run`) keeps only rows where some column matches the regular expression `REGEX`, e.g. `synalog program.l run Customers --search "(?i)acme"`. In the interactive session the same is `.search Customers (?i)acme`. -- `run` executes on `duckdb` (the default), `sqlite` (stdlib) or `psql` (with `--dsn` or `SYNALOG_PSQL_DSN`) out of the box: synalog depends on duckdb and on psycopg with its bundled libpq, on macOS and Linux alike. For other engines, install their driver (`pip install 'synalog[trino]'`, ...) or use `print` and run the SQL with your own client. +- `run` executes on `duckdb` (the default), `sqlite` (stdlib) or `psql` (in a [project](#projects-layertoml) connected to it) out of the box: synalog depends on duckdb and on psycopg with its bundled libpq, on macOS and Linux alike. For other engines, install their driver (`pip install 'synalog[trino]'`, ...) or use `print` and run the SQL with your own client. - `import path.to.file.Pred;` statements resolve `path/to/file.l` against the program file's directory, then the current directory; pass `--import-root DIR` (repeatable) to search elsewhere. - `--load TABLE=PATH` (repeatable) loads a csv/tsv/json/jsonl/parquet file as a table before running, e.g. `synalog senior.l run Senior --load employees=employees.csv`. -### Projects: `synalog.toml` +### Projects: `layer.toml` -A folder with a `synalog.toml` is a project. Its `[connection]` says which database its programs run on, as plain fields — commit it: +A folder with a `layer.toml` is a project. Its `[connection]` says which database its programs run on, as plain fields — commit it: ```toml [connection] @@ -138,7 +138,7 @@ user = "analyst" schema = "public" ``` -Secrets never go in the file (synalog refuses it): each comes from the environment as `SYNALOG__` — `SYNALOG_PSQL_PASSWORD`, `SYNALOG_DATABRICKS_ACCESS_TOKEN`, or `GOOGLE_APPLICATION_CREDENTIALS` for BigQuery — usually from the project's `.env`, kept out of git. Inside the project (from the program's folder or the current directory, and their parents), `run`, `print` and `verify` use that engine and connection, imports resolve from the project's folder, and `synalog introspect` writes the project's `tables/`, one file per table of the database; `--engine`, an `@Engine` annotation, `--dsn` and `SYNALOG__DSN` still take precedence. The fields of every engine are in `synalog.project.ENGINES`. +Secrets never go in the file (synalog refuses it): each comes from the environment as `SYNALOG__` — `SYNALOG_PSQL_PASSWORD`, `SYNALOG_DATABRICKS_ACCESS_TOKEN`, or `GOOGLE_APPLICATION_CREDENTIALS` for BigQuery — usually from the project's `.env`, kept out of git. Inside the project (from the program's folder or the current directory, and their parents), `run`, `print` and `verify` use that engine and connection, imports resolve from the project's folder, and `synalog introspect` writes the project's `tables/`, one file per table of the database. The project's file is the only place a connection comes from; `--engine` and an `@Engine` annotation choose the dialect, and a remote engine runs only through the project's connection to it. `synalog connect key=value ...` writes it — the non-secret fields to `layer.toml`, the secret ones to `.env` — `synalog connect` shows it (secrets hidden), `synalog connect clear` removes it. The fields of every engine are in `synalog.project.ENGINES`. Running `synalog` with no arguments starts an interactive session, in the spirit of `python` (the options above, e.g. `--engine` or `--load`, apply to it too): @@ -220,7 +220,7 @@ for name, sql in sqls.items(): print(name, sql) ``` -### `execute(source, predicate, engine=None, dsn=None, import_root=None, limit=None, offset=None, pattern=None, assertion=None, loads=()) -> tuple[list[str], list[tuple]]` +### `execute(source, predicate, engine=None, project=None, import_root=None, limit=None, offset=None, pattern=None, assertion=None, loads=()) -> tuple[list[str], list[tuple]]` Run a predicate on its database (the program's or project's engine and connection) and return `(columns, rows)`. Each recursion stops as soon as a step changes nothing, so it costs the steps its data needs, and `@Recursive(P, -1)` (until nothing changes) runs on every engine. `plan()` returns the same steps for a host that runs them itself. @@ -228,9 +228,9 @@ Run a predicate on its database (the program's or project's engine and connectio columns, rows = synalog.execute(source, "TopCustomers", limit=20) ``` -### `check(source, engine=None, import_root=None, assertions=True, dsn=None) -> tuple[list[str], list[str]]` +### `check(source, engine=None, import_root=None, assertions=True, project=None) -> tuple[list[str], list[str]]` -Run structural validation. Returns the error messages and the warning messages, as two lists. The program is valid when there is no error; warnings do not make it invalid. Inside a project whose `synalog.toml` has a `[connection]` (or given a `dsn`), it also runs the program's `@Assert` statements against the database and reports each violated one as an error; `assertions=False` keeps it offline. +Run structural validation. Returns the error messages and the warning messages, as two lists. The program is valid when there is no error; warnings do not make it invalid. Inside a project whose `layer.toml` has a `[connection]` — the current directory's, or the folder `project` names — it also runs the program's `@Assert` statements against the database and reports each violated one as an error; `assertions=False` keeps it offline. ```python errors, warnings = synalog.check(source) @@ -243,7 +243,7 @@ All of these functions accept an optional `engine` keyword that overrides the pr ## Language overview -A Synalog program is a **project**: a folder with a `synalog.toml`, holding one predicate per file in three folders, the layout of [semantic layers](https://github.com/SynaLinks/semantic-layers): +A Synalog program is a **project**: a folder with a `layer.toml`, holding one predicate per file in three folders, the layout of [semantic layers](https://github.com/SynaLinks/semantic-layers): ``` shop/ @@ -251,7 +251,7 @@ shop/ ├── concepts/Customer.l # entities and relationships extracted from tables ├── rules/CustomerRevenue.l # insights derived from concepts ├── rules/TopCustomers.l -└── synalog.toml # the project's name, description and database +└── layer.toml # the project's name, description and database ``` Each file is named after its predicate and opens with front matter (`name`, the predicate; `description`, what its rows are), then imports what it builds on by folder, file and predicate, then orders its predicate with `@OrderBy`. A database table is referenced by its lowercase database name in `tables/`, and everything else builds on the PascalCase predicate that maps it: diff --git a/docs/assertions.md b/docs/assertions.md index 5d4bd9325..f75159a16 100644 --- a/docs/assertions.md +++ b/docs/assertions.md @@ -143,7 +143,7 @@ An assertion is checked by looking for its counterexamples: Synalog compiles tha | `synalog program.l verify [Predicate ...]` | Runs every assertion, or those of the given predicates, and prints the counterexamples of each violated one (5 by default, `--limit` to change). Exits 1 if one is violated. | | `synalog program.l run Predicate` | Checks the program's assertions before it prints anything, and exits 1 with a few counterexamples if one is violated. | | `synalog program.l print Predicate` | Never touches the database: assertions are not run. | -| [`check()`](python-api.md#check) | Runs the assertions when a database is known: inside a project whose `synalog.toml` has a `[connection]`, or given a `dsn`. Each violated assertion is an error. `assertions=False` keeps it offline. | +| [`check()`](python-api.md#check) | Runs the assertions when a database is known: inside a project whose `layer.toml` has a `[connection]` (the current directory's, or the folder `project` names). Each violated assertion is an error. `assertions=False` keeps it offline. | ```text $ synalog family.l run Grandparent --load parents=parents.csv diff --git a/docs/cli.md b/docs/cli.md index 43455c53d..84ad156cf 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -55,13 +55,12 @@ $ synalog program.l run EngineeringTeam | Option | Meaning | | --- | --- | | `-c PROGRAM` | Pass the program text inline instead of `FILE`, like `python -c`. | -| `--engine ` | Target SQL dialect. Resolution order: this flag, then the program's `@Engine` annotation, then `duckdb`. | +| `--engine ` | Target SQL dialect. Resolution order: this flag, then the program's `@Engine` annotation, then the project's engine, then `duckdb`. | | `--limit N` / `--offset N` | Paginate the result. | | `--csv` | With `run`: print results as CSV instead of a rendered table. | | `--search REGEX` | With `print`/`run`: keep only rows where some column matches the regular expression `REGEX` (engine-native regex, not a SQL `LIKE` pattern). Applies to the filtered rows before pagination. | | `--import-root DIR` | Directory where `import` statements look up `.l` files (repeatable). | | `--load TABLE=PATH` | Load a csv/tsv/json/jsonl/parquet file as a table before running (repeatable). | -| `--dsn ` | PostgreSQL connection string for `--engine psql` (or set `SYNALOG_PSQL_DSN`). | Passing `-` as the file reads the program from stdin, and `-c` takes the program text directly, and both compose with the other options: @@ -79,7 +78,7 @@ With `-c` there is no `FILE` argument: the positionals are the command and its p - **duckdb**: the default engine, bundled with synalog; nothing extra to install. - **sqlite**: Python's stdlib driver; Logica's runtime UDFs (ArgMin/ArgMax, ARRAY_CONCAT, ...) are registered when the `logica` package is installed. -- **psql**: bundled with synalog (psycopg with its own libpq); needs a connection string. +- **psql**: bundled with synalog (psycopg with its own libpq); runs in a [project](#projects-layertoml) connected to PostgreSQL. The [`Today` and `Now`](language/temporal.md) built-in concepts need no runner support, since the compiler inlines them per dialect, so they work on every engine. @@ -100,7 +99,7 @@ duckdb and the PostgreSQL driver ship with synalog. For the other engines (`bigq ### Imports -In a project, `import ..;` statements resolve from the project's folder (the one holding `synalog.toml`), whichever file runs and wherever from: `import tables.Orders.Orders;` reads the project's `tables/Orders.l`. The program file's directory and the current directory come next. Pass `--import-root DIR` (repeatable) to search elsewhere; explicit roots replace the defaults. +In a project, `import ..;` statements resolve from the project's folder (the one holding `layer.toml`), whichever file runs and wherever from: `import tables.Orders.Orders;` reads the project's `tables/Orders.l`. The program file's directory and the current directory come next. Pass `--import-root DIR` (repeatable) to search elsewhere; explicit roots replace the defaults. In the [`shop` project](language/index.md), `rules/TopCustomers.l` builds on `rules/CustomerRevenue.l`: @@ -155,9 +154,9 @@ Compile error: No rules are defining 'Missing', but compilation was requested. A failing program never produces partial output: `run` either prints the table or the error. -## Projects: `synalog.toml` +## Projects: `layer.toml` -A Synalog program is a [project](language/index.md): a folder with a `synalog.toml`, its predicates in `tables/`, `concepts/` and `rules/`, one per file. The file names and describes the project, and its `[connection]` says which database it runs on, as plain fields — commit it: +A Synalog program is a [project](language/index.md): a folder with a `layer.toml`, its predicates in `tables/`, `concepts/` and `rules/`, one per file. The file names and describes the project, and its `[connection]` says which database it runs on, as plain fields — commit it: ```toml [project] @@ -173,7 +172,22 @@ user = "analyst" schema = "public" ``` -Secrets never go in the file (synalog refuses it): each comes from the environment as `SYNALOG__` — `SYNALOG_PSQL_PASSWORD`, `SYNALOG_DATABRICKS_ACCESS_TOKEN`, or `GOOGLE_APPLICATION_CREDENTIALS` for BigQuery — usually from the project's `.env`, kept out of git. Anywhere in the project, `run`, `print`, `verify` and `introspect` use that engine and connection, and [imports](#imports) resolve from the project's folder; `--engine`, an `@Engine` annotation, `--dsn` and `SYNALOG__DSN` still take precedence. The fields of every engine are in `synalog.project.ENGINES`. +Secrets never go in the file (synalog refuses it): each comes from the environment as `SYNALOG__` — `SYNALOG_PSQL_PASSWORD`, `SYNALOG_DATABRICKS_ACCESS_TOKEN`, or `GOOGLE_APPLICATION_CREDENTIALS` for BigQuery — usually from the project's `.env`, kept out of git. Anywhere in the project, `run`, `print`, `verify` and `introspect` use that engine and connection, and [imports](#imports) resolve from the project's folder. The project's file is the only place a connection comes from: `--engine` and an `@Engine` annotation choose the dialect, and a remote engine runs only through the project's connection to it. The fields of every engine are in `synalog.project.ENGINES`. + +### Connect + +```console +$ synalog connect psql host=db.example.com database=sales user=analyst password=... +Connected /path/to/sales/layer.toml to psql (secrets in .env) +$ synalog connect +/path/to/sales/layer.toml + engine = psql + host = db.example.com + ... + password: SYNALOG_PSQL_PASSWORD set +``` + +`synalog connect key=value ...` writes it — the non-secret fields to `layer.toml`, the secret ones to `.env` — `synalog connect` shows it (secrets hidden), `synalog connect clear` removes it. It runs in the project's folder — the nearest `layer.toml`'s, else the current directory — keeps the file's other tables, adds `.env` to `.gitignore`, and writes nothing when a required field is missing. ### Introspect @@ -193,7 +207,7 @@ description: Orders. PublicOrders(order_id:, customer_id:, amount:, status:) :- public.orders(order_id:, customer_id:, amount:, status:); ``` -Run it again when the schema changes: the declarations are regenerated, and a file's front matter (its description, keywords, ...) is kept as written. A table the database no longer has keeps its file, since concepts may import it, and is listed. Outside a project, `synalog introspect [dsn]` prints the declarations instead. PostgreSQL, Trino, Presto, Databricks and BigQuery can be introspected. +Run it again when the schema changes: the declarations are regenerated, and a file's front matter (its description, keywords, ...) is kept as written. A table the database no longer has keeps its file, since concepts may import it, and is listed. It needs a project connected to its database. PostgreSQL, Trino, Presto, Databricks and BigQuery can be introspected. ## Add the skill to your coding agent @@ -243,7 +257,7 @@ Bad(x) :- x == Greeting("hi"); ``` -The `--engine`, `--dsn`, `--import-root` and `--load` options also apply to the session: +The `--engine`, `--import-root` and `--load` options also apply to the session, and the project's connection too: ```bash synalog --engine sqlite --load employees=employees.csv diff --git a/docs/development.md b/docs/development.md index e54d59150..a7c781ef2 100644 --- a/docs/development.md +++ b/docs/development.md @@ -131,7 +131,7 @@ It deploys to GitHub Pages automatically on push via `.github/workflows/docs.yml ### Documentation examples -The example projects (`docs/examples/shop/`, `docs/examples/smoke/`) are laid out as every Synalog project is: `tables/`, `concepts/`, `rules/`, a `synalog.toml`, and their data in `data/.csv`. `run.py` loads the data into an in-memory DuckDB, checks every file, runs the predicate its front matter names, and writes the results to `.log`. +The example projects (`docs/examples/shop/`, `docs/examples/smoke/`) are laid out as every Synalog project is: `tables/`, `concepts/`, `rules/`, a `layer.toml`, and their data in `data/
.csv`. `run.py` loads the data into an in-memory DuckDB, checks every file, runs the predicate its front matter names, and writes the results to `.log`. The feature examples (aggregation, functors, recursion, ...) are single `.l` programs with their data as inline facts. For those, the `run.py` harness validates each program with `synalog.check()`, compiles every predicate listed in its `# run:` header, executes the SQL on an in-memory DuckDB, and writes the combined output to the matching `.log` file. A `# load: .csv as
` header loads a CSV from `docs/examples/` into a DuckDB table before the predicates run. The `Today`/`Now` built-in concepts need no special handling, since the compiler inlines them per dialect: diff --git a/docs/examples/axioms.log b/docs/examples/axioms.log index 28431b639..512655de4 100644 --- a/docs/examples/axioms.log +++ b/docs/examples/axioms.log @@ -57,7 +57,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_0_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( +t_0_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -67,20 +67,485 @@ t_0_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ) SELECT - AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri FROM - t_0_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 -GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri ORDER BY subject_uri; + t_0_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 +GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri; -- Interacting with table logica_home.AncestorOf_sn_delta -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_full; -CREATE TABLE logica_home.AncestorOf_sn_full AS SELECT +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t0; +CREATE TABLE logica_home.AncestorOf_sn_t0 AS SELECT AncestorOf_sn_delta.subject_uri AS subject_uri, AncestorOf_sn_delta.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta; + logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t0 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t1; +CREATE TABLE logica_home.AncestorOf_sn_t1 AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS subject_uri, + 'http://example.org/co#bob' AS object_uri + UNION ALL + + SELECT + 'http://example.org/co#bob' AS subject_uri, + 'http://example.org/co#carol' AS object_uri + +) AS UNUSED_TABLE_NAME ), +t_5_PersonRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS uri, + 'alice@acme.example' AS email, + 'Alice' AS name + UNION ALL + + SELECT + 'http://example.org/co#bob' AS uri, + null AS email, + 'Bob' AS name + UNION ALL + + SELECT + 'http://example.org/co#carol' AS uri, + null AS email, + 'Carol' AS name + +) AS UNUSED_TABLE_NAME ), +t_4_Person AS (SELECT + PersonRaw.uri AS uri, + PersonRaw.email AS email, + PersonRaw.name AS name +FROM + t_5_PersonRaw AS PersonRaw +GROUP BY PersonRaw.uri, PersonRaw.email, PersonRaw.name ORDER BY uri), +t_1_AncestorOfStep AS (SELECT + AncestorOfRaw.subject_uri AS subject_uri, + AncestorOfRaw.object_uri AS object_uri +FROM + t_3_AncestorOfRaw AS AncestorOfRaw, t_4_Person AS Person, t_4_Person AS t_2_Person +WHERE + (Person.uri = AncestorOfRaw.subject_uri) AND + (t_2_Person.uri = AncestorOfRaw.object_uri) +GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), +t_1_AncestorOf_MultBodyAggAux_f3 AS (SELECT * FROM ( + + SELECT + AncestorOfStep.subject_uri AS subject_uri, + AncestorOfStep.object_uri AS object_uri + FROM + t_1_AncestorOfStep AS AncestorOfStep + UNION ALL + + SELECT + AncestorOf_sn_t0.subject_uri AS subject_uri, + t_3_AncestorOfStep.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t0 AS AncestorOf_sn_t0, t_1_AncestorOfStep AS t_3_AncestorOfStep + WHERE + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_t0.object_uri) + +) AS UNUSED_TABLE_NAME ), +t_0_AncestorOf_sn_r1 AS (SELECT + AncestorOf_MultBodyAggAux_f3.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f3.object_uri AS object_uri +FROM + t_1_AncestorOf_MultBodyAggAux_f3 AS AncestorOf_MultBodyAggAux_f3 +GROUP BY AncestorOf_MultBodyAggAux_f3.subject_uri, AncestorOf_MultBodyAggAux_f3.object_uri) +SELECT + AncestorOf_sn_r1.subject_uri AS subject_uri, + AncestorOf_sn_r1.object_uri AS object_uri +FROM + t_0_AncestorOf_sn_r1 AS AncestorOf_sn_r1 +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t1 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t2; +CREATE TABLE logica_home.AncestorOf_sn_t2 AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS subject_uri, + 'http://example.org/co#bob' AS object_uri + UNION ALL + + SELECT + 'http://example.org/co#bob' AS subject_uri, + 'http://example.org/co#carol' AS object_uri + +) AS UNUSED_TABLE_NAME ), +t_5_PersonRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS uri, + 'alice@acme.example' AS email, + 'Alice' AS name + UNION ALL + + SELECT + 'http://example.org/co#bob' AS uri, + null AS email, + 'Bob' AS name + UNION ALL + + SELECT + 'http://example.org/co#carol' AS uri, + null AS email, + 'Carol' AS name + +) AS UNUSED_TABLE_NAME ), +t_4_Person AS (SELECT + PersonRaw.uri AS uri, + PersonRaw.email AS email, + PersonRaw.name AS name +FROM + t_5_PersonRaw AS PersonRaw +GROUP BY PersonRaw.uri, PersonRaw.email, PersonRaw.name ORDER BY uri), +t_1_AncestorOfStep AS (SELECT + AncestorOfRaw.subject_uri AS subject_uri, + AncestorOfRaw.object_uri AS object_uri +FROM + t_3_AncestorOfRaw AS AncestorOfRaw, t_4_Person AS Person, t_4_Person AS t_2_Person +WHERE + (Person.uri = AncestorOfRaw.subject_uri) AND + (t_2_Person.uri = AncestorOfRaw.object_uri) +GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), +t_1_AncestorOf_MultBodyAggAux_f4 AS (SELECT * FROM ( + + SELECT + AncestorOfStep.subject_uri AS subject_uri, + AncestorOfStep.object_uri AS object_uri + FROM + t_1_AncestorOfStep AS AncestorOfStep + UNION ALL + + SELECT + AncestorOf_sn_t1.subject_uri AS subject_uri, + t_3_AncestorOfStep.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t1 AS AncestorOf_sn_t1, t_1_AncestorOfStep AS t_3_AncestorOfStep + WHERE + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_t1.object_uri) + +) AS UNUSED_TABLE_NAME ), +t_0_AncestorOf_sn_r2 AS (SELECT + AncestorOf_MultBodyAggAux_f4.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f4.object_uri AS object_uri +FROM + t_1_AncestorOf_MultBodyAggAux_f4 AS AncestorOf_MultBodyAggAux_f4 +GROUP BY AncestorOf_MultBodyAggAux_f4.subject_uri, AncestorOf_MultBodyAggAux_f4.object_uri) +SELECT + AncestorOf_sn_r2.subject_uri AS subject_uri, + AncestorOf_sn_r2.object_uri AS object_uri +FROM + t_0_AncestorOf_sn_r2 AS AncestorOf_sn_r2 +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t2 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t3; +CREATE TABLE logica_home.AncestorOf_sn_t3 AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS subject_uri, + 'http://example.org/co#bob' AS object_uri + UNION ALL + + SELECT + 'http://example.org/co#bob' AS subject_uri, + 'http://example.org/co#carol' AS object_uri + +) AS UNUSED_TABLE_NAME ), +t_5_PersonRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS uri, + 'alice@acme.example' AS email, + 'Alice' AS name + UNION ALL + + SELECT + 'http://example.org/co#bob' AS uri, + null AS email, + 'Bob' AS name + UNION ALL + + SELECT + 'http://example.org/co#carol' AS uri, + null AS email, + 'Carol' AS name + +) AS UNUSED_TABLE_NAME ), +t_4_Person AS (SELECT + PersonRaw.uri AS uri, + PersonRaw.email AS email, + PersonRaw.name AS name +FROM + t_5_PersonRaw AS PersonRaw +GROUP BY PersonRaw.uri, PersonRaw.email, PersonRaw.name ORDER BY uri), +t_1_AncestorOfStep AS (SELECT + AncestorOfRaw.subject_uri AS subject_uri, + AncestorOfRaw.object_uri AS object_uri +FROM + t_3_AncestorOfRaw AS AncestorOfRaw, t_4_Person AS Person, t_4_Person AS t_2_Person +WHERE + (Person.uri = AncestorOfRaw.subject_uri) AND + (t_2_Person.uri = AncestorOfRaw.object_uri) +GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), +t_1_AncestorOf_MultBodyAggAux_f5 AS (SELECT * FROM ( + + SELECT + AncestorOfStep.subject_uri AS subject_uri, + AncestorOfStep.object_uri AS object_uri + FROM + t_1_AncestorOfStep AS AncestorOfStep + UNION ALL + + SELECT + AncestorOf_sn_t2.subject_uri AS subject_uri, + t_3_AncestorOfStep.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t2 AS AncestorOf_sn_t2, t_1_AncestorOfStep AS t_3_AncestorOfStep + WHERE + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_t2.object_uri) + +) AS UNUSED_TABLE_NAME ), +t_0_AncestorOf_sn_r3 AS (SELECT + AncestorOf_MultBodyAggAux_f5.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f5.object_uri AS object_uri +FROM + t_1_AncestorOf_MultBodyAggAux_f5 AS AncestorOf_MultBodyAggAux_f5 +GROUP BY AncestorOf_MultBodyAggAux_f5.subject_uri, AncestorOf_MultBodyAggAux_f5.object_uri) +SELECT + AncestorOf_sn_r3.subject_uri AS subject_uri, + AncestorOf_sn_r3.object_uri AS object_uri +FROM + t_0_AncestorOf_sn_r3 AS AncestorOf_sn_r3 +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t3 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t4; +CREATE TABLE logica_home.AncestorOf_sn_t4 AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS subject_uri, + 'http://example.org/co#bob' AS object_uri + UNION ALL + + SELECT + 'http://example.org/co#bob' AS subject_uri, + 'http://example.org/co#carol' AS object_uri + +) AS UNUSED_TABLE_NAME ), +t_5_PersonRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS uri, + 'alice@acme.example' AS email, + 'Alice' AS name + UNION ALL + + SELECT + 'http://example.org/co#bob' AS uri, + null AS email, + 'Bob' AS name + UNION ALL + + SELECT + 'http://example.org/co#carol' AS uri, + null AS email, + 'Carol' AS name + +) AS UNUSED_TABLE_NAME ), +t_4_Person AS (SELECT + PersonRaw.uri AS uri, + PersonRaw.email AS email, + PersonRaw.name AS name +FROM + t_5_PersonRaw AS PersonRaw +GROUP BY PersonRaw.uri, PersonRaw.email, PersonRaw.name ORDER BY uri), +t_1_AncestorOfStep AS (SELECT + AncestorOfRaw.subject_uri AS subject_uri, + AncestorOfRaw.object_uri AS object_uri +FROM + t_3_AncestorOfRaw AS AncestorOfRaw, t_4_Person AS Person, t_4_Person AS t_2_Person +WHERE + (Person.uri = AncestorOfRaw.subject_uri) AND + (t_2_Person.uri = AncestorOfRaw.object_uri) +GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), +t_1_AncestorOf_MultBodyAggAux_f6 AS (SELECT * FROM ( + + SELECT + AncestorOfStep.subject_uri AS subject_uri, + AncestorOfStep.object_uri AS object_uri + FROM + t_1_AncestorOfStep AS AncestorOfStep + UNION ALL + + SELECT + AncestorOf_sn_t3.subject_uri AS subject_uri, + t_3_AncestorOfStep.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t3 AS AncestorOf_sn_t3, t_1_AncestorOfStep AS t_3_AncestorOfStep + WHERE + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_t3.object_uri) + +) AS UNUSED_TABLE_NAME ), +t_0_AncestorOf_sn_r4 AS (SELECT + AncestorOf_MultBodyAggAux_f6.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f6.object_uri AS object_uri +FROM + t_1_AncestorOf_MultBodyAggAux_f6 AS AncestorOf_MultBodyAggAux_f6 +GROUP BY AncestorOf_MultBodyAggAux_f6.subject_uri, AncestorOf_MultBodyAggAux_f6.object_uri) +SELECT + AncestorOf_sn_r4.subject_uri AS subject_uri, + AncestorOf_sn_r4.object_uri AS object_uri +FROM + t_0_AncestorOf_sn_r4 AS AncestorOf_sn_r4 +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t4 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_t5; +CREATE TABLE logica_home.AncestorOf_sn_t5 AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS subject_uri, + 'http://example.org/co#bob' AS object_uri + UNION ALL + + SELECT + 'http://example.org/co#bob' AS subject_uri, + 'http://example.org/co#carol' AS object_uri + +) AS UNUSED_TABLE_NAME ), +t_5_PersonRaw AS (SELECT * FROM ( + + SELECT + 'http://example.org/co#alice' AS uri, + 'alice@acme.example' AS email, + 'Alice' AS name + UNION ALL + + SELECT + 'http://example.org/co#bob' AS uri, + null AS email, + 'Bob' AS name + UNION ALL + + SELECT + 'http://example.org/co#carol' AS uri, + null AS email, + 'Carol' AS name + +) AS UNUSED_TABLE_NAME ), +t_4_Person AS (SELECT + PersonRaw.uri AS uri, + PersonRaw.email AS email, + PersonRaw.name AS name +FROM + t_5_PersonRaw AS PersonRaw +GROUP BY PersonRaw.uri, PersonRaw.email, PersonRaw.name ORDER BY uri), +t_1_AncestorOfStep AS (SELECT + AncestorOfRaw.subject_uri AS subject_uri, + AncestorOfRaw.object_uri AS object_uri +FROM + t_3_AncestorOfRaw AS AncestorOfRaw, t_4_Person AS Person, t_4_Person AS t_2_Person +WHERE + (Person.uri = AncestorOfRaw.subject_uri) AND + (t_2_Person.uri = AncestorOfRaw.object_uri) +GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), +t_1_AncestorOf_MultBodyAggAux_f7 AS (SELECT * FROM ( + + SELECT + AncestorOfStep.subject_uri AS subject_uri, + AncestorOfStep.object_uri AS object_uri + FROM + t_1_AncestorOfStep AS AncestorOfStep + UNION ALL + + SELECT + AncestorOf_sn_t4.subject_uri AS subject_uri, + t_3_AncestorOfStep.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t4 AS AncestorOf_sn_t4, t_1_AncestorOfStep AS t_3_AncestorOfStep + WHERE + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_t4.object_uri) + +) AS UNUSED_TABLE_NAME ), +t_0_AncestorOf_sn_r5 AS (SELECT + AncestorOf_MultBodyAggAux_f7.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f7.object_uri AS object_uri +FROM + t_1_AncestorOf_MultBodyAggAux_f7 AS AncestorOf_MultBodyAggAux_f7 +GROUP BY AncestorOf_MultBodyAggAux_f7.subject_uri, AncestorOf_MultBodyAggAux_f7.object_uri) +SELECT + AncestorOf_sn_r5.subject_uri AS subject_uri, + AncestorOf_sn_r5.object_uri AS object_uri +FROM + t_0_AncestorOf_sn_r5 AS AncestorOf_sn_r5 +WHERE + (1 = 0); + +-- Interacting with table logica_home.AncestorOf_sn_t5 + +DROP TABLE IF EXISTS logica_home.AncestorOf_sn_full; +CREATE TABLE logica_home.AncestorOf_sn_full AS SELECT * FROM ( + + SELECT + AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_delta.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta + UNION ALL + + SELECT + AncestorOf_sn_t1.subject_uri AS subject_uri, + AncestorOf_sn_t1.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t1 AS AncestorOf_sn_t1 + UNION ALL + + SELECT + AncestorOf_sn_t2.subject_uri AS subject_uri, + AncestorOf_sn_t2.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t2 AS AncestorOf_sn_t2 + UNION ALL + + SELECT + AncestorOf_sn_t3.subject_uri AS subject_uri, + AncestorOf_sn_t3.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t3 AS AncestorOf_sn_t3 + UNION ALL + + SELECT + AncestorOf_sn_t4.subject_uri AS subject_uri, + AncestorOf_sn_t4.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t4 AS AncestorOf_sn_t4 + UNION ALL + + SELECT + AncestorOf_sn_t5.subject_uri AS subject_uri, + AncestorOf_sn_t5.object_uri AS object_uri + FROM + logica_home.AncestorOf_sn_t5 AS AncestorOf_sn_t5 + +) AS UNUSED_TABLE_NAME ; -- Interacting with table logica_home.AncestorOf_sn_full @@ -133,7 +598,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -152,11 +617,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -175,14 +640,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -230,7 +688,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -240,43 +698,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -327,7 +778,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -346,11 +797,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -369,14 +820,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -424,7 +868,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -434,43 +878,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -521,7 +958,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -540,11 +977,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -563,14 +1000,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -618,7 +1048,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -628,43 +1058,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -715,7 +1138,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -734,11 +1157,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -757,14 +1180,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -812,7 +1228,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -822,43 +1238,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -909,7 +1318,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -928,11 +1337,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -951,14 +1360,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1006,7 +1408,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1016,43 +1418,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -1103,7 +1498,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1122,11 +1517,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -1145,14 +1540,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1200,7 +1588,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1210,43 +1598,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -1297,7 +1678,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1316,11 +1697,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -1339,14 +1720,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1394,7 +1768,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1404,43 +1778,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -1491,7 +1858,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1510,11 +1877,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -1533,14 +1900,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1588,7 +1948,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1598,43 +1958,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -1685,7 +2038,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1704,11 +2057,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -1727,14 +2080,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1782,7 +2128,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1792,43 +2138,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -1879,7 +2218,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1898,11 +2237,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -1921,14 +2260,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -1976,7 +2308,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -1986,43 +2318,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT - MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value - FROM - logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 - WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value + FROM + logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 + WHERE + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -2073,7 +2398,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2092,11 +2417,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -2115,14 +2440,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -2170,7 +2488,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2180,43 +2498,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -2267,7 +2578,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2286,11 +2597,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -2309,14 +2620,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -2364,7 +2668,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2374,43 +2678,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -2461,7 +2758,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2480,11 +2777,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -2503,14 +2800,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -2558,7 +2848,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2568,43 +2858,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -2655,7 +2938,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2674,11 +2957,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -2697,14 +2980,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -2752,7 +3028,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2762,43 +3038,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -2849,7 +3118,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2868,11 +3137,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -2891,14 +3160,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -2946,7 +3208,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -2956,43 +3218,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -3043,7 +3298,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3062,11 +3317,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -3085,14 +3340,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -3140,7 +3388,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3150,43 +3398,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -3237,7 +3478,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3256,11 +3497,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -3279,14 +3520,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -3334,7 +3568,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3344,43 +3578,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -3431,7 +3658,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3450,11 +3677,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -3473,14 +3700,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -3528,7 +3748,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3538,43 +3758,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -3625,7 +3838,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3644,11 +3857,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -3667,14 +3880,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -3722,7 +3928,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3732,43 +3938,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -3819,7 +4018,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3838,11 +4037,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -3861,14 +4060,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -3916,7 +4108,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -3926,43 +4118,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM - logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 - WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 + WHERE + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4013,7 +4198,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4032,11 +4217,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -4055,14 +4240,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -4110,7 +4288,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4120,43 +4298,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4207,7 +4378,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4226,11 +4397,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -4249,14 +4420,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -4304,7 +4468,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4314,43 +4478,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4401,7 +4558,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4420,11 +4577,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -4443,14 +4600,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -4498,7 +4648,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4508,43 +4658,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4595,7 +4738,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4614,11 +4757,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -4637,14 +4780,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -4692,7 +4828,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4702,43 +4838,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4789,7 +4918,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4808,11 +4937,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -4831,14 +4960,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -4886,7 +5008,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -4896,43 +5018,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -4983,7 +5098,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5002,11 +5117,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5025,14 +5140,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -5080,7 +5188,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5090,43 +5198,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -5177,7 +5278,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5196,11 +5297,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5219,14 +5320,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -5274,7 +5368,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5284,43 +5378,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -5371,7 +5458,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5390,11 +5477,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5413,14 +5500,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -5468,7 +5548,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5478,43 +5558,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -5565,7 +5638,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5584,11 +5657,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5607,14 +5680,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -5662,7 +5728,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5672,43 +5738,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -5759,7 +5818,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5778,11 +5837,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5801,14 +5860,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -5856,7 +5908,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5866,43 +5918,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT - MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value - FROM - logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 - WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value + FROM + logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 + WHERE + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -5953,7 +5998,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -5972,11 +6017,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -5995,14 +6040,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -6050,7 +6088,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6060,43 +6098,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -6147,7 +6178,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6166,11 +6197,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -6189,14 +6220,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -6244,7 +6268,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6254,43 +6278,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -6341,7 +6358,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6360,11 +6377,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -6383,14 +6400,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -6438,7 +6448,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6448,43 +6458,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -6535,7 +6538,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6554,11 +6557,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -6577,14 +6580,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -6632,7 +6628,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6642,43 +6638,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -6729,7 +6718,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6748,11 +6737,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -6771,14 +6760,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -6826,7 +6808,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6836,43 +6818,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -6923,7 +6898,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -6942,11 +6917,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -6965,14 +6940,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7020,7 +6988,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7030,43 +6998,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -7117,7 +7078,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7136,11 +7097,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -7159,14 +7120,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7214,7 +7168,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7224,43 +7178,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -7311,7 +7258,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7330,11 +7277,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -7353,14 +7300,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7408,7 +7348,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7418,43 +7358,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -7505,7 +7438,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7524,11 +7457,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -7547,14 +7480,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7602,7 +7528,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7612,43 +7538,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -7699,7 +7618,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7718,11 +7637,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -7741,14 +7660,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7796,7 +7708,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7806,43 +7718,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM - logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 - WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 + WHERE + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -7893,7 +7798,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -7912,11 +7817,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -7935,14 +7840,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -7990,7 +7888,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8000,43 +7898,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -8087,7 +7978,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8106,11 +7997,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -8129,14 +8020,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -8184,7 +8068,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8194,43 +8078,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -8281,7 +8158,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8300,11 +8177,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -8323,14 +8200,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -8378,7 +8248,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8388,43 +8258,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -8475,7 +8338,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8494,11 +8357,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -8517,14 +8380,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -8572,7 +8428,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8582,43 +8438,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -8669,7 +8518,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8688,11 +8537,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -8711,14 +8560,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -8766,7 +8608,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8776,43 +8618,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -8863,7 +8698,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8882,11 +8717,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -8905,14 +8740,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -8960,7 +8788,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -8970,43 +8798,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -9057,7 +8878,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9076,11 +8897,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -9099,14 +8920,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -9154,7 +8968,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9164,43 +8978,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -9251,7 +9058,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9270,11 +9077,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -9293,14 +9100,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -9348,7 +9148,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9358,43 +9158,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -9445,7 +9238,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9464,11 +9257,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -9487,14 +9280,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -9542,7 +9328,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9552,43 +9338,36 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( @@ -9639,7 +9418,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f8 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9658,11 +9437,11 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ), t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri + AncestorOf_MultBodyAggAux_f8.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f8.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f8 AS AncestorOf_MultBodyAggAux_f8 +GROUP BY AncestorOf_MultBodyAggAux_f8.subject_uri, AncestorOf_MultBodyAggAux_f8.object_uri) SELECT AncestorOf_sn_step.subject_uri AS subject_uri, AncestorOf_sn_step.object_uri AS object_uri @@ -9681,14 +9460,7 @@ GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; - -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_new; -CREATE TABLE logica_home.AncestorOf_sn_new AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( +CREATE TABLE logica_home.AncestorOf_sn_delta AS WITH t_3_AncestorOfRaw AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS subject_uri, @@ -9736,7 +9508,7 @@ WHERE (Person.uri = AncestorOfRaw.subject_uri) AND (t_2_Person.uri = AncestorOfRaw.object_uri) GROUP BY AncestorOfRaw.subject_uri, AncestorOfRaw.object_uri ORDER BY subject_uri), -t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( +t_1_AncestorOf_MultBodyAggAux_f1 AS (SELECT * FROM ( SELECT AncestorOfStep.subject_uri AS subject_uri, @@ -9746,56 +9518,49 @@ t_1_AncestorOf_MultBodyAggAux_f2 AS (SELECT * FROM ( UNION ALL SELECT - AncestorOf_sn_delta.subject_uri AS subject_uri, + AncestorOf_sn_new.subject_uri AS subject_uri, t_3_AncestorOfStep.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_delta AS AncestorOf_sn_delta, t_1_AncestorOfStep AS t_3_AncestorOfStep + logica_home.AncestorOf_sn_new AS AncestorOf_sn_new, t_1_AncestorOfStep AS t_3_AncestorOfStep WHERE - (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_delta.object_uri) + (t_3_AncestorOfStep.subject_uri = AncestorOf_sn_new.object_uri) ) AS UNUSED_TABLE_NAME ), -t_0_AncestorOf_sn_step AS (SELECT - AncestorOf_MultBodyAggAux_f2.subject_uri AS subject_uri, - AncestorOf_MultBodyAggAux_f2.object_uri AS object_uri +t_0_AncestorOf_sn_back_step AS (SELECT + AncestorOf_MultBodyAggAux_f1.subject_uri AS subject_uri, + AncestorOf_MultBodyAggAux_f1.object_uri AS object_uri FROM - t_1_AncestorOf_MultBodyAggAux_f2 AS AncestorOf_MultBodyAggAux_f2 -GROUP BY AncestorOf_MultBodyAggAux_f2.subject_uri, AncestorOf_MultBodyAggAux_f2.object_uri ORDER BY subject_uri) + t_1_AncestorOf_MultBodyAggAux_f1 AS AncestorOf_MultBodyAggAux_f1 +GROUP BY AncestorOf_MultBodyAggAux_f1.subject_uri, AncestorOf_MultBodyAggAux_f1.object_uri) SELECT - AncestorOf_sn_step.subject_uri AS subject_uri, - AncestorOf_sn_step.object_uri AS object_uri + AncestorOf_sn_back_step.subject_uri AS subject_uri, + AncestorOf_sn_back_step.object_uri AS object_uri FROM - t_0_AncestorOf_sn_step AS AncestorOf_sn_step + t_0_AncestorOf_sn_back_step AS AncestorOf_sn_back_step WHERE ((SELECT MIN((CASE WHEN x_33.unnested_pod = 0 THEN 1 ELSE NULL END)) AS logica_value FROM logica_home.AncestorOf_sn_full AS AncestorOf_sn_full, (select unnest([0]) as unnested_pod) as x_33 WHERE - (AncestorOf_sn_full.subject_uri = AncestorOf_sn_step.subject_uri) AND - (AncestorOf_sn_full.object_uri = AncestorOf_sn_step.object_uri)) IS NULL) -GROUP BY AncestorOf_sn_step.subject_uri, AncestorOf_sn_step.object_uri; - -INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_new; + (AncestorOf_sn_full.subject_uri = AncestorOf_sn_back_step.subject_uri) AND + (AncestorOf_sn_full.object_uri = AncestorOf_sn_back_step.object_uri)) IS NULL) +GROUP BY AncestorOf_sn_back_step.subject_uri, AncestorOf_sn_back_step.object_uri; -DROP TABLE IF EXISTS logica_home.AncestorOf_sn_delta; -CREATE TABLE logica_home.AncestorOf_sn_delta AS SELECT - AncestorOf_sn_new.subject_uri AS subject_uri, - AncestorOf_sn_new.object_uri AS object_uri -FROM - logica_home.AncestorOf_sn_new AS AncestorOf_sn_new; +INSERT INTO logica_home.AncestorOf_sn_full SELECT * FROM logica_home.AncestorOf_sn_delta; SELECT AncestorOf_sn_full.subject_uri AS subject_uri, AncestorOf_sn_full.object_uri AS object_uri FROM - logica_home.AncestorOf_sn_full AS AncestorOf_sn_full; + logica_home.AncestorOf_sn_full AS AncestorOf_sn_full ORDER BY subject_uri; -- Executed on DuckDB: | subject_uri | object_uri | |-----------------------------|-----------------------------| | http://example.org/co#alice | http://example.org/co#bob | -| http://example.org/co#bob | http://example.org/co#carol | | http://example.org/co#alice | http://example.org/co#carol | +| http://example.org/co#bob | http://example.org/co#carol | (3 rows) $ synalog.compile('axioms.l', 'Knows') @@ -10267,7 +10032,7 @@ drop type if exists logicarecord893574736 cascade; create type logicarecord89357 create sequence if not exists eternal_logical_sequence; DROP TABLE IF EXISTS logica_home.SameAs_ifr0; -CREATE TABLE logica_home.SameAs_ifr0 AS WITH t_0_SameAs_MultBodyAggAux_f3 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr0 AS WITH t_0_SameAs_MultBodyAggAux_f9 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10280,16 +10045,16 @@ CREATE TABLE logica_home.SameAs_ifr0 AS WITH t_0_SameAs_MultBodyAggAux_f3 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f3.left_uri AS left_uri, - SameAs_MultBodyAggAux_f3.right_uri AS right_uri + SameAs_MultBodyAggAux_f9.left_uri AS left_uri, + SameAs_MultBodyAggAux_f9.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f3 AS SameAs_MultBodyAggAux_f3 -GROUP BY SameAs_MultBodyAggAux_f3.left_uri, SameAs_MultBodyAggAux_f3.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f9 AS SameAs_MultBodyAggAux_f9 +GROUP BY SameAs_MultBodyAggAux_f9.left_uri, SameAs_MultBodyAggAux_f9.right_uri; -- Interacting with table logica_home.SameAs_ifr0 DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f4 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f10 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10311,16 +10076,16 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f4 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f4.left_uri AS left_uri, - SameAs_MultBodyAggAux_f4.right_uri AS right_uri + SameAs_MultBodyAggAux_f10.left_uri AS left_uri, + SameAs_MultBodyAggAux_f10.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f4 AS SameAs_MultBodyAggAux_f4 -GROUP BY SameAs_MultBodyAggAux_f4.left_uri, SameAs_MultBodyAggAux_f4.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f10 AS SameAs_MultBodyAggAux_f10 +GROUP BY SameAs_MultBodyAggAux_f10.left_uri, SameAs_MultBodyAggAux_f10.right_uri; -- Interacting with table logica_home.SameAs_ifr1 DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10342,16 +10107,16 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; -- Interacting with table logica_home.SameAs_ifr2 DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10373,16 +10138,16 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; -- Interacting with table logica_home.SameAs_ifr1 DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10404,14 +10169,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10433,14 +10198,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10462,14 +10227,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10491,14 +10256,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10520,14 +10285,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10549,14 +10314,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10578,14 +10343,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10607,14 +10372,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10636,14 +10401,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10665,14 +10430,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10694,14 +10459,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10723,14 +10488,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10752,14 +10517,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10781,14 +10546,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10810,14 +10575,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10839,14 +10604,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10868,14 +10633,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10897,14 +10662,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10926,14 +10691,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10955,14 +10720,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -10984,14 +10749,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11013,14 +10778,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11042,14 +10807,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11071,14 +10836,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11100,14 +10865,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11129,14 +10894,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11158,14 +10923,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11187,14 +10952,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11216,14 +10981,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11245,14 +11010,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11274,14 +11039,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11303,14 +11068,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11332,14 +11097,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11361,14 +11126,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11390,14 +11155,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11419,14 +11184,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11448,14 +11213,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11477,14 +11242,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11506,14 +11271,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11535,14 +11300,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11564,14 +11329,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11593,14 +11358,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11622,14 +11387,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11651,14 +11416,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11680,14 +11445,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11709,14 +11474,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11738,14 +11503,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11767,14 +11532,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11796,14 +11561,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11825,14 +11590,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11854,14 +11619,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11883,14 +11648,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11912,14 +11677,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11941,14 +11706,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11970,14 +11735,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -11999,14 +11764,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12028,14 +11793,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12057,14 +11822,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12086,14 +11851,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12115,14 +11880,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12144,14 +11909,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12173,14 +11938,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12202,14 +11967,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12231,14 +11996,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12260,14 +12025,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12289,14 +12054,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12318,14 +12083,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12347,14 +12112,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12376,14 +12141,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12405,14 +12170,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12434,14 +12199,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12463,14 +12228,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12492,14 +12257,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12521,14 +12286,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12550,14 +12315,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12579,14 +12344,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12608,14 +12373,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12637,14 +12402,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12666,14 +12431,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12695,14 +12460,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12724,14 +12489,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12753,14 +12518,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12782,14 +12547,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12811,14 +12576,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12840,14 +12605,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12869,14 +12634,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12898,14 +12663,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12927,14 +12692,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12956,14 +12721,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -12985,14 +12750,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13014,14 +12779,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13043,14 +12808,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13072,14 +12837,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13101,14 +12866,14 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr2; -CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f11 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13130,14 +12895,14 @@ CREATE TABLE logica_home.SameAs_ifr2 AS WITH t_0_SameAs_MultBodyAggAux_f5 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f5.left_uri AS left_uri, - SameAs_MultBodyAggAux_f5.right_uri AS right_uri + SameAs_MultBodyAggAux_f11.left_uri AS left_uri, + SameAs_MultBodyAggAux_f11.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f5 AS SameAs_MultBodyAggAux_f5 -GROUP BY SameAs_MultBodyAggAux_f5.left_uri, SameAs_MultBodyAggAux_f5.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f11 AS SameAs_MultBodyAggAux_f11 +GROUP BY SameAs_MultBodyAggAux_f11.left_uri, SameAs_MultBodyAggAux_f11.right_uri; DROP TABLE IF EXISTS logica_home.SameAs_ifr1; -CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SELECT * FROM ( +CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f12 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13159,13 +12924,13 @@ CREATE TABLE logica_home.SameAs_ifr1 AS WITH t_0_SameAs_MultBodyAggAux_f6 AS (SE ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f6.left_uri AS left_uri, - SameAs_MultBodyAggAux_f6.right_uri AS right_uri + SameAs_MultBodyAggAux_f12.left_uri AS left_uri, + SameAs_MultBodyAggAux_f12.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f6 AS SameAs_MultBodyAggAux_f6 -GROUP BY SameAs_MultBodyAggAux_f6.left_uri, SameAs_MultBodyAggAux_f6.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f12 AS SameAs_MultBodyAggAux_f12 +GROUP BY SameAs_MultBodyAggAux_f12.left_uri, SameAs_MultBodyAggAux_f12.right_uri; -WITH t_0_SameAs_MultBodyAggAux_f7 AS (SELECT * FROM ( +WITH t_0_SameAs_MultBodyAggAux_f13 AS (SELECT * FROM ( SELECT 'http://example.org/co#alice' AS left_uri, @@ -13187,11 +12952,11 @@ WITH t_0_SameAs_MultBodyAggAux_f7 AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ) SELECT - SameAs_MultBodyAggAux_f7.left_uri AS left_uri, - SameAs_MultBodyAggAux_f7.right_uri AS right_uri + SameAs_MultBodyAggAux_f13.left_uri AS left_uri, + SameAs_MultBodyAggAux_f13.right_uri AS right_uri FROM - t_0_SameAs_MultBodyAggAux_f7 AS SameAs_MultBodyAggAux_f7 -GROUP BY SameAs_MultBodyAggAux_f7.left_uri, SameAs_MultBodyAggAux_f7.right_uri ORDER BY left_uri; + t_0_SameAs_MultBodyAggAux_f13 AS SameAs_MultBodyAggAux_f13 +GROUP BY SameAs_MultBodyAggAux_f13.left_uri, SameAs_MultBodyAggAux_f13.right_uri ORDER BY left_uri; -- Executed on DuckDB: | left_uri | right_uri | diff --git a/docs/examples/functions.log b/docs/examples/functions.log index 885519c3a..880ad242c 100644 --- a/docs/examples/functions.log +++ b/docs/examples/functions.log @@ -8,31 +8,31 @@ create schema if not exists logica_home; drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric); create sequence if not exists eternal_logical_sequence; -WITH t_0_Products AS (SELECT * FROM ( +WITH t_1_Products AS (SELECT * FROM ( SELECT 'espresso machine' AS name, - 249.99 AS price + 249.99E0 AS price UNION ALL SELECT 'grinder' AS name, - 79.5 AS price + 79.5E0 AS price ) AS UNUSED_TABLE_NAME ) SELECT Products.name AS name, - ((((((UPPER(Products.name)) || (' ($'))) || (CAST(Products.price AS TEXT)))) || (')')) AS label, + ((((((UPPER(Products.name)) || (' ($'))) || (list_transform([Products.price], synalog_v -> (CASE WHEN synalog_v IS NULL THEN NULL WHEN ABS(synalog_v) < 0.0000000000000005 THEN '0' WHEN synalog_v = FLOOR(synalog_v) AND ABS(synalog_v) < 1e18 THEN CAST(CAST(synalog_v AS BIGINT) AS VARCHAR) WHEN ABS(synalog_v) >= 1e38 THEN CAST(synalog_v AS VARCHAR) WHEN ABS(synalog_v) < 1 THEN TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(CAST(ROUND(CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,35)), 15) AS DECIMAL(38,35)) AS VARCHAR))) WHEN ABS(synalog_v) < 1e18 THEN list_transform([CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,20))], synalog_t -> TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(CASE LENGTH(CAST(CAST(FLOOR(ABS(synalog_t)) AS BIGINT) AS VARCHAR)) WHEN 1 THEN CAST(ROUND(synalog_t, 14) AS DECIMAL(38,20)) WHEN 2 THEN CAST(ROUND(synalog_t, 13) AS DECIMAL(38,20)) WHEN 3 THEN CAST(ROUND(synalog_t, 12) AS DECIMAL(38,20)) WHEN 4 THEN CAST(ROUND(synalog_t, 11) AS DECIMAL(38,20)) WHEN 5 THEN CAST(ROUND(synalog_t, 10) AS DECIMAL(38,20)) WHEN 6 THEN CAST(ROUND(synalog_t, 9) AS DECIMAL(38,20)) WHEN 7 THEN CAST(ROUND(synalog_t, 8) AS DECIMAL(38,20)) WHEN 8 THEN CAST(ROUND(synalog_t, 7) AS DECIMAL(38,20)) WHEN 9 THEN CAST(ROUND(synalog_t, 6) AS DECIMAL(38,20)) WHEN 10 THEN CAST(ROUND(synalog_t, 5) AS DECIMAL(38,20)) WHEN 11 THEN CAST(ROUND(synalog_t, 4) AS DECIMAL(38,20)) WHEN 12 THEN CAST(ROUND(synalog_t, 3) AS DECIMAL(38,20)) WHEN 13 THEN CAST(ROUND(synalog_t, 2) AS DECIMAL(38,20)) WHEN 14 THEN CAST(ROUND(synalog_t, 1) AS DECIMAL(38,20)) WHEN 15 THEN CAST(ROUND(synalog_t, 0) AS DECIMAL(38,20)) WHEN 16 THEN CAST(ROUND(synalog_t, -1) AS DECIMAL(38,20)) WHEN 17 THEN CAST(ROUND(synalog_t, -2) AS DECIMAL(38,20)) WHEN 18 THEN CAST(ROUND(synalog_t, -3) AS DECIMAL(38,20)) END AS VARCHAR))))[1] ELSE list_transform([CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,0))], synalog_t -> CAST(CASE LENGTH(CAST(ABS(synalog_t) AS VARCHAR)) WHEN 19 THEN CAST(ROUND(synalog_t, -4) AS DECIMAL(38,0)) WHEN 20 THEN CAST(ROUND(synalog_t, -5) AS DECIMAL(38,0)) WHEN 21 THEN CAST(ROUND(synalog_t, -6) AS DECIMAL(38,0)) WHEN 22 THEN CAST(ROUND(synalog_t, -7) AS DECIMAL(38,0)) WHEN 23 THEN CAST(ROUND(synalog_t, -8) AS DECIMAL(38,0)) WHEN 24 THEN CAST(ROUND(synalog_t, -9) AS DECIMAL(38,0)) WHEN 25 THEN CAST(ROUND(synalog_t, -10) AS DECIMAL(38,0)) WHEN 26 THEN CAST(ROUND(synalog_t, -11) AS DECIMAL(38,0)) WHEN 27 THEN CAST(ROUND(synalog_t, -12) AS DECIMAL(38,0)) WHEN 28 THEN CAST(ROUND(synalog_t, -13) AS DECIMAL(38,0)) WHEN 29 THEN CAST(ROUND(synalog_t, -14) AS DECIMAL(38,0)) WHEN 30 THEN CAST(ROUND(synalog_t, -15) AS DECIMAL(38,0)) WHEN 31 THEN CAST(ROUND(synalog_t, -16) AS DECIMAL(38,0)) WHEN 32 THEN CAST(ROUND(synalog_t, -17) AS DECIMAL(38,0)) WHEN 33 THEN CAST(ROUND(synalog_t, -18) AS DECIMAL(38,0)) WHEN 34 THEN CAST(ROUND(synalog_t, -19) AS DECIMAL(38,0)) WHEN 35 THEN CAST(ROUND(synalog_t, -20) AS DECIMAL(38,0)) WHEN 36 THEN CAST(ROUND(synalog_t, -21) AS DECIMAL(38,0)) WHEN 37 THEN CAST(ROUND(synalog_t, -22) AS DECIMAL(38,0)) WHEN 38 THEN CAST(ROUND(synalog_t, -23) AS DECIMAL(38,0)) END AS VARCHAR))[1] END))[1]))) || (')')) AS label, UPPER(SUBSTR(Products.name, 1, 1)) AS initial, LENGTH(Products.name) AS name_length FROM - t_0_Products AS Products ORDER BY name; + t_1_Products AS Products ORDER BY name; -- Executed on DuckDB: | name | label | initial | name_length | |------------------|----------------------------|---------|-------------| | espresso machine | ESPRESSO MACHINE ($249.99) | E | 16 | -| grinder | GRINDER ($79.50) | G | 7 | +| grinder | GRINDER ($79.5) | G | 7 | (2 rows) $ synalog.compile('functions.l', 'Rounded') @@ -46,12 +46,12 @@ WITH t_0_Products AS (SELECT * FROM ( SELECT 'espresso machine' AS name, - 249.99 AS price + 249.99E0 AS price UNION ALL SELECT 'grinder' AS name, - 79.5 AS price + 79.5E0 AS price ) AS UNUSED_TABLE_NAME ) SELECT @@ -65,8 +65,8 @@ FROM -- Executed on DuckDB: | name | rounded | floor | sqrt | |------------------|---------|-------|------| -| espresso machine | 250 | 249 | 16.0 | -| grinder | 80 | 79 | 9.0 | +| espresso machine | 250.0 | 249.0 | 16.0 | +| grinder | 80.0 | 79.0 | 9.0 | (2 rows) $ synalog.compile('functions.l', 'Casts') @@ -80,18 +80,18 @@ WITH t_0_Products AS (SELECT * FROM ( SELECT 'espresso machine' AS name, - 249.99 AS price + 249.99E0 AS price UNION ALL SELECT 'grinder' AS name, - 79.5 AS price + 79.5E0 AS price ) AS UNUSED_TABLE_NAME ) SELECT Products.name AS name, - CAST(((Products.price) * (100)) AS INT64) AS cents, - CAST(Products.price AS TEXT) AS as_text + CAST(ROUND(((Products.price) * (100))) AS BIGINT) AS cents, + list_transform([Products.price], synalog_v -> (CASE WHEN synalog_v IS NULL THEN NULL WHEN ABS(synalog_v) < 0.0000000000000005 THEN '0' WHEN synalog_v = FLOOR(synalog_v) AND ABS(synalog_v) < 1e18 THEN CAST(CAST(synalog_v AS BIGINT) AS VARCHAR) WHEN ABS(synalog_v) >= 1e38 THEN CAST(synalog_v AS VARCHAR) WHEN ABS(synalog_v) < 1 THEN TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(CAST(ROUND(CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,35)), 15) AS DECIMAL(38,35)) AS VARCHAR))) WHEN ABS(synalog_v) < 1e18 THEN list_transform([CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,20))], synalog_t -> TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(CASE LENGTH(CAST(CAST(FLOOR(ABS(synalog_t)) AS BIGINT) AS VARCHAR)) WHEN 1 THEN CAST(ROUND(synalog_t, 14) AS DECIMAL(38,20)) WHEN 2 THEN CAST(ROUND(synalog_t, 13) AS DECIMAL(38,20)) WHEN 3 THEN CAST(ROUND(synalog_t, 12) AS DECIMAL(38,20)) WHEN 4 THEN CAST(ROUND(synalog_t, 11) AS DECIMAL(38,20)) WHEN 5 THEN CAST(ROUND(synalog_t, 10) AS DECIMAL(38,20)) WHEN 6 THEN CAST(ROUND(synalog_t, 9) AS DECIMAL(38,20)) WHEN 7 THEN CAST(ROUND(synalog_t, 8) AS DECIMAL(38,20)) WHEN 8 THEN CAST(ROUND(synalog_t, 7) AS DECIMAL(38,20)) WHEN 9 THEN CAST(ROUND(synalog_t, 6) AS DECIMAL(38,20)) WHEN 10 THEN CAST(ROUND(synalog_t, 5) AS DECIMAL(38,20)) WHEN 11 THEN CAST(ROUND(synalog_t, 4) AS DECIMAL(38,20)) WHEN 12 THEN CAST(ROUND(synalog_t, 3) AS DECIMAL(38,20)) WHEN 13 THEN CAST(ROUND(synalog_t, 2) AS DECIMAL(38,20)) WHEN 14 THEN CAST(ROUND(synalog_t, 1) AS DECIMAL(38,20)) WHEN 15 THEN CAST(ROUND(synalog_t, 0) AS DECIMAL(38,20)) WHEN 16 THEN CAST(ROUND(synalog_t, -1) AS DECIMAL(38,20)) WHEN 17 THEN CAST(ROUND(synalog_t, -2) AS DECIMAL(38,20)) WHEN 18 THEN CAST(ROUND(synalog_t, -3) AS DECIMAL(38,20)) END AS VARCHAR))))[1] ELSE list_transform([CAST(CAST(synalog_v AS VARCHAR) AS DECIMAL(38,0))], synalog_t -> CAST(CASE LENGTH(CAST(ABS(synalog_t) AS VARCHAR)) WHEN 19 THEN CAST(ROUND(synalog_t, -4) AS DECIMAL(38,0)) WHEN 20 THEN CAST(ROUND(synalog_t, -5) AS DECIMAL(38,0)) WHEN 21 THEN CAST(ROUND(synalog_t, -6) AS DECIMAL(38,0)) WHEN 22 THEN CAST(ROUND(synalog_t, -7) AS DECIMAL(38,0)) WHEN 23 THEN CAST(ROUND(synalog_t, -8) AS DECIMAL(38,0)) WHEN 24 THEN CAST(ROUND(synalog_t, -9) AS DECIMAL(38,0)) WHEN 25 THEN CAST(ROUND(synalog_t, -10) AS DECIMAL(38,0)) WHEN 26 THEN CAST(ROUND(synalog_t, -11) AS DECIMAL(38,0)) WHEN 27 THEN CAST(ROUND(synalog_t, -12) AS DECIMAL(38,0)) WHEN 28 THEN CAST(ROUND(synalog_t, -13) AS DECIMAL(38,0)) WHEN 29 THEN CAST(ROUND(synalog_t, -14) AS DECIMAL(38,0)) WHEN 30 THEN CAST(ROUND(synalog_t, -15) AS DECIMAL(38,0)) WHEN 31 THEN CAST(ROUND(synalog_t, -16) AS DECIMAL(38,0)) WHEN 32 THEN CAST(ROUND(synalog_t, -17) AS DECIMAL(38,0)) WHEN 33 THEN CAST(ROUND(synalog_t, -18) AS DECIMAL(38,0)) WHEN 34 THEN CAST(ROUND(synalog_t, -19) AS DECIMAL(38,0)) WHEN 35 THEN CAST(ROUND(synalog_t, -20) AS DECIMAL(38,0)) WHEN 36 THEN CAST(ROUND(synalog_t, -21) AS DECIMAL(38,0)) WHEN 37 THEN CAST(ROUND(synalog_t, -22) AS DECIMAL(38,0)) WHEN 38 THEN CAST(ROUND(synalog_t, -23) AS DECIMAL(38,0)) END AS VARCHAR))[1] END))[1] AS as_text FROM t_0_Products AS Products ORDER BY name; @@ -99,5 +99,5 @@ FROM | name | cents | as_text | |------------------|-------|---------| | espresso machine | 24999 | 249.99 | -| grinder | 7950 | 79.50 | +| grinder | 7950 | 79.5 | (2 rows) diff --git a/docs/examples/recursion.log b/docs/examples/recursion.log index e20872adf..6c22c66f4 100644 --- a/docs/examples/recursion.log +++ b/docs/examples/recursion.log @@ -40,7 +40,7 @@ t_38_AllManagers_r0 AS (SELECT * FROM ( WHERE (t_40_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_36_AllManagers_r1 AS (SELECT * FROM ( SELECT @@ -61,7 +61,7 @@ t_36_AllManagers_r1 AS (SELECT * FROM ( WHERE (t_42_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_34_AllManagers_r2 AS (SELECT * FROM ( SELECT @@ -82,7 +82,7 @@ t_34_AllManagers_r2 AS (SELECT * FROM ( WHERE (t_43_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_32_AllManagers_r3 AS (SELECT * FROM ( SELECT @@ -103,7 +103,7 @@ t_32_AllManagers_r3 AS (SELECT * FROM ( WHERE (t_44_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_30_AllManagers_r4 AS (SELECT * FROM ( SELECT @@ -124,7 +124,7 @@ t_30_AllManagers_r4 AS (SELECT * FROM ( WHERE (t_45_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_28_AllManagers_r5 AS (SELECT * FROM ( SELECT @@ -145,7 +145,7 @@ t_28_AllManagers_r5 AS (SELECT * FROM ( WHERE (t_46_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_26_AllManagers_r6 AS (SELECT * FROM ( SELECT @@ -166,7 +166,7 @@ t_26_AllManagers_r6 AS (SELECT * FROM ( WHERE (t_47_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_24_AllManagers_r7 AS (SELECT * FROM ( SELECT @@ -187,7 +187,7 @@ t_24_AllManagers_r7 AS (SELECT * FROM ( WHERE (t_48_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_22_AllManagers_r8 AS (SELECT * FROM ( SELECT @@ -208,7 +208,7 @@ t_22_AllManagers_r8 AS (SELECT * FROM ( WHERE (t_49_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_20_AllManagers_r9 AS (SELECT * FROM ( SELECT @@ -229,7 +229,7 @@ t_20_AllManagers_r9 AS (SELECT * FROM ( WHERE (t_50_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_18_AllManagers_r10 AS (SELECT * FROM ( SELECT @@ -250,7 +250,7 @@ t_18_AllManagers_r10 AS (SELECT * FROM ( WHERE (t_51_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_16_AllManagers_r11 AS (SELECT * FROM ( SELECT @@ -271,7 +271,7 @@ t_16_AllManagers_r11 AS (SELECT * FROM ( WHERE (t_52_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_14_AllManagers_r12 AS (SELECT * FROM ( SELECT @@ -292,7 +292,7 @@ t_14_AllManagers_r12 AS (SELECT * FROM ( WHERE (t_53_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_12_AllManagers_r13 AS (SELECT * FROM ( SELECT @@ -313,7 +313,7 @@ t_12_AllManagers_r13 AS (SELECT * FROM ( WHERE (t_54_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_10_AllManagers_r14 AS (SELECT * FROM ( SELECT @@ -334,7 +334,7 @@ t_10_AllManagers_r14 AS (SELECT * FROM ( WHERE (t_55_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_8_AllManagers_r15 AS (SELECT * FROM ( SELECT @@ -355,7 +355,7 @@ t_8_AllManagers_r15 AS (SELECT * FROM ( WHERE (t_56_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_6_AllManagers_r16 AS (SELECT * FROM ( SELECT @@ -376,7 +376,7 @@ t_6_AllManagers_r16 AS (SELECT * FROM ( WHERE (t_57_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_4_AllManagers_r17 AS (SELECT * FROM ( SELECT @@ -397,7 +397,7 @@ t_4_AllManagers_r17 AS (SELECT * FROM ( WHERE (t_58_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_2_AllManagers_r18 AS (SELECT * FROM ( SELECT @@ -418,7 +418,7 @@ t_2_AllManagers_r18 AS (SELECT * FROM ( WHERE (t_59_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ), +) AS UNUSED_TABLE_NAME ), t_0_AllManagers_r19 AS (SELECT * FROM ( SELECT @@ -439,7 +439,7 @@ t_0_AllManagers_r19 AS (SELECT * FROM ( WHERE (t_60_Employees.manager_id IS NOT null) -) AS UNUSED_TABLE_NAME ORDER BY employee_id, manager_id ) +) AS UNUSED_TABLE_NAME ) SELECT * FROM ( SELECT diff --git a/docs/examples/run.py b/docs/examples/run.py index 246a12185..6b53d13ec 100644 --- a/docs/examples/run.py +++ b/docs/examples/run.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Run every documentation example and capture its output. -Each folder holding a ``synalog.toml`` is a project, laid out as every +Each folder holding a ``layer.toml`` is a project, laid out as every Synalog project is: ``tables/``, ``concepts/`` and ``rules/``, one predicate per file named in its front matter, and its data in ``data/
.csv``. Every file is checked, then its predicate runs on an in-memory DuckDB holding the data; @@ -144,7 +144,7 @@ def main() -> int: p for p in HERE.glob("*.l") if not names or p.stem in names ) projects = sorted( - p.parent for p in HERE.glob("*/synalog.toml") if not names or p.parent.name in names + p.parent for p in HERE.glob("*/layer.toml") if not names or p.parent.name in names ) if not files and not projects: print("no examples found", file=sys.stderr) diff --git a/docs/examples/shop/synalog.toml b/docs/examples/shop/layer.toml similarity index 100% rename from docs/examples/shop/synalog.toml rename to docs/examples/shop/layer.toml diff --git a/docs/examples/smoke/synalog.toml b/docs/examples/smoke/layer.toml similarity index 100% rename from docs/examples/smoke/synalog.toml rename to docs/examples/smoke/layer.toml diff --git a/docs/examples/syntax.log b/docs/examples/syntax.log index e5af26e9e..e91e4b788 100644 --- a/docs/examples/syntax.log +++ b/docs/examples/syntax.log @@ -30,16 +30,16 @@ WITH t_0_Orders AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ) SELECT Orders.order_id AS order_id, - ((Orders.amount) * (1.10)) AS total + ((Orders.amount) * (1.10E0)) AS total FROM t_0_Orders AS Orders ORDER BY order_id; -- Executed on DuckDB: -| order_id | total | -|----------|---------| -| 10 | 1650.00 | -| 11 | 264.00 | -| 12 | 44.00 | +| order_id | total | +|----------|--------------------| +| 10 | 1650.0000000000002 | +| 11 | 264.0 | +| 12 | 44.0 | (3 rows) $ synalog.compile('syntax.l', 'ContactableCustomer') @@ -104,8 +104,8 @@ GROUP BY ContactableCustomer_MultBodyAggAux.customer_id, ContactableCustomer_Mul |-------------|---------| | 1 | email | | 2 | phone | -| 3 | phone | | 3 | email | +| 3 | phone | (4 rows) $ synalog.compile('syntax.l', 'Inactive') diff --git a/docs/examples/temporal.log b/docs/examples/temporal.log index ea2a4e667..0e7f99ef1 100644 --- a/docs/examples/temporal.log +++ b/docs/examples/temporal.log @@ -135,8 +135,8 @@ WITH t_0_Orders AS (SELECT * FROM ( ) AS UNUSED_TABLE_NAME ) SELECT Orders.order_id AS order_id, - CAST(SUBSTR(CAST(Orders.created_at AS TEXT), 12, 2) AS INT64) AS hour, - CASE WHEN (CAST(SUBSTR(CAST(Orders.created_at AS TEXT), 12, 2) AS INT64) >= 18) THEN 'yes' ELSE 'no' END AS is_evening + CAST(SUBSTR(CAST(Orders.created_at AS TEXT), 12, 2) AS BIGINT) AS hour, + CASE WHEN (CAST(SUBSTR(CAST(Orders.created_at AS TEXT), 12, 2) AS BIGINT) >= 18) THEN 'yes' ELSE 'no' END AS is_evening FROM t_0_Orders AS Orders ORDER BY order_id; @@ -173,7 +173,7 @@ SELECT Subscriptions.sub_id AS sub_id, Subscriptions.expires AS expires FROM - t_0_Subscriptions AS Subscriptions, (SELECT strftime(current_date, '%Y-%m-%d') AS date) AS Today + t_0_Subscriptions AS Subscriptions, (SELECT strftime(current_timestamp AT TIME ZONE 'UTC', '%Y-%m-%d') AS date) AS Today WHERE (Subscriptions.expires >= Today.date) ORDER BY sub_id; diff --git a/docs/examples/temporal_graph.log b/docs/examples/temporal_graph.log index ad9fe5e99..9104b2b94 100644 --- a/docs/examples/temporal_graph.log +++ b/docs/examples/temporal_graph.log @@ -272,7 +272,7 @@ SELECT Person.name AS name, MemberOf.team_id AS team_id FROM - t_0_MemberOf AS MemberOf, t_3_Person AS Person, (SELECT strftime(current_date, '%Y-%m-%d') AS date) AS Today + t_0_MemberOf AS MemberOf, t_3_Person AS Person, (SELECT strftime(current_timestamp AT TIME ZONE 'UTC', '%Y-%m-%d') AS date) AS Today WHERE (MemberOf.valid_from <= Today.date) AND (Today.date < MemberOf.valid_to) AND @@ -514,7 +514,7 @@ t_47_ReachedBy_r0 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f1.valid_to AS valid_to FROM t_48_ReachedBy_MultBodyAggAux_recursive_head_f1 AS ReachedBy_MultBodyAggAux_recursive_head_f1 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f1.source, ReachedBy_MultBodyAggAux_recursive_head_f1.target, ReachedBy_MultBodyAggAux_recursive_head_f1.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f1.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f1.source, ReachedBy_MultBodyAggAux_recursive_head_f1.target, ReachedBy_MultBodyAggAux_recursive_head_f1.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f1.valid_to), t_44_ReachedBy_MultBodyAggAux_recursive_head_f2 AS (SELECT * FROM ( SELECT @@ -545,7 +545,7 @@ t_43_ReachedBy_r1 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f2.valid_to AS valid_to FROM t_44_ReachedBy_MultBodyAggAux_recursive_head_f2 AS ReachedBy_MultBodyAggAux_recursive_head_f2 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f2.source, ReachedBy_MultBodyAggAux_recursive_head_f2.target, ReachedBy_MultBodyAggAux_recursive_head_f2.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f2.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f2.source, ReachedBy_MultBodyAggAux_recursive_head_f2.target, ReachedBy_MultBodyAggAux_recursive_head_f2.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f2.valid_to), t_40_ReachedBy_MultBodyAggAux_recursive_head_f3 AS (SELECT * FROM ( SELECT @@ -576,7 +576,7 @@ t_39_ReachedBy_r2 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f3.valid_to AS valid_to FROM t_40_ReachedBy_MultBodyAggAux_recursive_head_f3 AS ReachedBy_MultBodyAggAux_recursive_head_f3 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f3.source, ReachedBy_MultBodyAggAux_recursive_head_f3.target, ReachedBy_MultBodyAggAux_recursive_head_f3.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f3.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f3.source, ReachedBy_MultBodyAggAux_recursive_head_f3.target, ReachedBy_MultBodyAggAux_recursive_head_f3.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f3.valid_to), t_36_ReachedBy_MultBodyAggAux_recursive_head_f4 AS (SELECT * FROM ( SELECT @@ -607,7 +607,7 @@ t_35_ReachedBy_r3 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f4.valid_to AS valid_to FROM t_36_ReachedBy_MultBodyAggAux_recursive_head_f4 AS ReachedBy_MultBodyAggAux_recursive_head_f4 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f4.source, ReachedBy_MultBodyAggAux_recursive_head_f4.target, ReachedBy_MultBodyAggAux_recursive_head_f4.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f4.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f4.source, ReachedBy_MultBodyAggAux_recursive_head_f4.target, ReachedBy_MultBodyAggAux_recursive_head_f4.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f4.valid_to), t_32_ReachedBy_MultBodyAggAux_recursive_head_f5 AS (SELECT * FROM ( SELECT @@ -638,7 +638,7 @@ t_31_ReachedBy_r4 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f5.valid_to AS valid_to FROM t_32_ReachedBy_MultBodyAggAux_recursive_head_f5 AS ReachedBy_MultBodyAggAux_recursive_head_f5 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f5.source, ReachedBy_MultBodyAggAux_recursive_head_f5.target, ReachedBy_MultBodyAggAux_recursive_head_f5.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f5.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f5.source, ReachedBy_MultBodyAggAux_recursive_head_f5.target, ReachedBy_MultBodyAggAux_recursive_head_f5.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f5.valid_to), t_28_ReachedBy_MultBodyAggAux_recursive_head_f6 AS (SELECT * FROM ( SELECT @@ -669,7 +669,7 @@ t_27_ReachedBy_r5 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f6.valid_to AS valid_to FROM t_28_ReachedBy_MultBodyAggAux_recursive_head_f6 AS ReachedBy_MultBodyAggAux_recursive_head_f6 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f6.source, ReachedBy_MultBodyAggAux_recursive_head_f6.target, ReachedBy_MultBodyAggAux_recursive_head_f6.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f6.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f6.source, ReachedBy_MultBodyAggAux_recursive_head_f6.target, ReachedBy_MultBodyAggAux_recursive_head_f6.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f6.valid_to), t_24_ReachedBy_MultBodyAggAux_recursive_head_f7 AS (SELECT * FROM ( SELECT @@ -700,7 +700,7 @@ t_23_ReachedBy_r6 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f7.valid_to AS valid_to FROM t_24_ReachedBy_MultBodyAggAux_recursive_head_f7 AS ReachedBy_MultBodyAggAux_recursive_head_f7 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f7.source, ReachedBy_MultBodyAggAux_recursive_head_f7.target, ReachedBy_MultBodyAggAux_recursive_head_f7.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f7.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f7.source, ReachedBy_MultBodyAggAux_recursive_head_f7.target, ReachedBy_MultBodyAggAux_recursive_head_f7.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f7.valid_to), t_20_ReachedBy_MultBodyAggAux_recursive_head_f8 AS (SELECT * FROM ( SELECT @@ -731,7 +731,7 @@ t_19_ReachedBy_r7 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f8.valid_to AS valid_to FROM t_20_ReachedBy_MultBodyAggAux_recursive_head_f8 AS ReachedBy_MultBodyAggAux_recursive_head_f8 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f8.source, ReachedBy_MultBodyAggAux_recursive_head_f8.target, ReachedBy_MultBodyAggAux_recursive_head_f8.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f8.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f8.source, ReachedBy_MultBodyAggAux_recursive_head_f8.target, ReachedBy_MultBodyAggAux_recursive_head_f8.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f8.valid_to), t_16_ReachedBy_MultBodyAggAux_recursive_head_f9 AS (SELECT * FROM ( SELECT @@ -762,7 +762,7 @@ t_15_ReachedBy_r8 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f9.valid_to AS valid_to FROM t_16_ReachedBy_MultBodyAggAux_recursive_head_f9 AS ReachedBy_MultBodyAggAux_recursive_head_f9 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f9.source, ReachedBy_MultBodyAggAux_recursive_head_f9.target, ReachedBy_MultBodyAggAux_recursive_head_f9.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f9.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f9.source, ReachedBy_MultBodyAggAux_recursive_head_f9.target, ReachedBy_MultBodyAggAux_recursive_head_f9.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f9.valid_to), t_9_ReachedBy_MultBodyAggAux_recursive_head_f10 AS (SELECT * FROM ( SELECT @@ -793,7 +793,7 @@ t_8_ReachedBy_r9 AS (SELECT ReachedBy_MultBodyAggAux_recursive_head_f10.valid_to AS valid_to FROM t_9_ReachedBy_MultBodyAggAux_recursive_head_f10 AS ReachedBy_MultBodyAggAux_recursive_head_f10 -GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f10.source, ReachedBy_MultBodyAggAux_recursive_head_f10.target, ReachedBy_MultBodyAggAux_recursive_head_f10.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f10.valid_to ORDER BY source, target), +GROUP BY ReachedBy_MultBodyAggAux_recursive_head_f10.source, ReachedBy_MultBodyAggAux_recursive_head_f10.target, ReachedBy_MultBodyAggAux_recursive_head_f10.valid_from, ReachedBy_MultBodyAggAux_recursive_head_f10.valid_to), t_0_ReachedBy_MultBodyAggAux_recursive_head_f11 AS (SELECT * FROM ( SELECT diff --git a/docs/getting-started.md b/docs/getting-started.md index d971f8ec0..26eba680e 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -123,7 +123,7 @@ smoke/ ├── concepts/TestStatus.l ├── rules/FailuresByDevice.l ├── rules/RunsPerDay.l -└── synalog.toml +└── layer.toml ``` The table file maps the database table `smoke_tests`, referenced by its lowercase database name, to the `SmokeTests` predicate; everything else builds on it: diff --git a/docs/language/index.md b/docs/language/index.md index 5efd324b0..eb25d3146 100644 --- a/docs/language/index.md +++ b/docs/language/index.md @@ -1,6 +1,6 @@ # Program structure -A Synalog program is a **project**: a folder with a `synalog.toml`, holding one predicate per file in three folders. This is the layout of [semantic layers](https://github.com/SynaLinks/semantic-layers), and the one this documentation follows. +A Synalog program is a **project**: a folder with a `layer.toml`, holding one predicate per file in three folders. This is the layout of [semantic layers](https://github.com/SynaLinks/semantic-layers), and the one this documentation follows. ``` shop/ @@ -13,7 +13,7 @@ shop/ │ ├── CustomerRevenue.l │ ├── OrdersByStatus.l │ └── TopCustomers.l -└── synalog.toml # the project's name, description and database +└── layer.toml # the project's name, description and database ``` A predicate's kind is the folder it is in: @@ -79,7 +79,7 @@ Imports resolve from the project's folder, so every file runs on its own, from a synalog rules/TopCustomers.l run TopCustomers ``` -The project's `synalog.toml` says which database it runs on (see [Projects](../cli.md#projects-synalogtoml)). From Python, give the project's folder as the import root: +The project's `layer.toml` says which database it runs on (see [Projects](../cli.md#projects-layertoml)). From Python, give the project's folder as the import root: ```python import synalog @@ -134,7 +134,7 @@ Add `as` to rename: `import rules.CustomerRevenue.CustomerRevenue as Revenue;`. The imports are the project's dependency graph: what each predicate builds on, and so what a change affects. A project is self-contained: everything its files import is inside it, its tables included. -Imports resolve from the project's folder (the one holding `synalog.toml`) in the [CLI](../cli.md#imports), whichever file runs and wherever from; in the [Python API](../python-api.md), pass that folder as `import_root`. +Imports resolve from the project's folder (the one holding `layer.toml`) in the [CLI](../cli.md#imports), whichever file runs and wherever from; in the [Python API](../python-api.md), pass that folder as `import_root`. ## Extract categorical values first diff --git a/docs/python-api.md b/docs/python-api.md index b71d3c472..8e9348310 100644 --- a/docs/python-api.md +++ b/docs/python-api.md @@ -61,12 +61,12 @@ for name, sql in sqls.items(): ## `check` ```python -check(source, engine=None, import_root=None, assertions=True, dsn=None) -> tuple[list[str], list[str]] +check(source, engine=None, import_root=None, assertions=True, project=None) -> tuple[list[str], list[str]] ``` Run structural [verification](verification.md). Returns `(errors, warnings)`, two lists of messages. The program is valid when `errors` is empty. Warnings do not make it invalid: they report [assertions](assertions.md) that are well-formed but cannot be checked against a database. -The verifier needs no database. When the program passes it and a database is known, `check` also runs the program's `@Assert` statements there: each violated assertion is an error quoting a few counterexamples. A database is known when `dsn` is given, when `SYNALOG__DSN` is set, or when the current directory is inside a [project](cli.md) whose `synalog.toml` has a `[connection]`. Otherwise `check` stays offline. +The verifier needs no database. When the program passes it and a database is known, `check` also runs the program's `@Assert` statements there: each violated assertion is an error quoting a few counterexamples. A database is known when the program is inside a [project](cli.md#projects-layertoml) whose `layer.toml` has a `[connection]`: the one found from `project`, a folder, or else from the current directory. Otherwise `check` stays offline. - `assertions=False` skips the database, for callers that need the instant, offline answer. - A database that cannot be reached is a warning (`Assertions not checked: ...`), not an error. @@ -112,7 +112,7 @@ Raises `ValueError` if there is no such assertion, or if it is pending or unsupp ## `execute` ```python -execute(source, predicate, engine=None, dsn=None, import_root=None, limit=None, offset=None, pattern=None, assertion=None, loads=()) -> tuple[list[str], list[tuple]] +execute(source, predicate, engine=None, project=None, import_root=None, limit=None, offset=None, pattern=None, assertion=None, loads=()) -> tuple[list[str], list[tuple]] ``` Run a predicate on its database and return `(columns, rows)`. Synalog runs the predicate's [plan](#plan) in one connection, so each [recursion](language/recursion.md#how-recursion-runs) stops as soon as a step changes nothing: it costs the steps its data needs, whatever the depth `@Recursive` declares, and `@Recursive(P, -1)` (until nothing changes) runs on every engine. @@ -121,7 +121,7 @@ Run a predicate on its database and return `(columns, rows)`. Synalog runs the p columns, rows = synalog.execute(source, "TopCustomers", limit=20) ``` -- The engine is `engine`, else the program's `@Engine`, else the [project](cli.md#projects-synalogtoml)'s, else duckdb; the connection `dsn`, else `SYNALOG__DSN`, else the project's `[connection]`. +- The engine is `engine`, else the program's `@Engine`, else the [project](cli.md#projects-layertoml)'s, else duckdb; the connection is the project's `[connection]` — found from `project`, a folder, or else from the current directory — when it is to that engine. - `pattern` keeps the rows where some column matches it, as [`search`](#search); `limit`/`offset` paginate as in `compile`. - `assertion` returns the counterexamples of the assertion of that name of `predicate` instead of its rows. - `loads` is a sequence of `(table, path)` pairs: csv/tsv/json/jsonl/parquet files loaded as tables first (duckdb and sqlite). diff --git a/pyproject.toml b/pyproject.toml index f36126d7e..9ed11de15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "synalog" -version = "2.0.0" +version = "2.1.0" description = "Logic programming for AI agents: Datalog-family language compiling to optimized SQL" readme = "README.md" requires-python = ">=3.10" diff --git a/python/synalog/checking.py b/python/synalog/checking.py index 88bb4ed66..950c2cff4 100644 --- a/python/synalog/checking.py +++ b/python/synalog/checking.py @@ -4,7 +4,7 @@ The verifier (``_synalog.check``) is structural: it needs no database and cannot tell whether an ``@Assert`` holds. Inside a project — a folder with a -``synalog.toml`` that has a ``[connection]`` — the database is known, so +``layer.toml`` that has a ``[connection]`` — the database is known, so ``check`` also looks for the counterexamples of every assertion there and refuses the program when it finds some. """ @@ -13,9 +13,11 @@ import json import os +from collections.abc import Mapping from pathlib import Path -from . import _synalog, config, project +from . import _synalog +from . import project as projects from .runners import Session, run_plan, session DEFAULT_ENGINE = "duckdb" @@ -42,22 +44,31 @@ def program_engine(source: str, roots: list[str] | None) -> str | None: def project_engine(project_file: Path | None) -> str | None: - """The engine the project connects to, if it has a connection.""" + """The engine the project connects to, if it has a connection (read + from ``layer.toml`` alone: no secret is needed to know it).""" if project_file is None: return None - conn = project.connection(project_file) + conn = projects.connection(project_file) return conn["engine"] if conn else None -def resolve_dsn(engine: str, dsn: str | None, project_file: Path | None) -> str | None: - """--dsn, else SYNALOG__DSN (the runner reads it), else the - project's connection for this engine; the runner falls back to the saved - connection when this is None.""" - if dsn or os.environ.get(f"SYNALOG_{engine.upper()}_DSN") or project_file is None: - return dsn - if engine not in project.ENGINES: - return None - return project.project_dsn(project_file, engine) +def resolve_connection( + source: str, + engine: str | None, + project: str | os.PathLike | None, + import_root: list[str] | None, +) -> tuple[str, dict | None]: + """The engine a program runs on — `engine`, else its `@Engine`, else the + project's, else duckdb — and the project's connection when it is to that + engine. The project is the ``layer.toml`` found from `project`, a + folder (default: the current directory). Secrets are read only for that + connection: a program run in memory needs none.""" + project_file = projects.find(project if project is not None else os.getcwd()) + connected_to = project_engine(project_file) + resolved = engine or program_engine(source, import_root) or connected_to or DEFAULT_ENGINE + if project_file is None or connected_to != resolved: + return resolved, None + return resolved, projects.resolve(project_file.parent) def shown_value(value) -> str: @@ -87,14 +98,14 @@ def violated_assertions( source: str, engine: str, import_root: list[str] | None = None, - dsn: str | None = None, + connection: Mapping | None = None, loads=(), open_session: Session | None = None, ) -> list[str]: """Run every assertion of the program on ``engine``; one message, quoting a few counterexamples, per assertion that does not hold. Pending and unsupported assertions are skipped. ``open_session`` runs them in a - session already open (``dsn`` and ``loads`` are then its own).""" + session already open (``connection`` and ``loads`` are then its own).""" checked = [ assertion for assertion in _synalog.assertions(source, engine=engine, import_root=import_root) @@ -103,7 +114,7 @@ def violated_assertions( if not checked: return [] if open_session is None: - with session(engine, dsn, loads) as s: + with session(engine, connection, loads) as s: return violated_assertions(source, engine, import_root, open_session=s) errors = [] for assertion in checked: @@ -127,17 +138,18 @@ def check( engine: str | None = None, import_root: list[str] | None = None, assertions: bool = True, - dsn: str | None = None, + project: str | os.PathLike | None = None, ) -> tuple[list[str], list[str]]: """Validate a Synalog program; returns ``(errors, warnings)``, two lists of messages. The program is valid when ``errors`` is empty. The verifier runs first and needs no database. When the program passes it - and a database is known — ``dsn``, ``SYNALOG__DSN``, or the - ``[connection]`` of the ``synalog.toml`` found from the current directory — - its ``@Assert`` statements are run there, and each violated one is an - error quoting a few counterexamples. A database that cannot be reached is - a warning, not an error. ``assertions=False`` skips the database. + and its project has a database — the ``[connection]`` of the + ``layer.toml`` found from ``project``, a folder (default: the current + directory) — its ``@Assert`` statements are run there, and each violated + one is an error quoting a few counterexamples. A database that cannot be + reached is a warning, not an error. ``assertions=False`` skips the + database. ``engine`` overrides the program's ``@Engine`` annotation, which overrides the project's engine (default: duckdb). Raises ValueError on syntax errors. @@ -148,21 +160,10 @@ def check( if not _synalog.assertions(source, engine=engine, import_root=import_root): return errors, warnings try: - project_file = project.find(os.getcwd()) - if project_file is not None: - config.load_dotenv(project_file.parent) - resolved = ( - engine - or program_engine(source, import_root) - or project_engine(project_file) - or DEFAULT_ENGINE - ) - resolved_dsn = resolve_dsn(resolved, dsn, project_file) or os.environ.get( - f"SYNALOG_{resolved.upper()}_DSN" - ) - if resolved_dsn is None: + resolved, connection = resolve_connection(source, engine, project, import_root) + if connection is None: return errors, warnings # no database: the verifier's answer stands - errors.extend(violated_assertions(source, resolved, import_root, resolved_dsn)) + errors.extend(violated_assertions(source, resolved, import_root, connection)) # Each driver has its own exceptions, and none of them is about the # program: whatever keeps the database from answering is reported as such. except Exception as e: # noqa: BLE001 diff --git a/python/synalog/cli.py b/python/synalog/cli.py index b381761c2..93c1ef713 100644 --- a/python/synalog/cli.py +++ b/python/synalog/cli.py @@ -29,7 +29,6 @@ import os import re import sys -import urllib.parse from pathlib import Path import click @@ -50,7 +49,7 @@ assertions, statement_text, ) -from .checking import program_engine, project_engine as _project_engine, resolve_dsn as _resolve_dsn, shown_value, violated_assertions +from .checking import program_engine, project_engine as _project_engine, shown_value, violated_assertions from .runners import RunnerUnavailable, run_plan, run_sql, session DEFAULT_ENGINE = "duckdb" @@ -111,7 +110,7 @@ def import_roots(file: str | None, flag_roots: tuple[str, ...]) -> list[str]: """Directories where `import` statements look up .l files. Explicit --import-root flags win. Otherwise the project's folder comes - first — the one holding the `synalog.toml` of the program's folder or of + first — the one holding the `layer.toml` of the program's folder or of the current directory — so `import tables.Orders.Orders;` reads the project's `tables/Orders.l` from any of its files; then the program file's directory and the current directory. @@ -165,132 +164,112 @@ def _load_callback(ctx, param, value): # --------------------------------------------------------------------------- -# Saved connections (connect) +# The project's connection (connect) # --------------------------------------------------------------------------- -# Engines that connect over the network with a connection string. Local -# engines (sqlite, duckdb) build their connection from --load and take no DSN. -DSN_ENGINES = ("psql", "trino", "presto", "databricks", "bigquery") -_SECRET_QUERY_KEYS = {"access_token", "password", "token", "secret"} +def project_connection(engine: str, project_file: Path | None) -> dict | None: + """The project's connection when it is to `engine` (its secrets read + then, and only then); None otherwise: a local engine needs none.""" + if project_file is None or _project_engine(project_file) != engine: + return None + return project.resolve(project_file.parent) -def mask_dsn(dsn: str) -> str: - """Hide credentials in a connection string for display.""" - try: - parts = urllib.parse.urlsplit(dsn) - except ValueError: - return dsn - if not parts.scheme: - return dsn # bare value (e.g. a bigquery project id) - netloc = parts.netloc - if "@" in netloc: - userinfo, _, host = netloc.rpartition("@") - if ":" in userinfo: - user = userinfo.split(":", 1)[0] - userinfo = f"{user}:***" - elif userinfo: - userinfo = "***" # token-only userinfo (e.g. databricks) - netloc = f"{userinfo}@{host}" - query = parts.query - if query: - masked = [ - (k, "***" if k.lower() in _SECRET_QUERY_KEYS else v) - for k, v in urllib.parse.parse_qsl(query, keep_blank_values=True) - ] - query = urllib.parse.urlencode(masked, safe="/") - return urllib.parse.urlunsplit( - (parts.scheme, netloc, parts.path, query, parts.fragment) - ) +def _connection_fields(pairs: tuple[str, ...]) -> dict: + fields = {} + for pair in pairs: + key, sep, value = pair.partition("=") + if not sep or not key: + raise click.UsageError(f"'{pair}' is not key=value (e.g. host=db.example.com)") + fields[key.strip()] = value + return fields -def cmd_connect(args: tuple[str, ...]) -> int: - """Manage saved connection strings for remote engines. +def _engine_fields() -> str: + lines = ["Engines and their fields (* secret: written to .env, never to layer.toml):"] + for name, spec in project.ENGINES.items(): + lines.append(f" {name:<11} " + ", ".join(f.key + ("*" if f.secret else "") for f in spec.fields)) + return "\n".join(lines) + + +def cmd_connect(args: tuple[str, ...], project_file: Path | None) -> int: + """Give the project its database, in its layer.toml. \b - synalog connect list saved connections (credentials hidden) - synalog connect save a connection string for an engine - synalog connect show the saved connection for an engine - synalog connect remove forget a saved connection - """ - from . import config + synalog connect show the project's connection (secrets hidden) + synalog connect key=value ... connect the project: layer.toml, secrets in .env + synalog connect clear remove the connection (back to in-memory engines) + The project is the folder of the nearest layer.toml, else the current + directory. Secret fields (a password, a token) go to its .env, kept out + of git; the others to layer.toml, meant to be committed. + """ + folder = project_file.parent if project_file is not None else Path.cwd() if not args: - connections = config.load_connections() - if not connections: - click.echo("No saved connections.") + conn = project.connection(project_file) if project_file is not None else None + if conn is None: + click.echo("No connection: synalog runs in memory (duckdb). " + _CONNECT_USAGE) return 0 - for engine, dsn in sorted(connections.items()): - click.echo(f"{engine}\t{mask_dsn(dsn)}") + click.echo(f"{project_file}") + for key, value in conn.items(): + click.echo(f" {key} = {value}") + for f in project.ENGINES[conn["engine"]].fields: + if f.secret: + state = "set" if os.environ.get(project.secret_env(conn["engine"], f.key)) else "not set" + click.echo(f" {f.key}: {project.secret_env(conn['engine'], f.key)} {state}") return 0 - - if args[0] == "remove": - if len(args) != 2: - raise click.UsageError("usage: synalog connect remove ") - if config.remove_connection(args[1]): - click.echo(f"Removed saved connection for {args[1]}.") - return 0 - fail(f"No saved connection for {args[1]}.") - - engine = args[0] - if engine not in DSN_ENGINES: - fail( - f"'{engine}' does not use a connection string;" - f" engines that do: {', '.join(DSN_ENGINES)}" - ) - if len(args) == 1: - dsn = config.saved_connection(engine) - if dsn is None: - click.echo(f"No saved connection for {engine}.") - else: - click.echo(mask_dsn(dsn)) + if args[0] == "clear": + if len(args) != 1: + raise click.UsageError("usage: synalog connect clear") + project.clear(folder) + click.echo(f"Removed the connection of {folder / project.PROJECT_FILE}") return 0 - if len(args) > 2: - raise click.UsageError("usage: synalog connect ") - config.save_connection(engine, args[1]) - click.echo(f"Saved {engine} connection to {config.config_dir()}/connections.json") + engine, fields = args[0], _connection_fields(args[1:]) + if engine not in project.ENGINES: + fail(f"'{engine}' takes no connection; engines that do: {', '.join(project.ENGINES)}\n" + _engine_fields()) + try: + path = project.write(folder, engine, fields) + except project.ProjectError as e: + fail(f"{e}\n" + _engine_fields()) + click.echo(f"Connected {path} to {engine}" + (" (secrets in .env)" if project.secrets(engine, fields) else "")) return 0 +_CONNECT_USAGE = "Connect the project with: synalog connect key=value ..." + + # --------------------------------------------------------------------------- # Schema introspection (introspect) # --------------------------------------------------------------------------- -def cmd_introspect(args: tuple[str, ...], dsn: str | None, project_file: Path | None) -> int: +def cmd_introspect(args: tuple[str, ...], project_file: Path | None) -> int: """Write the project's table files from its database's schema. \b - synalog introspect introspect the project's connection (synalog.toml) - synalog introspect introspect the connection for an engine - synalog introspect introspect an explicit connection string - - The DSN is resolved like everywhere else: the argument here (or --dsn) wins, - then SYNALOG__DSN, then synalog.toml, then the saved connection. - In a project, each table becomes a file of its tables/ folder (a file that - exists keeps its front matter); elsewhere, the declarations are printed. + synalog introspect introspect the project's connection (layer.toml) + + Each table becomes a file of the project's tables/ folder (a file that + exists keeps its front matter). """ - from .introspect import INTROSPECTABLE, catalog, predicates, tables, write_tables + from .introspect import INTROSPECTABLE, catalog, tables, write_tables - if len(args) > 2: - raise click.UsageError("usage: synalog introspect [engine] [dsn]") + if args: + raise click.UsageError("usage: synalog introspect (in a project: its layer.toml names the database)") try: - engine = args[0] if args else _project_engine(project_file) + engine = _project_engine(project_file) except ValueError as e: fail(e) if engine is None: - raise click.UsageError("usage: synalog introspect [dsn] (or run it in a project with a synalog.toml)") + fail("introspect reads the project's database, and there is none. " + _CONNECT_USAGE) if engine not in INTROSPECTABLE: fail( f"'{engine}' cannot be introspected;" f" engines with a catalog: {', '.join(INTROSPECTABLE)}" ) - explicit = args[1] if len(args) > 1 else dsn try: - rows = catalog(engine, _resolve_dsn(engine, explicit, project_file)) - if project_file is None: - click.echo(predicates(engine, rows), nl=False) - return 0 + rows = catalog(engine, project_connection(engine, project_file)) found, skipped = tables(rows) folder = project_file.parent / "tables" result = write_tables(folder, found) @@ -345,12 +324,6 @@ def cmd_introspect(args: tuple[str, ...], dsn: str | None, project_file: Path | help="With print/run: keep only rows where some column matches" " the regular expression REGEX (engine-native regex, not SQL LIKE).", ) -@click.option( - "--dsn", - help="Connection string for the remote engine (psql/trino/presto/databricks/" - "bigquery); falls back to SYNALOG__DSN, then the project's" - " synalog.toml, then the saved connection.", -) @click.option( "--import-root", "import_root", @@ -368,7 +341,7 @@ def cmd_introspect(args: tuple[str, ...], dsn: str | None, project_file: Path | help="Load a csv/tsv/json/jsonl/parquet file as TABLE before running" " (repeatable).", ) -def main(args, inline, engine, limit, offset, as_csv, search_pattern, dsn, +def main(args, inline, engine, limit, offset, as_csv, search_pattern, import_root, loads): """Synalog: logic programming compiling to SQL. @@ -378,7 +351,7 @@ def main(args, inline, engine, limit, offset, as_csv, search_pattern, dsn, synalog program.l run Predicate ... execute and print a table synalog program.l run Predicate --csv execute and print CSV synalog program.l verify [Predicate ...] check the @Assert statements - synalog connect ENGINE DSN save a remote engine connection + synalog connect ENGINE KEY=VALUE ... connect the project to its database synalog introspect [ENGINE] write a project's tables/ from its database print, run and verify validate the whole program first, aborting with the @@ -397,7 +370,7 @@ def main(args, inline, engine, limit, offset, as_csv, search_pattern, dsn, text inline instead of FILE. With no arguments, starts an interactive session (the options apply to it too). - A project is a folder with a 'synalog.toml' (found from the program file's + A project is a folder with a 'layer.toml' (found from the program file's directory, then the current directory, and their parents): its [connection] gives the engine and the connection details, its secrets come from the environment (SYNALOG__). A '.env' file in the @@ -412,9 +385,9 @@ def main(args, inline, engine, limit, offset, as_csv, search_pattern, dsn, dirs.insert(1 if len(dirs) > 1 else 0, str(project_file.parent)) config.load_dotenv(*dirs) if args and args[0] == "connect" and inline is None: - sys.exit(cmd_connect(args[1:])) + sys.exit(cmd_connect(args[1:], project_file)) if args and args[0] == "introspect" and inline is None: - sys.exit(cmd_introspect(args[1:], dsn, project_file)) + sys.exit(cmd_introspect(args[1:], project_file)) try: default_engine = _project_engine(project_file) except ValueError as e: @@ -422,11 +395,7 @@ def main(args, inline, engine, limit, offset, as_csv, search_pattern, dsn, if inline is None: if not args: repl_engine = engine or default_engine or DEFAULT_ENGINE - try: - repl_dsn = _resolve_dsn(repl_engine, dsn, project_file) - except ValueError as e: - fail(e) - sys.exit(Repl(repl_engine, repl_dsn, import_roots(None, import_root), loads).run()) + sys.exit(Repl(repl_engine, project_file, import_roots(None, import_root), loads).run()) file = args[0] if len(args) < 2: raise click.UsageError(f"missing command (one of: {', '.join(COMMANDS)})") @@ -541,7 +510,7 @@ def verify(eng: str, open_session) -> bool: if command == "verify": resolved = engine or program_engine(source, roots) or default_engine or DEFAULT_ENGINE validate_or_fail(resolved) - with session(resolved, _resolve_dsn(resolved, dsn, project_file), loads) as s: + with session(resolved, project_connection(resolved, project_file), loads) as s: ok = verify(resolved, s) if not ok: sys.exit(1) @@ -554,8 +523,7 @@ def verify(eng: str, open_session) -> bool: else: # run resolved = engine or program_engine(source, roots) or default_engine or DEFAULT_ENGINE validate_or_fail(resolved) - run_dsn = _resolve_dsn(resolved, dsn, project_file) - with session(resolved, run_dsn, loads) as s: + with session(resolved, project_connection(resolved, project_file), loads) as s: # run has a database: a violated assertion refuses the program. violated = violated_assertions(source, resolved, roots, open_session=s) if violated: @@ -602,13 +570,13 @@ class Repl: def __init__( self, engine: str | None, - dsn: str | None, + project_file: Path | None, roots: list[str], loads: list[tuple[str, str]], ): self.statements: list[str] = [] self.engine = engine or DEFAULT_ENGINE - self.dsn = dsn + self.project_file = project_file self.roots = roots self.loads = list(loads) @@ -689,7 +657,8 @@ def query(self, predicate: str, pattern: str | None = None) -> None: steps = plan( self.source, predicate, engine=self.engine, import_root=self.roots, pattern=pattern ) - with session(self.engine, self.dsn, self.loads) as s: + connection = project_connection(self.engine, self.project_file) + with session(self.engine, connection, self.loads) as s: columns, rows = run_plan(steps, s) except (ValueError, RunnerUnavailable, OSError) as e: print_error(e) diff --git a/python/synalog/config.py b/python/synalog/config.py index b80025725..d814141d0 100644 --- a/python/synalog/config.py +++ b/python/synalog/config.py @@ -1,21 +1,14 @@ # License Apache 2.0: (c) 2025-2026 Yoan Sallami (Synalinks Team) -"""Saved connections for remote engines (`synalog connect`). +"""The ``.env`` file: a project's secrets, loaded into the environment. -Connection strings are stored per engine in a JSON file under the user -config directory (override with SYNALOG_CONFIG_DIR): - - Linux/macOS: ~/.config/synalog/connections.json (honors XDG_CONFIG_HOME) - Windows: %APPDATA%/synalog/connections.json - -The file may contain credentials, so it is created with 0600 permissions. -Resolution order for a connection string is: the --dsn flag, then the -SYNALOG__DSN environment variable, then this file. +A connection is described only by the project's ``layer.toml`` (see +``synalog.project``); its secrets — a password, a token — come from the +environment, usually from the git-ignored ``.env`` next to it. """ from __future__ import annotations -import json import os from pathlib import Path @@ -59,55 +52,3 @@ def load_dotenv(*directories: str | os.PathLike) -> None: continue for key, value in parse_dotenv(text): os.environ.setdefault(key, value) - - -def config_dir() -> Path: - if explicit := os.environ.get("SYNALOG_CONFIG_DIR"): - return Path(explicit) - if os.name == "nt": - base = os.environ.get("APPDATA") or str(Path.home()) - return Path(base) / "synalog" - base = os.environ.get("XDG_CONFIG_HOME") or str(Path.home() / ".config") - return Path(base) / "synalog" - - -def _connections_file() -> Path: - return config_dir() / "connections.json" - - -def load_connections() -> dict[str, str]: - try: - with open(_connections_file(), encoding="utf-8") as f: - data = json.load(f) - except (OSError, ValueError): - return {} - return {k: v for k, v in data.items() if isinstance(v, str)} - - -def saved_connection(engine: str) -> str | None: - return load_connections().get(engine) - - -def _write(connections: dict[str, str]) -> None: - path = _connections_file() - path.parent.mkdir(parents=True, exist_ok=True) - path.write_text(json.dumps(connections, indent=2) + "\n", encoding="utf-8") - try: - os.chmod(path, 0o600) - except OSError: - pass # best effort (e.g. unsupported filesystem) - - -def save_connection(engine: str, dsn: str) -> None: - connections = load_connections() - connections[engine] = dsn - _write(connections) - - -def remove_connection(engine: str) -> bool: - connections = load_connections() - if engine not in connections: - return False - del connections[engine] - _write(connections) - return True diff --git a/python/synalog/execution.py b/python/synalog/execution.py index e694dff10..887a0cadb 100644 --- a/python/synalog/execution.py +++ b/python/synalog/execution.py @@ -14,38 +14,16 @@ import os -from . import _synalog, config, project -from .checking import DEFAULT_ENGINE, program_engine, project_engine, resolve_dsn +from . import _synalog +from .checking import resolve_connection from .runners import Result, run_plan, session -def resolve_connection( - source: str, - engine: str | None, - dsn: str | None, - import_root: list[str] | None, -) -> tuple[str, str | None]: - """The engine and connection string a program runs on: `engine`, else its - `@Engine`, else the project's (the `synalog.toml` found from the current - directory), else duckdb; `dsn`, else `SYNALOG__DSN`, else the - project's connection.""" - project_file = project.find(os.getcwd()) - if project_file is not None: - config.load_dotenv(project_file.parent) - resolved = ( - engine - or program_engine(source, import_root) - or project_engine(project_file) - or DEFAULT_ENGINE - ) - return resolved, resolve_dsn(resolved, dsn, project_file) - - def execute( source: str, predicate: str, engine: str | None = None, - dsn: str | None = None, + project: str | os.PathLike | None = None, import_root: list[str] | None = None, limit: int | None = None, offset: int | None = None, @@ -57,11 +35,14 @@ def execute( `pattern` keeps the rows where some column matches it (as `search`); `assertion` returns the counterexamples of the assertion of that name of - `predicate` instead of its rows. `loads` is a sequence of ``(table, path)`` - pairs, files loaded as tables first (duckdb and sqlite). Raises - ValueError on an invalid program, and the driver's errors. + `predicate` instead of its rows. The database is the ``[connection]`` of + the ``layer.toml`` found from `project`, a folder (default: the current + directory), when it is to the engine the program runs on. `loads` is a + sequence of ``(table, path)`` pairs, files loaded as tables first (duckdb + and sqlite). Raises ValueError on an invalid program, and the driver's + errors. """ - resolved, resolved_dsn = resolve_connection(source, engine, dsn, import_root) + resolved, connection = resolve_connection(source, engine, project, import_root) steps = _synalog.plan( source, predicate, @@ -72,5 +53,5 @@ def execute( pattern=pattern, assertion=assertion, ) - with session(resolved, resolved_dsn, loads) as s: + with session(resolved, connection, loads) as s: return run_plan(steps, s) diff --git a/python/synalog/introspect.py b/python/synalog/introspect.py index 1ba6080ce..b44af8568 100644 --- a/python/synalog/introspect.py +++ b/python/synalog/introspect.py @@ -2,10 +2,10 @@ """Introspect a database schema into the table files of a project. -`synalog introspect` connects to the project's (or a given) connection, reads -the table/column catalog across all user (non-system) schemas, and writes one -file per table into the project's `tables/` folder, the rest of the project -building on them; outside a project, it prints the declarations. +`synalog introspect` connects to the project's connection (its +``layer.toml``), reads the table/column catalog across all user (non-system) +schemas, and writes one file per table into the project's `tables/` folder, +the rest of the project building on them. Each database table becomes one predicate mapping the physical, schema-qualified table to a PascalCase predicate, @@ -25,11 +25,11 @@ from __future__ import annotations import re -import urllib.parse +from collections.abc import Mapping from pathlib import Path from typing import NamedTuple -from .runners import RunnerUnavailable, _resolve_dsn, run_sql +from .runners import RunnerUnavailable, run_sql # Engines whose catalog `information_schema.columns` covers directly, mapped to # the predicate that excludes that engine's system schemas. Trino/Presto and @@ -60,13 +60,10 @@ def _info_schema_sql(where: str) -> str: ) -def _bigquery_sql(dsn: str | None) -> str: - # BigQuery's COLUMNS view is region-qualified; the region comes from the - # DSN's ?location= (default: the multi-region US), the default project. - location = "us" - if dsn and "://" in dsn: - query = urllib.parse.parse_qs(urllib.parse.urlparse(dsn).query) - location = (query.get("location") or ["us"])[0] +def _bigquery_sql(connection: Mapping | None) -> str: + # BigQuery's COLUMNS view is region-qualified; the region is the + # connection's location (default: the multi-region US). + location = (connection or {}).get("location") or "us" return ( "SELECT table_schema, table_name, column_name\n" f"FROM `region-{location.lower()}`.INFORMATION_SCHEMA.COLUMNS\n" @@ -75,9 +72,9 @@ def _bigquery_sql(dsn: str | None) -> str: ) -def _introspect_sql(engine: str, dsn: str | None) -> str: +def _introspect_sql(engine: str, connection: Mapping | None) -> str: if engine == "bigquery": - return _bigquery_sql(dsn) + return _bigquery_sql(connection) return _info_schema_sql(_INFO_SCHEMA_WHERE[engine]) @@ -134,10 +131,10 @@ def _databricks_rows(fetch) -> list[tuple]: return _databricks_show_rows(fetch) -def _catalog_rows(engine: str, fetch, dsn: str | None) -> list[tuple]: +def _catalog_rows(engine: str, fetch, connection: Mapping | None) -> list[tuple]: if engine == "databricks": return _databricks_rows(fetch) - return list(fetch(_introspect_sql(engine, dsn))) + return list(fetch(_introspect_sql(engine, connection))) # --------------------------------------------------------------------------- @@ -298,17 +295,18 @@ def write_tables(folder: str | Path, found: list[Table]) -> dict[str, list[str]] return {"written": [table.name for table in found], "gone": gone} -def introspect(engine: str, dsn: str | None = None, fetch=None) -> str: +def introspect(engine: str, connection: Mapping | None = None, fetch=None) -> str: """Connect, read the catalog, and return the declarations of its tables.""" - return predicates(engine, catalog(engine, dsn, fetch)) + return predicates(engine, catalog(engine, connection, fetch)) -def catalog(engine: str, dsn: str | None = None, fetch=None) -> list[tuple]: +def catalog(engine: str, connection: Mapping | None = None, fetch=None) -> list[tuple]: """Connect and read the catalog rows ``(schema, table, column)``. - ``fetch`` is an optional ``sql -> rows`` executor; when omitted, queries run - through :func:`synalog.runners.run_sql` against the resolved connection. Tests - inject one to drive introspection against a runner of their choice. + ``connection`` is the project's (``synalog.project.resolve``). ``fetch`` + is an optional ``sql -> rows`` executor; when omitted, queries run through + :func:`synalog.runners.run_sql` on the connection. Tests inject one to + drive introspection against a runner of their choice. """ if engine not in INTROSPECTABLE: raise RunnerUnavailable( @@ -316,16 +314,8 @@ def catalog(engine: str, dsn: str | None = None, fetch=None) -> list[tuple]: + ", ".join(INTROSPECTABLE) ) if fetch is None: - resolved = _resolve_dsn(engine, dsn) - if not resolved and engine != "bigquery": # bigquery falls back to ADC - raise RunnerUnavailable( - f"The {engine} engine needs a connection string: pass it after the" - f" engine, set SYNALOG_{engine.upper()}_DSN, or run" - f" 'synalog connect {engine} '" - ) def fetch(sql: str): - return run_sql(engine, sql, dsn=resolved)[1] + return run_sql(engine, sql, connection)[1] - dsn = resolved - return _catalog_rows(engine, fetch, dsn) + return _catalog_rows(engine, fetch, connection) diff --git a/python/synalog/project.py b/python/synalog/project.py index 3248bab2b..f61b0b142 100644 --- a/python/synalog/project.py +++ b/python/synalog/project.py @@ -1,8 +1,8 @@ # License Apache 2.0: (c) 2025-2026 Yoan Sallami (Synalinks Team) -"""The project file, ``synalog.toml``: which database a project runs on. +"""The project file, ``layer.toml``: which database a project runs on. -A project is a folder of ``.l`` files with a ``synalog.toml`` at its root. +A project is a folder of ``.l`` files with a ``layer.toml`` at its root. Its ``[connection]`` table names the engine and its connection details as plain fields — no connection string to percent-encode — and is meant to be committed, so everyone working on the project targets the same database:: @@ -33,18 +33,17 @@ from collections.abc import Mapping from dataclasses import asdict, dataclass, field from pathlib import Path -from urllib.parse import quote, urlencode if sys.version_info >= (3, 11): import tomllib else: # pragma: no cover import tomli as tomllib -PROJECT_FILE = "synalog.toml" +PROJECT_FILE = "layer.toml" class ProjectError(ValueError): - """A ``synalog.toml`` that cannot be used, with what to fix.""" + """A ``layer.toml`` that cannot be used, with what to fix.""" @dataclass(frozen=True) @@ -132,7 +131,7 @@ def secret_env(engine: str, key: str) -> str: def find(*starts: str | os.PathLike) -> Path | None: - """The nearest ``synalog.toml``: in each start directory or one of its + """The nearest ``layer.toml``: in each start directory or one of its parents, the first start that has one winning.""" for start in starts: for directory in (Path(start).resolve(), *Path(start).resolve().parents): @@ -194,49 +193,29 @@ def details(conn: dict, env: Mapping[str, str] | None = None) -> dict: return out -# -- connection strings -------------------------------------------------------- - - -def dsn(engine: str, details: dict) -> str: - """The connection string synalog's runner for ``engine`` parses.""" - c = {k: v for k, v in details.items() if v not in (None, "")} - - def userinfo(user, password) -> str: - if not user: - return "" - return quote(str(user), safe="") + (f":{quote(str(password), safe='')}" if password else "") + "@" - - def hostport() -> str: - return f"{c['host']}:{c['port']}" if c.get("port") else c["host"] - - if engine == "psql": - query = {k: c[k] for k in ("sslmode",) if k in c} - if c.get("schema"): - query["options"] = f"-csearch_path={c['schema']}" - suffix = f"?{urlencode(query)}" if query else "" - return f"postgresql://{userinfo(c.get('user'), c.get('password'))}{hostport()}/{c.get('database', '')}{suffix}" - if engine in ("trino", "presto"): - path = "/".join(quote(str(c[k]), safe="") for k in ("catalog", "schema") if c.get(k)) - password = c.get("password") if c.get("auth") == "password" else None - query = {"http_scheme": c["scheme"]} if c.get("scheme") else {} - suffix = f"?{urlencode(query)}" if query else "" - return f"{engine}://{userinfo(c.get('user'), password)}{hostport()}/{path}{suffix}" - if engine == "databricks": - query = {"http_path": c["http_path"], "access_token": c["access_token"]} - return f"databricks://{c['server_hostname']}?{urlencode(query)}" - if engine == "bigquery": - query = {"location": c["location"]} if c.get("location") else {} - return f"bigquery://{c['project']}" + (f"?{urlencode(query)}" if query else "") - raise ProjectError(f"{engine!r} takes no connection") - - -def project_dsn(path: str | os.PathLike, engine: str, env: Mapping[str, str] | None = None) -> str | None: - """The connection string of the project file at ``path`` for ``engine``, - or ``None`` when the project connects to another engine, or none.""" +# -- resolving ---------------------------------------------------------------- + + +def resolve(*starts: str | os.PathLike) -> dict | None: + """The connection of the project found from ``starts`` (see ``find``): + its ``engine`` and every field a runner needs, defaults filled in and + secrets read from the project's ``.env`` and the environment, real + variables winning. The environment is not changed: two projects in one + process each get their own secrets. ``None`` outside a project, or in + one without a ``[connection]`` (it runs on a local engine).""" + from .config import parse_dotenv + + path = find(*starts) + if path is None: + return None conn = connection(path) - if conn is None or conn["engine"] != engine: + if conn is None: return None - return dsn(engine, details(conn, env)) + try: + dotenv = dict(parse_dotenv((path.parent / ".env").read_text(encoding="utf-8"))) + except OSError: + dotenv = {} + return {"engine": conn["engine"], **details(conn, {**dotenv, **os.environ})} # -- writing ------------------------------------------------------------------- @@ -278,7 +257,7 @@ def secrets(engine: str, details: dict) -> dict[str, str]: # -- writing a project's connection --------------------------------------------- -#: Written next to synalog.toml by `write`, never committed. +#: Written next to layer.toml by `write`, never committed. SECRET_FILES = (".env", "bigquery-credentials.json") _KEY_FILE = "bigquery-credentials.json" @@ -319,7 +298,7 @@ def ensure_gitignore(folder: str | os.PathLike) -> None: def write(folder: str | os.PathLike, engine: str, details: dict) -> Path: """Give the project in ``folder`` a connection: its ``[connection]`` in - ``synalog.toml`` (the file's other tables are kept), its secrets in + ``layer.toml`` (the file's other tables are kept), its secrets in ``.env`` (other lines kept, owner-only), BigQuery's key — given as the key's JSON — in a key file next to it, and both listed in ``.gitignore``. Raises ``ProjectError`` for an unknown engine or field, or a missing @@ -332,6 +311,10 @@ def write(folder: str | os.PathLike, engine: str, details: dict) -> Path: if unknown: raise ProjectError(f"{engine} has no field {', '.join(unknown)} (fields: {', '.join(sorted(keys))})") details = {k: v for k, v in details.items() if v not in (None, "")} + # Checked before anything is written: a failed connect leaves the project as it was. + missing = [f.key for f in ENGINES[engine].fields if f.required and not f.secret and f.default is None and f.key not in details] + if missing: + raise ProjectError(f"the {engine} connection needs {', '.join(missing)}") folder.mkdir(parents=True, exist_ok=True) secrets_ = {} if isinstance(details.get("credentials"), dict): # BigQuery's key, as JSON diff --git a/python/synalog/runners.py b/python/synalog/runners.py index d7cfe9e11..619dd1657 100644 --- a/python/synalog/runners.py +++ b/python/synalog/runners.py @@ -10,10 +10,10 @@ Local, in-memory engines (``sqlite``, ``duckdb``) build the connection from ``loads``; remote engines (``psql``, ``trino``, ``presto``, ``databricks``, -``bigquery``) connect over the network using a connection string resolved, in -order, from the ``--dsn`` flag, the ``SYNALOG__DSN`` environment -variable, then the saved-connection file (see ``synalog.config``). Remote -engines cannot ingest local ``loads`` files — load those with your own tools. +``bigquery``) connect over the network with the fields of the project's +``[connection]`` (``synalog.project.resolve``: ``layer.toml``, its secrets +from the environment). Remote engines cannot ingest local ``loads`` files — +load those with your own tools. Runners reproduce the runtime environment upstream Python Logica provides on its own connections: @@ -41,7 +41,7 @@ import os import re import sqlite3 -import urllib.parse +from collections.abc import Mapping Result = tuple[list[str], list[tuple]] @@ -408,10 +408,10 @@ def close(self) -> None: class PsqlSession(Session): engine = "psql" - def __init__(self, dsn: str | None, loads=()): + def __init__(self, connection: Mapping | None, loads=()): _reject_loads(loads, "psql") - # The connection string first: without one, the driver is beside the point. - dsn = _require_dsn("psql", dsn) + # The connection first: without one, the driver is beside the point. + c = _require_connection("psql", connection) try: import psycopg except ImportError as e: @@ -420,7 +420,16 @@ def __init__(self, dsn: str | None, loads=()): raise RunnerUnavailable( f"The psql engine needs psycopg with its libpq ({e}): pip install 'psycopg[binary]'" ) from None - self.conn = psycopg.connect(dsn, autocommit=True) + self.conn = psycopg.connect( + host=c["host"], + port=c.get("port", 5432), + dbname=c["database"], + user=c["user"], + password=c.get("password"), + sslmode=c.get("sslmode", "prefer"), + options=f"-csearch_path={c['schema']}" if c.get("schema") else None, + autocommit=True, + ) self.cur = self.conn.cursor() self.cur.execute(PSQL_ARRAY_CONCAT_AGG) @@ -450,28 +459,15 @@ def close(self) -> None: # --------------------------------------------------------------------------- -def _resolve_dsn(engine: str, dsn: str | None) -> str | None: - """Connection string for `engine`: --dsn, then env, then saved config.""" - if dsn: - return dsn - if env := os.environ.get(f"SYNALOG_{engine.upper()}_DSN"): - return env - try: - from .config import saved_connection - except ImportError: - return None - return saved_connection(engine) - - -def _require_dsn(engine: str, dsn: str | None) -> str: - resolved = _resolve_dsn(engine, dsn) - if not resolved: +def _require_connection(engine: str, connection: Mapping | None) -> Mapping: + """The project's connection to ``engine``, or what to do without one.""" + if not connection or connection.get("engine", engine) != engine: raise RunnerUnavailable( - f"The {engine} engine needs a connection string: give the project a" - f" [connection] in synalog.toml, pass --dsn, set SYNALOG_{engine.upper()}_DSN, or run" - f" 'synalog connect {engine} '" + f"The {engine} engine needs the project's connection: run" + f" 'synalog connect {engine} key=value ...' in the project's folder" + " (it writes layer.toml, the secrets in .env)" ) - return resolved + return connection def _reject_loads(loads, engine: str) -> None: @@ -500,9 +496,9 @@ def close(self) -> None: self.conn.close() -def _trino_session(dsn: str | None, loads) -> Session: +def _trino_session(connection: Mapping | None, loads) -> Session: _reject_loads(loads, "trino") - dsn = _require_dsn("trino", dsn) + c = _require_connection("trino", connection) try: import trino except ImportError: @@ -510,30 +506,27 @@ def _trino_session(dsn: str | None, loads) -> Session: "The trino engine needs the 'trino' package: pip install trino" ) from None - url = urllib.parse.urlparse(dsn) - query = dict(urllib.parse.parse_qsl(url.query)) - path = [p for p in url.path.split("/") if p] - port = url.port or 8080 auth = None - http_scheme = query.get("http_scheme") or ("https" if port == 443 else "http") - if url.password: - auth = trino.auth.BasicAuthentication(url.username or "", url.password) - http_scheme = "https" + if c.get("auth") == "password": + auth = trino.auth.BasicAuthentication(c["user"], c.get("password", "")) + elif c.get("auth") == "jwt": + auth = trino.auth.JWTAuthentication(c.get("password", "")) conn = trino.dbapi.connect( - host=url.hostname, - port=port, - user=url.username or query.get("user") or "synalog", - catalog=(path[0] if path else query.get("catalog")), - schema=(path[1] if len(path) > 1 else query.get("schema")), - http_scheme=http_scheme, + host=c["host"], + port=int(c.get("port", 8080)), + user=c["user"], + catalog=c.get("catalog"), + schema=c.get("schema"), + # Credentials only travel over https. + http_scheme="https" if auth else c.get("scheme", "http"), auth=auth, ) return DbapiSession("trino", conn) -def _presto_session(dsn: str | None, loads) -> Session: +def _presto_session(connection: Mapping | None, loads) -> Session: _reject_loads(loads, "presto") - dsn = _require_dsn("presto", dsn) + c = _require_connection("presto", connection) try: import prestodb except ImportError: @@ -542,22 +535,24 @@ def _presto_session(dsn: str | None, loads) -> Session: " pip install presto-python-client" ) from None - url = urllib.parse.urlparse(dsn) - query = dict(urllib.parse.parse_qsl(url.query)) - path = [p for p in url.path.split("/") if p] + auth = None + if c.get("auth") == "password": + auth = prestodb.auth.BasicAuthentication(c["user"], c.get("password", "")) conn = prestodb.dbapi.connect( - host=url.hostname, - port=url.port or 8080, - user=url.username or query.get("user") or "synalog", - catalog=(path[0] if path else query.get("catalog")), - schema=(path[1] if len(path) > 1 else query.get("schema")), + host=c["host"], + port=int(c.get("port", 8080)), + user=c["user"], + catalog=c.get("catalog"), + schema=c.get("schema"), + http_scheme="https" if auth else c.get("scheme", "http"), + auth=auth, ) return DbapiSession("presto", conn) -def _databricks_session(dsn: str | None, loads) -> Session: +def _databricks_session(connection: Mapping | None, loads) -> Session: _reject_loads(loads, "databricks") - dsn = _require_dsn("databricks", dsn) + c = _require_connection("databricks", connection) try: from databricks import sql as databricks_sql except ImportError: @@ -566,19 +561,12 @@ def _databricks_session(dsn: str | None, loads) -> Session: " pip install databricks-sql-connector" ) from None - url = urllib.parse.urlparse(dsn) - query = dict(urllib.parse.parse_qsl(url.query)) - http_path = query.get("http_path") - access_token = query.get("access_token") or url.password or url.username - if not (url.hostname and http_path and access_token): - raise RunnerUnavailable( - "The databricks DSN needs a host, http_path and access token, e.g." - " databricks://@?http_path=/sql/1.0/warehouses/" - ) conn = databricks_sql.connect( - server_hostname=url.hostname, - http_path=http_path, - access_token=access_token, + server_hostname=c["server_hostname"], + http_path=c["http_path"], + access_token=c["access_token"], + catalog=c.get("catalog"), + schema=c.get("schema"), ) return DbapiSession("databricks", conn) @@ -590,8 +578,9 @@ class BigQuerySession(Session): engine = "bigquery" - def __init__(self, dsn: str | None, loads=()): + def __init__(self, connection: Mapping | None, loads=()): _reject_loads(loads, "bigquery") + c = _require_connection("bigquery", connection) try: from google.cloud import bigquery except ImportError: @@ -599,18 +588,18 @@ def __init__(self, dsn: str | None, loads=()): "The bigquery engine needs the 'google-cloud-bigquery' package:" " pip install google-cloud-bigquery" ) from None - # BigQuery authenticates via Application Default Credentials; the DSN, - # when given, only names the billing project (and optional location). - project = location = None - if resolved := _resolve_dsn("bigquery", dsn): - if "://" in resolved: - url = urllib.parse.urlparse(resolved) - project = url.hostname or url.netloc or None - location = dict(urllib.parse.parse_qsl(url.query)).get("location") - else: - project = resolved + # The key file is GOOGLE_APPLICATION_CREDENTIALS, which the client + # reads itself; the connection names the project, dataset and location. + project, location = c["project"], c.get("location") + default_dataset = f"{project}.{c['dataset']}" if c.get("dataset") else None try: - self.client = bigquery.Client(project=project, location=location) + self.client = bigquery.Client( + project=project, + location=location, + default_query_job_config=( + bigquery.QueryJobConfig(default_dataset=default_dataset) if default_dataset else None + ), + ) except Exception as e: raise RunnerUnavailable(f"bigquery error ({type(e).__name__}: {e})") from None @@ -624,37 +613,39 @@ def execute(self, statement: str) -> Result | None: return [field.name for field in result.schema], [tuple(row.values()) for row in result] -def session(engine: str, dsn: str | None = None, loads=()) -> Session: - """Open a session on `engine`. `loads` is a sequence of (table, path) - pairs; each file is loaded into the session as a table (local engines).""" +def session(engine: str, connection: Mapping | None = None, loads=()) -> Session: + """Open a session on `engine`. `connection` is the project's + (``synalog.project.resolve``), which a remote engine needs; `loads` is a + sequence of (table, path) pairs, each file loaded as a table (local + engines).""" if engine == "sqlite": return SqliteSession(loads) if engine == "duckdb": return DuckDbSession(loads) if engine == "psql": - return PsqlSession(dsn, loads) + return PsqlSession(connection, loads) if engine == "trino": - return _trino_session(dsn, loads) + return _trino_session(connection, loads) if engine == "presto": - return _presto_session(dsn, loads) + return _presto_session(connection, loads) if engine == "databricks": - return _databricks_session(dsn, loads) + return _databricks_session(connection, loads) if engine == "bigquery": - return BigQuerySession(dsn, loads) + return BigQuerySession(connection, loads) raise RunnerUnavailable( f"Engine '{engine}' has no local runner. Use the 'print' command to get" " the SQL and run it with your own client." ) -def run_sql(engine: str, sql: str, dsn: str | None = None, loads=()) -> Result: +def run_sql(engine: str, sql: str, connection: Mapping | None = None, loads=()) -> Result: """Execute `sql` against `engine`, returning (column_names, rows) of its last statement that produced rows. `loads` is a sequence of (table, path) pairs; each file is loaded into the connection as a table before the script runs. """ - with session(engine, dsn, loads) as s: + with session(engine, connection, loads) as s: return s.run(sql) diff --git a/skills/synalog/SKILL.md b/skills/synalog/SKILL.md index 1b5a958fd..4079b8881 100644 --- a/skills/synalog/SKILL.md +++ b/skills/synalog/SKILL.md @@ -5,7 +5,7 @@ description: Write, validate and run Synalog programs (.l files), a Datalog-fami # Synalog -Synalog is a logic programming language from the Datalog family. A program is a **project**: a folder with a `synalog.toml`, holding one predicate per `.l` file in `tables/`, `concepts/` and `rules/` (the layout of semantic layers). Each predicate compiles to SQL and runs on duckdb (default), sqlite, psql, bigquery, trino, presto or databricks. Predicates import the predicates they build on, so knowledge accumulates instead of being re-derived in every query. +Synalog is a logic programming language from the Datalog family. A program is a **project**: a folder with a `layer.toml`, holding one predicate per `.l` file in `tables/`, `concepts/` and `rules/` (the layout of semantic layers). Each predicate compiles to SQL and runs on duckdb (default), sqlite, psql, bigquery, trino, presto or databricks. Predicates import the predicates they build on, so knowledge accumulates instead of being re-derived in every query. ## Workflow @@ -23,7 +23,7 @@ CLI notes (argument order follows logica: FILE first, then the command): - `--load TABLE=PATH` (repeatable) loads a data file as a database table; the program refers to it by the lowercase table name. duckdb reads csv/tsv/json/jsonl/parquet; sqlite csv/tsv/json/jsonl (no parquet). - `--limit N` / `--offset N` paginate results; use them instead of reading huge outputs. -- `--engine ` overrides the program's `@Engine` annotation; without either, the project's `synalog.toml` decides (see *Projects and connections*), else duckdb. +- `--engine ` overrides the program's `@Engine` annotation; without either, the project's `layer.toml` decides (see *Projects and connections*), else duckdb. - `synalog rules/TopRegion.l print TopRegion` shows the compiled SQL without executing. - `synalog rules/TopRegion.l verify` runs every `@Assert` of the file against the database and prints the counterexamples of those that fail. - Quick experiments without a file: `synalog -c 'Digit(d) :- d in [1, 2, 3];' run Digit` @@ -41,7 +41,7 @@ Runnable projects ship with this skill under [`examples/`](examples/). Every fil ## Projects and connections -A folder with a `synalog.toml` is a project. synalog finds it from the program's folder or the current directory, and their parents; its `[connection]` gives the engine and the database as plain fields, and `run`, `print` and `introspect` use them — no `--engine`, no connection string: +A folder with a `layer.toml` is a project. synalog finds it from the program's folder or the current directory, and their parents; its `[connection]` gives the engine and the database as plain fields, and `run`, `print` and `introspect` use them — no `--engine`, no connection string: ```toml [project] @@ -59,7 +59,7 @@ schema = "public" - **Secrets never go in the file** — synalog refuses it and names the variable to use. They come from the environment as `SYNALOG__` (`SYNALOG_PSQL_PASSWORD`, `SYNALOG_DATABRICKS_ACCESS_TOKEN`; `GOOGLE_APPLICATION_CREDENTIALS` for BigQuery's key file), usually from the project's `.env`, which synalog loads and git must ignore. Never read or print `.env`. - Fields per engine: `psql` host, port, database, user, password, sslmode, schema; `trino`/`presto` host, port, scheme, catalog, schema, user, auth, password; `databricks` server_hostname, http_path, access_token, catalog, schema; `bigquery` project, dataset, credentials, location. -- Precedence: `--engine` and `@Engine` over the project's engine; `--dsn`, then `SYNALOG__DSN`, then `synalog.toml`, then a connection saved with `synalog connect `. +- The project's file is the only place a connection comes from. `synalog connect key=value ...` writes it (secret fields to `.env`), `synalog connect` shows it, secrets hidden. `--engine` and `@Engine` choose the dialect over the project's engine; a remote engine runs only through the project's connection to it. - `[project]` (`name`, `description`) is for the tools around synalog; synalog ignores it. - `synalog introspect` (inside a project) writes the project's `tables/`: one `tables/.l` per table of its database, ordered by its first column, described from the table's name (`order_items` → "Order items.") until you write a better description. Run it again after a schema change: declarations are regenerated, front matter written by hand is kept. @@ -125,15 +125,15 @@ Fix the quoted statement and re-run: later syntax errors only surface once earli **Compile errors** (`print`/`run`) mean SQL generation failed, e.g. `Compile error: No rules are defining 'Missing', but compilation was requested.` Usually a typo in the predicate name passed to the command, or an imported predicate run by its short name (run it from its own module instead). -**Connection errors** come from the project's `synalog.toml` and environment: +**Connection errors** come from the project's `layer.toml` and environment: | Message | Fix | |---|---| -| `synalog.toml: password is a secret — remove it from the file and set SYNALOG_PSQL_PASSWORD …` | move the secret to `.env`; never commit it | +| `layer.toml: password is a secret — remove it from the file and set SYNALOG_PSQL_PASSWORD …` | move the secret to `.env`; never commit it | | `The databricks connection needs SYNALOG_DATABRICKS_ACCESS_TOKEN` | the secret is missing from `.env`: ask the user for it | -| `synalog.toml: psql has no field 'hots' (fields: …)` | use one of the fields listed | +| `layer.toml: psql has no field 'hots' (fields: …)` | use one of the fields listed | | `The psql engine needs psycopg with its libpq (...)` | the driver ships with synalog; reinstall it with its libpq: `pip install 'psycopg[binary]'` | -| `The psql engine needs a connection string: …` | give the project a `[connection]`, or pass `--dsn` | +| `The psql engine needs the project's connection: …` | connect the project: `synalog connect psql key=value ...` (ask the user for the credentials) | A query that runs but returns nothing is not an error: check the filter values against the data before concluding there is none. @@ -142,7 +142,7 @@ A query that runs but returns nothing is not an error: check the filter values a ``` AGENTS.md / CLAUDE.md agent instructions for this project .agents/skills/synalog/ this skill -synalog.toml the project's name, description and database (committed) +layer.toml the project's name, description and database (committed) .env its secrets (git-ignored) tables/ the data: one file per database table concepts/ entities, relationships and clean views, built on tables @@ -172,7 +172,7 @@ TotalByRegion(region:, total? += amount) distinct :- Region(region:), Sales(regi ## Imports -`import ..;` imports the predicate of the project's file `/.l`: imports resolve from the project's folder (the one holding `synalog.toml`), whichever file runs and wherever from (`--import-root DIR`, repeatable, overrides it). +`import ..;` imports the predicate of the project's file `/.l`: imports resolve from the project's folder (the one holding `layer.toml`), whichever file runs and wherever from (`--import-root DIR`, repeatable, overrides it). ```logica import rules.TotalByRegion.TotalByRegion; diff --git a/skills/synalog/examples/company/synalog.toml b/skills/synalog/examples/company/layer.toml similarity index 100% rename from skills/synalog/examples/company/synalog.toml rename to skills/synalog/examples/company/layer.toml diff --git a/skills/synalog/examples/org/synalog.toml b/skills/synalog/examples/org/layer.toml similarity index 100% rename from skills/synalog/examples/org/synalog.toml rename to skills/synalog/examples/org/layer.toml diff --git a/skills/synalog/examples/sales/synalog.toml b/skills/synalog/examples/sales/layer.toml similarity index 100% rename from skills/synalog/examples/sales/synalog.toml rename to skills/synalog/examples/sales/layer.toml diff --git a/tests/cli/test_assertions.py b/tests/cli/test_assertions.py index 2435bfc87..835472d0d 100644 --- a/tests/cli/test_assertions.py +++ b/tests/cli/test_assertions.py @@ -198,7 +198,7 @@ def project_db(tmp_path, monkeypatch): """A project connected to psql, with duckdb standing in for the server: the queries `check` sends are recorded, and executed in memory in duckdb's dialect.""" - (tmp_path / "synalog.toml").write_text(PSQL_PROJECT) + (tmp_path / "layer.toml").write_text(PSQL_PROJECT) monkeypatch.chdir(tmp_path) sent = [] plan_for = synalog.plan @@ -209,8 +209,8 @@ def plan(source, predicate, engine=None, **kwargs): monkeypatch.setattr("synalog.checking._synalog.plan", plan) - def session(engine, dsn=None, loads=()): - sent.append((engine, dsn)) + def session(engine, connection=None, loads=()): + sent.append((engine, connection)) return DuckDbSession() monkeypatch.setattr("synalog.checking.session", session) @@ -229,8 +229,9 @@ def test_check_refuses_a_violated_assertion_in_a_project(project_db): # Text values are quoted: data reads as data. assert '("a", "b", "d")' in counterexamples and '("a", "c", "d")' in counterexamples # It ran on the project's engine, through the project's connection. - ((engine, dsn),) = project_db - assert engine == "psql" and dsn.startswith("postgresql://u@db.example.com:5432/d?") + ((engine, connection),) = project_db + assert engine == "psql" + assert (connection["host"], connection["port"], connection["database"]) == ("db.example.com", 5432, "d") def test_check_accepts_assertions_that_hold_in_a_project(project_db): @@ -269,10 +270,10 @@ def test_check_outside_a_project_is_offline(tmp_path, monkeypatch): def test_unreachable_database_is_a_warning(tmp_path, monkeypatch): - (tmp_path / "synalog.toml").write_text(PSQL_PROJECT) + (tmp_path / "layer.toml").write_text(PSQL_PROJECT) monkeypatch.chdir(tmp_path) - def session(engine, dsn=None, loads=()): + def session(engine, connection=None, loads=()): raise OSError("could not connect to server") monkeypatch.setattr("synalog.checking.session", session) @@ -282,7 +283,10 @@ def session(engine, dsn=None, loads=()): ) -def test_explicit_dsn_is_a_database(tmp_path, monkeypatch): +def test_a_project_elsewhere_is_a_database(tmp_path, monkeypatch): + # The project need not be the current directory: `project` names its folder. + (tmp_path / "proj").mkdir() + (tmp_path / "proj" / "layer.toml").write_text(PSQL_PROJECT) monkeypatch.chdir(tmp_path) sent = [] @@ -292,14 +296,14 @@ def test_explicit_dsn_is_a_database(tmp_path, monkeypatch): lambda source, predicate, engine=None, **kwargs: plan_for(source, predicate, engine="duckdb", **kwargs), ) - def session(engine, dsn=None, loads=()): - sent.append((engine, dsn)) + def session(engine, connection=None, loads=()): + sent.append((engine, connection)) return DuckDbSession() monkeypatch.setattr("synalog.checking.session", session) source = ASSERTION + PARENT + CLOSURE - assert synalog.check(source, engine="psql", dsn="postgresql://h/d") == ([], []) - assert sent == [("psql", "postgresql://h/d")] + assert synalog.check(source, project=tmp_path / "proj") == ([], []) + assert [(engine, connection["host"]) for engine, connection in sent] == [("psql", "db.example.com")] def test_a_counterexample_from_the_data_reads_as_a_value(tmp_path): diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index 66814064b..74613d385 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -7,6 +7,7 @@ from __future__ import annotations import json +import os import subprocess import sys @@ -291,11 +292,11 @@ def test_import_root_flag(tmp_path): def test_engine_annotation_picks_runner(tmp_path): - # trino has a runner now; without the driver or a DSN it should fail with a + # trino has a runner now; without the driver or a connection it should fail with a # trino-specific message, not the generic "no local runner". path = tmp_path / "trino.l" path.write_text('@Engine("trino");\nGreeting(text: "hi");\n') - result = synalog(str(path), "run", "Greeting") + result = synalog(str(path), "run", "Greeting", cwd=tmp_path) assert result.returncode == 1 assert "trino" in result.stderr assert "no local runner" not in result.stderr @@ -310,143 +311,69 @@ def test_unknown_engine_has_no_runner(tmp_path): assert result.returncode == 0, result.stderr -def test_connect_save_list_show_remove(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) # subprocess inherits env +def test_connect_writes_the_project_file(tmp_path): + # The connection lives in layer.toml, its secret in .env: never elsewhere. + assert "No connection" in synalog("connect", cwd=tmp_path).stdout - assert synalog("connect").stdout.strip() == "No saved connections." - - saved = synalog("connect", "trino", "trino://alice:secret@host:443/hive/analytics") - assert saved.returncode == 0 - - # list and show hide credentials; the password never appears - listed = synalog("connect").stdout - assert "trino" in listed and "secret" not in listed and "***" in listed - shown = synalog("connect", "trino").stdout - assert "alice:***@host" in shown and "secret" not in shown - - # the real secret is what gets persisted (and used to connect) - stored = json.loads((tmp_path / "connections.json").read_text()) - assert stored["trino"].endswith("secret@host:443/hive/analytics") - - removed = synalog("connect", "remove", "trino") - assert removed.returncode == 0 and "Removed" in removed.stdout - assert synalog("connect").stdout.strip() == "No saved connections." + saved = synalog( + "connect", "trino", "host=host", "port=443", "catalog=hive", "user=alice", + "auth=password", "password=secret", cwd=tmp_path, + ) + assert saved.returncode == 0, saved.stderr + toml = tomllib.loads((tmp_path / "layer.toml").read_text())["connection"] + assert toml["engine"] == "trino" and toml["host"] == "host" and "password" not in toml + assert 'SYNALOG_TRINO_PASSWORD="secret"' in (tmp_path / ".env").read_text() + # shown with the secret's variable, never its value + shown = synalog("connect", cwd=tmp_path).stdout + assert "host = host" in shown and "SYNALOG_TRINO_PASSWORD set" in shown and "secret" not in shown -def test_connect_masks_token_only_userinfo(tmp_path, monkeypatch): - # Databricks DSNs carry a token-only userinfo (token:dapi...); the token is - # masked on display but the username half ("token") is kept for readability. - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - dsn = "databricks://token:dapi-secret@host.cloud.databricks.com/sql/1.0" - assert synalog("connect", "databricks", dsn).returncode == 0 - shown = synalog("connect", "databricks").stdout - assert "token:***@host" in shown and "dapi-secret" not in shown + cleared = synalog("connect", "clear", cwd=tmp_path) + assert cleared.returncode == 0 + assert "No connection" in synalog("connect", cwd=tmp_path).stdout + assert not (tmp_path / ".env").exists() -def test_connect_show_missing_engine(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("connect", "trino") - assert result.returncode == 0 - assert "No saved connection for trino" in result.stdout +def test_connect_with_missing_fields_writes_nothing(tmp_path): + result = synalog("connect", "psql", "host=h", cwd=tmp_path) + assert result.returncode == 1 + assert "needs database, user" in result.stderr + assert not (tmp_path / "layer.toml").exists() -def test_connect_remove_usage_error(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("connect", "remove") +def test_connect_takes_fields_not_a_connection_string(tmp_path): + result = synalog("connect", "psql", "postgresql://u@h/d", cwd=tmp_path) assert result.returncode == 2 # click usage error - assert "connect remove " in result.stderr + assert "is not key=value" in result.stderr -def test_connect_remove_missing_connection(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("connect", "remove", "trino") +def test_connect_rejects_local_engine(tmp_path): + result = synalog("connect", "duckdb", cwd=tmp_path) assert result.returncode == 1 - assert "No saved connection for trino" in result.stderr + assert "takes no connection" in result.stderr -def test_connect_rejects_local_engine(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("connect", "duckdb", "whatever") - assert result.returncode == 1 - assert "does not use a connection string" in result.stderr - - -def test_connect_resolves_for_run(tmp_path, monkeypatch): - # A saved connection is consumed by `run`: with a bogus DSN saved, running a - # trino program reaches the driver/connection layer (not "needs a connection - # string" and not "no local runner"). - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - synalog("connect", "trino", "trino://nobody@127.0.0.1:1/memory/default") +def test_remote_engine_without_a_project_says_how_to_connect(tmp_path): path = tmp_path / "p.l" path.write_text('@Engine("trino");\nGreeting(text: "hi");\n') - result = synalog(str(path), "run", "Greeting") + result = synalog(str(path), "run", "Greeting", cwd=tmp_path) assert result.returncode == 1 - assert "needs a connection string" not in result.stderr - assert "no local runner" not in result.stderr + assert "synalog connect trino" in result.stderr -# --------------------------------------------------------------------------- -# .env auto-loading -# --------------------------------------------------------------------------- - - -def test_dotenv_in_cwd_provides_dsn(tmp_path, monkeypatch): - # A .env in the working directory supplies SYNALOG__DSN: running a - # trino program reaches the driver/connection layer (DSN resolved), not the - # "needs a connection string" error. - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - monkeypatch.delenv("SYNALOG_TRINO_DSN", raising=False) - (tmp_path / ".env").write_text( - "SYNALOG_TRINO_DSN=trino://nobody@127.0.0.1:1/memory/default\n" - ) +def test_connection_is_used_by_run(tmp_path): + # The project's connection is consumed by `run`: to a server that is not + # there, it fails at the driver, not for want of a connection. + assert synalog( + "connect", "trino", "host=127.0.0.1", "port=1", "catalog=memory", "user=nobody", cwd=tmp_path + ).returncode == 0 (tmp_path / "p.l").write_text('@Engine("trino");\nGreeting(text: "hi");\n') result = synalog("p.l", "run", "Greeting", cwd=tmp_path) assert result.returncode == 1 - assert "needs a connection string" not in result.stderr + assert "needs the project's connection" not in result.stderr assert "no local runner" not in result.stderr -def test_dotenv_loaded_from_program_directory(tmp_path, monkeypatch): - # Run from elsewhere, pointing at a program whose directory holds the .env; - # that directory is the project root and its .env is loaded. - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - monkeypatch.delenv("SYNALOG_TRINO_DSN", raising=False) - project = tmp_path / "project" - project.mkdir() - (project / ".env").write_text( - "SYNALOG_TRINO_DSN=trino://nobody@127.0.0.1:1/memory/default\n" - ) - (project / "p.l").write_text('@Engine("trino");\nGreeting(text: "hi");\n') - result = synalog(str(project / "p.l"), "run", "Greeting", cwd="/") - assert result.returncode == 1 - assert "needs a connection string" not in result.stderr - - -def test_real_env_overrides_dotenv(tmp_path, monkeypatch): - # A variable already set in the environment beats the .env file. - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - monkeypatch.setenv("SYNALOG_PSQL_DSN", "postgresql://nobody@127.0.0.1:1/none") - (tmp_path / ".env").write_text("SYNALOG_PSQL_DSN=postgresql://bogus@bogus:0/x\n") - # introspect echoes the connection error; the real-env host must be the one - # it tries (127.0.0.1), not the .env host (bogus). - result = synalog("introspect", "psql", cwd=tmp_path) - assert result.returncode == 1 - assert "needs a connection string" not in result.stderr - assert "bogus" not in result.stderr - - -def test_dotenv_sets_config_dir(tmp_path, monkeypatch): - # SYNALOG_CONFIG_DIR can come from .env, redirecting where connections save. - monkeypatch.delenv("SYNALOG_CONFIG_DIR", raising=False) - store = tmp_path / "store" - (tmp_path / ".env").write_text(f"SYNALOG_CONFIG_DIR={store}\n") - saved = synalog( - "connect", "trino", "trino://a:b@host:443/c/d", cwd=tmp_path - ) - assert saved.returncode == 0, saved.stderr - assert (store / "connections.json").is_file() - - def test_missing_predicate_argument(program_file): result = synalog(str(program_file), "run") assert result.returncode == 2 # click usage error @@ -465,42 +392,27 @@ def test_unknown_command(program_file): assert "unknown command 'explode'" in result.stderr -def test_introspect_rejects_non_catalog_engine(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("introspect", "duckdb") - assert result.returncode == 1 - assert "cannot be introspected" in result.stderr - - -def test_introspect_requires_connection(tmp_path, monkeypatch): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog("introspect", "psql") +def test_introspect_needs_a_project_connection(tmp_path): + result = synalog("introspect", cwd=tmp_path) assert result.returncode == 1 - assert "needs a connection string" in result.stderr - - -def test_introspect_usage_error_without_engine(): - result = synalog("introspect") - assert result.returncode == 2 # click usage error - assert "introspect " in result.stderr + assert "there is none" in result.stderr and "synalog connect" in result.stderr -def test_introspect_usage_error_too_many_args(): - result = synalog("introspect", "psql", "dsn-a", "dsn-b") +def test_introspect_takes_no_argument(tmp_path): + result = synalog("introspect", "psql", cwd=tmp_path) assert result.returncode == 2 # click usage error - assert "introspect [engine] [dsn]" in result.stderr + assert "usage: synalog introspect" in result.stderr -def test_introspect_uses_positional_dsn(tmp_path, monkeypatch): - # An explicit DSN argument is consumed: with a bogus one, introspection - # reaches the driver/connection layer (not "needs a connection string"). - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - result = synalog( - "introspect", "psql", "postgresql://nobody@127.0.0.1:1/none" - ) +def test_introspect_uses_the_project_connection(tmp_path): + # To a server that is not there: it fails at the driver. + assert synalog( + "connect", "psql", "host=127.0.0.1", "port=1", "database=none", "user=nobody", cwd=tmp_path + ).returncode == 0 + result = synalog("introspect", cwd=tmp_path) assert result.returncode == 1 - assert "needs a connection string" not in result.stderr - assert "cannot be introspected" not in result.stderr + assert "there is none" not in result.stderr + assert "Traceback" not in result.stderr def test_missing_file(): @@ -764,13 +676,13 @@ def test_repl_clear_drops_loaded_tables(employees_csv): # --------------------------------------------------------------------------- -# synalog.toml: the project's connection +# layer.toml: the project's connection # --------------------------------------------------------------------------- def _project(tmp_path, toml: str, env: str = ""): - """A project folder: synalog.toml, an optional .env, a rule in rules/.""" - (tmp_path / "synalog.toml").write_text(toml) + """A project folder: layer.toml, an optional .env, a rule in rules/.""" + (tmp_path / "layer.toml").write_text(toml) if env: (tmp_path / ".env").write_text(env) (tmp_path / "rules").mkdir() @@ -792,7 +704,7 @@ def test_project_file_round_trip(): def test_project_file_refuses_secrets_and_unknown_fields(tmp_path): from synalog import project - path = tmp_path / "synalog.toml" + path = tmp_path / "layer.toml" path.write_text('[connection]\nengine = "psql"\nhost = "h"\ndatabase = "d"\nuser = "u"\npassword = "x"\n') with pytest.raises(project.ProjectError, match="SYNALOG_PSQL_PASSWORD"): project.connection(path) @@ -806,17 +718,32 @@ def test_project_file_refuses_secrets_and_unknown_fields(tmp_path): assert project.connection(path) is None -def test_project_dsn_reads_secrets_from_the_environment(tmp_path, monkeypatch): - from urllib.parse import unquote, urlparse - +def test_project_resolve_reads_secrets_from_the_environment(tmp_path, monkeypatch): from synalog import project - path = tmp_path / "synalog.toml" - path.write_text(project.dumps("psql", {"host": "h", "database": "d", "user": "u"})) + (tmp_path / "layer.toml").write_text(project.dumps("psql", {"host": "h", "database": "d", "user": "u"})) + (tmp_path / "rules").mkdir() monkeypatch.setenv("SYNALOG_PSQL_PASSWORD", 'p"w@:/') - url = urlparse(project.project_dsn(path, "psql")) - assert (url.hostname, url.port, url.path, unquote(url.password)) == ("h", 5432, "/d", 'p"w@:/') - assert project.project_dsn(path, "trino") is None # another engine + conn = project.resolve(tmp_path / "rules") # found from a subfolder + assert conn == { + "engine": "psql", "host": "h", "port": 5432, "database": "d", "user": "u", + "password": 'p"w@:/', "sslmode": "prefer", "schema": "public", + } + (tmp_path / "layer.toml").write_text("# no connection: a local project\n") + assert project.resolve(tmp_path) is None + + +def test_two_projects_keep_their_own_secrets(tmp_path, monkeypatch): + # One process, two projects: each reads its own .env, and neither leaks + # into the environment for the other. + from synalog import project + + monkeypatch.delenv("SYNALOG_PSQL_PASSWORD", raising=False) + for name in ("a", "b"): + project.write(tmp_path / name, "psql", {"host": "h", "database": "d", "user": "u", "password": f"pw-{name}"}) + assert project.resolve(tmp_path / "a")["password"] == "pw-a" + assert project.resolve(tmp_path / "b")["password"] == "pw-b" + assert "SYNALOG_PSQL_PASSWORD" not in os.environ def test_project_engine_and_connection_used_by_run(tmp_path): @@ -825,7 +752,7 @@ def test_project_engine_and_connection_used_by_run(tmp_path): program = _project(tmp_path, '[connection]\nengine = "trino"\nhost = "127.0.0.1"\nport = 1\ncatalog = "memory"\nuser = "nobody"\n') result = synalog(str(program), "run", "Greeting", cwd=tmp_path) assert result.returncode == 1 - assert "needs a connection string" not in result.stderr + assert "needs the project's connection" not in result.stderr assert "no local runner" not in result.stderr @@ -873,10 +800,10 @@ def test_introspect_defaults_to_the_project(tmp_path): def test_project_write_keeps_other_tables_and_lines(tmp_path): from synalog import config, project - (tmp_path / "synalog.toml").write_text('[project]\nname = "sales"\n\n[connection]\nengine = "trino"\nhost = "old"\n') + (tmp_path / "layer.toml").write_text('[project]\nname = "sales"\n\n[connection]\nengine = "trino"\nhost = "old"\n') (tmp_path / ".env").write_text('OTHER=1\nSYNALOG_PSQL_PASSWORD="old"\n') project.write(tmp_path, "psql", {"host": "h", "database": "d", "user": "u", "password": 'p"w'}) - data = tomllib.loads((tmp_path / "synalog.toml").read_text()) + data = tomllib.loads((tmp_path / "layer.toml").read_text()) assert data["project"] == {"name": "sales"} assert data["connection"]["engine"] == "psql" and "password" not in data["connection"] assert (tmp_path / ".env").read_text() == 'OTHER=1\nSYNALOG_PSQL_PASSWORD="p"w"\n' @@ -897,7 +824,7 @@ def test_project_write_bigquery_key_and_clear(tmp_path): assert json.loads(key.read_text()) == {"type": "service_account"} assert f'GOOGLE_APPLICATION_CREDENTIALS="{key.resolve()}"' in (tmp_path / ".env").read_text() project.clear(tmp_path) - assert "connection" not in tomllib.loads((tmp_path / "synalog.toml").read_text()) + assert "connection" not in tomllib.loads((tmp_path / "layer.toml").read_text()) assert not key.exists() and not (tmp_path / ".env").exists() @@ -905,7 +832,8 @@ def test_run_reports_a_driver_error_without_traceback(tmp_path): # A server that refuses the connection is reported as one error line. program = tmp_path / "p.l" program.write_text("V(x:) :- x in [1, 2];\n") - result = synalog(str(program), "run", "V", "--engine", "psql", "--dsn", "postgresql://nobody@127.0.0.1:1/x") + (tmp_path / "layer.toml").write_text('[connection]\nengine = "psql"\nhost = "127.0.0.1"\nport = 1\ndatabase = "x"\nuser = "nobody"\n') + result = synalog(str(program), "run", "V", cwd=tmp_path) assert result.returncode == 1 assert "OperationalError" in result.stderr + result.stdout assert "Traceback" not in result.stderr @@ -923,7 +851,7 @@ def test_run_reports_a_missing_table_without_traceback(tmp_path): def test_imports_resolve_from_the_project_folder(tmp_path): # In a project, `import tables.Orders.Orders;` reads the project's # tables/Orders.l from any of its files, wherever the CLI runs from. - (tmp_path / "synalog.toml").write_text('[project]\nname = "shop"\ndescription = "Orders."\n') + (tmp_path / "layer.toml").write_text('[project]\nname = "shop"\ndescription = "Orders."\n') (tmp_path / "tables").mkdir() (tmp_path / "rules").mkdir() (tmp_path / "tables" / "Orders.l").write_text( diff --git a/tests/cli/test_execution.py b/tests/cli/test_execution.py index 8c4b089f6..dacb1f34e 100644 --- a/tests/cli/test_execution.py +++ b/tests/cli/test_execution.py @@ -36,7 +36,7 @@ def run(self, script): def counted(monkeypatch): sessions = [] - def session(engine, dsn=None, loads=()): + def session(engine, connection=None, loads=()): sessions.append(CountingSession(loads)) return sessions[-1] diff --git a/tests/cli/test_introspect.py b/tests/cli/test_introspect.py index a14283093..ff11ab4bf 100644 --- a/tests/cli/test_introspect.py +++ b/tests/cli/test_introspect.py @@ -109,10 +109,10 @@ def test_info_schema_sql_shape(engine): assert "ORDER BY table_schema, table_name, ordinal_position" in sql -def test_bigquery_sql_uses_region_from_dsn_location(): +def test_bigquery_sql_uses_the_connection_location(): default = _introspect_sql("bigquery", None) assert "`region-us`.INFORMATION_SCHEMA.COLUMNS" in default - eu = _introspect_sql("bigquery", "bigquery://my-proj?location=EU") + eu = _introspect_sql("bigquery", {"engine": "bigquery", "project": "my-proj", "location": "EU"}) assert "`region-eu`.INFORMATION_SCHEMA.COLUMNS" in eu @@ -161,18 +161,16 @@ def test_introspect_rejects_unknown_engine(): introspect.introspect("sqlite") -def test_introspect_requires_dsn(monkeypatch, tmp_path): - monkeypatch.setenv("SYNALOG_CONFIG_DIR", str(tmp_path)) - monkeypatch.delenv("SYNALOG_PSQL_DSN", raising=False) - with pytest.raises(introspect.RunnerUnavailable, match="needs a connection string"): +def test_introspect_requires_the_project_connection(): + with pytest.raises(introspect.RunnerUnavailable, match="needs the project's connection"): introspect.introspect("psql") def test_introspectable_matches_connectable_engines(): # introspect should cover exactly the engines `synalog connect` accepts. - from synalog.cli import DSN_ENGINES + from synalog.project import ENGINES - assert set(INTROSPECTABLE) == set(DSN_ENGINES) + assert set(INTROSPECTABLE) == set(ENGINES) def test_write_tables_writes_one_checked_file_per_table(tmp_path): diff --git a/tests/cli/test_runners.py b/tests/cli/test_runners.py index cb3592e5c..8d3ad9077 100644 --- a/tests/cli/test_runners.py +++ b/tests/cli/test_runners.py @@ -38,7 +38,7 @@ def block(name, *args, **kwargs): monkeypatch.setattr(builtins, "__import__", block) with pytest.raises(RunnerUnavailable) as excinfo: - run_sql(engine, "SELECT 1", dsn="x://y") + run_sql(engine, "SELECT 1", {"engine": engine}) assert engine in str(excinfo.value) assert "pip install" in str(excinfo.value) @@ -49,26 +49,16 @@ def test_remote_engine_rejects_loads(engine): run_sql(engine, "SELECT 1", loads=[("t", "/tmp/x.csv")]) -@pytest.mark.parametrize("engine", ["trino", "presto", "databricks", "psql"]) -def test_require_dsn_missing(engine, monkeypatch): - # No --dsn, no env var, no saved config -> a helpful "needs a connection - # string" error rather than a driver/network failure. - monkeypatch.delenv(f"SYNALOG_{engine.upper()}_DSN", raising=False) - monkeypatch.setattr(runners, "_resolve_dsn", lambda eng, dsn: None) - with pytest.raises(RunnerUnavailable, match="needs a connection string"): +@pytest.mark.parametrize("engine", ["trino", "presto", "databricks", "psql", "bigquery"]) +def test_remote_engine_needs_the_project_connection(engine): + # No connection -> what to run, rather than a driver/network failure. + with pytest.raises(RunnerUnavailable, match=f"needs the project's connection: run 'synalog connect {engine}"): run_sql(engine, "SELECT 1") -def test_resolve_dsn_precedence(monkeypatch): - # flag > env > saved config - monkeypatch.setenv("SYNALOG_TRINO_DSN", "from-env") - assert runners._resolve_dsn("trino", "from-flag") == "from-flag" - assert runners._resolve_dsn("trino", None) == "from-env" - monkeypatch.delenv("SYNALOG_TRINO_DSN") - # falls through to the saved connection file (imported lazily inside - # _resolve_dsn, so patch it where it lives) - monkeypatch.setattr("synalog.config.saved_connection", lambda eng: "from-config") - assert runners._resolve_dsn("trino", None) == "from-config" +def test_a_connection_to_another_engine_is_not_used(): + with pytest.raises(RunnerUnavailable, match="needs the project's connection"): + run_sql("trino", "SELECT 1", {"engine": "psql", "host": "h"}) def test_a_run_leaves_no_working_tables(): diff --git a/tests/e2e/test_introspect_live.py b/tests/e2e/test_introspect_live.py index 7e6e59fc7..f8c49b8b5 100644 --- a/tests/e2e/test_introspect_live.py +++ b/tests/e2e/test_introspect_live.py @@ -18,30 +18,34 @@ import pytest import synalog +from synalog import project from synalog.introspect import introspect -def _psql_dsn() -> str: - port = os.environ.get("SYNALOG_E2E_PSQL_PORT", "5433") - return f"postgresql://logica:logica@localhost:{port}/logica" +def _connect(folder, engine: str, fields: dict) -> dict: + """The engine's connection, the only way synalog has one: a project's + layer.toml (its secrets in .env), resolved back.""" + project.write(folder, engine, fields) + return project.resolve(folder) -def _trino_dsn() -> str: - host = os.environ.get("SYNALOG_E2E_TRINO_HOST", "localhost") - port = os.environ.get("SYNALOG_E2E_TRINO_PORT", "8080") - return f"trino://e2e@{host}:{port}/tpch" +def _psql(folder) -> dict: + port = os.environ.get("SYNALOG_E2E_PSQL_PORT", "5433") + fields = {"host": "localhost", "port": port, "database": "logica", "user": "logica", "password": "logica"} + return _connect(folder, "psql", fields) -def _presto_dsn() -> str: - host = os.environ.get("SYNALOG_E2E_PRESTO_HOST", "localhost") - port = os.environ.get("SYNALOG_E2E_PRESTO_PORT", "8081") - return f"presto://e2e@{host}:{port}/tpch" +def _trino_like(engine: str, folder) -> dict: + default_port = "8080" if engine == "trino" else "8081" + host = os.environ.get(f"SYNALOG_E2E_{engine.upper()}_HOST", "localhost") + port = os.environ.get(f"SYNALOG_E2E_{engine.upper()}_PORT", default_port) + return _connect(folder, engine, {"host": host, "port": port, "catalog": "tpch", "user": "e2e"}) @pytest.mark.engine("psql") -def test_introspect_psql_reads_seeded_schemas(runner_for): +def test_introspect_psql_reads_seeded_schemas(runner_for, tmp_path): runner_for("psql") # skip/fail per availability, like the golden e2e tests - text = introspect("psql", _psql_dsn()) + text = introspect("psql", _psql(tmp_path)) # Schema-qualified predicate names, columns preserved in order. assert ( @@ -59,13 +63,10 @@ def test_introspect_psql_reads_seeded_schemas(runner_for): assert synalog.check(program, engine="psql")[0] == [] -@pytest.mark.parametrize( - "engine,dsn", - [("trino", _trino_dsn()), ("presto", _presto_dsn())], -) -def test_introspect_trino_presto_reads_tpch(engine, dsn, runner_for): +@pytest.mark.parametrize("engine", ["trino", "presto"]) +def test_introspect_trino_presto_reads_tpch(engine, runner_for, tmp_path): runner_for(engine) - text = introspect(engine, dsn) + text = introspect(engine, _trino_like(engine, tmp_path)) # tpch ships the same 8 tables in each scale-factor schema (sf1, tiny, ...). assert "customer(custkey:, name:, address:, nationkey:" in text