From 27822daa1ee4c3a0e48e6baa59c3769a1afbc7fd Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Feb 2023 09:29:31 +0000 Subject: [PATCH 1/2] Use db2tcl to drop schema --- src/db2/db2olap.tcl | 22 +++++++--------------- src/db2/db2oltp.tcl | 22 +++++++--------------- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/src/db2/db2olap.tcl b/src/db2/db2olap.tcl index d703c1dd..06907d00 100755 --- a/src/db2/db2olap.tcl +++ b/src/db2/db2olap.tcl @@ -1185,25 +1185,17 @@ if [catch {::tcl::tm::path add modules} ] { error "Failed to find modules direct if [catch {package require tpchcommon} ] { error "Failed to load tpch common functions" } else { namespace import tpchcommon::* } proc drop_schema { dbname user password } { - global tcl_platform - set force "db2 force applications all" - set drop "db2 drop database $dbname" - if {$tcl_platform(platform) == "windows"} { - set prefix "db2cmd -c" - } else { - set prefix "" - } - - if {[ catch {eval exec [ concat $prefix $force ]} message ]} { + if {[ catch {db2_force_off} message ]} { error $message } else { puts "force applications all complete." - if {[ catch {eval exec [ concat $prefix $drop ]} message ]} { - error $message - } else { - puts "$dbname TPROC-H schema has been deleted successfully." + if {[ catch {db2_drop_db $dbname} message ]} { + error $message + } else { + puts "$dbname TPROC-H schema has been deleted successfully." + } } -} + return } } diff --git a/src/db2/db2oltp.tcl b/src/db2/db2oltp.tcl index 561daa0b..8447a7c1 100755 --- a/src/db2/db2oltp.tcl +++ b/src/db2/db2oltp.tcl @@ -2335,25 +2335,17 @@ if [catch {::tcl::tm::path add modules} ] { error "Failed to find modules direct if [catch {package require tpcccommon} ] { error "Failed to load tpcc common functions" } else { namespace import tpcccommon::* } proc drop_schema { dbname user password } { - global tcl_platform - set force "db2 force applications all" - set drop "db2 drop database $dbname" - if {$tcl_platform(platform) == "windows"} { - set prefix "db2cmd -c" - } else { - set prefix "" - } - - if {[ catch {eval exec [ concat $prefix $force ]} message ]} { + if {[ catch {db2_force_off} message ]} { error $message } else { puts "force applications all complete." - if {[ catch {eval exec [ concat $prefix $drop ]} message ]} { - error $message - } else { - puts "$dbname TPROC-C schema has been deleted successfully." + if {[ catch {db2_drop_db $dbname} message ]} { + error $message + } else { + puts "$dbname TPROC-C schema has been deleted successfully." + } } -} + return } } From 99b3f97854721ddde3469e71a66ff0d875165739 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 2 Feb 2023 08:23:03 +0000 Subject: [PATCH 2/2] create database in buildschema for db2 --- src/db2/db2olap.tcl | 16 ++++++++++++++-- src/db2/db2oltp.tcl | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/db2/db2olap.tcl b/src/db2/db2olap.tcl index 06907d00..4bf46bdf 100755 --- a/src/db2/db2olap.tcl +++ b/src/db2/db2olap.tcl @@ -55,6 +55,17 @@ proc ConnectToDb2 { dbname user password } { return $db_handle }} +proc CreateDatabase { dbname } { + puts "CREATING DATABASE $dbname" + if {[ catch {db2_create_db $dbname} message ]} { + error $message + } else { + puts "DATABASE $dbname has been created successfully." + } + + return +} + proc CreateTables { db_handle tspace organization } { puts "CREATING TPCH TABLES" if { $organization eq "DATE" } { @@ -494,6 +505,7 @@ proc do_tpch { dbname scale_fact user password tpch_def_tab column_based num_vu } if { $threaded eq "SINGLE-THREADED" || $threaded eq "MULTI-THREADED" && $myposition eq 1 } { puts "CREATING [ string toupper $user ] SCHEMA" + CreateDatabase $dbname set db_handle [ ConnectToDb2 $dbname $user $password ] switch [ string toupper $column_based ] { COLUMN { set organization "organize by column" } @@ -1184,7 +1196,7 @@ set library $library if [catch {::tcl::tm::path add modules} ] { error "Failed to find modules directory" } if [catch {package require tpchcommon} ] { error "Failed to load tpch common functions" } else { namespace import tpchcommon::* } -proc drop_schema { dbname user password } { +proc drop_schema { dbname } { if {[ catch {db2_force_off} message ]} { error $message } else { @@ -1199,7 +1211,7 @@ proc drop_schema { dbname user password } { return } } - .ed_mainFrame.mainwin.textFrame.left.text fastinsert end "drop_schema $db2_tpch_dbase $db2_tpch_user $db2_tpch_pass" + .ed_mainFrame.mainwin.textFrame.left.text fastinsert end "drop_schema $db2_tpch_dbase" } else { return } } diff --git a/src/db2/db2oltp.tcl b/src/db2/db2oltp.tcl index 8447a7c1..8bb697d3 100755 --- a/src/db2/db2oltp.tcl +++ b/src/db2/db2oltp.tcl @@ -441,6 +441,17 @@ proc ConnectToDb2 { dbname user password } { return $db_handle }} +proc CreateDatabase { dbname } { + puts "CREATING DATABASE $dbname" + if {[ catch {db2_create_db $dbname} message ]} { + error $message + } else { + puts "DATABASE $dbname has been created successfully." + } + + return +} + proc CreateTables { db_handle num_part count_ware tspace_dict } { puts "CREATING TPCC TABLES" set sql(2) "CREATE TABLE DISTRICT (D_NEXT_O_ID INTEGER, D_TAX REAL, D_YTD DECIMAL(12, 2), D_NAME CHAR(10), D_STREET_1 CHAR(20), D_STREET_2 CHAR(20), D_CITY CHAR(20), D_STATE CHAR(2), D_ZIP CHAR(9), D_ID SMALLINT NOT NULL, D_W_ID INTEGER NOT NULL) IN [ dict get $tspace_dict D ] INDEX IN [ dict get $tspace_dict D ] ORGANIZE BY KEY SEQUENCE ( D_ID STARTING FROM 1 ENDING AT 10, D_W_ID STARTING FROM 1 ENDING AT $count_ware ) ALLOW OVERFLOW" @@ -846,6 +857,7 @@ proc do_tpcc { dbname user password count_ware partition num_vu tpcc_def_tab tpc set num_vu 1 } if { $threaded eq "SINGLE-THREADED" || $threaded eq "MULTI-THREADED" && $myposition eq 1 } { + CreateDatabase $dbname set db_handle [ ConnectToDb2 $dbname $user $password ] if { $partition eq "true" && [ expr $count_ware >= 10 ] } { set num_part 10 @@ -2334,7 +2346,7 @@ set library $library if [catch {::tcl::tm::path add modules} ] { error "Failed to find modules directory" } if [catch {package require tpcccommon} ] { error "Failed to load tpcc common functions" } else { namespace import tpcccommon::* } -proc drop_schema { dbname user password } { +proc drop_schema { dbname } { if {[ catch {db2_force_off} message ]} { error $message } else { @@ -2349,6 +2361,6 @@ proc drop_schema { dbname user password } { return } } - .ed_mainFrame.mainwin.textFrame.left.text fastinsert end "drop_schema $db2_dbase $db2_user $db2_pass" + .ed_mainFrame.mainwin.textFrame.left.text fastinsert end "drop_schema $db2_dbase" } else { return } }