diff --git a/.github/workflows/misc-migtests.yml b/.github/workflows/misc-migtests.yml index 81140bd103..fc939c42af 100644 --- a/.github/workflows/misc-migtests.yml +++ b/.github/workflows/misc-migtests.yml @@ -49,11 +49,12 @@ jobs: docker restart ${{ job.services.postgres.id }} sleep 10 - - name: Install python3 and psycopg2 + - name: Install python3, psycopg2 and bs4 run: | sudo apt install -y python3 sudo apt install -y libpq-dev sudo apt install python3-psycopg2 + pip3 install bs4 # Install BeautifulSoup4 module for HTML report validation #TODO Remove the install PG 17 command once we do that in installer script - name: Run installer script to setup voyager diff --git a/migtests/scripts/compare-html-reports.py b/migtests/scripts/compare-html-reports.py new file mode 100755 index 0000000000..fabeb1b57d --- /dev/null +++ b/migtests/scripts/compare-html-reports.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 + +import argparse +import re +from bs4 import BeautifulSoup +import difflib +import sys +from collections import Counter + +def normalize_text(text): + """Normalize and clean up text content.""" + text = text.replace('\xa0', ' ') # Replace non-breaking spaces with regular spaces + text = text.replace('\u200B', '') # Remove zero-width spaces + text = re.sub(r'\s+', ' ', text) # Collapse any whitespace sequences + return text.strip() # Remove leading/trailing spaces + +def extract_and_normalize_texts(elements): + """Extract and normalize inner text from HTML elements.""" + return [normalize_text(el.get_text(separator=" ")) for el in elements] + +def extract_divs(soup): + """Extract and normalize divs, optionally sorting them based on certain conditions.""" + all_divs = soup.find_all("div") + filtered_divs = [] + should_sort = False + + for div in all_divs: + # Sorting the content within "Sharding Recommendations" since the tables can be in different order + prev_h2 = div.find_previous("h2") + if prev_h2 and "Sharding Recommendations" in prev_h2.get_text(): + should_sort = True + else: + should_sort = False # Reset should_sort for each div + + # Skipping the parent wrapper div since it causes issues to be reported twice + if "wrapper" not in div.get("class", []): # Exclude wrapper divs + div_text = normalize_text(div.get_text(separator=" ")).strip() + if should_sort: + div_text = " ".join(sorted(div_text.split())) # Sort content within div + filtered_divs.append(div_text) + + return sorted(filtered_divs) if any(s for s in filtered_divs) else filtered_divs + + +def extract_paragraphs(soup): + """Extract and filter paragraphs, skipping specific ones based on conditions.""" + paragraphs = soup.find_all("p") + skip_first_paragraph = False + filtered_paragraphs = [] + + for p in paragraphs: + # Skip the first
after the
Voyager Version: main
+Database Name: ORCLPDB1
+ +Schema Name: + + TEST_SCHEMA + +
+ + +Database Version: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
+ + +Target YB Version: 2024.2.1.0
+ + +Migration Complexity: MEDIUM
+ + +Objects that will be created on the target YugabyteDB. Some of the index and sequence names might be different from those in the source database.
+Object Type | +Total Objects | +Object Names | +
---|---|---|
SEQUENCE | +1 | +
+
+
+ simple_log_seq
+ + + |
+
TABLE | +90 | +
+
+
+ "
+ + + simple_car_type + + accounts_list_partitioned + + bfile_table + + blob_table + + c + + c1 + + c2 + + clob_table + + customers + + case_sensitive_columns + + departments + + dept + + emp + + employees + + employees2 + + employees_misc + + empty_partition_table + + empty_partition_table2 + + foo + + func_based_table + + func_rev_table + + generated_column_table + + iot_table + + mixed_case_table_name_test + + nclob_table + + orders + + orders_interval_partition + + order_items_range_partitioned + + reserved_column + + rev_table + + sales + + sales_bitmap_idx_table + + sales_hash + + session_log + + session_log1 + + session_log2 + + session_log3 + + session_log4 + + simple_cars_table + + simple_log + + simple_table + + sub_par_test + + synonym_table + + test_timezone + + text_table + + trunc_test + + view_table1 + + view_table2 + + xml_table + + "check" + + "group" + + accounts_list_partitioned_p_northwest + + accounts_list_partitioned_p_southwest + + accounts_list_partitioned_p_northeast + + accounts_list_partitioned_p_southeast + + accounts_list_partitioned_p_northcentral + + accounts_list_partitioned_p_southcentral + + departments_p1 + + departments_p2 + + departments_p3 + + empty_partition_table_p_west + + empty_partition_table_p_east + + empty_partition_table2_p_west + + empty_partition_table2_p_east + + orders_interval_partition_interval_partition_less_than_2015 + + orders_interval_partition_interval_partition_less_than_2016 + + orders_interval_partition_interval_partition_less_than_2017 + + orders_interval_partition_interval_partition_less_than_2018 + + order_items_range_partitioned_p1 + + order_items_range_partitioned_p2 + + order_items_range_partitioned_p3 + + sales_hash_p1 + + sales_hash_p2 + + sales_hash_p3 + + sales_hash_p4 + + sub_par_test_p1 + + sub_par_test_p1_sp1 + + sub_par_test_p1_sp11 + + sub_par_test_p2 + + sub_par_test_p2_sp2 + + sub_par_test_p2_sp22 + + sub_par_test_p3 + + sub_par_test_p3_sp3 + + sub_par_test_p3_sp33 + + sub_par_test_p4 + + sub_par_test_p4_sp4 + + sub_par_test_p4_sp44 + + sub_par_test_p5 + + sub_par_test_p5_sp5 + + |
+
INDEX | +3 | +
+
+
+ func_based_table_data ON func_based_table
+ + + orders_customer_id ON orders + + sales_bitmap_idx_table_product_id ON sales_bitmap_idx_table + + |
+
TRIGGER | +1 | +
+
+
+ trg_simple_insert
+ + + |
+
FUNCTION | +2 | +
+
+
+ trunc_date
+ + + trunc_time_stamp + + |
+
PROCEDURE | +1 | +
+
+
+ insert_session_logs
+ + + |
+
SYNONYM | +1 | +
+
+
+ test_schema.syn
+ + + |
+
Colocated Tables | +Sharded Tables | +
---|---|
+
+
+ DEPARTMENTS_P1
+ + + DEPARTMENTS_P2 + + DEPARTMENTS_P3 + + DEPT + + EMP + + EMPTY_PARTITION_TABLE2_P_EAST + + EMPTY_PARTITION_TABLE2_P_WEST + + EMPTY_PARTITION_TABLE_P_EAST + + EMPTY_PARTITION_TABLE_P_WEST + + GENERATED_COLUMN_TABLE + + IOT_TABLE + + SALES_HASH_P1 + + SALES_HASH_P3 + + SIMPLE_LOG + + SIMPLE_TABLE + + SYNONYM_TABLE + + BFILE_TABLE + + BLOB_TABLE + + C + + C1 + + C2 + + CLOB_TABLE + + CUSTOMERS + + Case_Sensitive_Columns + + EMPLOYEES + + EMPLOYEES_MISC + + EMPLOYEE_MV_IMMEDIATE + + FOO + + FUNC_BASED_TABLE + + FUNC_REV_TABLE + + Mixed_Case_Table_Name_Test + + NCLOB_TABLE + + ORDERS + + RESERVED_COLUMN + + REV_TABLE + + SALES_BITMAP_IDX_TABLE + + SESSION_LOG + + SESSION_LOG1 + + SESSION_LOG2 + + SESSION_LOG3 + + SESSION_LOG4 + + SIMPLE_CARS_TABLE + + TEST_TIMEZONE + + TEXT_TABLE + + TRUNC_TEST + + VIEW_TABLE1 + + VIEW_TABLE2 + + XML_TABLE + + check + + group + + ACCOUNTS_LIST_PARTITIONED_P_NORTHCENTRAL + + ACCOUNTS_LIST_PARTITIONED_P_NORTHEAST + + ACCOUNTS_LIST_PARTITIONED_P_NORTHWEST + + ACCOUNTS_LIST_PARTITIONED_P_SOUTHCENTRAL + + ACCOUNTS_LIST_PARTITIONED_P_SOUTHEAST + + ACCOUNTS_LIST_PARTITIONED_P_SOUTHWEST + + ORDERS_INTERVAL_PARTITION_INTERVAL_PARTITION_LESS_THAN_2015 + + ORDERS_INTERVAL_PARTITION_INTERVAL_PARTITION_LESS_THAN_2016 + + ORDERS_INTERVAL_PARTITION_INTERVAL_PARTITION_LESS_THAN_2017 + + ORDERS_INTERVAL_PARTITION_INTERVAL_PARTITION_LESS_THAN_2018 + + ORDER_ITEMS_RANGE_PARTITIONED_P1 + + ORDER_ITEMS_RANGE_PARTITIONED_P2 + + ORDER_ITEMS_RANGE_PARTITIONED_P3 + + SALES_HASH_P2 + + SALES_HASH_P4 + + SUB_PAR_TEST_P1_SP1 + + SUB_PAR_TEST_P1_SP11 + + SUB_PAR_TEST_P2_SP2 + + SUB_PAR_TEST_P2_SP22 + + SUB_PAR_TEST_P3_SP3 + + SUB_PAR_TEST_P3_SP33 + + SUB_PAR_TEST_P4_SP4 + + SUB_PAR_TEST_P4_SP44 + + SUB_PAR_TEST_P5_SP5 + + |
+
+
+
+
+ |
+
Parameter | +Recommendation | +
---|---|
Num of Nodes | 3 |
vCPU per instance | 4 |
Memory per instance(GiB) | 16 |
Optimal select connections per node | 8 |
Optimal insert connections per node | 12 |
Parallel Voyager Jobs | 1 |
Estimated time taken for data import | 1 min |
Recommended instance type with 4 vCPU and 16 GiB memory could fit 78 objects (74 tables/materialized views and 4 explicit/implicit indexes) with 192.00 MB size and throughput requirement of 0 reads/sec and 0 writes/sec as colocated. Non leaf partition tables/indexes and unsupported tables/indexes were not considered.
+ + + + + + +Total Issues: 17
+Below is a detailed breakdown of each issue.
++ Category ↕ + | ++ Issue ↕ + | +Object/SQL Preview | ++ Impact ↕ + | +
---|---|---|---|
+ ▶ + + Unsupported Features + | +Compound Trigger | ++ + trg_simple_insert + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Indexes | ++ + Index Name: TEXT_INDEX, Index Type=DOMAIN INDEX + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Indexes | ++ + Index Name: REV_INDEX, Index Type=NORMAL/REV INDEX + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Indexes | ++ + Index Name: FUNC_REV_INDEX, Index Type=FUNCTION-BASED NORMAL/REV INDEX + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Indexes | ++ + Index Name: IDX_EMP_DEPT_CLUSTER, Index Type=CLUSTER INDEX + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Indexes | ++ + Index Name: PK_IOT_TABLE, Index Type=IOT - TOP INDEX + + | + +- | +
+ ▶ + + Unsupported Features + | +Inherited Types | ++ + SIMPLE_CAR_TYPE + + | + +- | +
+ ▶ + + Unsupported Features + | +Virtual Columns | ++ + XML_TABLE.DATA + + | + +- | +
+ ▶ + + Unsupported Features + | +Virtual Columns | ++ + GENERATED_COLUMN_TABLE.TOTAL_PRICE + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Partitioning Methods | ++ + Table Name: SALES, Partition Method: SYSTEM PARTITION + + | + +- | +
+ ▶ + + Unsupported Features + | +Unsupported Partitioning Methods | ++ + Table Name: EMPLOYEES2, Partition Method: REFERENCE PARTITION + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +XMLTYPE | ++ + TEST_SCHEMA.XML_TABLE.DATA + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +BFILE | ++ + TEST_SCHEMA.BFILE_TABLE.DATA + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +BLOB | ++ + TEST_SCHEMA.BLOB_TABLE.DATA + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +CLOB | ++ + TEST_SCHEMA.CLOB_TABLE.DATA + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +CLOB | ++ + TEST_SCHEMA.TEXT_TABLE.TEXT_DATA + + | + +- | +
+ ▶ + + Unsupported Datatypes + | +NCLOB | ++ + TEST_SCHEMA.NCLOB_TABLE.DATA + + | + +- | +
Voyager Version: main
+Database Name: pg_assessment_report_uqc
+ + +Database Version: 17.3 (Ubuntu 17.3-1.pgdg22.04+1)
+ + +Target YB Version: 2024.2.1.0
+ + +Migration Complexity: MEDIUM
+ + +Objects that will be created on the target YugabyteDB.
+Object Type | +Total Objects | +Object Names | +
---|---|---|
SCHEMA | +2 | +
+
+
+ analytics
+ + + sales + + |
+
EXTENSION | +1 | +
+
+
+ pg_stat_statements
+ + + |
+
SEQUENCE | +1 | +
+
+
+ sales.recent_transactions_transaction_id_seq
+ + + |
+
TABLE | +8 | +
+
+
+ analytics.metrics
+ + + sales.big_table + + sales.customer_account + + sales.events + + sales.json_data + + sales.orders + + sales.recent_transactions + + sales.test_json_chk + + |
+
FUNCTION | +1 | +
+
+
+ sales.get_user_info
+ + + |
+
VIEW | +3 | +
+
+
+ sales.employ_depart_view
+ + + sales.event_analysis_view + + sales.event_analysis_view2 + + |
+
Colocated Tables | +Sharded Tables | +
---|---|
+
+
+ sales.big_table
+ + + sales.json_data + + sales.recent_transactions + + sales.test_json_chk + + sales.orders + + sales.events + + sales.customer_account + + analytics.metrics + + |
+
+
+
+
+ |
+
Parameter | +Recommendation | +
---|---|
Num of Nodes | 3 |
vCPU per instance | 4 |
Memory per instance(GiB) | 16 |
Optimal select connections per node | 8 |
Optimal insert connections per node | 12 |
Parallel Voyager Jobs | 1 |
Estimated time taken for data import | 1 min |
Recommended instance type with 4 vCPU and 16 GiB memory could fit 8 objects (8 tables/materialized views and 0 explicit/implicit indexes) with 0.00 MB size and throughput requirement of 0 reads/sec and 0 writes/sec as colocated. Non leaf partition tables/indexes and unsupported tables/indexes were not considered.
+ + + + + +Below is a breakdown of the issues detected in different categories for each impact level.
+Category | +Level 1 | +Level 2 | +Level 3 | +Total | +
---|---|---|---|---|
Unsupported Features | +0 | +5 | +0 | +5 | +
Unsupported Plpgsql Objects | +0 | +1 | +0 | +1 | +
Unsupported Query Constructs | +0 | +14 | +0 | +14 | +
Unsupported Datatypes | +0 | +0 | +1 | +1 | +
+ Complexity: MEDIUM + Reasoning: Found 0 Level 1 issue(s), 20 Level 2 issue(s) and 1 Level 3 issue(s), resulting in MEDIUM migration complexity +
+ +
+ Impact Levels:
+ Level 1: Resolutions are available with minimal effort.
+ Level 2: Resolutions are available requiring moderate effort.
+ Level 3: Resolutions may not be available or are complex.
+
Total Issues: 21
+Below is a detailed breakdown of each issue.
++ Category ↕ + | ++ Issue ↕ + | +Object/SQL Preview | ++ Impact ↕ + | +
---|---|---|---|
+ ▶ + + Unsupported Features + | +ANY_VALUE() aggregate Function | ++ + sales.employ_depart_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Range aggregate Functions | ++ + sales.event_analysis_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Range aggregate Functions | ++ + sales.event_analysis_view2 + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Jsonb Subscripting | ++ + sales.test_json_chk + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Json Type Predicate | ++ + sales.json_data + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Jsonb Subscripting | ++ + sales.get_user_info + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Advisory Locks | ++ + SELECT metric_name, pg_advisory_lock(metric_id) +FROM analytics.metrics +WHERE met ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Range aggregate Functions | ++ + SELECT range_intersect_agg(event_range) AS intersection_of_ranges +FROM sales.eve ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Events Listen / Notify | ++ + LISTEN my_table_changes + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +CTE with MATERIALIZE clause | ++ + WITH w AS NOT MATERIALIZED ( ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Jsonb Subscripting | ++ + SELECT (jsonb_build_object($1, $2, $3, $4, $5, $6) || $7)[$8] AS json_obj + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Jsonb Subscripting | ++ + SELECT ($1 :: jsonb)[$2][$3] as b + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +CTE with MATERIALIZE clause | ++ + WITH w AS MATERIALIZED ( ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Range aggregate Functions | ++ + SELECT range_agg(event_range) AS union_of_ranges +FROM sales.events + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Jsonb Subscripting | ++ + SELECT + data, + data[$1] AS name, + (data[$2]) as active +FROM sales.tes ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Merge Statement | ++ + MERGE INTO sales.customer_account ca +USING sales.recent_transactions t +ON ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Jsonb Subscripting | ++ + SELECT (sales.get_user_info($1))[$2] AS user_info + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Database options | ++ + CREATE DATABASE strategy_example + WITH STRATEGY = 'wal_log' + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Json Type Predicate | ++ + SELECT * +FROM sales.json_data +WHERE array_column IS JSON ARRAY + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +ANY_VALUE() aggregate Function | ++ + SELECT + any_value(name) AS any_employee + FROM employees + + | + +Level 2 | +
+ ▶ + + Unsupported Datatypes + | +datemultirange | ++ + sales.event_analysis_view.all_event_ranges + + | + +Level 3 | +
Voyager Version: main
+Database Name: pg_assessment_report
+ + +Database Version: 17.3 (Ubuntu 17.3-1.pgdg22.04+1)
+ + +Target YB Version: 2024.2.1.0
+ + +Migration Complexity: HIGH
+ + +Objects that will be created on the target YugabyteDB.
+Object Type | +Total Objects | +Object Names | +
---|---|---|
SCHEMA | +3 | +
+
+
+ public
+ + + schema2 + + test_views + + |
+
COLLATION | +2 | +
+
+
+ public."numeric"
+ + + schema2.ignore_accents + + |
+
EXTENSION | +5 | +
+
+
+ citext
+ + + hstore + + lo + + pg_stat_statements + + pgcrypto + + |
+
TYPE | +5 | +
+
+
+ public.address_type
+ + + public.enum_kind + + public.item_details + + schema2.enum_kind + + schema2.item_details + + |
+
DOMAIN | +2 | +
+
+
+ public.person_name
+ + + schema2.person_name + + |
+
SEQUENCE | +42 | +
+
+
+ public."Case_Sensitive_Columns_id_seq"
+ + + public."Mixed_Case_Table_Name_Test_id_seq" + + public."Recipients_id_seq" + + public."WITH_id_seq" + + public.bigint_multirange_table_id_seq + + public.date_multirange_table_id_seq + + public.employees2_id_seq + + public.employees_employee_id_seq + + public.employeesforview_id_seq + + public.ext_test_id_seq + + public.int_multirange_table_id_seq + + public.mixed_data_types_table1_id_seq + + public.mixed_data_types_table2_id_seq + + public.numeric_multirange_table_id_seq + + public.orders2_id_seq + + public.ordersentry_order_id_seq + + public.parent_table_id_seq + + public.timestamp_multirange_table_id_seq + + public.timestamptz_multirange_table_id_seq + + public.with_example1_id_seq + + public.with_example2_id_seq + + schema2."Case_Sensitive_Columns_id_seq" + + schema2."Mixed_Case_Table_Name_Test_id_seq" + + schema2."Recipients_id_seq" + + schema2."WITH_id_seq" + + schema2.bigint_multirange_table_id_seq + + schema2.date_multirange_table_id_seq + + schema2.employees2_id_seq + + schema2.employeesforview_id_seq + + schema2.ext_test_id_seq + + schema2.int_multirange_table_id_seq + + schema2.mixed_data_types_table1_id_seq + + schema2.mixed_data_types_table2_id_seq + + schema2.numeric_multirange_table_id_seq + + schema2.orders2_id_seq + + schema2.parent_table_id_seq + + schema2.timestamp_multirange_table_id_seq + + schema2.timestamptz_multirange_table_id_seq + + schema2.with_example1_id_seq + + schema2.with_example2_id_seq + + test_views.view_table1_id_seq + + test_views.view_table2_id_seq + + |
+
TABLE | +93 | +
+
+
+ public."Case_Sensitive_Columns"
+ + + public."Mixed_Case_Table_Name_Test" + + public."Recipients" + + public."WITH" + + public.audit + + public.bigint_multirange_table + + public.sales_region + + public.boston + + public.c + + public.parent_table + + public.child_table + + public.citext_type + + public.combined_tbl + + public.date_multirange_table + + public.documents + + public.employees + + public.employees2 + + public.employeescopyfromwhere + + public.employeescopyonerror + + public.employeesforview + + public.ext_test + + public.foo + + public.inet_type + + public.int_multirange_table + + public.library_nested + + public.london + + public.mixed_data_types_table1 + + public.mixed_data_types_table2 + + public.numeric_multirange_table + + public.orders + + public.orders2 + + public.orders_lateral + + public.ordersentry + + public.products + + public.sales_unique_nulls_not_distinct + + public.sales_unique_nulls_not_distinct_alter + + public.session_log + + public.session_log1 + + public.session_log2 + + public.sydney + + public.test_exclude_basic + + public.test_jsonb + + public.test_xml_type + + public.timestamp_multirange_table + + public.timestamptz_multirange_table + + public.ts_query_table + + public.tt + + public.users_unique_nulls_distinct + + public.users_unique_nulls_not_distinct + + public.users_unique_nulls_not_distinct_index + + public.with_example1 + + public.with_example2 + + schema2."Case_Sensitive_Columns" + + schema2."Mixed_Case_Table_Name_Test" + + schema2."Recipients" + + schema2."WITH" + + schema2.audit + + schema2.bigint_multirange_table + + schema2.sales_region + + schema2.boston + + schema2.c + + schema2.parent_table + + schema2.child_table + + schema2.date_multirange_table + + schema2.employees2 + + schema2.employeesforview + + schema2.ext_test + + schema2.foo + + schema2.int_multirange_table + + schema2.london + + schema2.mixed_data_types_table1 + + schema2.mixed_data_types_table2 + + schema2.numeric_multirange_table + + schema2.orders + + schema2.orders2 + + schema2.products + + schema2.sales_unique_nulls_not_distinct + + schema2.sales_unique_nulls_not_distinct_alter + + schema2.session_log + + schema2.session_log1 + + schema2.session_log2 + + schema2.sydney + + schema2.test_xml_type + + schema2.timestamp_multirange_table + + schema2.timestamptz_multirange_table + + schema2.tt + + schema2.users_unique_nulls_distinct + + schema2.users_unique_nulls_not_distinct + + schema2.users_unique_nulls_not_distinct_index + + schema2.with_example1 + + schema2.with_example2 + + test_views.view_table1 + + test_views.view_table2 + + |
+
INDEX | +28 | +
+
+
+ idx1 ON public.combined_tbl
+ + + idx2 ON public.combined_tbl + + idx3 ON public.combined_tbl + + idx4 ON public.combined_tbl + + idx5 ON public.combined_tbl + + idx6 ON public.combined_tbl + + idx7 ON public.combined_tbl + + idx8 ON public.combined_tbl + + idx9 ON public.combined_tbl + + idx_array ON public.documents + + idx_box_data ON public.mixed_data_types_table1 + + idx_box_data_brin ON public.mixed_data_types_table1 + + idx_citext ON public.citext_type + + idx_citext1 ON public.citext_type + + idx_citext2 ON public.citext_type + + idx_inet ON public.inet_type + + idx_inet1 ON public.inet_type + + idx_json ON public.test_jsonb + + idx_json2 ON public.test_jsonb + + idx_point_data ON public.mixed_data_types_table1 + + idx_valid ON public.test_jsonb + + tsquery_idx ON public.ts_query_table + + tsvector_idx ON public.documents + + users_unique_nulls_not_distinct_index_email ON public.users_unique_nulls_not_distinct_index + + idx_box_data ON schema2.mixed_data_types_table1 + + idx_box_data_spgist ON schema2.mixed_data_types_table1 + + idx_point_data ON schema2.mixed_data_types_table1 + + users_unique_nulls_not_distinct_index_email ON schema2.users_unique_nulls_not_distinct_index + + |
+
FUNCTION | +19 | +
+
+
+ public.asterisks
+ + + public.asterisks1 + + public.auditlogfunc + + public.check_sales_region + + public.insert_non_decimal + + public.manage_large_object + + public.notify_and_insert + + public.prevent_update_shipped_without_date + + public.process_combined_tbl + + public.process_order + + public.total + + schema2.asterisks + + schema2.asterisks1 + + schema2.auditlogfunc + + schema2.insert_non_decimal + + schema2.notify_and_insert + + schema2.prevent_update_shipped_without_date + + schema2.process_order + + schema2.total + + |
+
AGGREGATE | +2 | +
+
+
+ public.inc_sum
+ + + schema2.inc_sum + + |
+
PROCEDURE | +3 | +
+
+
+ public.tt_insert_data
+ + + public.update_combined_tbl_data + + schema2.tt_insert_data + + |
+
VIEW | +10 | +
+
+
+ public.ordersentry_view
+ + + public.sales_employees + + public.top_employees_view + + public.view_explicit_security_invoker + + schema2.sales_employees + + schema2.top_employees_view + + test_views.v1 + + test_views.v2 + + test_views.v3 + + test_views.v4 + + |
+
TRIGGER | +4 | +
+
+
+ audit_trigger ON public.tt
+ + + before_sales_region_insert_update ON public.sales_region + + t_raster ON public.combined_tbl + + audit_trigger ON schema2.tt + + |
+
MVIEW | +3 | +
+
+
+ test_views.xyz_mview
+ + + test_views.abc_mview + + test_views.mv1 + + |
+
RULE | +4 | +
+
+
+ protect_test_views_v1
+ + + protect_test_views_v2 + + protect_test_views_v3 + + protect_test_views_view_table1 + + |
+
POLICY | +4 | +
+
+
+ policy_test_fine ON public.test_exclude_basic
+ + + policy_test_fine_2 ON public.employees2 + + policy_test_report ON public.test_xml_type + + policy_test_report ON schema2.test_xml_type + + |
+
Colocated Tables | +Sharded Tables | +
---|---|
+
+
+ public.boston
+ + + public.documents + + public.timestamp_multirange_table + + public.numeric_multirange_table + + public.tbl_unlogged + + public.users_unique_nulls_not_distinct + + public.test_exclude_basic + + public.employeesforview + + public.inet_type + + public.users_unique_nulls_distinct + + public.employees2 + + public.users_unique_nulls_not_distinct_index + + public.sydney + + public.bigint_multirange_table + + public.orders2 + + public.timestamptz_multirange_table + + public.ts_query_table + + public.mixed_data_types_table2 + + public.parent_table + + public.sales_unique_nulls_not_distinct + + public.orders_lateral + + public.london + + public.sales_unique_nulls_not_distinct_alter + + public.child_table + + public.date_multirange_table + + public.int_multirange_table + + schema2.int_multirange_table + + schema2.users_unique_nulls_not_distinct + + schema2.boston + + schema2.numeric_multirange_table + + schema2.child_table + + schema2.employeesforview + + schema2.tt + + schema2.sydney + + schema2.mixed_data_types_table2 + + schema2.tbl_unlogged + + schema2.ext_test + + schema2.date_multirange_table + + schema2.timestamptz_multirange_table + + schema2.timestamp_multirange_table + + schema2.orders2 + + schema2.users_unique_nulls_distinct + + schema2.employees2 + + schema2.users_unique_nulls_not_distinct_index + + schema2.bigint_multirange_table + + schema2.sales_unique_nulls_not_distinct_alter + + schema2.sales_unique_nulls_not_distinct + + schema2.parent_table + + schema2.london + + public.session_log + + public.employees + + public.ordersentry + + public.WITH + + public.session_log2 + + public.foo + + public.audit + + public.products + + public.with_example2 + + public.tt + + public.with_example1 + + public.session_log1 + + public.employeescopyonerror + + public.Recipients + + public.c + + public.Case_Sensitive_Columns + + public.library_nested + + public.ext_test + + public.orders + + public.employeescopyfromwhere + + public.Mixed_Case_Table_Name_Test + + public.test_xml_type + + schema2.Case_Sensitive_Columns + + schema2.with_example2 + + schema2.Mixed_Case_Table_Name_Test + + schema2.session_log + + schema2.orders + + schema2.c + + schema2.session_log1 + + schema2.WITH + + schema2.session_log2 + + schema2.Recipients + + schema2.audit + + schema2.with_example1 + + schema2.foo + + schema2.products + + schema2.test_xml_type + + test_views.abc_mview + + test_views.mv1 + + test_views.view_table1 + + test_views.view_table2 + + test_views.xyz_mview + + |
+
+
+
+ public.combined_tbl
+ + + public.citext_type + + public.test_jsonb + + public.mixed_data_types_table1 + + schema2.mixed_data_types_table1 + + |
+
Parameter | +Recommendation | +
---|---|
Num of Nodes | 3 |
vCPU per instance | 4 |
Memory per instance(GiB) | 16 |
Optimal select connections per node | 8 |
Optimal insert connections per node | 12 |
Parallel Voyager Jobs | 1 |
Estimated time taken for data import | 1 min |
Recommended instance type with 4 vCPU and 16 GiB memory could fit 109 objects (91 tables/materialized views and 18 explicit/implicit indexes) with 0.00 MB size and throughput requirement of 0 reads/sec and 0 writes/sec as colocated. Rest 28 objects (5 tables/materialized views and 23 explicit/implicit indexes) with 0.00 MB size and throughput requirement of 0 reads/sec and 0 writes/sec need to be migrated as range partitioned tables. Non leaf partition tables/indexes and unsupported tables/indexes were not considered.
+ + + + + +Below is a breakdown of the issues detected in different categories for each impact level.
+Category | +Level 1 | +Level 2 | +Level 3 | +Total | +
---|---|---|---|---|
Unsupported Features | +50 | +7 | +4 | +61 | +
Unsupported Plpgsql Objects | +2 | +13 | +0 | +15 | +
Unsupported Query Constructs | +0 | +16 | +0 | +16 | +
Unsupported Datatypes | +0 | +0 | +25 | +25 | +
Migration Caveats | +22 | +0 | +0 | +22 | +
+ Complexity: HIGH + Reasoning: Found 36 Level 2 issue(s) and 29 Level 3 issue(s), resulting in HIGH migration complexity +
+ +
+ Impact Levels:
+ Level 1: Resolutions are available with minimal effort.
+ Level 2: Resolutions are available requiring moderate effort.
+ Level 3: Resolutions may not be available or are complex.
+
Total Issues: 139
+Below is a detailed breakdown of each issue.
++ Category ↕ + | ++ Issue ↕ + | +Object/SQL Preview | ++ Impact ↕ + | +
---|---|---|---|
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_box_data ON public.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_point_data ON public.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_box_data ON schema2.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_point_data ON schema2.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_box_data_brin ON public.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index with access method | ++ + idx_box_data_spgist ON schema2.mixed_data_types_table1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Constraint Trigger | ++ + enforce_shipped_date_constraint ON public.orders2 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Constraint Trigger | ++ + enforce_shipped_date_constraint ON schema2.orders2 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Table Inheritance | ++ + public.child_table + + | + +Level 3 | +
+ ▶ + + Unsupported Features + | +Table Inheritance | ++ + schema2.child_table + + | + +Level 3 | +
+ ▶ + + Unsupported Features + | +Stored Generated Columns | ++ + public.employees2 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Stored Generated Columns | ++ + schema2.employees2 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Exclusion Constraints | ++ + public.test_exclude_basic, constraint: (no_same_name_address) + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Deferrable Constraints | ++ + public.orders2, constraint: (orders2_order_number_key) + + | + +Level 3 | +
+ ▶ + + Unsupported Features + | +Deferrable Constraints | ++ + schema2.orders2, constraint: (orders2_order_number_key) + + | + +Level 3 | +
+ ▶ + + Unsupported Features + | +View With Check Option | ++ + public.sales_employees + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +View With Check Option | ++ + schema2.sales_employees + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with citext datatype | ++ + idx_citext ON public.citext_type + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with tsvector datatype | ++ + tsvector_idx ON public.documents + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with tsquery datatype | ++ + tsquery_idx ON public.ts_query_table + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with jsonb datatype | ++ + idx_json ON public.test_jsonb + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with jsonb datatype | ++ + idx_json2 ON public.test_jsonb + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with inet datatype | ++ + idx_inet ON public.inet_type + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with macaddr datatype | ++ + idx2 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with macaddr8 datatype | ++ + idx3 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with cidr datatype | ++ + idx1 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with bit datatype | ++ + idx5 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with varbit datatype | ++ + idx6 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with daterange datatype | ++ + idx8 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with interval datatype | ++ + idx9 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with pg_lsn datatype | ++ + idx4 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with array datatype | ++ + idx_array ON public.documents + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Index on column with user defined datatype | ++ + idx7 ON public.combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Primary/Unique key on column with complex datatype | ++ + public.combined_tbl, constraint: (combined_tbl_bittv_key) + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Primary/Unique key on column with complex datatype | ++ + public.combined_tbl, constraint: (combined_tbl_pkey) + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Primary/Unique key on column with complex datatype | ++ + public.combined_tbl, constraint: (uk) + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +BEFORE ROW triggers on partitioned tables | ++ + before_sales_region_insert_update ON public.sales_region + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Advisory Locks | ++ + public.ordersentry_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +XML Functions | ++ + public.ordersentry_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +System Columns | ++ + public.ordersentry_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Large Object Functions | ++ + t_raster ON public.combined_tbl + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Regex Functions | ++ + public.ordersentry + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +FETCH .. WITH TIES | ++ + public.top_employees_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +FETCH .. WITH TIES | ++ + schema2.top_employees_view + + | + +Level 2 | +
+ ▶ + + Unsupported Features + | +Security Invoker Views | ++ + public.view_explicit_security_invoker + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Non-Deterministic collations | ++ + schema2.ignore_accents + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + public.sales_unique_nulls_not_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + public.sales_unique_nulls_not_distinct_alter + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + public.users_unique_nulls_not_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + schema2.sales_unique_nulls_not_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + schema2.sales_unique_nulls_not_distinct_alter + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + schema2.users_unique_nulls_not_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + users_unique_nulls_not_distinct_index_email ON public.users_unique_nulls_not_distinct_index + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Unique Nulls Not Distinct | ++ + users_unique_nulls_not_distinct_index_email ON schema2.users_unique_nulls_not_distinct_index + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +Foreign key constraint references partitioned table | ++ + public.test_jsonb, constraint: (test_jsonb_id_region_fkey) + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +SQL Body in function | ++ + public.asterisks + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +SQL Body in function | ++ + public.asterisks1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +SQL Body in function | ++ + schema2.asterisks + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +SQL Body in function | ++ + schema2.asterisks1 + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +COMPRESSION clause in table for TOASTing | ++ + public.users_unique_nulls_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Features + | +COMPRESSION clause in table for TOASTing | ++ + schema2.users_unique_nulls_distinct + + | + +Level 1 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Referencing type declaration of variables | ++ + public.process_combined_tbl + + | + +Level 1 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Referencing type declaration of variables | ++ + public.update_combined_tbl_data + + | + +Level 1 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Advisory Locks | ++ + public.process_order + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Advisory Locks | ++ + schema2.process_order + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Non-decimal integer literal | ++ + public.insert_non_decimal + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Non-decimal integer literal | ++ + schema2.insert_non_decimal + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Large Object Functions | ++ + public.manage_large_object + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + public.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + public.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + public.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + public.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + schema2.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + schema2.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + schema2.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Plpgsql Objects + | +Events Listen / Notify | ++ + schema2.notify_and_insert + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Advisory Locks | ++ + SELECT pg_advisory_unlock_all() + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT + o.order_id, + items.product, + items.quantity::INT +FROM + order ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT xmlparse(document $1) as xmldata + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT xmlelement(name root, xmlelement(name child, $1)) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Advisory Locks | ++ + SELECT pg_advisory_xact_lock($1,$2) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Advisory Locks | ++ + SELECT pg_advisory_lock($1,$2) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +COPY ... ON_ERROR | ++ + COPY employeesCopyOnError (id, name, age) +FROM STDIN WITH (FORMAT csv, ON_ERROR ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT xml_is_well_formed($1) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT + s.section_name, + b.title, + b.author +FROM + library_nested l, + ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT xmlforest(first_name AS element1, last_name AS element2) FROM employees2 + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Advisory Locks | ++ + SELECT pg_advisory_unlock($1,$2) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +System Columns | ++ + SELECT ctid, tableoid, xmin, xmax, cmin, cmax +FROM employees2 + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +COPY FROM ... WHERE | ++ + COPY employeesCopyFromWhere (id, name, age) +FROM STDIN WITH (FORMAT csv) +WHERE a ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT * +FROM xmltable( + $1 + PASSING $2 + COLUMNS + name TEXT PAT ... + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +Large Object Functions | ++ + SELECT lo_create($1) + + | + +Level 2 | +
+ ▶ + + Unsupported Query Constructs + | +XML Functions | ++ + SELECT table_to_xml($1, $2, $3, $4) + + | + +Level 2 | +
+ ▶ + + Unsupported Datatypes + | +txid_snapshot | ++ + public.mixed_data_types_table1.snapshot_data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + schema2.test_xml_type.data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +txid_snapshot | ++ + schema2.mixed_data_types_table1.snapshot_data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +pg_lsn | ++ + schema2.mixed_data_types_table2.lsn_data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +int8multirange | ++ + public.bigint_multirange_table.value_ranges + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xid | ++ + public.ordersentry_view.transaction_id + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + public.library_nested.lib_data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +tsmultirange | ++ + public.timestamp_multirange_table.event_times + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +datemultirange | ++ + schema2.date_multirange_table.project_dates + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +int8multirange | ++ + schema2.bigint_multirange_table.value_ranges + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + public.ordersentry_view.summary_xml + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +int4multirange | ++ + schema2.int_multirange_table.value_ranges + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + public.test_xml_type.data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + public.orders_lateral.order_details + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +tsmultirange | ++ + schema2.timestamp_multirange_table.event_times + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +lo | ++ + public.combined_tbl.raster + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +nummultirange | ++ + schema2.numeric_multirange_table.price_ranges + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +pg_lsn | ++ + public.mixed_data_types_table2.lsn_data + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +tstzmultirange | ++ + public.timestamptz_multirange_table.global_event_times + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +xml | ++ + public.ordersentry_view.order_xml + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +tstzmultirange | ++ + schema2.timestamptz_multirange_table.global_event_times + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +pg_lsn | ++ + public.combined_tbl.lsn + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +nummultirange | ++ + public.numeric_multirange_table.price_ranges + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +datemultirange | ++ + public.date_multirange_table.project_dates + + | + +Level 3 | +
+ ▶ + + Unsupported Datatypes + | +int4multirange | ++ + public.int_multirange_table.value_ranges + + | + +Level 3 | +
+ ▶ + + Migration Caveats + | +Policy with Roles | ++ + policy_test_report ON public.test_xml_type + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Policy with Roles | ++ + policy_test_report ON schema2.test_xml_type + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + public.mixed_data_types_table2.lseg_data (lseg) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + public.mixed_data_types_table1.lseg_data (lseg) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + public.mixed_data_types_table2.path_data (path) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + schema2.mixed_data_types_table1.lseg_data (lseg) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + schema2.mixed_data_types_table1.box_data (box) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + public.mixed_data_types_table1.box_data (box) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + schema2.mixed_data_types_table1.point_data (point) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + schema2.mixed_data_types_table2.lseg_data (lseg) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + public.mixed_data_types_table1.point_data (point) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration | ++ + schema2.mixed_data_types_table2.path_data (path) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + schema2.orders.item (schema2.item_details) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.documents.content_tsvector (tsvector) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.ts_query_table.query (tsquery) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.combined_tbl.arr_enum (public.enum_kind[]) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.combined_tbl.address (public.address_type) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.orders.item (public.item_details) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.combined_tbl.data (public.hstore) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.products.item (public.item_details) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + schema2.products.item (schema2.item_details) + + | + +Level 1 | +
+ ▶ + + Migration Caveats + | +Unsupported datatype for Live migration with fall-forward/fallback | ++ + public.documents.title_tsvector (tsvector) + + | + +Level 1 | +