Skip to main content

Function export_objects does not show correct segmentation clause

  • June 27, 2014
  • 2 replies
  • 15 views

Rupendra
Forum|alt.badge.img+1
Even if MODULARHASH function is used in segmentation clause when creating the table, the DDL generated by export_objects show HASH function instead of MODULARHASH. 

To replicate this issue, 
create table t2 (col1 varchar(10))  order by col1 segmented by MODULARHASH(col1) all nodes;
select export_objects('','t2');      The result I got was-    
CREATE TABLE public.t2(
    col1 varchar(10)
);


CREATE PROJECTION public.t2 /*+createtype(P)*/ 
(
 col1
)
AS
 SELECT t2.col1
 FROM public.t2
 ORDER BY t2.col1
SEGMENTED BY hash(t2.col1) ALL NODES KSAFE 1;

SELECT MARK_DESIGN_KSAFE(1);
Is this a problem with export_objects function or default behavior of Vertica? Is there any other way to verify that the projections are created with MODULARHASH segmentation instead of HASH segmentation?



Thanks,
Rupendra

2 replies

Curtis_1
Forum|alt.badge.img
  • Participating Frequently
  • June 27, 2014
I believe modularhash is incompatible with "elastic cluster". If you disable elastic cluster, then it should export your DDL with modularhash intact. Elastic cluster is a mechanism for cluster expansion. 

There shouldn't be a significant difference between modularhash and hash, so if you want it to be consistent, you can just stick with hash instead.


Rupendra
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 27, 2014
Thanks Curtis. I found the reference to this in Vertica documentation as well.
https://my.vertica.com/docs/6.1.x/HTML/index.htm#9171.htm
It says -"An elastic projection (a segmented projection created when Elastic Cluster is enabled) created with a modularhash segmentation expression uses hash instead".

Since elastic cluster is enabled in our case, we will use HASH instead of MODULARHASH.