CmpDDLCatErrorCodes.h

Clone Tools
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
TRAFODION-13 Multiple MTD-related bug fixes, UDF and RI constraint fixes

Bug fixes for Multi-temperature Data aka MTD aka divisioning and a related bug for RI constraints. These will be converted to JIRAs soon.

Also added an Excel tool to draw query plans, has limited support only.

LaunchPad 1466209 Referential constraint column correspondence not recorded correctly in metadata

LaunchPad 1417739 Multi-temperature data: should not allow divisioning on float datatype.

LaunchPad 1417741 multi-temperature data: divisioning on (date_part('year', add_months(...)) fails with ERROR[3044], ERROR[1135]

LaunchPad 1417743 multi-temperature data: able to define a RI constraint on a system column.

LaunchPad 1427527 Multi-temperature data: create-table-like-with-constrains-without-division table should not be divisioned

LaunchPad 1442774 TMUDF: Compiling a TPCH query with TMUDF returns internal assertion in BaseTypes.cpp:118

Details:

LaunchPad 1466209 Referential constraint column correspondence not recorded correctly in metadata

For an RI constraint, we record a list of foreign key columns in the

KEYS metadata table, as well as the UID of the referenced uniqueness

constraint. The foreign key column list is matched with the unique key

columns. We needed to add logic to reorder the lists in case the

unique constraint was specified in a different order. For example, in

seabase/TEST020:

alter table test020t9 add constraint test020t9ri4

foreign key (r1,r2) references test020t8 (c3,c2);

This will trigger the reorder logic to convert it to

foreign key (r2,r1) references test020t8 (c2,c3)

to match the index on test020t8 (c2,c3).

LaunchPad 1417739 Multi-temperature data: should not allow divisioning on float datatype.

Added a check and a new error number 4257. Note that we do allow float

as key columns, and that could have similar issues that rounding

errors could cause us to find a row sometimes and not other times,

although those issues should be rare. Nevertheless, I prefer not to

take that chance and allow divisioning on floating point columns (it

does not make much sense anyway).

LaunchPad 1417741 multi-temperature data: divisioning on (date_part('year', add_months(...)) fails with ERROR[3044], ERROR[1135]

There are really two issues here. First, the CAST operator that is

internally used in ADD_MONTHS in the parser generates a nullable

result, since in the parser we don't know whether the result is

nullable or not. We need to fix that in the binder to avoid the error

1135. Second, there were some cases where the interval leading

precision of a data type was not initialized correctly (error 3044).

LaunchPad 1417743 multi-temperature data: able to define a RI constraint on a system column.

This uncovered a bigger issue in the integration between MTD and RI

constraints. We need to ignore salt and divisioning columns in the

keys we consider, since these columns are redundant and not

user-visible. Added code to do that and while working on it, also

found the first bug in this list.

LaunchPad 1427527 Multi-temperature data: create-table-like-with-constrains-without-division table should not be divisioned

A typo in the parser code led us to ignore the WITHOUT DIVISION clause.

LaunchPad 1442774 TMUDF: Compiling a TPCH query with TMUDF returns internal assertion in BaseTypes.cpp:118

Used incorrect set of values in preCodeGen.

  1. … 18 more files in changeset.
Merge remote branch 'core/master'

  1. … 108 more files in changeset.
Move core into subdir to combine repos

    • -0
    • +631
    ./CmpDDLCatErrorCodes.h
  1. … 10768 more files in changeset.
Move core into subdir to combine repos

    • -0
    • +631
    ./CmpDDLCatErrorCodes.h
  1. … 10622 more files in changeset.
Move core into subdir to combine repos

Use: git log --follow -- <file>

to view file history thru renames.

    • -0
    • +632
    ./CmpDDLCatErrorCodes.h
  1. … 10837 more files in changeset.