You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2016/03/03 15:59:46 UTC
[2/8] incubator-trafodion git commit: JIRA TRAFODION-1798 (ddl xns)
and few other fixes, details below.
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/seabase/EXPECTED011
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED011 b/core/sql/regress/seabase/EXPECTED011
index 012f55f..0b2cafa 100644
--- a/core/sql/regress/seabase/EXPECTED011
+++ b/core/sql/regress/seabase/EXPECTED011
@@ -7,7 +7,7 @@
>>invoke T011T1;
-- Definition of Trafodion table TRAFODION.SCH.T011T1
--- Definition current Sat Jan 23 04:06:15 2016
+-- Definition current Wed Feb 10 17:28:56 2016
(
A INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -142,7 +142,7 @@ A B
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... NOT NAMED
-PLAN_ID .................. 212320281977039065
+PLAN_ID .................. 212321885336541730
ROWS_OUT ................. 7
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t011t1 where a >= 3 and a < 5;
@@ -178,10 +178,11 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.SCH
QUERY_CACHE ............ 0
GENERATE_EXPLAIN ....... ON
- ObjectUIDs ............. 3130652840489752733
+ ObjectUIDs ............. 7276217900832183965
select_list ............ TRAFODION.SCH.T011T1.A, TRAFODION.SCH.T011T1.B
@@ -1268,7 +1269,7 @@ METRIC_TEXT_TABLE
>>invoke trafodion."_REPOS_".metric_query_table;
-- Definition of Trafodion table TRAFODION."_REPOS_".METRIC_QUERY_TABLE
--- Definition current Sat Jan 23 04:08:38 2016
+-- Definition current Wed Feb 10 17:31:00 2016
(
INSTANCE_ID INT UNSIGNED NO DEFAULT NOT NULL NOT
@@ -1450,7 +1451,7 @@ METRIC_TEXT_TABLE
>>-- get qid for the prepared stmt
>>get qid for statement explstmt;
-MXID11000005561212320281953925061000000000206U3333300_1924_EXPLSTMT
+MXID11000029309212321885301727001000000000206U3333300_1921_EXPLSTMT
--- SQL operation complete.
>>
@@ -1502,7 +1503,7 @@ SEQ_NUM OPERATOR
--- SQL command prepared.
>>get qid for statement explstmt2;
-MXID11000005561212320281953925061000000000206U3333300_1935_EXPLSTMT2
+MXID11000029309212321885301727001000000000206U3333300_1932_EXPLSTMT2
--- SQL operation complete.
>>set qid MXID123456 for explstmt2;
@@ -2075,7 +2076,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
>>invoke t011t7;
-- Definition of Trafodion table TRAFODION.SCH.T011T7
--- Definition current Sat Jan 23 04:09:41 2016
+-- Definition current Wed Feb 10 17:32:03 2016
(
A INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -2092,7 +2093,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
>>invoke t011t7;
-- Definition of Trafodion table TRAFODION.SCH.T011T7
--- Definition current Sat Jan 23 04:09:45 2016
+-- Definition current Wed Feb 10 17:32:03 2016
(
A INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -2109,7 +2110,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
>>invoke t011t7;
-- Definition of Trafodion table TRAFODION.SCH.T011T7
--- Definition current Sat Jan 23 04:09:49 2016
+-- Definition current Wed Feb 10 17:32:04 2016
(
A INT NO DEFAULT NOT NULL NOT DROPPABLE
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/seabase/EXPECTED016
----------------------------------------------------------------------
diff --git a/core/sql/regress/seabase/EXPECTED016 b/core/sql/regress/seabase/EXPECTED016
index 6d631b8..2128d94 100644
--- a/core/sql/regress/seabase/EXPECTED016
+++ b/core/sql/regress/seabase/EXPECTED016
@@ -179,7 +179,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282637448134
+PLAN_ID .................. 212321995066139995
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 553.48
STATEMENT ................ select f,count(f)
@@ -218,13 +218,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151598413
+ ObjectUIDs ............. 6789829250703131337
select_list ............ TRAFODION.HBASE.MCSTATPART7.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART7.
F)))
@@ -327,7 +328,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282637741686
+PLAN_ID .................. 212321995066491810
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 568.59
STATEMENT ................ select f,count(f)
@@ -366,13 +367,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151600526
+ ObjectUIDs ............. 6789829250703135855
select_list ............ TRAFODION.HBASE.MCSTATPART5.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART5.
F)))
@@ -475,7 +477,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282638023675
+PLAN_ID .................. 212321995066791768
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 553.48
STATEMENT ................ select f,count(f)
@@ -514,13 +516,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151601389
+ ObjectUIDs ............. 6789829250703137455
select_list ............ TRAFODION.HBASE.MCSTATPART3.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART3.
F)))
@@ -623,7 +626,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282638276314
+PLAN_ID .................. 212321995067094379
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 523.92
STATEMENT ................ select f,count(f)
@@ -662,13 +665,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151602308
+ ObjectUIDs ............. 6789829250703138642
select_list ............ TRAFODION.HBASE.MCSTATPART6.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART6.
F)))
@@ -771,7 +775,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282638589572
+PLAN_ID .................. 212321995067459222
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 523.92
STATEMENT ................ select f,count(f)
@@ -810,13 +814,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151603186
+ ObjectUIDs ............. 6789829250703139741
select_list ............ TRAFODION.HBASE.MCSTATPART2.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART2.
F)))
@@ -919,7 +924,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282638883341
+PLAN_ID .................. 212321995067792542
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 538.3
STATEMENT ................ select f,count(f)
@@ -958,13 +963,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151604056
+ ObjectUIDs ............. 6789829250703141227
select_list ............ TRAFODION.HBASE.MCSTATPART1.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART1.
F)))
@@ -1067,7 +1073,7 @@ LC RC OP OPERATOR OPT DESCRIPTION CARD
------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... ST1
-PLAN_ID .................. 212320282639174313
+PLAN_ID .................. 212321995068129313
ROWS_OUT ................. 1
EST_TOTAL_COST ......... 553.48
STATEMENT ................ select f,count(f)
@@ -1106,13 +1112,14 @@ DESCRIPTION
HBASE_FILTER_PREDS ..... 2
TRAF_ALIGNED_ROW_FORMAT OFF
TRAF_INDEX_CREATE_OPT ON
+ DDL_TRANSACTIONS ....... ON
SCHEMA ................. TRAFODION.HBASE
QUERY_CACHE ............ 0
CACHE_HISTOGRAMS ....... OFF
HBASE_MIN_BYTES_PER_ESP 1
USTAT_COLLECT_MC_SKEW_V ON
PARALLEL_NUM_ESPS ...... 4
- ObjectUIDs ............. 953725371151604853
+ ObjectUIDs ............. 6789829250703142594
select_list ............ TRAFODION.HBASE.MCSTATPART8.F,
cast(sum(count_nonull(TRAFODION.HBASE.MCSTATPART8.
F)))
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_catman1.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_catman1.ksh b/core/sql/regress/tools/runregr_catman1.ksh
index ef8a0b3..cf042f9 100755
--- a/core/sql/regress/tools/runregr_catman1.ksh
+++ b/core/sql/regress/tools/runregr_catman1.ksh
@@ -450,7 +450,8 @@ for ix in $testfiles; do
# Print date, time, test name and test result in log file. --
#-------------------------------------------------------------
echo $logtxt
- echo "`date +'%D %T'` $ix $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
done
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_charsets.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_charsets.ksh b/core/sql/regress/tools/runregr_charsets.ksh
index 768ae0b..c0d59fa 100755
--- a/core/sql/regress/tools/runregr_charsets.ksh
+++ b/core/sql/regress/tools/runregr_charsets.ksh
@@ -728,7 +728,8 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_compGeneral.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_compGeneral.ksh b/core/sql/regress/tools/runregr_compGeneral.ksh
index 11b796f..e7e87d7 100755
--- a/core/sql/regress/tools/runregr_compGeneral.ksh
+++ b/core/sql/regress/tools/runregr_compGeneral.ksh
@@ -833,7 +833,8 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
done # for i in $prettyfiles
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_core.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_core.ksh b/core/sql/regress/tools/runregr_core.ksh
index e833f4d..59004ad 100755
--- a/core/sql/regress/tools/runregr_core.ksh
+++ b/core/sql/regress/tools/runregr_core.ksh
@@ -836,7 +836,8 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
done # for i in $prettyfiles
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_executor.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_executor.ksh b/core/sql/regress/tools/runregr_executor.ksh
index d603674..3411009 100755
--- a/core/sql/regress/tools/runregr_executor.ksh
+++ b/core/sql/regress/tools/runregr_executor.ksh
@@ -908,7 +908,8 @@ for i in $prettyfiles; do
fi
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
done # for i in $prettyfiles
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_fullstack2.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_fullstack2.ksh b/core/sql/regress/tools/runregr_fullstack2.ksh
index bdad2a6..1cbbfca 100755
--- a/core/sql/regress/tools/runregr_fullstack2.ksh
+++ b/core/sql/regress/tools/runregr_fullstack2.ksh
@@ -737,7 +737,8 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
done # for i in $prettyfiles
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_hive.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_hive.ksh b/core/sql/regress/tools/runregr_hive.ksh
index 45b6cb2..1165892 100755
--- a/core/sql/regress/tools/runregr_hive.ksh
+++ b/core/sql/regress/tools/runregr_hive.ksh
@@ -662,10 +662,10 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
-
# save off the DIFF file for debugging
if [ $nsk -eq 1 ]; then
if [ $SQLMX_REGRESS -eq 1 ]; then
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_privs1.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_privs1.ksh b/core/sql/regress/tools/runregr_privs1.ksh
index 868aaee..0f3e4a0 100755
--- a/core/sql/regress/tools/runregr_privs1.ksh
+++ b/core/sql/regress/tools/runregr_privs1.ksh
@@ -466,7 +466,8 @@ rm -f $ix.tmp 2>$NULL
# Print date, time, test name and test result in log file. --
#-------------------------------------------------------------
echo $logtxt
- echo "`date +'%D %T'` $ix $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $lfile | cut -d'.' -f1`
+ echo "$modtime $ix $logtxt" >> $rgrlog
done
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_privs2.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_privs2.ksh b/core/sql/regress/tools/runregr_privs2.ksh
index af75f3b..320295b 100755
--- a/core/sql/regress/tools/runregr_privs2.ksh
+++ b/core/sql/regress/tools/runregr_privs2.ksh
@@ -466,7 +466,8 @@ rm -f $ix.tmp 2>$NULL
# Print date, time, test name and test result in log file. --
#-------------------------------------------------------------
echo $logtxt
- echo "`date +'%D %T'` $ix $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $lfile | cut -d'.' -f1`
+ echo "$modtime $ix $logtxt" >> $rgrlog
done
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_qat.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_qat.ksh b/core/sql/regress/tools/runregr_qat.ksh
index bb09165..54729c3 100755
--- a/core/sql/regress/tools/runregr_qat.ksh
+++ b/core/sql/regress/tools/runregr_qat.ksh
@@ -361,7 +361,8 @@ for i in $testfiles; do
fi
echo $logtxt
- echo "`date +'%D %T'` $tfile $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $afile | cut -d'.' -f1`
+ echo "$modtime $tfile $logtxt" >> $rgrlog
# save off the DIFF file for debugging
if [ $nsk -eq 1 ]; then
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_seabase.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_seabase.ksh b/core/sql/regress/tools/runregr_seabase.ksh
index dc3d992..853fc14 100755
--- a/core/sql/regress/tools/runregr_seabase.ksh
+++ b/core/sql/regress/tools/runregr_seabase.ksh
@@ -655,7 +655,9 @@ for i in $prettyfiles; do
logtxt="### FAIL ($diffsize lines$knownsize) ###$logtxt"
fi
echo $logtxt
- echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+# echo "`date +'%D %T'` $test $logtxt" >> $rgrlog
+ modtime=`stat --printf=%y $log | cut -d'.' -f1`
+ echo "$modtime $test $logtxt" >> $rgrlog
echo
done # for i in $prettyfiles
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/runregr_udr.ksh
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/runregr_udr.ksh b/core/sql/regress/tools/runregr_udr.ksh
index 5852c15..45904a0 100755
--- a/core/sql/regress/tools/runregr_udr.ksh
+++ b/core/sql/regress/tools/runregr_udr.ksh
@@ -741,9 +741,10 @@ function DO_DIFF
fi
fi
- printf "$RESULT\n"
- printf "$(date '+%m/%d/%Y %R') $T\t $RESULT\n" >> $rgrlog
-
+# printf "$RESULT\n"
+# printf "$(date '+%m/%d/%Y %R') $T\t $RESULT\n" >> $rgrlog
+ modtime=`stat --printf=%y $LOG | cut -d'.' -f1`
+ printf "$modtime $T\t $RESULT\n" >> $rgrlog
}
function DO_TEST
@@ -895,7 +896,7 @@ do
fi
fi
done
-echo "$(date '+%m/%d/%Y %R')" >> $rgrlog
+#echo "$(date '+%m/%d/%Y %R')" >> $rgrlog
# stop the ODBC server
if [ $MXODBC_USABLE -eq 1 ]; then
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/regress/tools/sbdefs
----------------------------------------------------------------------
diff --git a/core/sql/regress/tools/sbdefs b/core/sql/regress/tools/sbdefs
index 08088a2..5cb15b6 100644
--- a/core/sql/regress/tools/sbdefs
+++ b/core/sql/regress/tools/sbdefs
@@ -32,6 +32,7 @@ cqd hbase_filter_preds '2';
cqd traf_aligned_row_format 'OFF';
--cqd traf_default_col_charset 'UTF8';
cqd traf_index_create_opt 'ON';
+cqd ddl_transactions 'ON';
cqd schema '$$TEST_SCHEMA$$';
set SCHEMA $$TEST_SCHEMA$$;
#endif
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpDescribe.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpDescribe.cpp b/core/sql/sqlcomp/CmpDescribe.cpp
index 480853b..3029c75 100644
--- a/core/sql/sqlcomp/CmpDescribe.cpp
+++ b/core/sql/sqlcomp/CmpDescribe.cpp
@@ -3354,8 +3354,10 @@ short CmpDescribeSequence(
cn.setSpecialType(ExtendedQualName::SG_TABLE);
// remove NATable for this table so latest values in the seq table could be read.
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_MINE_ONLY, COM_SEQUENCE_GENERATOR_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_MINE_ONLY, COM_SEQUENCE_GENERATOR_OBJECT,
+ FALSE, FALSE);
ULng32 savedParserFlags = Get_SqlParser_Flags (0xFFFFFFFF);
Set_SqlParser_Flags(ALLOW_VOLATILE_SCHEMA_IN_TABLE_NAME);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDL.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDL.h b/core/sql/sqlcomp/CmpSeabaseDDL.h
index 5ab446e..6d441b1 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDL.h
+++ b/core/sql/sqlcomp/CmpSeabaseDDL.h
@@ -408,6 +408,8 @@ class CmpSeabaseDDL
ExpHbaseInterface* allocEHI(NADefaults * defs = NULL);
+ short ddlInvalidateNATables();
+
void deallocEHI(ExpHbaseInterface* &ehi);
void dropLOBHdfsFiles();
enum {
@@ -479,7 +481,8 @@ class CmpSeabaseDDL
const int numSplits = 0,
const int keyLength = 0,
char **encodedKeysBuffer = NULL,
- NABoolean doRetry = TRUE);
+ NABoolean doRetry = FALSE,
+ NABoolean ddlXns = FALSE);
short createHbaseTable(ExpHbaseInterface *ehi,
HbaseStr *table,
@@ -488,15 +491,18 @@ class CmpSeabaseDDL
const int numSplits = 0,
const int keyLength = 0,
char **encodedKeysBuffer = NULL,
- NABoolean doRetry = TRUE);
+ NABoolean doRetry = TRUE,
+ NABoolean ddlXns = FALSE);
short alterHbaseTable(ExpHbaseInterface *ehi,
HbaseStr *table,
NAList<NAString> &allColFams,
- NAList<HbaseCreateOption*> * hbaseCreateOptions);
+ NAList<HbaseCreateOption*> * hbaseCreateOptions,
+ NABoolean ddlXns);
short dropHbaseTable(ExpHbaseInterface *ehi,
- HbaseStr *table, NABoolean asyncDrop = FALSE);
+ HbaseStr *table, NABoolean asyncDrop,
+ NABoolean ddlXns);
short copyHbaseTable(ExpHbaseInterface *ehi,
HbaseStr *currTable, HbaseStr* oldTable);
@@ -515,6 +521,7 @@ class CmpSeabaseDDL
const NAString &objName,
NAString &currCatName, NAString &currSchName,
const ComObjectType objType,
+ NABoolean ddlXns,
NABoolean dropFromMD = TRUE,
NABoolean dropFromHbase = TRUE);
@@ -896,7 +903,8 @@ class CmpSeabaseDDL
const NAString &catName,
const NAString &schName,
const NAString &objName,
- const ComObjectType objectType);
+ const ComObjectType objectType,
+ NABoolean ddlXns);
short createSeabaseTable2(
ExeCliInterface &cliInterface,
@@ -959,6 +967,7 @@ class CmpSeabaseDDL
ComObjectName &tableName,
ComAnsiNamePart &currCatAnsiName,
ComAnsiNamePart &currSchAnsiName,
+ StmtDDLNode * ddlNode,
StmtDDLAddConstraintPK * pkConstr,
StmtDDLAddConstraintUniqueArray &uniqueConstrArr,
StmtDDLAddConstraintRIArray &riConstrArr,
@@ -979,7 +988,8 @@ class CmpSeabaseDDL
const NAString &catalogNamePart,
const NAString &schemaNamePart,
const NAString &objectNamePart,
- char * colName, const NAColumn * nacol);
+ char * colName, const NAColumn * nacol,
+ NABoolean ddlXns);
short recreateViews(ExeCliInterface &cliInterface,
NAList<NAString> &viewNameList,
@@ -1111,18 +1121,19 @@ class CmpSeabaseDDL
StmtDDLDropHbaseTable * createTableNode,
NAString &currCatName, NAString &currSchName);
- void initSeabaseMD();
- void dropSeabaseMD();
+ void initSeabaseMD(NABoolean ddlXns);
+ void dropSeabaseMD(NABoolean ddlXns);
void createSeabaseMDviews();
void dropSeabaseMDviews();
void createSeabaseSeqTable();
void createSeabaseSchemaObjects();
void updateVersion();
- short createPrivMgrRepos(ExeCliInterface *cliInterface);
+ short createPrivMgrRepos(ExeCliInterface *cliInterface, NABoolean ddlXns);
short initSeabaseAuthorization(ExeCliInterface *cliInterface,
- std::vector<std::string> &tablesCreated,
- std::vector<std::string> &tablesUpgraded);
+ NABoolean ddlXns,
+ std::vector<std::string> &tablesCreated,
+ std::vector<std::string> &tablesUpgraded);
void dropSeabaseAuthorization(ExeCliInterface *cliInterface,
NABoolean doCleanup = FALSE);
@@ -1139,7 +1150,7 @@ class CmpSeabaseDDL
const ComObjectType objType);
- short dropSeabaseObjectsFromHbase(const char * pattern);
+ short dropSeabaseObjectsFromHbase(const char * pattern, NABoolean ddlXns);
short updateSeabaseAuths(ExeCliInterface * cliInterface, const char * sysCat);
void purgedataHbaseTable(DDLExpr * ddlExpr,
@@ -1287,7 +1298,7 @@ class CmpSeabaseDDL
NAString& hco); // out
- private:
+private:
enum
{
NUM_MAX_PARAMS = 20
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLcleanup.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLcleanup.cpp b/core/sql/sqlcomp/CmpSeabaseDDLcleanup.cpp
index 3fa0b16..f51c6ce 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLcleanup.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLcleanup.cpp
@@ -493,7 +493,7 @@ short CmpSeabaseMDcleanup::deleteMDentries(ExeCliInterface *cliInterface)
// fail to delete the base table row. Right now OBJECTS is the only metadata
// table with an index, so this is the only place we need to take this precaution.
- cliRC = cliInterface->holdAndSetCQD("HIDE_INDEXES","ALL",CmpCommon::diags());
+ cliRC = cliInterface->holdAndSetCQD("HIDE_INDEXES","ALL", NULL);
if (cliRC < 0)
{
if (processCleanupErrors(cliInterface, errorSeen))
@@ -514,7 +514,7 @@ short CmpSeabaseMDcleanup::deleteMDentries(ExeCliInterface *cliInterface)
// Restore previous setting of CQD HIDE_INDEXES
- cliRC = cliInterface->restoreCQD("HIDE_INDEXES",CmpCommon::diags());
+ cliRC = cliInterface->restoreCQD("HIDE_INDEXES", NULL);
if (cliRC < 0)
{
if (processCleanupErrors(cliInterface, errorSeen))
@@ -928,10 +928,13 @@ void CmpSeabaseMDcleanup::cleanupSchemaObjects(ExeCliInterface *cliInterface)
return;
}
CorrName cn(objName_, STMTHEAP, schName_, catName_);
- ActiveSchemaDB()->getNATableDB()->removeNATable(
- cn,
- NATableDB::REMOVE_FROM_ALL_USERS,
- COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (
+ cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS,
+ COM_BASE_TABLE_OBJECT,
+ FALSE, FALSE
+ );
}
}
@@ -1089,7 +1092,7 @@ short CmpSeabaseMDcleanup::cleanupOrphanObjectsEntries(ExeCliInterface *cliInter
NABoolean errorSeen = FALSE;
// find out all entries which do not have corresponsing hbase objects
- str_sprintf(query, "select object_uid, trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from %s.\"%s\".%s where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', 'PRIVMGR_MD') and (object_type = 'BT' or object_type = 'IX') ",
+ str_sprintf(query, "select object_uid, trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from %s.\"%s\".%s where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', '_PRIVMGR_MD_') and schema_name not like '|_HV|_%%' escape '|' and schema_name not like '|_HB|_%%' escape '|' and (object_type = 'BT' or object_type = 'IX') ",
getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS,
getSystemCatalog());
cliRC = cliInterface->fetchRowsPrologue(query);
@@ -1269,7 +1272,7 @@ short CmpSeabaseMDcleanup::cleanupInconsistentObjectsEntries(ExeCliInterface *cl
}
// find out all entries that exist in OBJECTS but not in OBJECTS_UNIQ_IDX
- str_sprintf(query, "select object_uid, trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from %s.\"%s\".%s where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', 'PRIVMGR_MD') and object_uid not in (select \"OBJECT_UID@\" from table(index_table %s.\"%s\".%s))",
+ str_sprintf(query, "select object_uid, trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from %s.\"%s\".%s where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', '_PRIVMGR_MD_') and object_uid not in (select \"OBJECT_UID@\" from table(index_table %s.\"%s\".%s))",
getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS,
getSystemCatalog(),
getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS_UNIQ_IDX);
@@ -1300,7 +1303,7 @@ short CmpSeabaseMDcleanup::cleanupInconsistentObjectsEntries(ExeCliInterface *cl
return -1;
}
- str_sprintf(query, "select \"OBJECT_UID@\", trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from table(index_table %s.\"%s\".%s) where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', 'PRIVMGR_MD') and \"OBJECT_UID@\" not in (select object_uid from %s.\"%s\".%s)",
+ str_sprintf(query, "select \"OBJECT_UID@\", trim(catalog_name) || '.' || trim(schema_name) || '.' || trim(object_name) from table(index_table %s.\"%s\".%s) where catalog_name = '%s' and schema_name not in ( '_MD_', '_REPOS_', '_PRIVMGR_MD_') and \"OBJECT_UID@\" not in (select object_uid from %s.\"%s\".%s)",
getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS_UNIQ_IDX,
getSystemCatalog(),
getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS);
@@ -1833,7 +1836,7 @@ void CmpSeabaseMDcleanup::cleanupObjects(StmtDDLCleanupObjects * stmtCleanupNode
hbaseObject.len = extNameForHbase_.length();
// drop this object from hbase
- cliRC = dropHbaseTable(ehi, &hbaseObject, FALSE);
+ cliRC = dropHbaseTable(ehi, &hbaseObject, FALSE, FALSE);
if (cliRC)
if (stopOnError_)
goto label_return;
@@ -1869,10 +1872,12 @@ void CmpSeabaseMDcleanup::cleanupObjects(StmtDDLCleanupObjects * stmtCleanupNode
if (NOT (catName_.isNull() || schName_.isNull() || objName_.isNull()))
{
CorrName cn(objName_, STMTHEAP, schName_, catName_);
- ActiveSchemaDB()->getNATableDB()->removeNATable(
- cn,
- NATableDB::REMOVE_FROM_ALL_USERS,
- COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (
+ cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS,
+ COM_BASE_TABLE_OBJECT,
+ FALSE, FALSE);
}
return;
@@ -1882,10 +1887,11 @@ void CmpSeabaseMDcleanup::cleanupObjects(StmtDDLCleanupObjects * stmtCleanupNode
(NOT extNameForHbase_.isNull()))
{
CorrName cn(objName_, STMTHEAP, schName_, catName_);
- ActiveSchemaDB()->getNATableDB()->removeNATable(
- cn,
- NATableDB::REMOVE_FROM_ALL_USERS,
- COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS,
+ COM_BASE_TABLE_OBJECT,
+ FALSE, FALSE);
}
label_return:
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
index 8f53cc9..69ed4c8 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLcommon.cpp
@@ -2014,6 +2014,9 @@ short CmpSeabaseDDL::beginXnIfNotInProgress(ExeCliInterface *cliInterface,
return -1;
}
+ CmpContext* cmpContext = CmpCommon::context();
+ cmpContext->ddlObjsList().clear();
+
xnWasStartedHere = TRUE;
}
@@ -2046,12 +2049,47 @@ short CmpSeabaseDDL::endXnIfStartedHere(ExeCliInterface *cliInterface,
cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
return cliRC;
}
+
+ ddlInvalidateNATables();
}
+
+ CmpContext* cmpContext = CmpCommon::context();
+ cmpContext->ddlObjsList().clear();
}
return cliRC;
}
+// Invalidate NATables for ddl objects that were affected in
+// this transaction.
+// DDL objects have already been set in ddlObjsList.
+short CmpSeabaseDDL::ddlInvalidateNATables()
+{
+ CmpContext* cmpContext = CmpCommon::context();
+ for (Lng32 i = 0; i < cmpContext->ddlObjsList().entries(); i++)
+ {
+ CmpContext::DDLObjInfo &ddlObj = cmpContext->ddlObjsList()[i];
+ NAString &ddlObjName = ddlObj.ddlObjName;
+ ComQiScope &qiScope = ddlObj.qiScope;
+ ComObjectType &ot = ddlObj.ot;
+
+ ComObjectName tableName(ddlObjName);
+
+ const NAString catalogNamePart =
+ tableName.getCatalogNamePartAsAnsiString();
+ const NAString schemaNamePart =
+ tableName.getSchemaNamePartAsAnsiString(TRUE);
+ const NAString objectNamePart =
+ tableName.getObjectNamePartAsAnsiString(TRUE);
+
+ CorrName cn(objectNamePart, STMTHEAP, schemaNamePart, catalogNamePart);
+
+ ActiveSchemaDB()->getNATableDB()->removeNATable(cn, qiScope, ot, TRUE, TRUE);
+ }
+
+ return 0;
+}
+
short CmpSeabaseDDL::populateKeyInfo(ComTdbVirtTableKeyInfo &keyInfo,
OutputInfo * oi, NABoolean isIndex)
{
@@ -2327,7 +2365,8 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
const int numSplits,
const int keyLength,
char** encodedKeysBuffer,
- NABoolean doRetry)
+ NABoolean doRetry,
+ NABoolean ddlXns)
{
// this method is called after validating that the table doesn't exist in seabase
// metadata. It creates the corresponding hbase table.
@@ -2361,7 +2400,7 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
if (retcode == -1)
{
- *CmpCommon::diags() << DgSqlCode(-1390)
+ *CmpCommon::diags() << DgSqlCode(-1431)
<< DgString0(table->val);
return -1;
}
@@ -2410,13 +2449,18 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
hbaseCreateOptionsArray[HBASE_NAME] = colFamNames.data();
- NABoolean noXn =
- (CmpCommon::getDefault(DDL_TRANSACTIONS) == DF_OFF) ? true : false;
-
+ // TEMPTEMP
+ // Currently DTM crashes if number of column families goes beyond 5.
+ // Do not use ddl xns if number of explicitly specified column fams
+ // exceed 5. This is not a common case as recommendation from HBase
+ // for good performance is to keep num of col fams small (3 or 4).
+ // Once dtm bug is fixed, this check will be removed.
+ if (colFamVec.size() > 5)
+ ddlXns = FALSE;
retcode = ehi->create(*table, hbaseCreateOptionsArray,
numSplits, keyLength,
(const char **)encodedKeysBuffer,
- noXn,
+ (NOT ddlXns),
isMVCC);
if (retcode < 0)
@@ -2440,7 +2484,8 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
const int numSplits,
const int keyLength,
char** encodedKeysBuffer,
- NABoolean doRetry)
+ NABoolean doRetry,
+ NABoolean ddlXns)
{
if (! cf1)
return -1;
@@ -2457,13 +2502,14 @@ short CmpSeabaseDDL::createHbaseTable(ExpHbaseInterface *ehi,
return createHbaseTable(ehi, table, colFamVec, hbaseCreateOptions,
numSplits, keyLength,
- encodedKeysBuffer, doRetry);
+ encodedKeysBuffer, doRetry, ddlXns);
}
short CmpSeabaseDDL::alterHbaseTable(ExpHbaseInterface *ehi,
HbaseStr *table,
NAList<NAString> &allColFams,
- NAList<HbaseCreateOption*> * hbaseCreateOptions)
+ NAList<HbaseCreateOption*> * hbaseCreateOptions,
+ NABoolean ddlXns)
{
short retcode = 0;
NAText hbaseCreateOptionsArray[HBASE_MAX_OPTIONS];
@@ -2476,8 +2522,7 @@ short CmpSeabaseDDL::alterHbaseTable(ExpHbaseInterface *ehi,
}
else
{
- NABoolean noXn =
- (CmpCommon::getDefault(DDL_TRANSACTIONS) == DF_OFF) ? true : false;
+ NABoolean noXn = (NOT ddlXns);
retcode = 0;
@@ -2513,22 +2558,19 @@ short CmpSeabaseDDL::alterHbaseTable(ExpHbaseInterface *ehi,
}
short CmpSeabaseDDL::dropHbaseTable(ExpHbaseInterface *ehi,
- HbaseStr *table, NABoolean asyncDrop)
+ HbaseStr *table, NABoolean asyncDrop,
+ NABoolean ddlXns)
{
short retcode = 0;
retcode = ehi->exists(*table);
if (retcode == -1) // exists
{
-
- NABoolean noXn =
- (CmpCommon::getDefault(DDL_TRANSACTIONS) == DF_OFF) ? true : false;
-
if ((CmpCommon::getDefault(HBASE_ASYNC_DROP_TABLE) == DF_ON) ||
(asyncDrop))
- retcode = ehi->drop(*table, TRUE, noXn);
+ retcode = ehi->drop(*table, TRUE, (NOT ddlXns));
else
- retcode = ehi->drop(*table, FALSE, noXn);
+ retcode = ehi->drop(*table, FALSE, (NOT ddlXns));
if (retcode < 0)
{
*CmpCommon::diags() << DgSqlCode(-8448)
@@ -5265,13 +5307,13 @@ void CmpSeabaseDDL::cleanupObjectAfterError(
const NAString &catName,
const NAString &schName,
const NAString &objName,
- const ComObjectType objectType)
+ const ComObjectType objectType,
+ NABoolean ddlXns)
{
- //if DDL_TRANSACTIONS is ON, no need of additional cleanup.
- //This check is temporary and will be removed once full functionality
- //is in.
- if(CmpCommon::getDefault(DDL_TRANSACTIONS) == DF_ON)
+ //if ddlXns are being used, no need of additional cleanup.
+ //transactional rollback will take care of cleanup.
+ if (ddlXns)
return;
Lng32 cliRC = 0;
@@ -6304,6 +6346,7 @@ short CmpSeabaseDDL::dropSeabaseObject(ExpHbaseInterface * ehi,
const NAString &objName,
NAString &currCatName, NAString &currSchName,
const ComObjectType objType,
+ NABoolean ddlXns,
NABoolean dropFromMD,
NABoolean dropFromHbase)
{
@@ -6361,7 +6404,8 @@ short CmpSeabaseDDL::dropSeabaseObject(ExpHbaseInterface * ehi,
HbaseStr hbaseTable;
hbaseTable.val = (char*)extNameForHbase.data();
hbaseTable.len = extNameForHbase.length();
- retcode = dropHbaseTable(ehi, &hbaseTable);
+
+ retcode = dropHbaseTable(ehi, &hbaseTable, FALSE, ddlXns);
if (retcode < 0)
{
return -1;
@@ -6478,7 +6522,7 @@ short CmpSeabaseDDL::updateSeabaseAuths(
return 0;
}
-void CmpSeabaseDDL::initSeabaseMD()
+void CmpSeabaseDDL::initSeabaseMD(NABoolean ddlXns)
{
Lng32 retcode = 0;
Lng32 cliRC = 0;
@@ -6536,7 +6580,23 @@ void CmpSeabaseDDL::initSeabaseMD()
deallocEHI(ehi);
return;
}
-
+
+ // drop and recreate DTM table TDDL.
+ // Do not do this drop/recreate operation under a dtm transaction.
+ // See file core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/client/transactional/TmDDL.java
+ // Keep the name TRAFODION._DTM_.TDDL and col fam "tddlcf" in sync with
+ // that file.
+ HbaseStr tddlTable;
+ const NAString tddlNAS("TRAFODION._DTM_.TDDL");
+ tddlTable.val = (char*)tddlNAS.data();
+ tddlTable.len = tddlNAS.length();
+ if (ehi->exists(tddlTable) == -1) // exists
+ {
+ dropHbaseTable(ehi, &tddlTable, FALSE, FALSE);
+ createHbaseTable(ehi, &tddlTable, "tddlcf",
+ NULL, 0, 0, NULL, FALSE, FALSE);
+ }
+
// create hbase physical objects
for (Lng32 i = 0; i < numTables; i++)
{
@@ -6550,7 +6610,9 @@ void CmpSeabaseDDL::initSeabaseMD()
hbaseObjectStr += mdti.newName;
hbaseObject.val = (char*)hbaseObjectStr.data();
hbaseObject.len = hbaseObjectStr.length();
- if (createHbaseTable(ehi, &hbaseObject, SEABASE_DEFAULT_COL_FAMILY, NULL) == -1)
+ if (createHbaseTable(ehi, &hbaseObject, SEABASE_DEFAULT_COL_FAMILY, NULL,
+ 0, 0, NULL,
+ FALSE, ddlXns) == -1)
{
deallocEHI(ehi);
return;
@@ -6701,7 +6763,7 @@ void CmpSeabaseDDL::initSeabaseMD()
goto label_error;
}
- if (createPrivMgrRepos(&cliInterface))
+ if (createPrivMgrRepos(&cliInterface, ddlXns))
{
goto label_error;
}
@@ -6908,7 +6970,8 @@ short CmpSeabaseDDL::createSchemaObjects(ExeCliInterface *cliInterface)
//
// The diags area is populated with any unexpected errors
// ----------------------------------------------------------------------------
-short CmpSeabaseDDL::createPrivMgrRepos(ExeCliInterface *cliInterface)
+short CmpSeabaseDDL::createPrivMgrRepos(ExeCliInterface *cliInterface,
+ NABoolean ddlXns)
{
// During install, the customer can choose to enable security features through
// an installation option which sets the the environment variable
@@ -6921,7 +6984,8 @@ short CmpSeabaseDDL::createPrivMgrRepos(ExeCliInterface *cliInterface)
std::vector<std::string> tablesCreated;
std::vector<std::string> tablesUpgraded;
- if (initSeabaseAuthorization(cliInterface, tablesCreated, tablesUpgraded) < 0)
+ if (initSeabaseAuthorization(cliInterface, ddlXns,
+ tablesCreated, tablesUpgraded) < 0)
return -1;
return 0;
@@ -7285,8 +7349,10 @@ void CmpSeabaseDDL::alterSeabaseSequence(StmtDDLCreateSequence * alterSequence
CorrName cn(seqNamePart, STMTHEAP, schemaNamePart, catalogNamePart);
cn.setSpecialType(ExtendedQualName::SG_TABLE);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_SEQUENCE_GENERATOR_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_SEQUENCE_GENERATOR_OBJECT,
+ alterSequenceNode->ddlXns(), FALSE);
return;
}
@@ -7386,19 +7452,22 @@ void CmpSeabaseDDL::dropSeabaseSequence(StmtDDLDropSequence * dropSequenceNode
CorrName cn(objectNamePart, STMTHEAP, schemaNamePart, catalogNamePart);
cn.setSpecialType(ExtendedQualName::SG_TABLE);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_SEQUENCE_GENERATOR_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_SEQUENCE_GENERATOR_OBJECT,
+ dropSequenceNode->ddlXns(), FALSE);
return;
}
-short CmpSeabaseDDL::dropSeabaseObjectsFromHbase(const char * pattern)
+short CmpSeabaseDDL::dropSeabaseObjectsFromHbase(const char * pattern,
+ NABoolean ddlXns)
{
ExpHbaseInterface * ehi = allocEHI();
if (ehi == NULL)
return -1;
- short retcode = ehi->dropAll(pattern, FALSE);
+ short retcode = ehi->dropAll(pattern, FALSE, (NOT ddlXns));
if (retcode < 0)
{
@@ -7414,7 +7483,7 @@ short CmpSeabaseDDL::dropSeabaseObjectsFromHbase(const char * pattern)
return 0;
}
-void CmpSeabaseDDL::dropSeabaseMD()
+void CmpSeabaseDDL::dropSeabaseMD(NABoolean ddlXns)
{
Lng32 cliRC;
Lng32 retcode = 0;
@@ -7428,7 +7497,7 @@ void CmpSeabaseDDL::dropSeabaseMD()
}
// drop all objects that match the pattern "TRAFODION.*"
- dropSeabaseObjectsFromHbase("TRAFODION\\..*");
+ dropSeabaseObjectsFromHbase("TRAFODION\\..*", ddlXns);
SQL_EXEC_DeleteHbaseJNI();
@@ -7480,6 +7549,7 @@ void CmpSeabaseDDL::dropLOBHdfsFiles()
// ----------------------------------------------------------------------------
short CmpSeabaseDDL::initSeabaseAuthorization(
ExeCliInterface *cliInterface,
+ NABoolean ddlXns,
std::vector<std::string> &tablesCreated,
std::vector<std::string> &tablesUpgraded)
{
@@ -7529,7 +7599,7 @@ short CmpSeabaseDDL::initSeabaseAuthorization(
// If any tables were created, go drop them now.
// Ignore any returned errors
- if (CmpCommon::getDefault(DDL_TRANSACTIONS) == DF_OFF)
+ if (NOT ddlXns)
{
bool doCleanup = true;
retcode = privInterface.dropAuthorizationMetadata(doCleanup);
@@ -7750,7 +7820,7 @@ short CmpSeabaseDDL::dropMDTable(ExpHbaseInterface *ehi, const char * tab)
retcode = existsInHbase(hbaseObject, ehi);
if (retcode == 1) // exists
{
- retcode = dropHbaseTable(ehi, &hbaseObjStr, FALSE);
+ retcode = dropHbaseTable(ehi, &hbaseObjStr, FALSE, FALSE);
return retcode;
}
@@ -7972,7 +8042,8 @@ void CmpSeabaseDDL::purgedataHbaseTable(DDLExpr * ddlExpr,
hbaseTable.len = extNameForHbase.length();
// drop this table from hbase
- retcode = dropHbaseTable(ehi, &hbaseTable, FALSE);
+ NABoolean ddlXns = ddlExpr->ddlXns();
+ retcode = dropHbaseTable(ehi, &hbaseTable, FALSE, ddlXns);
if (retcode)
{
deallocEHI(ehi);
@@ -8026,7 +8097,8 @@ void CmpSeabaseDDL::purgedataHbaseTable(DDLExpr * ddlExpr,
retcode = createHbaseTable(ehi, &hbaseTable, trafColFamVec,
hbaseCreateOptions,
numSplits, keyLength,
- encodedKeysBuffer);
+ encodedKeysBuffer,
+ TRUE, ddlXns);
if (retcode == -1)
{
deallocEHI(ehi);
@@ -8059,7 +8131,7 @@ void CmpSeabaseDDL::purgedataHbaseTable(DDLExpr * ddlExpr,
hbaseIndex.len = extNameForIndex.length();
// drop this table from hbase
- retcode = dropHbaseTable(ehi, &hbaseIndex, FALSE);
+ retcode = dropHbaseTable(ehi, &hbaseIndex, FALSE, ddlXns);
if (retcode)
{
deallocEHI(ehi);
@@ -8167,35 +8239,71 @@ short CmpSeabaseDDL::executeSeabaseDDL(DDLExpr * ddlExpr, ExprNode * ddlNode,
}
NABoolean startXn = TRUE;
- if ((ddlExpr->dropHbase()) ||
- (ddlExpr->purgedataHbase()) ||
- (ddlExpr->initHbase()) ||
- (ddlExpr->createMDViews()) ||
- (ddlExpr->dropMDViews()) ||
- (ddlExpr->initAuthorization()) ||
- (ddlExpr->dropAuthorization()) ||
- (ddlExpr->addSeqTable()) ||
- (ddlExpr->createRepos()) ||
- (ddlExpr->dropRepos()) ||
- (ddlExpr->upgradeRepos()) ||
- (ddlExpr->addSchemaObjects()) ||
- (ddlExpr->updateVersion()) ||
- ((ddlNode) &&
- // TODO: When making ALTER TABLE/INDEX transactional, add cases here for them
- ((ddlNode->getOperatorType() == DDL_DROP_SCHEMA) ||
- (ddlNode->getOperatorType() == DDL_CLEANUP_OBJECTS) ||
- (ddlNode->getOperatorType() == DDL_ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY) ||
- (ddlNode->getOperatorType() == DDL_ALTER_TABLE_ALTER_COLUMN_SET_SG_OPTION) ||
- (ddlNode->getOperatorType() == DDL_CREATE_INDEX) ||
- (ddlNode->getOperatorType() == DDL_POPULATE_INDEX) ||
- (ddlNode->getOperatorType() == DDL_CREATE_TABLE) ||
- (ddlNode->getOperatorType() == DDL_ALTER_TABLE_DROP_COLUMN) ||
- (ddlNode->getOperatorType() == DDL_DROP_TABLE))))
+
+ // no DDL transactions.
+ if ((NOT ddlExpr->ddlXns()) &&
+ ((ddlExpr->dropHbase()) ||
+ (ddlExpr->purgedataHbase()) ||
+ (ddlExpr->initHbase()) ||
+ (ddlExpr->createMDViews()) ||
+ (ddlExpr->dropMDViews()) ||
+ (ddlExpr->initAuthorization()) ||
+ (ddlExpr->dropAuthorization()) ||
+ (ddlExpr->addSeqTable()) ||
+ (ddlExpr->createRepos()) ||
+ (ddlExpr->dropRepos()) ||
+ (ddlExpr->upgradeRepos()) ||
+ (ddlExpr->addSchemaObjects()) ||
+ (ddlExpr->updateVersion())))
+ {
+ // transaction will be started and commited in called methods.
+ startXn = FALSE;
+ }
+
+ // no DDL transactions
+ if (((ddlNode) && (ddlNode->castToStmtDDLNode()) &&
+ (NOT ddlNode->castToStmtDDLNode()->ddlXns())) &&
+ ((ddlNode->getOperatorType() == DDL_DROP_SCHEMA) ||
+ (ddlNode->getOperatorType() == DDL_CLEANUP_OBJECTS) ||
+ (ddlNode->getOperatorType() == DDL_ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY) ||
+ (ddlNode->getOperatorType() == DDL_ALTER_TABLE_ALTER_COLUMN_SET_SG_OPTION) ||
+ (ddlNode->getOperatorType() == DDL_CREATE_INDEX) ||
+ (ddlNode->getOperatorType() == DDL_POPULATE_INDEX) ||
+ (ddlNode->getOperatorType() == DDL_CREATE_TABLE) ||
+ (ddlNode->getOperatorType() == DDL_ALTER_TABLE_DROP_COLUMN) ||
+ (ddlNode->getOperatorType() == DDL_DROP_TABLE)))
+ {
+ // transaction will be started and commited in called methods.
+ startXn = FALSE;
+ }
+
+ // ddl transactions are on.
+ // Following commands currently require transactions be started and
+ // committed in the called methods.
+ if ((ddlExpr->ddlXns()) &&
+ (
+ (ddlExpr->purgedataHbase()) ||
+ (ddlExpr->initAuthorization()) ||
+ (ddlExpr->dropAuthorization()) ||
+ (ddlExpr->upgradeRepos())
+ )
+ )
{
// transaction will be started and commited in called methods.
startXn = FALSE;
}
+ // ddl transactions are on.
+ // Cleanup command requires transactions to be started and commited
+ // in the called method.
+ if ((ddlNode && ddlNode->castToStmtDDLNode() &&
+ ddlNode->castToStmtDDLNode()->ddlXns()) &&
+ (ddlNode->getOperatorType() == DDL_CLEANUP_OBJECTS))
+ {
+ // transaction will be started and commited in called methods.
+ startXn = FALSE;
+ }
+
if (startXn)
{
if (beginXnIfNotInProgress(&cliInterface, xnWasStartedHere))
@@ -8204,11 +8312,11 @@ short CmpSeabaseDDL::executeSeabaseDDL(DDLExpr * ddlExpr, ExprNode * ddlNode,
if (ddlExpr->initHbase())
{
- initSeabaseMD();
+ initSeabaseMD(ddlExpr->ddlXns());
}
else if (ddlExpr->dropHbase())
{
- dropSeabaseMD();
+ dropSeabaseMD(ddlExpr->ddlXns());
}
else if (ddlExpr->createMDViews())
{
@@ -8224,7 +8332,8 @@ short CmpSeabaseDDL::executeSeabaseDDL(DDLExpr * ddlExpr, ExprNode * ddlNode,
std::vector<std::string> tablesUpgraded;
// Can ignore status returned, diags area contains any unexpected errors
- initSeabaseAuthorization(&cliInterface, tablesCreated, tablesUpgraded);
+ initSeabaseAuthorization(&cliInterface, ddlExpr->ddlXns(),
+ tablesCreated, tablesUpgraded);
#ifdef _DEBUG
// Do we want to display this information? Base it on a cqd or envvar?
@@ -8706,6 +8815,7 @@ short CmpSeabaseDDL::executeSeabaseDDL(DDLExpr * ddlExpr, ExprNode * ddlNode,
} // else
label_return:
+
restoreAllControlsAndFlags();
if (CmpCommon::diags()->getNumber(DgSqlCode::ERROR_))
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
index ca4f0be..89c00bc 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLindex.cpp
@@ -686,8 +686,11 @@ void CmpSeabaseDDL::createSeabaseIndex(
extNameForHbase = catalogNamePart + "." + schemaNamePart + "." + objectNamePart;
}
- retcode = existsInSeabaseMDTable(&cliInterface,
- catalogNamePart, schemaNamePart, objectNamePart);
+ retcode = existsInSeabaseMDTable
+ (&cliInterface,
+ catalogNamePart, schemaNamePart, objectNamePart,
+ COM_INDEX_OBJECT,
+ FALSE/*valid or invalid object*/);
if (retcode < 0)
{
deallocEHI(ehi);
@@ -696,7 +699,24 @@ void CmpSeabaseDDL::createSeabaseIndex(
return;
}
-
+
+ if (retcode == 0) // doesn't exist
+ {
+ retcode = existsInSeabaseMDTable
+ (&cliInterface,
+ catalogNamePart, schemaNamePart, objectNamePart,
+ COM_UNKNOWN_OBJECT/*check for any object with this name*/,
+ TRUE/*valid object*/);
+ if (retcode < 0)
+ {
+ deallocEHI(ehi);
+
+ processReturn();
+
+ return;
+ }
+ }
+
if (retcode == 1) // already exists
{
if (1) //NOT createIndexNode->createIfNotExists())
@@ -806,6 +826,8 @@ void CmpSeabaseDDL::createSeabaseIndex(
}
}
+ NABoolean ddlXns = FALSE;
+
Lng32 keyColCount = 0;
Lng32 nonKeyColCount = 0;
Lng32 totalColCount = 0;
@@ -936,10 +958,12 @@ void CmpSeabaseDDL::createSeabaseIndex(
endXnIfStartedHere(&cliInterface, xnWasStartedHere, 0);
+ ddlXns = createIndexNode->ddlXns();
if (createHbaseTable(ehi, &hbaseIndex, trafColFam.data(),
&hbaseCreateOptions,
numSplits, keyLength,
- encodedKeysBuffer) == -1)
+ encodedKeysBuffer,
+ FALSE, ddlXns) == -1)
{
goto label_error_drop_index;
}
@@ -954,7 +978,8 @@ void CmpSeabaseDDL::createSeabaseIndex(
if (indexOpt)
{
- // validate that table is empty
+ // validate that table is empty.
+ // If table is empty, no need to load data into the index.
HbaseStr tblName;
tblName.val = (char*)extTableNameForHbase.data();
tblName.len = extNameForHbase.length();
@@ -981,10 +1006,6 @@ void CmpSeabaseDDL::createSeabaseIndex(
goto label_error_drop_index;
}
}
- else
- {
- // TBD. Validate that table is empty.
- }
if (updateObjectAuditAttr(&cliInterface,
catalogNamePart, schemaNamePart, objectNamePart,
@@ -1013,9 +1034,11 @@ void CmpSeabaseDDL::createSeabaseIndex(
if (!Get_SqlParser_Flags(INTERNAL_QUERY_FROM_EXEUTIL))
{
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS,
- COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS,
+ COM_BASE_TABLE_OBJECT,
+ createIndexNode->ddlXns(), FALSE);
}
return;
@@ -1031,7 +1054,8 @@ void CmpSeabaseDDL::createSeabaseIndex(
cleanupObjectAfterError(cliInterface,
catalogNamePart, schemaNamePart, objectNamePart,
- COM_INDEX_OBJECT);
+ COM_INDEX_OBJECT,
+ createIndexNode->ddlXns());
deallocEHI(ehi);
@@ -1659,7 +1683,8 @@ void CmpSeabaseDDL::dropSeabaseIndex(
}
if (dropSeabaseObject(ehi, idxName,
- currCatName, currSchName, COM_INDEX_OBJECT))
+ currCatName, currSchName, COM_INDEX_OBJECT,
+ dropIndexNode->ddlXns()))
{
processReturn();
@@ -1681,17 +1706,23 @@ void CmpSeabaseDDL::dropSeabaseIndex(
// remove NATable for the base table of this index
CorrName cn(btObjName, STMTHEAP, btSchName, btCatName);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT,
+ dropIndexNode->ddlXns(), FALSE);
// remove NATable for this index in its real form as well as in its index_table
// standalone format
CorrName cni(objectNamePart, STMTHEAP, schemaNamePart, catalogNamePart);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cni,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_INDEX_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cni,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_INDEX_OBJECT,
+ dropIndexNode->ddlXns(), FALSE);
cni.setSpecialType(ExtendedQualName::INDEX_TABLE);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cni,
- NATableDB::REMOVE_MINE_ONLY, COM_INDEX_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cni,
+ ComQiScope::REMOVE_MINE_ONLY, COM_INDEX_OBJECT,
+ dropIndexNode->ddlXns(), FALSE);
// processReturn();
@@ -1818,12 +1849,16 @@ void CmpSeabaseDDL::alterSeabaseTableDisableOrEnableIndex(
// remove NATable for the base table of this index
CorrName cn(btObjName, STMTHEAP, btSchName, btCatName);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT,
+ ddlNode->castToStmtDDLNode()->ddlXns(), FALSE);
// Also, remove index.
CorrName cni(objectNamePart, STMTHEAP, schemaNamePart, catalogNamePart);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cni,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_INDEX_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cni,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_INDEX_OBJECT,
+ ddlNode->castToStmtDDLNode()->ddlXns(), FALSE);
// processReturn();
@@ -1946,8 +1981,10 @@ void CmpSeabaseDDL::alterSeabaseTableDisableOrEnableAllIndexes(
return;
}
CorrName cn( objectNamePart, STMTHEAP, NAString(schName), NAString(catName));
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT,
+ ddlNode->castToStmtDDLNode()->ddlXns(), FALSE);
}
return ;
@@ -2105,7 +2142,8 @@ void CmpSeabaseDDL::alterSeabaseIndexHBaseOptions(
result = alterHbaseTable(ehi,
&hbaseTable,
nal,
- &(edhbo->getHbaseOptions()));
+ &(edhbo->getHbaseOptions()),
+ hbaseOptionsNode->ddlXns());
if (result < 0)
{
deallocEHI(ehi);
@@ -2115,8 +2153,10 @@ void CmpSeabaseDDL::alterSeabaseIndexHBaseOptions(
// invalidate cached NATable info on this table for all users
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT,
+ hbaseOptionsNode->ddlXns(), FALSE);
deallocEHI(ehi);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
index 5868ebc..43fd8d3 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLrepos.cpp
@@ -206,7 +206,7 @@ short CmpSeabaseMDupgrade::dropReposTables(ExpHbaseInterface *ehi,
hbaseTable.val = (char*)extNameForHbase.data();
hbaseTable.len = extNameForHbase.length();
- retcode = dropHbaseTable(ehi, &hbaseTable);
+ retcode = dropHbaseTable(ehi, &hbaseTable, FALSE, FALSE);
if (retcode < 0)
{
errcode = -1;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp b/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
index 975375e..85a3f26 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLroutine.cpp
@@ -521,6 +521,7 @@ void CmpSeabaseDDL::dropSeabaseLibrary(StmtDDLDropLibrary * dropLibraryNode,
if (dropSeabaseObject(ehi, routineName,
currCatName, currSchName, objectType,
+ dropLibraryNode->ddlXns(),
TRUE, FALSE))
{
deallocEHI(ehi);
@@ -532,6 +533,7 @@ void CmpSeabaseDDL::dropSeabaseLibrary(StmtDDLDropLibrary * dropLibraryNode,
// can get a slight perf. gain if we pass in objUID
if (dropSeabaseObject(ehi, objName,
currCatName, currSchName, COM_LIBRARY_OBJECT,
+ dropLibraryNode->ddlXns(),
TRUE, FALSE))
{
deallocEHI(ehi);
@@ -1293,7 +1295,9 @@ void CmpSeabaseDDL::dropSeabaseRoutine(StmtDDLDropRoutine * dropRoutineNode,
// Removed routine from metadata
if (dropSeabaseObject(ehi, dropRoutineNode->getRoutineName(),
- currCatName, currSchName, COM_USER_DEFINED_ROUTINE_OBJECT,
+ currCatName, currSchName,
+ COM_USER_DEFINED_ROUTINE_OBJECT,
+ dropRoutineNode->ddlXns(),
TRUE, FALSE))
{
deallocEHI(ehi);
@@ -1303,7 +1307,7 @@ void CmpSeabaseDDL::dropSeabaseRoutine(StmtDDLDropRoutine * dropRoutineNode,
// Remove cached entries in other processes
pRoutineDBCache->removeNARoutine(qualRoutineName,
- NARoutineDB::REMOVE_FROM_ALL_USERS,
+ ComQiScope::REMOVE_FROM_ALL_USERS,
objUID);
deallocEHI(ehi);
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/cd9f7a1a/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp b/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
index 0e0bf64..34a8cf0 100644
--- a/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
+++ b/core/sql/sqlcomp/CmpSeabaseDDLschema.cpp
@@ -60,7 +60,8 @@ static bool dropOneTable(
const char * catalogName,
const char * schemaName,
const char * objectName,
- bool isVolatile);
+ bool isVolatile,
+ bool ddlXns);
static bool transferObjectPrivs(
const char * systemCatalogName,
@@ -98,8 +99,10 @@ static bool transferObjectPrivs(
// * *
// * Returns: status
// * *
-// * 0: Schema was added *
+// * 0: Schema was added *
// * -1: Schema was not added. A CLI error is put into the diags area. *
+// * 1: Schema already exists and ignoreIfExists is specified. *
+// * No error is added to the diags area. *
// * *
// *****************************************************************************
int CmpSeabaseDDL::addSchemaObject(
@@ -136,7 +139,7 @@ Lng32 retcode = existsInSeabaseMDTable(&cliInterface,catalogName,schemaNamePart,
if (retcode == 1 ) // already exists
{
if (ignoreIfExists)
- return 0;
+ return 1;
else
*CmpCommon::diags() << DgSqlCode(-CAT_SCHEMA_ALREADY_EXISTS)
<< DgSchemaName(schemaName.getExternalName().data());
@@ -545,7 +548,7 @@ void CmpSeabaseDDL::dropSeabaseSchema(StmtDDLDropSchema * dropSchemaNode)
dirtiedMetadata = TRUE;
if (dropOneTable(cliInterface,(char*)catName.data(),
(char*)schName.data(),(char*)objName.data(),
- isVolatile))
+ isVolatile, dropSchemaNode->ddlXns()))
someObjectsCouldNotBeDropped = true;
}
}
@@ -650,7 +653,7 @@ void CmpSeabaseDDL::dropSeabaseSchema(StmtDDLDropSchema * dropSchemaNode)
dirtiedMetadata = TRUE;
if (dropOneTable(cliInterface,(char*)catName.data(),
(char*)schName.data(),(char*)objName.data(),
- isVolatile))
+ isVolatile, dropSchemaNode->ddlXns()))
someObjectsCouldNotBeDropped = true;
}
}
@@ -743,7 +746,7 @@ void CmpSeabaseDDL::dropSeabaseSchema(StmtDDLDropSchema * dropSchemaNode)
if (dropSchemaNode->dropObjectsOnly())
return;
- // Verify all objects in the schema have been dropped.
+ // Verify all objects in the schema have been dropped.
str_sprintf(query,"SELECT COUNT(*) "
"FROM %s.\"%s\".%s "
"WHERE catalog_name = '%s' AND schema_name = '%s' AND "
@@ -762,7 +765,7 @@ void CmpSeabaseDDL::dropSeabaseSchema(StmtDDLDropSchema * dropSchemaNode)
if (rowCount > 0)
{
- CmpCommon::diags()->clear();
+ CmpCommon::diags()->clear();
*CmpCommon::diags() << DgSqlCode(-CAT_UNABLE_TO_DROP_SCHEMA)
<< DgSchemaName(catName + "." + schName);
@@ -1147,7 +1150,8 @@ static bool dropOneTable(
const char * catalogName,
const char * schemaName,
const char * objectName,
- bool isVolatile)
+ bool isVolatile,
+ bool ddlXns)
{
@@ -1193,8 +1197,10 @@ ULng32 savedParserFlags = Get_SqlParser_Flags(0xFFFFFFFF);
// remove NATable entry for this table
CorrName cn(objectName,STMTHEAP,schemaName,catalogName);
- ActiveSchemaDB()->getNATableDB()->removeNATable(cn,
- NATableDB::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT);
+ ActiveSchemaDB()->getNATableDB()->removeNATable
+ (cn,
+ ComQiScope::REMOVE_FROM_ALL_USERS, COM_BASE_TABLE_OBJECT,
+ ddlXns, FALSE);
return someObjectsCouldNotBeDropped;