Skip to content

Commit

Permalink
review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
priyanshi-yb committed Jan 3, 2025
1 parent c93c816 commit 1d666b1
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -362,38 +362,38 @@ CREATE TABLE test_udt (
employee_name VARCHAR(100),
home_address address_type,
some_field enum_test,
home_address1 non_public.address_type1
home_address1 non_public.address_type1,
scalar_column TEXT CHECK (scalar_column IS JSON SCALAR)
);

CREATE TABLE test_arr_enum (
id int,
arr text[],
arr_enum enum_test[]
arr_enum enum_test[],
object_column TEXT CHECK (object_column IS JSON OBJECT)
);

CREATE TABLE public.locations (
id integer NOT NULL,
name character varying(100),
geom geometry(Point,4326)
geom geometry(Point,4326),
array_column TEXT CHECK (array_column IS JSON ARRAY)
);

CREATE TABLE public.xml_data_example (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
description XML DEFAULT xmlparse(document '<product><name>Default Product</name><price>100.00</price><category>Electronics</category></product>'),
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)
);

CREATE TABLE image (title text, raster lo);

-- IS JSON Predicate
CREATE TABLE public.json_data (
id SERIAL PRIMARY KEY,
data_column TEXT NOT NULL CHECK (data_column IS JSON),
object_column TEXT CHECK (object_column IS JSON OBJECT),
array_column TEXT CHECK (array_column IS JSON ARRAY),
scalar_column TEXT CHECK (scalar_column IS JSON SCALAR),
unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)
data_column TEXT NOT NULL CHECK (data_column IS JSON)
);
CREATE TABLE employees (id INT PRIMARY KEY, salary INT);
-- create table with multirange data types
Expand Down
54 changes: 47 additions & 7 deletions migtests/tests/analyze-schema/expected_issues.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,47 @@
"ObjectType": "TABLE",
"ObjectName": "public.json_data",
"Reason": "Json Type Predicate",
"SqlStatement": "CREATE TABLE public.json_data (\n id SERIAL PRIMARY KEY,\n data_column TEXT NOT NULL CHECK (data_column IS JSON),\n object_column TEXT CHECK (object_column IS JSON OBJECT),\n array_column TEXT CHECK (array_column IS JSON ARRAY),\n scalar_column TEXT CHECK (scalar_column IS JSON SCALAR),\n unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)\n);",
"SqlStatement": "CREATE TABLE public.json_data (\n id SERIAL PRIMARY KEY,\n data_column TEXT NOT NULL CHECK (data_column IS JSON)\n);",
"Suggestion": "",
"GH": "",
"MinimumVersionsFixedIn": null
},
{
"IssueType": "unsupported_features",
"ObjectType": "TABLE",
"ObjectName": "test_arr_enum",
"Reason": "Json Type Predicate",
"SqlStatement": "CREATE TABLE test_arr_enum (\n\tid int,\n\tarr text[],\n\tarr_enum enum_test[],\n object_column TEXT CHECK (object_column IS JSON OBJECT)\n);",
"Suggestion": "",
"GH": "",
"MinimumVersionsFixedIn": null
},
{
"IssueType": "unsupported_features",
"ObjectType": "TABLE",
"ObjectName": "test_udt",
"Reason": "Json Type Predicate",
"SqlStatement": "CREATE TABLE test_udt (\n\temployee_id SERIAL PRIMARY KEY,\n\temployee_name VARCHAR(100),\n\thome_address address_type,\n\tsome_field enum_test,\n\thome_address1 non_public.address_type1,\n scalar_column TEXT CHECK (scalar_column IS JSON SCALAR)\n);",
"Suggestion": "",
"GH": "",
"MinimumVersionsFixedIn": null
},
{
"IssueType": "unsupported_features",
"ObjectType": "TABLE",
"ObjectName": "public.xml_data_example",
"Reason": "Json Type Predicate",
"SqlStatement": " CREATE TABLE public.xml_data_example (\n id SERIAL PRIMARY KEY,\n name VARCHAR(255),\n description XML DEFAULT xmlparse(document '\u003cproduct\u003e\u003cname\u003eDefault Product\u003c/name\u003e\u003cprice\u003e100.00\u003c/price\u003e\u003ccategory\u003eElectronics\u003c/category\u003e\u003c/product\u003e'),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)\n);",
"Suggestion": "",
"GH": "",
"MinimumVersionsFixedIn": null
},
{
"IssueType": "unsupported_features",
"ObjectType": "TABLE",
"ObjectName": "public.locations",
"Reason": "Json Type Predicate",
"SqlStatement": "CREATE TABLE public.locations (\n id integer NOT NULL,\n name character varying(100),\n geom geometry(Point,4326),\n array_column TEXT CHECK (array_column IS JSON ARRAY)\n );",
"Suggestion": "",
"GH": "",
"MinimumVersionsFixedIn": null
Expand Down Expand Up @@ -65,7 +105,7 @@
"ObjectType": "TABLE",
"ObjectName": "public.xml_data_example",
"Reason": "XML Functions",
"SqlStatement": " CREATE TABLE public.xml_data_example (\n id SERIAL PRIMARY KEY,\n name VARCHAR(255),\n description XML DEFAULT xmlparse(document '\u003cproduct\u003e\u003cname\u003eDefault Product\u003c/name\u003e\u003cprice\u003e100.00\u003c/price\u003e\u003ccategory\u003eElectronics\u003c/category\u003e\u003c/product\u003e'),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\n);",
"SqlStatement": " CREATE TABLE public.xml_data_example (\n id SERIAL PRIMARY KEY,\n name VARCHAR(255),\n description XML DEFAULT xmlparse(document '\u003cproduct\u003e\u003cname\u003eDefault Product\u003c/name\u003e\u003cprice\u003e100.00\u003c/price\u003e\u003ccategory\u003eElectronics\u003c/category\u003e\u003c/product\u003e'),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)\n);",
"Suggestion": "",
"GH": "",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#xml-functions-is-not-yet-supported",
Expand All @@ -76,7 +116,7 @@
"ObjectType": "TABLE",
"ObjectName": "public.xml_data_example",
"Reason": "Unsupported datatype - xml on column - description",
"SqlStatement": " CREATE TABLE public.xml_data_example (\n id SERIAL PRIMARY KEY,\n name VARCHAR(255),\n description XML DEFAULT xmlparse(document '\u003cproduct\u003e\u003cname\u003eDefault Product\u003c/name\u003e\u003cprice\u003e100.00\u003c/price\u003e\u003ccategory\u003eElectronics\u003c/category\u003e\u003c/product\u003e'),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\n);",
"SqlStatement": " CREATE TABLE public.xml_data_example (\n id SERIAL PRIMARY KEY,\n name VARCHAR(255),\n description XML DEFAULT xmlparse(document '\u003cproduct\u003e\u003cname\u003eDefault Product\u003c/name\u003e\u003cprice\u003e100.00\u003c/price\u003e\u003ccategory\u003eElectronics\u003c/category\u003e\u003c/product\u003e'),\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,\n unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)\n);",
"Suggestion": "Data ingestion is not supported for this type in YugabyteDB so handle this type in different way. Refer link for more details.",
"GH": "https://github.com/yugabyte/yugabyte-db/issues/1043",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#data-ingestion-on-xml-data-type-is-not-supported",
Expand Down Expand Up @@ -285,7 +325,7 @@
"ObjectType": "TABLE",
"ObjectName": "test_udt",
"Reason": "Unsupported datatype for Live migration with fall-forward/fallback - address_type on column - home_address",
"SqlStatement": "CREATE TABLE test_udt (\n\temployee_id SERIAL PRIMARY KEY,\n\temployee_name VARCHAR(100),\n\thome_address address_type,\n\tsome_field enum_test,\n\thome_address1 non_public.address_type1\n);",
"SqlStatement": "CREATE TABLE test_udt (\n\temployee_id SERIAL PRIMARY KEY,\n\temployee_name VARCHAR(100),\n\thome_address address_type,\n\tsome_field enum_test,\n\thome_address1 non_public.address_type1,\n scalar_column TEXT CHECK (scalar_column IS JSON SCALAR)\n);",
"Suggestion": "",
"GH": "https://github.com/yugabyte/yb-voyager/issues/1731",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#unsupported-datatypes-by-voyager-during-live-migration",
Expand All @@ -296,7 +336,7 @@
"ObjectType": "TABLE",
"ObjectName": "test_arr_enum",
"Reason": "Unsupported datatype for Live migration with fall-forward/fallback - enum_test[] on column - arr_enum",
"SqlStatement": "CREATE TABLE test_arr_enum (\n\tid int,\n\tarr text[],\n\tarr_enum enum_test[]\n);",
"SqlStatement": "CREATE TABLE test_arr_enum (\n\tid int,\n\tarr text[],\n\tarr_enum enum_test[],\n object_column TEXT CHECK (object_column IS JSON OBJECT)\n);",
"Suggestion": "",
"GH": "https://github.com/yugabyte/yb-voyager/issues/1731",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#unsupported-datatypes-by-voyager-during-live-migration",
Expand All @@ -307,7 +347,7 @@
"ObjectType": "TABLE",
"ObjectName": "test_udt",
"Reason": "Unsupported datatype for Live migration with fall-forward/fallback - non_public.address_type1 on column - home_address1",
"SqlStatement": "CREATE TABLE test_udt (\n\temployee_id SERIAL PRIMARY KEY,\n\temployee_name VARCHAR(100),\n\thome_address address_type,\n\tsome_field enum_test,\n\thome_address1 non_public.address_type1\n);",
"SqlStatement": "CREATE TABLE test_udt (\n\temployee_id SERIAL PRIMARY KEY,\n\temployee_name VARCHAR(100),\n\thome_address address_type,\n\tsome_field enum_test,\n\thome_address1 non_public.address_type1,\n scalar_column TEXT CHECK (scalar_column IS JSON SCALAR)\n);",
"Suggestion": "",
"GH": "https://github.com/yugabyte/yb-voyager/issues/1731",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#unsupported-datatypes-by-voyager-during-live-migration",
Expand Down Expand Up @@ -1222,7 +1262,7 @@
"ObjectType": "TABLE",
"ObjectName": "public.locations",
"Reason": "Unsupported datatype - geometry on column - geom",
"SqlStatement": "CREATE TABLE public.locations (\n id integer NOT NULL,\n name character varying(100),\n geom geometry(Point,4326)\n );",
"SqlStatement": "CREATE TABLE public.locations (\n id integer NOT NULL,\n name character varying(100),\n geom geometry(Point,4326),\n array_column TEXT CHECK (array_column IS JSON ARRAY)\n );",
"Suggestion": "",
"GH": "https://github.com/yugabyte/yugabyte-db/issues/11323",
"DocsLink": "https://docs.yugabyte.com/preview/yugabyte-voyager/known-issues/postgresql/#unsupported-datatypes-by-yugabytedb",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
},
{
"ObjectType": "VIEW",
"TotalCount": 2,
"InvalidCount": 2,
"ObjectNames": "sales.event_analysis_view, sales.employ_depart_view"
"TotalCount": 3,
"InvalidCount": 3,
"ObjectNames": "sales.event_analysis_view, sales.event_analysis_view2, sales.employ_depart_view"
}
]
},
Expand Down Expand Up @@ -72,7 +72,11 @@
"Objects": [
{
"ObjectName": "sales.event_analysis_view",
"SqlStatement": "CREATE VIEW sales.event_analysis_view AS\n SELECT range_agg(event_range) AS all_event_ranges,\n range_intersect_agg(event_range) AS overlapping_range,\n lower(range_agg(event_range)) AS earliest_start,\n upper(range_agg(event_range)) AS latest_end\n FROM sales.events;"
"SqlStatement": "CREATE VIEW sales.event_analysis_view AS\n SELECT range_agg(event_range) AS all_event_ranges\n FROM sales.events;"
},
{
"ObjectName": "sales.event_analysis_view2",
"SqlStatement": "CREATE VIEW sales.event_analysis_view2 AS\n SELECT range_intersect_agg(event_range) AS overlapping_range\n FROM sales.events;"
},
{
"ObjectName": "sales.employ_depart_view",
Expand All @@ -86,7 +90,7 @@
"Objects": [
{
"ObjectName": "sales.json_data",
"SqlStatement": "CREATE TABLE sales.json_data (\n id integer NOT NULL,\n data_column text NOT NULL,\n object_column text,\n array_column text,\n scalar_column text,\n unique_keys_column text,\n CONSTRAINT json_data_array_column_check CHECK ((array_column IS JSON ARRAY)),\n CONSTRAINT json_data_data_column_check CHECK ((data_column IS JSON)),\n CONSTRAINT json_data_object_column_check CHECK ((object_column IS JSON OBJECT)),\n CONSTRAINT json_data_scalar_column_check CHECK ((scalar_column IS JSON SCALAR)),\n CONSTRAINT json_data_unique_keys_column_check CHECK ((unique_keys_column IS JSON WITH UNIQUE KEYS))\n);"
"SqlStatement": "CREATE TABLE sales.json_data (\n id integer NOT NULL,\n array_column text,\n unique_keys_column text,\n CONSTRAINT json_data_array_column_check CHECK ((array_column IS JSON ARRAY)),\n CONSTRAINT json_data_unique_keys_column_check CHECK ((unique_keys_column IS JSON WITH UNIQUE KEYS))\n);"
}
],
"MinimumVersionsFixedIn": null
Expand Down Expand Up @@ -126,7 +130,7 @@
"SchemaName": "sales",
"ObjectName": "json_data",
"RowCount": 0,
"ColumnCount": 6,
"ColumnCount": 3,
"Reads": 0,
"Writes": 0,
"ReadsPerSecond": 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,20 +60,20 @@ INSERT INTO sales.events (id, event_range) VALUES

CREATE VIEW sales.event_analysis_view AS
SELECT
range_agg(event_range) AS all_event_ranges,
range_intersect_agg(event_range) AS overlapping_range,
lower(range_agg(event_range)) AS earliest_start,
upper(range_agg(event_range)) AS latest_end
range_agg(event_range) AS all_event_ranges
FROM
sales.events;

CREATE VIEW sales.event_analysis_view2 AS
SELECT
range_intersect_agg(event_range) AS overlapping_range
FROM
sales.events;

-- PG 16 and above feature
CREATE TABLE sales.json_data (
id int PRIMARY KEY,
data_column TEXT NOT NULL CHECK (data_column IS JSON),
object_column TEXT CHECK (object_column IS JSON OBJECT),
array_column TEXT CHECK (array_column IS JSON ARRAY),
scalar_column TEXT CHECK (scalar_column IS JSON SCALAR),
unique_keys_column TEXT CHECK (unique_keys_column IS JSON WITH UNIQUE KEYS)
);

Expand Down

0 comments on commit 1d666b1

Please sign in to comment.