You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ON CONCAT("static"."id_a", "static"."id_b") = CONCAT("latest"."id_a", "latest"."id_b")
1798
+
WHERE
1799
+
"latest"."test_valid_to" IS NULL
1800
+
), "latest_deleted" AS (
1801
+
SELECT
1802
+
TRUE AS "_exists",
1803
+
CONCAT("id_a", "id_b") AS "_key0",
1804
+
MAX("test_valid_to") AS "test_valid_to"
1805
+
FROM "deleted"
1806
+
GROUP BY
1807
+
CONCAT("id_a", "id_b")
1808
+
), "joined" AS (
1809
+
SELECT
1810
+
"source"."_exists" AS "_exists",
1811
+
"latest"."id_a" AS "t_id_a",
1812
+
"latest"."id_b" AS "t_id_b",
1813
+
"latest"."name" AS "t_name",
1814
+
"latest"."price" AS "t_price",
1815
+
"latest"."test_VALID_from" AS "t_test_VALID_from",
1816
+
"latest"."test_valid_to" AS "t_test_valid_to",
1817
+
"source"."id_a" AS "id_a",
1818
+
"source"."id_b" AS "id_b",
1819
+
"source"."name" AS "name",
1820
+
"source"."price" AS "price"
1821
+
FROM "latest"
1822
+
LEFT JOIN "source"
1823
+
ON CONCAT("latest"."id_a", "latest"."id_b") = CONCAT("source"."id_a", "source"."id_b")
1824
+
UNION ALL
1825
+
SELECT
1826
+
"source"."_exists" AS "_exists",
1827
+
"latest"."id_a" AS "t_id_a",
1828
+
"latest"."id_b" AS "t_id_b",
1829
+
"latest"."name" AS "t_name",
1830
+
"latest"."price" AS "t_price",
1831
+
"latest"."test_VALID_from" AS "t_test_VALID_from",
1832
+
"latest"."test_valid_to" AS "t_test_valid_to",
1833
+
"source"."id_a" AS "id_a",
1834
+
"source"."id_b" AS "id_b",
1835
+
"source"."name" AS "name",
1836
+
"source"."price" AS "price"
1837
+
FROM "latest"
1838
+
RIGHT JOIN "source"
1839
+
ON CONCAT("latest"."id_a", "latest"."id_b") = CONCAT("source"."id_a", "source"."id_b")
1840
+
WHERE
1841
+
"latest"."_exists" IS NULL
1842
+
), "updated_rows" AS (
1843
+
SELECT
1844
+
COALESCE("joined"."t_id_a", "joined"."id_a") AS "id_a",
1845
+
COALESCE("joined"."t_id_b", "joined"."id_b") AS "id_b",
1846
+
COALESCE("joined"."t_name", "joined"."name") AS "name",
1847
+
COALESCE("joined"."t_price", "joined"."price") AS "price",
1848
+
COALESCE("t_test_VALID_from", CAST('1970-01-01 00:00:00' AS TIMESTAMP)) AS "test_VALID_from",
1849
+
CASE
1850
+
WHEN "joined"."_exists" IS NULL
1851
+
OR (
1852
+
(
1853
+
NOT CONCAT("t_id_a", "t_id_b") IS NULL AND NOT CONCAT("id_a", "id_b") IS NULL
1854
+
)
1855
+
AND (
1856
+
"name" <> "t_name"
1857
+
OR (
1858
+
"t_name" IS NULL AND NOT "name" IS NULL
1859
+
)
1860
+
OR (
1861
+
NOT "t_name" IS NULL AND "name" IS NULL
1862
+
)
1863
+
OR "price" <> "t_price"
1864
+
OR (
1865
+
"t_price" IS NULL AND NOT "price" IS NULL
1866
+
)
1867
+
OR (
1868
+
NOT "t_price" IS NULL AND "price" IS NULL
1869
+
)
1870
+
)
1871
+
)
1872
+
THEN CAST('2020-01-01 00:00:00' AS TIMESTAMP)
1873
+
ELSE "t_test_valid_to"
1874
+
END AS "test_valid_to"
1875
+
FROM "joined"
1876
+
LEFT JOIN "latest_deleted"
1877
+
ON CONCAT("joined"."id_a", "joined"."id_b") = "latest_deleted"."_key0"
1878
+
), "inserted_rows" AS (
1879
+
SELECT
1880
+
"id_a",
1881
+
"id_b",
1882
+
"name",
1883
+
"price",
1884
+
CAST('2020-01-01 00:00:00' AS TIMESTAMP) AS "test_VALID_from",
1885
+
CAST(NULL AS TIMESTAMP) AS "test_valid_to"
1886
+
FROM "joined"
1887
+
WHERE
1888
+
(
1889
+
NOT CONCAT("t_id_a", "t_id_b") IS NULL AND NOT CONCAT("id_a", "id_b") IS NULL
1890
+
)
1891
+
AND (
1892
+
"name" <> "t_name"
1893
+
OR (
1894
+
"t_name" IS NULL AND NOT "name" IS NULL
1895
+
)
1896
+
OR (
1897
+
NOT "t_name" IS NULL AND "name" IS NULL
1898
+
)
1899
+
OR "price" <> "t_price"
1900
+
OR (
1901
+
"t_price" IS NULL AND NOT "price" IS NULL
1902
+
)
1903
+
OR (
1904
+
NOT "t_price" IS NULL AND "price" IS NULL
1905
+
)
1906
+
)
1907
+
)
1908
+
SELECT CAST("id_a" AS VARCHAR) AS "id_a", CAST("id_b" AS VARCHAR) AS "id_b", CAST("name" AS VARCHAR) AS "name", CAST("price" AS DOUBLE) AS "price", CAST("test_VALID_from" AS TIMESTAMP) AS "test_VALID_from", CAST("test_valid_to" AS TIMESTAMP) AS "test_valid_to" FROM (SELECT "id_a", "id_b", "name", "price", "test_VALID_from", "test_valid_to" FROM "static" UNION ALL SELECT "id_a", "id_b", "name", "price", "test_VALID_from", "test_valid_to" FROM "updated_rows" UNION ALL SELECT "id_a", "id_b", "name", "price", "test_VALID_from", "test_valid_to" FROM "inserted_rows") AS "_subquery"
0 commit comments