TRAFODION-1636 & TRAFODION-1642 TRAFODION-1636: wms and dcs directories contain NOTICE and LICENSE FILES TRAFODION-1642: Release 1.3.0 copyrights and license files are incorrect
Fixed up copyrights Removed Apache copyrights (should only have one copyright in file) core/sql/common/swscanf.cpp core/sql/common/sqsprintf.cpp core/sql/parser/ulexer.h Removed copyright - deemed to be our code and can safely remove core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java core/sql/regress/newregr/card/runregr_card.ksh dcs/src/main/java/org/trafodion/dcs/util/ByteBufferUtils.java dcs/src/main/java/org/trafodion/dcs/util/SqlUtils.java Replaced Hewlett Packard copyright with Apache copyright core/sql/regress/seabase/EXPECTED021 core/sql/regress/udr/EXPECTED100.SB docs/client_install/source/Trafodion_Client_Installation_Guide.xml docs/client_install/source/xml-profile.xml docs/command_interface/source/Trafodion_Command_Interface_Guide.xml docs/command_interface/source/xml-profile.xml docs/odb_manual/Trafodion_odb_User_Guide.xml docs/sql_reference/source/Trafodion_SQL_Reference_Manual.xml docs/sql_reference/source/xml-profile.xml wms/build.xml Removed code/files that are not being used that contain invalid copyrights core/sqf/export/lib/Vili/Functions.pm core/sqf/export/lib/Vili/Helper.pm core/sqf/export/lib/Vili/NoDriftTimer.pm core/sql/common/from_GB2312.c core/sql/regress/newregr/mvs/BIG/expectedmv215_RU core/sql/regress/newregr/mvs/EXPECTEDMV500 core/sql/regress/newregr/mvs/EXPECTEDMV500A core/sql/regress/newregr/mvs/EXPECTEDMV500A_LINUX core/sql/regress/newregr/mvs/TPCD/DBGEN_HELP.TXT dcs/src/main/resources/dcs-webapps/master/css/stylesheet.css Removed filters for Hewlett Packard, Tandem, Compaq, and Microsoft. None of test software should returns these values core/sql/regress/tools/regress-filter core/sql/regress-tools/regress-filter-linux Removed LICENSE and NOTICE files from child directories dcs/LICENSE.txt dcs/NOTICE.txt wms/LICENSE.txt wms/NOTICE.txt install/README.rst Reworded comment so Copright would not show up on search core/sql/update/CopyrightCheck.py Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/7a085965 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/7a085965 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/7a085965 Branch: refs/heads/master Commit: 7a085965c36363a3a44f5e85d8cfc5a46280f45f Parents: 1ea3e83 Author: Roberta Marton <[email protected]> Authored: Mon Nov 23 22:59:00 2015 +0000 Committer: Roberta Marton <[email protected]> Committed: Mon Nov 23 22:59:00 2015 +0000 ---------------------------------------------------------------------- .../trafodion/jdbc/t4/T4DatabaseMetaData.java | 3 - core/sqf/export/lib/Vili/Functions.pm | 725 --- core/sqf/export/lib/Vili/Helper.pm | 674 -- core/sqf/export/lib/Vili/NoDriftTimer.pm | 98 - core/sql/common/from_GB2312.c | 134 +- core/sql/common/swscanf.cpp | 55 +- core/sql/common/swsprintf.cpp | 63 +- core/sql/parser/ulexer.h | 39 +- core/sql/regress/newregr/card/runregr_card.ksh | 7 - .../regress/newregr/mvs/BIG/expectedmv215_RU | 480 -- core/sql/regress/newregr/mvs/EXPECTEDMV500 | 4708 -------------- core/sql/regress/newregr/mvs/EXPECTEDMV500A | 5179 ---------------- .../regress/newregr/mvs/EXPECTEDMV500A.LINUX | 5789 ------------------ .../sql/regress/newregr/mvs/TPCD/DBGEN_HELP.TXT | 83 - core/sql/regress/seabase/EXPECTED021 | 26 +- core/sql/regress/tools/regress-filter | 5 - core/sql/regress/tools/regress-filter-linux | 5 - core/sql/regress/udr/EXPECTED100.SB | 4 +- core/updateCopyrightCheck.py | 7 +- dcs/LICENSE.txt | 202 - dcs/NOTICE.txt | 7 - .../org/trafodion/dcs/util/ByteBufferUtils.java | 2 - .../java/org/trafodion/dcs/util/SqlUtils.java | 2 - .../dcs-webapps/master/css/stylesheet.css | 191 - .../Trafodion_Client_Installation_Guide.xml | 6 +- docs/client_install/source/xml-profile.xml | 2 +- .../Trafodion_Command_Interface_Guide.xml | 44 +- docs/command_interface/source/xml-profile.xml | 2 +- docs/odb_manual/Trafodion_odb_User_Guide.xml | 4 +- .../source/Trafodion_SQL_Reference_Manual.xml | 10 +- docs/sql_reference/source/xml-profile.xml | 2 +- install/Makefile | 2 - install/README.rst | 32 - wms/LICENSE.txt | 202 - wms/NOTICE.txt | 11 - wms/build.xml | 2 +- 36 files changed, 103 insertions(+), 18704 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java ---------------------------------------------------------------------- diff --git a/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java b/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java index 9522e5d..108adb3 100644 --- a/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java +++ b/core/conn/jdbc_type4/src/org/trafodion/jdbc/t4/T4DatabaseMetaData.java @@ -65,9 +65,6 @@ import java.util.logging.LogRecord; * Description: JDBC Type 4 Driver * </p> * <p> - * Copyright: Copyright (c) 2004-2007 - * </p> - * <p> * </p> */ public class T4DatabaseMetaData extends HPT4Handle implements java.sql.DatabaseMetaData { http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sqf/export/lib/Vili/Functions.pm ---------------------------------------------------------------------- diff --git a/core/sqf/export/lib/Vili/Functions.pm b/core/sqf/export/lib/Vili/Functions.pm deleted file mode 100644 index df02227..0000000 --- a/core/sqf/export/lib/Vili/Functions.pm +++ /dev/null @@ -1,725 +0,0 @@ -# @@@ START COPYRIGHT @@@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# @@@ END COPYRIGHT @@@ - -package Vili::Functions; - -=head1 NAME - -Vili::Functions - a module that encapsulates the functionsl to be used by Vili -operations and workflows - -=head1 SYNOPSIS - - use Vili::Functions; - - my $wf = Vili::Functions->new( - opname => "my_op_name", - help_text => $my_help_text, - long_help_text => $my_long_help_text, - op_version => "1.0.0", - ); - - $wf->add_args( - arginfo => 'hostname=s', - default => "172.31.2.254", - ); - - $wf->getopts; - - my $has_changed = $wf->create_context(); - - my $copy_name = $wf->get_backup_context(); - - my $enum_string = $wf->get_enum_text(Vili::Functions::INFO); - - $wf->log( - severity => Vili::Functions::INFO, - message => "Operation my_op_name started.", - ); - - $wf->op_exit( - retcode => Vili::Functions::FAILURE, - output => $errormsg, - ); - - $wf->op_die( - output => $errormsg, - ); - -=head1 DESCRIPTION - -A Perl class that represents a Vili operation or workflow. It provides an -object oriented interface to the various functions required by scripts. -This class will ensure that all Vili operations and workflows use the -same mechanism to check script arguments, log messages, etc. - -=head1 CLASS DATA - -=head2 CONSTANTS - -=over 4 - -=item * C<Vili::Functions::OK> = 0 - -=item * C<Vili::Functions::WARNING> = 1 - -=item * C<Vili::Functions::CRITICAL> = 2 - -=item * C<Vili::Functions::UNKNOWN> = 3 - -=item * C<Vili::Functions::FAILURE> = 4 - -=item * C<Vili::Functions::INFO> = 5 - -=item * C<Vili::Functions::WARN> = 6 - -=item * C<Vili::Functions::ERROR> = 7 - -=back - -=head1 FUNCTIONS - -=over 4 - -=item C<new()> - -Returns a new object of the Vili::Functions class. This function requires the -name of the new operation or workflow, the help text for the new script, a long -help text, or man page, for the new script and the version of the script. All -scripts will start with the following option string: - -'verbose', 'mode=s', 'frequency=i', 'token', 'publication', 'list', 'context=s', -'help', 'long_help', 'version' - -=item C<add_args()> - -This function is called to add additional arguments to the new scripts option string. -The function requires the option string information for the argument, such as: -mode=s -frequency=i - -This function also requires a default value for the additional argument. If the -argument is not provided on the command line then it will be set to the default value. - -=item C<getopts()> - -This function is called to process the new scripts command line arguments. -It uses -the scripts options string to determine the arguments required and whether they -are missing or specified incorrectly. If a problem has been found with the -arguments -that were passed in to the new script, this function will provide the problem -with the -input as well as provide the help text, like a usage line. This function will -automatically process the 'help', 'long_help' and 'version' options. - -=item C<create_context()> - -This function is called to create the context file for a workflow. This function -is not used by an operation. This function will check to determine whether the -context file already exists, and if it does, then the context file is copied to -a backup context file so that it can be used to determine whether the state -of the -workflow has changed. If the function finds that the context file does not exist -the path to the context file is created, if required, and a flag is returned -to indicate that there was no context file and therefore, there is a state change -since this workflow is just starting up. This function will return 1 if the -context file did not exist and there is a state change in the workflow. Otherwise, -the function will return 0. - -=item C<get_backup_context()> - -This function encapsulates the naming scheme and location of the backup context file. -This function returns the name of the backup context file. - -=item C<get_enum_text()> - -This function translates the Perl class constants to a text representation. The -function returns a string version of the constant that was passed in to the function. - -=item C<log()> - -This function places messages in a log file that is used by all operations and -workflows. The function requires the severity of the message and the message -text itself. The function will prepend the timestamp, the caller and the -severity to the message and then write it to the log file. - -=item C<op_exit()> - -This function is called to exit a script in an orderly manner. The function requires -the return code to be returned to the caller and any output to be printed to STDOUT. - -=item C<op_die()> - -This function is called to kill a script that has run into a critical error. This -function requires the message describing the error which will be printed to -STDOUT -for the user. The function will also accept an option return code. If -no return code is provided, the default return code will be UNKNOWN. - -=back - -=head1 COPYRIGHT - -(C) Copyright 2011-2014 Hewlett-Packard Development Company, L.P. - -=cut - -use strict; -use warnings; -use Params::Validate qw(:all); -use Data::Dumper; # Useful for debugging -#use POSIX; -use Getopt::Long; -use File::Basename; -use File::Copy; -use File::Path qw( mkpath ); -use File::Temp qw( :POSIX ); - -# use library to access Vili helper routines -use Vili::Helper ':all'; - -use constant -{ - OK => 0, - WARNING => 1, - CRITICAL => 2, - UNKNOWN => 3, - FAILURE => 4, - INFO => 5, - WARN => 6, - ERROR => 7 -}; - - -# Return values and log severity -my %error_enum = ( - 0 => "OK", - 1 => "WARNING", - 2 => "CRITICAL", - 3 => "UNKNOWN", - 4 => "FAILURE", - 5 => "INFO", - 6 => "WARN", - 7 => "ERROR", -); - -my %DEFAULT = ( - mode => "baseline", - context => "", - vili => "Command line", - frequency => 0, - token => 0, - publication => 0, - list => 0, - verbose => 0, - version => 0, - help => 0, - long_help => 0, - local => 0, -); - -# Define some constants that are used by these functions -my $LOGFILE = "$ENV{MY_SQROOT}/seapilot/logs/Vili.log"; - -# Security requirement: all files created must show no permissions for "others" -# so change default umask from 022 to 027 -umask 027; - -############################################################################## -############################################################################## - -# -# This subroutine is called to create a new operation or workflow object -# -# INPUT: -# opname - the name of the new object -# help_text - the long usage information for this object -# long_help_text - the man page for this object -# op_version - the current version of this new object -# -# OUTPUT: -# a function object is returned to the caller -# -sub new -{ - my $class = shift; - - # lets get our SQROOT path, USER and the - # node id now since we will need those soon - # and if there is a problem we can report it - # right away. - - # get our instance name for use later. - # if we cannot find it then exit now - my $SQROOT = $ENV{'MY_SQROOT'}; - die ("The environment variable MY_SQROOT is empty.\n") unless (defined($SQROOT) && length($SQROOT)>0); - - # get our user name for use later. - # if we cannot find it then exit now - my $USER = $ENV{'USER'}; - die ("The environment variable USER is empty.\n") unless (defined($USER) && length($USER)>0); - - # call the helper function to get the node id - # that we are running on - my $nodeid = GetNodeID(); - die("An Error occurred when obtaining the node id.\n") if ($nodeid < 0); - - # define our starting option string, which will be used when we get our options - my @opt_array = ('verbose', 'mode=s', 'frequency=i', 'token', 'publication', 'list', 'context=s', 'vili=s', 'help', 'long_help', 'version', 'local'); - - # validate the arguments passed in to the constructor - my %args = validate( @_, - { - opname => { - type => SCALAR, # a scalar - regex => qr/^\w+$/ # that is all word chars - }, - help_text => { - type => SCALAR # a scalar but can be mixed chars - }, - long_help_text => { - type => SCALAR # a scalar but can be mixed chars - }, - op_version => { - type => SCALAR, # a scalar but could be mixed chars - }, - } - ); - - - my $self = {}; - - # take any values that have been passed in - # also set initial values on the other variables that - # will be set later when getopts is called - $self->{opname} = $args{"opname"}; - $self->{help_text} = $args{"help_text"}; - $self->{long_help_text} = $args{"long_help_text"}; - $self->{op_version} = $args{"op_version"}; - $self->{logfile} = $LOGFILE; - - # set the Default context value now that we have - # the user name and the nodeid - # along with the passed in workflow name - # NOTE: This will not be used by operations. - if (&is_cluster) { - $DEFAULT{context} = "/home/$USER/context/$nodeid/$self->{opname}/automatic"; - } else { - $DEFAULT{context} = "$SQROOT/seapilot/var/checks/context/$nodeid/$self->{opname}/automatic"; - } - - # set the context file backup file name to be used - # when we copy the file in order to compare - # we use the POSIX (tmpnam) which is the FILE::temp mktemp call - # in order to generate a valid temporary file name - $self->{context_back} = tmpnam(); - - # initialize the standard ops values - foreach my $key (sort keys %DEFAULT) { - $self->{$key} = $DEFAULT{$key}; - } - - # save the option array for the standard - # options that will be used for GetOptions - $self->{_opt_array} = [ @opt_array ]; - - # Bless ourselves as an instance of the class - bless($self, $class); - - return ($self); -} - -# -# This subroutine is called to add additional arguments/variables -# to the option string, and to $self. This is used by operations -# and workflows to manage the additional arguments that the scripts require -# -# INPUT: -# arginfo - will be argument name and type in getopts format -# such as "max=s" where max is the variable name and it is of type string -# default - this will hold the initial default value when this argument is created -# -# OUTPUT: -# no output - the provided argument info is added to the options string -# and the argument is defined with the default value -# in $self for use by the operation or workflow -# -sub add_args { - my $self = shift; - - my %args = validate( @_, { - arginfo => 1, - default => 0, - }); - - # now add the new argument info to our options array list - # that we will use for getopts - push @{$self->{_opt_array}},$args{arginfo}; - - # now extract the variable name from the argumentinfo so - # that we can use it to store the default value for now - # That means we take what appears before the '=' sign as - # the variable name - my $varname = $args{arginfo}; - $varname =~ s/[=:].*$//; - - # if for some reason this variable is already defined - # then we will not overwrite it - # otherwise we initialize this variable with the default value - if (!defined $self->{$varname}) { - $self->{$varname} = $args{default}; - } - -} - -# -# This subroutine is called to get the arguments that were -# passed in to the operation or workflow. -# -# INPUT: -# no input - the @ARGV is used -# -# OUTPUT: -# no output - the provided arguments, once verified to be good, -# are placed in $self for use by the operation or workflow -# -sub getopts { - my $self = shift; - - # let's get the options that were passed in to the script - # this call will check the options defined in the _opt_array - # and will place the values in the variables in $self of the same name - my $result = GetOptions ($self, @{$self->{_opt_array}}); - die($self->{help_text}) unless $result; - - # if mode argument provided is not what is expected, then generate an error - # and display the usage - if ($self->{mode} ne "interval" && $self->{mode} ne "baseline") { - printf("Invalid mode specified: valid options are \"interval\" or \"baseline\"\n"); - my $output = $self->{help_text} . "\n"; - die($output); - } - - # if none of the output methods are selected, then set it to 'list' - # because 'list' is the default - if ($self->{token} == 0 && $self->{publication} == 0 && $self->{list} == 0) { - $self->{list} = 1; - } - - # The context filename specified may not exist since we are just starting out. - # However, the directory should so let's check to see that the directory actually exists - if ($self->{context} ne $DEFAULT{context}) { - my $contextdir = dirname($self->{context}); - if (! -e $contextdir) { - printf("Invalid context file specified: directory $contextdir does not exist\n"); - die($self->{help_text}); - } - } - - # Now that we have validated the arguments that we know about - # lets process the options that we can dispatch right away - # If help, then display the help text - if ($self->{help}) { - $self->op_exit ( - retcode => Vili::Functions::OK, - output => $self->{help_text}, - ); - } - - # If long help, then display the long help text - if ($self->{long_help}) { - $self->op_exit ( - retcode => Vili::Functions::OK, - output => $self->{long_help_text}, - ); - } - - # If version information is being requested, print it out - if ($self->{version}) { - $self->op_exit ( - retcode => Vili::Functions::OK, - output => $self->{op_version}, - ); - } - -} - -# -# This subroutine is called to place messages in the log -# file. This subroutine will prepend the timestamp and -# the caller to the message as well as place the provided -# severity in front of the message, as well. -# -# INPUT: -# severity - the constant value of the severity that is associated -# with this particular log entry -# message - the message that will be placed in the log file -# -# OUTPUT: -# The modified message will be placed in the log file -# -# TO DO: Decide how to know Vili instance and then act on it -# -sub log { - my $self = shift; - - my $caller = $0; - - # validate the options that have been passed in. - my %args = validate( @_, - { - severity => { - type => SCALAR, # a scalar - callbacks => { # that is one of our supported severity values - 'what is the severity' => - sub {$_[0] eq INFO || $_[0] eq WARN || $_[0] eq ERROR}, - }, - }, - message => { - type => SCALAR, # a scalar - }, - }); - - # Let's create the log directory if it does not exist - my $log_dir = dirname($self->{logfile}); - if (!-e $log_dir) { - mkdir $log_dir || die("Vili Functions unable to create log directory.\n"); - } - - # Open the log file - open(LOG, ">>$self->{logfile}") || die("Vili Functions unable to open the log file"); - - # Get the current time for log message - my $Mark = localtime(); - - # Now print it - printf(LOG "%s: %s: %s: %s: %s\n", $Mark, $self->{vili}, $caller, $error_enum{$args{severity}}, $args{message}); - - # Done. Now close it and exit - close(LOG); -} - -# -# This subroutine is called to translate the constant -# values to defined text values for the constants. -# -# INPUT: -# constvalue - the constant value that should be translated -# -# OUTPUT: -# The text value of constant is returned to the caller -# -sub get_enum_text { - my $self = shift; - - # validate the options that have been passed in. - my %args = validate( @_, - { - constvalue => { - type => SCALAR, # a scalar - callbacks => { # that is one of our defined constant values - 'what is the constant' => - sub { -$_[0] eq OK || $_[0] eq WARNING || $_[0] eq CRITICAL || $_[0] eq UNKNOWN || $_[0] eq INFO || $_[0] eq WARN || $_[0] eq ERROR}, - }, - }, - }); - - my $ret = $error_enum{$args{constvalue}}; - - return ($ret); - -} - -# -# This subroutine is called to create the context file -# and save a copy, as required -# -# INPUT: -# none -# -# OUTPUT: -# has_changed - a flag to indicate if the file needed -# to be created, which means that the -# state has changed -# The context file will be created/truncated -# and, if necessary, a backup of the older one -# will be saved for comparison -# -sub create_context { - my $self = shift; - - my $has_changed = 0; - my $ret = ""; - - # first check to see if the context file exists and is not empty CR6253 - if (!-s $self->{context}) { - # remove empty file - unlink( $self->{context} ) if ( -e $self->{context} ); - # it doesn't exist... do we need to create - # the directory above it? - my $context_dir = dirname($self->{context}); - if (!-e $context_dir) { - - # call mkpath and obtain error return - $ret = mkpath($context_dir); - if (!$ret) { - my $errormsg = "Unable to create $context_dir directory:"; - $self->log( - severity => Vili::Functions::ERROR, - message => $errormsg, - ); - $self->op_exit( - retcode => Vili::Functions::FAILURE, - output => $errormsg, - ); - - } - } - - # set $has_changed to true, because - # the context file did not exist so we - # created it - # well, technically we might have created the directory - # and when we first write to the file we - # will have created it - $has_changed = 1; - - } else { - - # save copy of the context file - $ret = copy($self->{context}, $self->{context_back}); - # copy returns 1 on success, 0 on failure - if (!$ret ) { - my $errormsg = "Unable to copy $self->{context}"; - $self->log( - severity => Vili::Functions::ERROR, - message => $errormsg, - ); - $self->op_exit( - retcode => Vili::Functions::FAILURE, - output => $errormsg, - ); - } - - } - - return($has_changed); -} - -# -# This subroutine is used to exit a script is an orderly -# manner. -# -# INPUT: -# retcode - the exit code value to be returned -# output - the message to be displayed when the script exits -# -# OUTPUT: -# output message with newline added is printed and the provided retcode is returned. -# -sub op_exit { - my $self = shift; - - my %args = validate( @_, - { - retcode => { - type => SCALAR, # a scalar - callbacks => { # that is one of our supported return values - 'what is the return code' => - sub {$_[0] eq OK || $_[0] eq WARNING || $_[0] eq CRITICAL || $_[0] eq UNKNOWN || $_[0] eq FAILURE}, - }, - }, - output => { - type => SCALAR, # a scalar - }, - }); - - $args{output} .= "\n"; - - # just to be sure, if the backup context file still exists, then let's remove it - if (-e $self->{context_back}) { - unlink($self->{context_back}); - } - - print $args{output}; - exit $args{retcode}; -} - -# -# This subroutine is used to kill a script that has run into -# a critical error. If no return code is provided, the default -# return code will be UNKNOWN -# -# INPUT: -# output - the message to be displayed when the script dies -# retcode - the exit code value to be returned, or if not specified, UNKNOWN -# -# OUTPUT: -# output message with newline added is printed and the retcode is returned. -# -sub op_die { - my $self = shift; - - my %args = validate( @_, - { - output => { - type => SCALAR, # a scalar - }, - retcode => { - type => SCALAR, # a scalar - optional => 1, # that is optional - default => UNKNOWN, # that if not specified, should default to UNKNOWN - callbacks => { # that should be one of our supported return values - 'what is the return code' => - sub {$_[0] eq OK || $_[0] eq WARNING || $_[0] eq CRITICAL || $_[0] eq UNKNOWN}, - }, - }, - }); - - $args{output} .= "\n\n"; - - # just to be sure, if the backup context file still exists, then let's remove it - if (-e $self->{context_back}) { - unlink($self->{context_back}); - } - - print $args{output}; - exit $args{retcode}; - -} - -## -## Get the name of the backup context file. -## -## Params: None -## -## Returns: name of backup context file -## -sub get_backup_context -{ - my $self = shift; - - return ($self->{context_back}); -} - -1; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sqf/export/lib/Vili/Helper.pm ---------------------------------------------------------------------- diff --git a/core/sqf/export/lib/Vili/Helper.pm b/core/sqf/export/lib/Vili/Helper.pm deleted file mode 100644 index 1a539c3..0000000 --- a/core/sqf/export/lib/Vili/Helper.pm +++ /dev/null @@ -1,674 +0,0 @@ -# @@@ START COPYRIGHT @@@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# @@@ END COPYRIGHT @@@ - -package Vili::Helper; - -=head1 NAME - -Vili::Helper - a module that contains helper functions to be used by -operations and workflows - -=head1 SYNOPSIS - - # Constants OK, WARNING, CRITICAL, UNKNOWN, INFO, WARN and ERROR - # are exported by default - use Vili::Functions; - - my $ret = isvalid_IP($wf->{hostname}); - - my $ret = isvalid_integer($wf->{warning}); - - my $nodeid = GetNodeId(); - - my $ret = TPA_is_ready(); - - my ($lct_usecs, $utc_secs) = GetTimeStamp(); - - my $ret = is_cluster(); - - set_timeout($seconds); - - my @nodearray = GetNodeArray(); - - my $ret = check_tm(); - -=head1 DESCRIPTION - -A Perl class that provides helper functions to be used by operations -and workflows. Utility subroutines that will be used by all of these -scripts will be placed in this file. Additional subroutines to validate -input, or commonly called routines should be placed here. This will -make it easier for the creation of new scripts and will ensure that all -scripts perform these functions the same way. - -=back - -=head1 FUNCTIONS - -=over 4 - -=item C<isvalid_IP()> - -Returns true if the value provided is a valid IP address. Otherwise, -false is returned. - -=item C<isvalid_integer()> - -Returns true if a valid integer is provided. Otherwise, false is returned. - -=item C<get_sqenv_vars()> - -Loads all environment variables from sqevn.sh file - -=item C<GetNodeId()> - -Returns the node id of the current node. - -=item C<TPA_is_ready()> - -Returns 1 if the TPA_publish script is ready to be used, and a 0 if it is not ready. - -=item C<GetTimeStamp> -Return the LCT and UTC in microsecond - -=item C<is_cluster()> - -Returns 1 if it runs on cluster, otherwise 0 if it runs on a workstation. - -=item C<set_timeout()> - -Set an alarm timeout. - -=item C<check_tm()> - -Returns 0: the instance is not up, - 1: the instance is up, and TM is enabled - 2: the instance is up, and TM is disabled, it should be a normal shutdown - 3: unknown errors - - -=item C<GetNodeArray()> - -Returns an array with the nodes names of the nodes in the instance. If unable to obtain this list of names it will die. - -=back - -=head1 COPYRIGHT - -(C) Copyright 2011-2014 Hewlett-Packard Development Company, L.P. - -=cut - -use strict; -use warnings; - -use base qw(Exporter); - -use Params::Validate qw(:all); -use Data::Dumper; # Useful for debugging -use POSIX; -use Getopt::Long; -use File::Basename; -use Time::HiRes qw(gettimeofday); - -our (@ISA, %EXPORT_TAGS, @EXPORT, @EXPORT_OK); -#our ($SQROOT, $TPA_PUBLISH, $TS_PROG); # $MY_SQROOT-dependent variables - -# global vars set in se_check_flow -our $gv_HOSTNAME = undef; -our $gv_LNID = undef; - -%EXPORT_TAGS = -( - 'all' => [qw(isvalid_IP isvalid_integer isvalid_domain GetNodeID SQ_is_ready TPA_is_ready is_cluster set_timeout check_tm GetTimeStamp GetNodeArray GetNodeName GetNodeStatus sudo_command get_HOSTNAME get_LNID get_sqenv_vars)], - - 'defaults' => [qw(isvalid_IP isvalid_integer isvalid_domain GetNodeID SQ_is_ready TPA_is_ready is_cluster set_timeout check_tm GetTimeStamp GetNodeArray GetNodeName GetNodeStatus sudo_command)], - - 'consts' => [qw(isvalid_IP isvalid_integer isvalid_domain GetNodeID SQ_is_ready TPA_is_ready is_cluster set_timeout check_tm GetTimeStamp GetNodeArray GetNodeName GetNodeStatus sudo_command)], -); - -@EXPORT = (@{$EXPORT_TAGS{'defaults'}}); -@EXPORT_OK = (@{$EXPORT_TAGS{'all'}}); - -# return 1, true, if valid input -# return 0, false, if invalid input -my $SUCCESS = 1; -my $FAIL = 0; -my $PROBLEM = -1; - -# Define some constants that are used by these functions -my $FIFO = "$ENV{MY_SQROOT}/seapilot/amqp-tpa"; # the fifo used by TPA_Publish - -############################################################################## -############################################################################## - -# -# This subroutine is called to validate an IP address that was input -# -# INPUT: -# ipaddress passed in to calling routine -# -# OUTPUT: -# 0 - indicates that the ip address is valid -# 1 - indicates that the ip address is NOT valid -# -sub isvalid_IP -{ -my($ip) = @_; - - # empty string - if (!defined($ip) or $ip eq '') { - return $FAIL; - } - # string contains spaces - if ($ip =~ /\s/) { - return $FAIL; - } - # string begins with '.' - if ($ip =~ /^\./) { - return $FAIL; - } - # string ends with '.' - if ($ip =~ /\.$/) { - return $FAIL; - } - - # now check the individual components of the string - my(@components) = split(/\./,$ip); - - # string does not contain 4 components - if (@components != 4) { - return $FAIL; - } - - my($comp); - foreach $comp (@components) { - # string has zero length component - if (length($comp) == 0) { - return $FAIL; - } - - # string has a non-digit in the component - if ($comp !~ /^\d+$/ && $comp !~ /^0x[0-9A-Fa-f]+$/) { - return $FAIL; - } - - # string has octal or hex value in the component - if ($comp =~ /^0\d/ || $comp =~ /^0x/) { - return $FAIL; - } - - # string has component out of range 0 to 255 - if ($comp < 0 || $comp > 255) { - return $FAIL; - } - } - - return($SUCCESS); -} - -# -# This subroutine is called to validate an IP address that was input -# -# INPUT: -# ipaddress passed in to calling routine -# -# OUTPUT: -# 0 - indicates that the ip address is valid -# 1 - indicates that the ip address is NOT valid -# -sub isvalid_integer -{ -my($inputval) = @_; - - # empty string - if (!defined($inputval) or $inputval eq '') { - return $FAIL; - } - - # if the integer contains a '.', then - # strip it off and check the rest of the characters - if ($inputval =~ /\./) { - my $temp = $inputval; - ($inputval = $temp) =~ s/\.//; - } - - # string has a non-digit in the component - if ($inputval !~ /^\d+$/) { - return $FAIL; - } - - return($SUCCESS); -} - -# -# This subroutine is called to validate an domain name that was input -# -# INPUT: -# domain name passed in to calling routine -# -# OUTPUT: -# 0 - indicates that the domain name is valid -# 1 - indicates that the domain name is NOT valid -# -sub isvalid_domain { - my ($str) = @_; - if ( defined($str) - # empty string - and length($str) > 0 - # no longer than 255 chars - and length($str) < 256 - # each label may contain up to 63 characters - and $str =~ /^[a-zA-Z0-9][-a-zA-Z0-9]{0,62} (\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})* \.?$/x - ) { - return 1; - } else { - return 0; - } -} - -# -# This subroutine will get all environment variables defined in sqenv.sh -# -sub get_sqenv_vars { - - my $MY_SQROOT = $ENV{'MY_SQROOT'}; - my $cmd = "cd $MY_SQROOT; . ./sqenv.sh; export; 2>/dev/null"; - my $cmdResult = `$cmd`; - - my @result = split /\n/, $cmdResult; - - foreach (@result) { - if (/^export\s+(.+)="(.+)"/) { - my ($var, $val) = ($1, $2); - next if(defined($ENV{$var})); - $ENV{$var} = $val; - - } - } -} - -# -# Return the physical node name -# -sub GetNodeName -{ - chomp (my $hostname = `hostname`); - return $hostname; -} - -# -# This subroutine is called to obtain the node id -# of the current node we are running on. This value -# is returned back to the caller. -# -# INPUT: -# none -# -# OUTPUT: -# nodeid - if things work well -# if a problem occurs then die is called -# -# `ps -ef | grep sp_proxy | grep -v grep | grep $USER` output -#sqdev15 16094 11046 0 15:40 ? 00:00:13 sp_proxy SQMON1.0 00002 00002 016094 $XDN2 172.31.0.39:59470 00010 00002 SPARE -# nid is in column 11 (0 offset 10) -# Per the standard SeaQuest process arguments format: -# sp_proxy SQMON1.0 00002 00002 016094 $XDN2 172.31.0.39:59470 00010 00002 SPARE -# <program name> "SQMON1.0" <pnid> <nid> <pid> <pname> <port> <ptype> <zid> "SPARE" -# - -sub GetNodeID -{ - - # get our SQROOT path - my $MY_SQROOT = $ENV{'MY_SQROOT'}; - my $USER = $ENV{ 'USER' }; - - die ("The environment variable MY_SQROOT is empty.\n") - unless (defined($MY_SQROOT) && length($MY_SQROOT)>0); - die ("The environment variable USER is empty.\n") - unless (defined($USER) && length($USER)>0); - - set_HOSTNAME(); - my $psline = `ps -ef | grep sp_proxy | grep -v grep | grep $USER | head -1`; - my @cols = split /\s+/, $psline; - my $nodeID = undef; - chomp( $nodeID = sprintf( "%d", $cols[10] )) if (defined($cols[10])); - - if (defined($nodeID) and length($nodeID) > 0) { - $gv_LNID = $nodeID; - return ($nodeID); - } else { - die ("The file $MY_SQROOT/tmp/cluster.conf does not exist.\n") - unless (-r "$MY_SQROOT/tmp/cluster.conf"); - - $nodeID = `cat $MY_SQROOT/tmp/cluster.conf | cut -d: -f2,3 | sort -u | sed 's/\$/:/' | grep -m 1 '\:$gv_HOSTNAME\:' | cut -d: -f1`; - chomp($nodeID); - - if ((WIFEXITED($?) && (WEXITSTATUS($?) != 0))) - { - die("ERROR: unable to find current Node ID in $MY_SQROOT/tmp/cluster.conf\n"); - } - $gv_LNID = $nodeID; - return ($nodeID); - } -} - -sub set_HOSTNAME() { - chomp($gv_HOSTNAME = `/bin/hostname`); - return 0; -} - -sub get_HOSTNAME() { - return $gv_HOSTNAME; -} - -sub get_LNID() { - return $gv_LNID; -} - - -## Verify that SQ environment is up -## -## Params: None -## -## Returns: 1 is ready, 0 is not ready -## -sub SQ_is_ready -{ - my $sqroot = $ENV{'MY_SQROOT'}; - my $cmd = "$sqroot/sql/scripts/sqcheck"; - `$cmd`; - - # sqcheck returning 0 means SQ is up - return 1 if ((WIFEXITED($?) && (WEXITSTATUS($?) == 0))); - return 0; -} - -## -## Verify that the TPA_Publish fifo is ready for us to start -## calling workflows. We do this by checking that the file -## descriptor is a valid named pipe and has write permission -## -## Params: None -## -## Returns: 0 - if the fifo fails one of these tests -## 1 - if the fifo passes all tests - fifo is ready -## -sub TPA_is_ready -{ - my $self = shift; - - # check that the file exists - if ( ! -e $FIFO ) { - return(0); - } - - # check that the file is a named pipe - if ( ! -p $FIFO ) { - return(0); - } - - # check that the file is has write permissions set - if ( ! -w $FIFO ) { - return(0); - } - - return(1); -} - -# -# Check whether the script runs on a cluster -# -# Input: None -# -# Returns: 1 - if it runs on a cluster -# 0 - if it runs on a workstation -# -sub is_cluster -{ - my $output = `type -a pdsh 2>/dev/null`; - if (length($output) > 0) { - return 1; - } - return 0; -} - -# -# Set workflow timeout - -# Input: seconds to wait for an alarm - -# Returns: none -# -sub set_timeout -{ - my $timeout = shift; - - $SIG{ALRM} = sub { die "$timeout seconds timeout.\n" }; - alarm($timeout); -} - -# Check whether TM is OK by checking registry SQ_TXNSVC_READY, -# return values, -# 0: the instance is not up, -# 1: the instance is up, and TM is enabled -# 2: the instance is up, and TM is disabled, it should be a normal shutdown -# 3: unknown errors -sub check_tm -{ - `sqregck -f -q -r SQ_TXNSVC_READY`; - if (WIFEXITED($?)) { - my $rc = WEXITSTATUS($?); - return $rc if ($rc eq "0" || $rc eq "2"); - - return ($rc eq "1") ? 1 : 3; - - } - else { - return 3; - } -} - -# -# This subroutine is called to obtain the list of nodes -# that are part of the instance. An array of the nodes -# is returned back to the caller. -# -# INPUT: -# none -# -# OUTPUT: -# nodearray - an array of nodes, if things work well -# if a problem occurs then die is called -# -sub GetNodeArray -{ -my $startsqshellcmd = "sql/scripts/sqshell -c"; -my $sqshellcmd = "node info"; -my @nodearray = (); - - # get our SQROOT path - my $MY_SQROOT = $ENV{'MY_SQROOT'}; - - # check that we are currently in an instance - die ("The environment variable MY_SQROOT is empty.\n") unless (defined($MY_SQROOT) && length($MY_SQROOT)>0); - - # if it's on a workstation, the only node is 'localhost' - if (!&is_cluster()) { - push (@nodearray,"localhost"); - return (@nodearray); - } - - # get list of nodes using the correct command - # if the instance is not up then we will get a non-zero output - my $nodeoutput = `$MY_SQROOT/$startsqshellcmd $sqshellcmd`; - if ($? != 0) { - die ("$MY_SQROOT/$startsqshellcmd returned an error, command output : \n$nodeoutput\n"); - } - - # now massage output to obtain an array of nodes - # we expect the output to look like this - # Processing cluster.conf on local host n001 - # [$Z050BU2] Shell/shell Version 1.0.1 Release 1.2.0 (Build release [14733], date 05Feb12) - # [$Z050BU2] %node info - # [$Z050BU2] Logical Nodes = 7 - # [$Z050BU2] Physical Nodes = 7 - # [$Z050BU2] Spare Nodes = 0 - # [$Z050BU2] Available Spares = 0 - # [$Z050BU2] NID Type State Processors #Procs - # [$Z050BU2] PNID State #Cores MemFree SwapFree CacheFree Name - # [$Z050BU2] --- ----------- -------- ---------- -------- -------- --------- -------- - # [$Z050BU2] 000 Backend Up 2 57 - # [$Z050BU2] 000 Up 8 40434788 47999992 47272556 n004 - # [$Z050BU2] 001 Backend Up 2 51 - # [$Z050BU2] 001 Up 8 40895884 47999992 47423368 n005 - # [$Z050BU2] 002 Backend Up 2 49 - # [$Z050BU2] 002 Up 8 40212820 47999992 47366860 n006 - # [$Z050BU2] 003 Backend Up 2 51 - # [$Z050BU2] 003 Up 8 40071368 47999992 46594532 n007 - # [$Z050BU2] 004 Backend Up 2 54 - # [$Z050BU2] 004 Up 8 40313340 47999992 46504032 n008 - # [$Z050BU2] 005 Frontend Up 2 38 - # [$Z050BU2] 005 Up 8 42488384 47999992 47990288 n001 - # [$Z050BU2] 006 Frontend Up 2 35 - # [$Z050BU2] 006 Up 8 40917684 47999992 47730040 n002 - # [$Z050BU2] %quit - # - # and we want to end up with just the node names - # - # We also will not check for UP or DOWN because - # we want the list of all nodes. - # In addition, we will not get spare nodes using this code - # which is OK because we currently do not plan to run health - # checks on spare nodes. - my $next = 0; # flag that indicates we want to look at next line - for my $line (split("\n", $nodeoutput) ) { - - # if the next flag is set then this is a line that - # contains our node name - # Node name may have ":xyz" on the end of the name, so - # we will have to get rid of that!! - if ($next) { - my (@fields) = split(" ",$line); - - # check for Spare node, because we do - # not want to run our health checks on a spare - # Correction Per mail from Viral on 2/10/12 -- - # Spare would be in 3rd column: - # [$Z000DTQ] 002 Any Up 2 31 - # [$Z000DTQ] 002 Up 8 45574224 47999992 47966220 n056 - # [$Z000DTQ] 003 Spare 8 45777200 47999992 48370576 n048 - - if ($fields[2] !~ /Spare/) { - my $nextnode = $fields[7]; - chomp($nextnode); - $nextnode =~ s/:(.*)$//; - push(@nodearray,$nextnode); - } - - # clear the next flag since we retrieved our node name - $next = 0; - } - - # if line matches any names to identify the nodes then - # set the flag to look at the next line - if (($line =~ /Edge/) || ($line =~ /Excluded/) || ($line =~ /Aggregation/) || ($line =~ /Storage/) || ($line =~ /Backend/) || ($line =~ /Frontend/) || ($line =~ /Any/)) { - # set the next flag so that we retrieve our node name - $next = 1; - } - - } - - return (@nodearray); -} - -sub GetNodeStatus { - my $sqshellcmd = $ENV{'MY_SQROOT'} . "/sql/scripts/sqshell -c"; - my $output = ''; - my %nodestate = (); - - $output = `$sqshellcmd node info`; - if ((WIFEXITED($?) && (WEXITSTATUS($?) != 0))) { - die ("$sqshellcmd returned an error, command output : \n$output\n"); - } - - my $next = 0; # flag that indicates we want to look at next line - for my $line (split("\n", $output)) { - if ($next) { - my (@fields) = split(" ",$line); - # CR 6252 -- robustness - # if line: - # - # [$Z020P5R] 000 Up 8 - # 2100836 94330844 9320092 n037 - # - # $fields[7] would be n037 - if (defined($fields[7])) { - $fields[7] =~ s/:(.*)$//; - $nodestate{$fields[7]} = $fields[2]; - } - $next = 0; - } - - # if line matches any names to identify the nodes then - # set the flag to look at the next line - if (($line =~ /Edge/) || ($line =~ /Excluded/) || ($line =~ /Aggregation/) || ($line =~ /Storage/) || ($line =~ /Backend/) || ($line =~ /Frontend/) || ($line =~ /Any/)) { - # set the next flag so that we retrieve our node name - $next = 1; - } - } - chomp(my $hst = `hostname`); - $nodestate{'localhost'} = $nodestate{$hst}; - - return \%nodestate; -} - -# Get the current timestamp, return the LCT and UTC -sub GetTimeStamp -{ - my ($start_sec, $start_usec) = gettimeofday; - my $utc_usecs = $start_sec * 1000000 + $start_usec; - - my $offset = strftime("%z", localtime()); - - $offset =~ s/0//g; - $offset = 0 if ($offset eq "+"); # zero timezone - - $offset *= 3600 * 1000000; # convert hour to microsecond - - my $lct_usecs = $utc_usecs + $offset; - - return ($lct_usecs, $utc_usecs); -} - -# sudo wrapper -sub sudo_command { - my $cmd = shift; - my $output = ''; - - if (&is_cluster()) { - $output = `sudo $cmd`; - } - return wantarray ? (split /\n/, $output) : $output; -} - -1; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sqf/export/lib/Vili/NoDriftTimer.pm ---------------------------------------------------------------------- diff --git a/core/sqf/export/lib/Vili/NoDriftTimer.pm b/core/sqf/export/lib/Vili/NoDriftTimer.pm deleted file mode 100644 index 4a70e4b..0000000 --- a/core/sqf/export/lib/Vili/NoDriftTimer.pm +++ /dev/null @@ -1,98 +0,0 @@ -# @@@ START COPYRIGHT @@@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# @@@ END COPYRIGHT @@@ - -package Vili::NoDriftTimer; - -=head1 NAME - -Vili::NoDriftTimer - a module that contains package NoDriftTimer - -=head1 SYNOPSIS - - use Vili::NoDriftTimer; - - my $timer = Vili::NoDriftTimer->new; - - while (1) { - $timer->reset; - - ... - - $timer->sleep($nseconds); - } - -=head1 DESCRIPTION - -A Perl class that provides a timer that has no drift. - -=back - -=head1 COPYRIGHT - -(C) Copyright 2011-2014 Hewlett-Packard Development Company, L.P. - -=cut - -use strict; -use warnings; - -sub new -{ - my $class = shift; - my $interval = shift; - - my $self = {}; - - $self->{default_interval} = defined($interval) ? $interval : 5.0; - - bless ($self, $class); - - $self->reset; - return $self; -} - -sub reset -{ - my $self = shift; - $self->{last_time} = Time::HiRes::time; -} - -sub sleep -{ - my $self = shift; - my $interval = shift; - - $interval = $self->{default_interval} unless(defined($interval)); - - my $curr_time = Time::HiRes::time; - - my $adjusted_interval = $interval - ($curr_time - $self->{last_time}); - - $self->{last_time} += $interval; - - # make sleep uninterruptable by signal handler - while ($adjusted_interval > 0) { - my $slept_seconds = Time::HiRes::sleep($adjusted_interval); - $adjusted_interval -= $slept_seconds; - } -} - -1; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/common/from_GB2312.c ---------------------------------------------------------------------- diff --git a/core/sql/common/from_GB2312.c b/core/sql/common/from_GB2312.c index 4576b65..8d30d1f 100644 --- a/core/sql/common/from_GB2312.c +++ b/core/sql/common/from_GB2312.c @@ -20,136 +20,8 @@ // // @@@ END COPYRIGHT @@@ **********************************************************************/ -/* - * HISTORY - * $Log: from_GB2312.c,v $ - * Revision 1.1.10.1 2001/12/07 15:37:39 - * * Check for UDC & add __UDC_to_gb2312(). - * - * Revision 1.1.6.1 2000/01/13 20:25:30 - * Remove the old conversion routine in favor of the enhanced - * __<codeset>_index() routine, and add algorithmic UDC conversion - * support. Also add a number of conversion routines to support - * special font charset to Unicode conversion. - * - * Revision 1.1.4.1 1999/09/28 21:10:10 - * Cosixsteelos to zincos merge. - * - * Revision 1.1.2.2 1999/08/18 18:36:08 - * Add support for Unicode to GBK/GB2312 conversion. - * [1999/08/18 15:04:43 Long_Man] - * - * $EndLog$ - */ -/* - * COPYRIGHT NOTICE - * - * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. - * ALL RIGHTS RESERVED (OSF/1). See /usr/include/COPYRIGHT.OSF1 . - */ +// File is being obsoleted. It uses features from the Open Source +// Foundation which is not support by Apache and the functions in this +// file were not being used. -#include "fcconv.h" -#include "multi-byte.h" - -/* - * This routine converts one GB2312 character from the input stream to table - * index. - * - * Return Value: - * Table index if no error - * -1 - Invalid sequence (EILSEQ) - * -2 - Input incomplete - */ -#if 0 // Don't need these since we chose to support GBK (a superset of GB2312) instead -NA_EIDPROC -int -__gb2312_index(_LC_fcconv_iconv_t *cd, uchar_t **in, int len) -{ - uint ch1, ch2 ; - uchar *ip = *in ; - - if (len < 2) - return(ERR_INPUT_INCOMPLETE) ; - - ch1 = *ip++ ; - ch2 = *ip++ ; - - if (!GB2312_VALID1(ch1) || !GB2312_VALID2(ch2)) - return(ERR_INVALID_CHAR) ; - - *in = ip ; /* Adjust input pointer */ - return((GB2312_UDC11(ch1, ch2) || GB2312_UDC12(ch1, ch2)) - ? GB2312_IDXU(ch1, ch2) : GB2312_IDX(ch1, ch2)) ; -} - -/* - * This routine convert a GB2312-GL character to table index - */ -NA_EIDPROC -int -__gb2312gl_index(_LC_fcconv_iconv_t *cd, uchar_t **in, int len) -{ - uint ch1, ch2 ; - uchar *ip = *in ; - - if (len < 2) - return(ERR_INPUT_INCOMPLETE) ; - - ch1 = *ip++ ; - ch2 = *ip++ ; - - if ((ch1 >= 0x80) || (ch2 >= 0x80)) - return(ERR_INVALID_CHAR) ; - ch1 |= 0x80 ; - ch2 |= 0x80 ; - - if (!GB2312_VALID1(ch1) || !GB2312_VALID2(ch2)) - return(ERR_INVALID_CHAR) ; - - *in = ip ; /* Adjust input pointer */ - return(GB2312_IDX(ch1, ch2)) ; -} - -/* - * This routine maps the UCS UDC codepoint to GB2312 - */ -NA_EIDPROC -WChar_t __UDC_to_gb2312(ucs4_t udc) //JAC -{ - if (udc <= UCS_UDC_START + GB2312_UCNT) { - int uidx = UCS_UIDX(udc) ; - return(UIDX_GB2312(uidx)) ; - } - /* Lookup table for mapping for BMP UDC */ - return((udc <= UCS_UDC_END) ? 0 : BAD) ; -} - -/*---------------------------------------------------------------------------*/ - -/* - * This routine performs the conversion from a GB2312 code to GB2312-GL - * code. - */ -NA_EIDPROC -int -__gb2312_to_gb2312gl(WChar_t code) //JAC -{ - if (code > 0xff) - return(code & 0x7f7f) ; - return(BAD) ; -} - -/* - * This routine performs the conversion from a GB2312 code to GB2312-GR - * code. - */ -NA_EIDPROC -int -__gb2312_to_gb2312gr(WChar_t code) //JAC -{ - if (code > 0xff) - return(code) ; - return(BAD) ; -} -#endif // Don't need these since we chose to support GBK (a superset of GB2312) instead http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/common/swscanf.cpp ---------------------------------------------------------------------- diff --git a/core/sql/common/swscanf.cpp b/core/sql/common/swscanf.cpp index 109490b..ccf82cb 100644 --- a/core/sql/common/swscanf.cpp +++ b/core/sql/common/swscanf.cpp @@ -1,41 +1,4 @@ -/* -*-C++-*- -// @@@ START COPYRIGHT @@@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// @@@ END COPYRIGHT @@@ - ***************************************************************************** - * - * File: swscanf.h - * Description: SQL/MX wide-char swscanf() function, modified based on - * NetBSD __svfscanf.c found at - * http://www.ajk.tele.fi/libc/stdio/vfscanf.c.html#__svfscanf - * Created: 2/13/2002 - * Language: C++ - * Limitation: - * - * - * - * - ***************************************************************************** - */ - -/*- +/* -*-C++-*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * @@ -71,6 +34,22 @@ * SUCH DAMAGE. */ + /***************************************************************************** + * + * File: swscanf.h + * Description: SQL/MX wide-char swscanf() function, modified based on + * NetBSD __svfscanf.c found at + * http://www.ajk.tele.fi/libc/stdio/vfscanf.c.html#__svfscanf + * Created: 2/13/2002 + * Language: C++ + * Limitation: + * + * + * + * + ***************************************************************************** + */ + //LCOV_EXCL_START // Used only by .../sqlutils/metamigr/MIGRATE.cpp which is not used in SQ /* commented out the useless static data structure.*/ http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/common/swsprintf.cpp ---------------------------------------------------------------------- diff --git a/core/sql/common/swsprintf.cpp b/core/sql/common/swsprintf.cpp index f428671..22b6102 100644 --- a/core/sql/common/swsprintf.cpp +++ b/core/sql/common/swsprintf.cpp @@ -1,47 +1,5 @@ -/********************************************************************** -// @@@ START COPYRIGHT @@@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// @@@ END COPYRIGHT @@@ -**********************************************************************/ - /* -*-C++-*- - ***************************************************************************** - * - * File: swsprintf.h - * Description: SQL/MX wide-char swsprintf() function, adapted from NetBSD vfprintf.c - * found at http://www.ajk.tele.fi/libc/stdio/vfprintf.c.html#vfprintf. - * Created: 2/13/2002 - * Language: C++ - * Limitation: Floating point numbers are not supported. - * - * - * - * - ***************************************************************************** - */ - -/* <- Back to the Main Page - */ -/* $NetBSD: vfprintf.c,v 1.18 1997/04/02 12:50:25 kleink Exp $ */ - -/*- + *- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. * @@ -77,6 +35,25 @@ * SUCH DAMAGE. */ +/* $NetBSD: vfprintf.c,v 1.18 1997/04/02 12:50:25 kleink Exp $ */ + +/***************************************************************************** + * + * File: swsprintf.h + * Description: SQL/MX wide-char swsprintf() function, adapted from NetBSD vfprintf.c + * found at http://www.ajk.tele.fi/libc/stdio/vfprintf.c.html#vfprintf. + * Created: 2/13/2002 + * Language: C++ + * Limitation: Floating point numbers are not supported. + * + * + * + * + ***************************************************************************** + */ + +/* <- Back to the Main Page + */ /* commented out because of static data structure */ //#if defined(LIBC_SCCS) && !defined(lint) ///*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/parser/ulexer.h ---------------------------------------------------------------------- diff --git a/core/sql/parser/ulexer.h b/core/sql/parser/ulexer.h index 652ccfe..16b9795 100644 --- a/core/sql/parser/ulexer.h +++ b/core/sql/parser/ulexer.h @@ -1,34 +1,4 @@ -/********************************************************************** -// @@@ START COPYRIGHT @@@ -// -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. -// -// @@@ END COPYRIGHT @@@ -**********************************************************************/ -// ULexer.h -- define interfaces for Unicode lexical analyzer class (tcr) - -// Flex (version 2.5.4a and earlier) does not support Unicode. Our attempts -// at extending flex to generate a Unicode scanner were unsuccessful. So, we -// hand-code a Unicode scanner for SQL/MX but retain the flex C++ scanner -// class interface (defined in flexlexer.h) - - -// The original flex C++ scanner class interface has these copyrights: +/**********************************************************************/ // Copyright (c) 1993 The Regents of the University of California. // All rights reserved. // @@ -47,6 +17,13 @@ // this software without specific prior written permission. +// ULexer.h -- define interfaces for Unicode lexical analyzer class (tcr) + +// Flex (version 2.5.4a and earlier) does not support Unicode. Our attempts +// at extending flex to generate a Unicode scanner were unsuccessful. So, we +// hand-code a Unicode scanner for SQL/MX but retain the flex C++ scanner +// class interface (defined in flexlexer.h) + // This file defines ULexer, an abstract class which specifies the // external interface provided to Unicode C++ lexer objects, and yyULexer, // which defines a particular lexer class. http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/regress/newregr/card/runregr_card.ksh ---------------------------------------------------------------------- diff --git a/core/sql/regress/newregr/card/runregr_card.ksh b/core/sql/regress/newregr/card/runregr_card.ksh index 8a7c7cd..915a33d 100644 --- a/core/sql/regress/newregr/card/runregr_card.ksh +++ b/core/sql/regress/newregr/card/runregr_card.ksh @@ -19,13 +19,6 @@ -- -- @@@ END COPYRIGHT @@@ #! /bin/sh -################################################################################ -# @@@ START COPYRIGHT @@@ -# -# (C) Copyright 2003-2007 Hewlett-Packard Development Company, L.P. -# -# @@@ END COPYRIGHT @@@ -################################################################################ ################################################################################ # CARDINALITY REGRESSION TEST SUITE http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/7a085965/core/sql/regress/newregr/mvs/BIG/expectedmv215_RU ---------------------------------------------------------------------- diff --git a/core/sql/regress/newregr/mvs/BIG/expectedmv215_RU b/core/sql/regress/newregr/mvs/BIG/expectedmv215_RU deleted file mode 100644 index 4b6a6a7..0000000 --- a/core/sql/regress/newregr/mvs/BIG/expectedmv215_RU +++ /dev/null @@ -1,480 +0,0 @@ --- @@@ START COPYRIGHT @@@ --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. --- --- @@@ END COPYRIGHT @@@ --- @@@ START COPYRIGHT @@@ --- ->> ->>obey TESTMV215_RU(SET_UP); ->>---------------------------------------------- ->>control query default insert_vsbb 'OFF'; - ---- SQL operation complete. ->>set PARSERFLAGS 1; ->> ->>set schema cat.tpcd; - ---- SQL operation complete. ->> ->>obey ./TPCD/CREATEALL.OBEY(SET_UP); ->> ->>create catalog cat; - -*** ERROR[1035] Catalog CAT already exists. - ---- SQL operation completed with errors. ->>create schema cat.tpcd; - -*** ERROR[1022] Schema CAT.TPCD already exists. - ---- SQL operation completed with errors. ->>cd ./TPCD; ->> ->>set schema CAT.TPCD; - ---- SQL operation complete. ->>set envvar DSS_CONFIG . ; ->>-- change all of these lines together if needed ->>#ifNSK ->>set envvar DSS_TEMP ./TPCDTEMP; ->>sh mkdir $DSS_TEMP; ->>#ifNSK ->>#ifNT ->>set envvar DSS_TEMP .\TPCDTEMP; ->>sh mkdir %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\dbgen.exe %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\Dists.dss %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\*.fmt %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\generateTpcd.ksh %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\*.awk %DSS_TEMP% ; ->>sh cp %DSS_CONFIG%\runGen.pl %DSS_TEMP% ; ->>#ifNT ->> ->>cd TPCDTEMP; ->> ->>log SQLCI.LOG clear; ->> ->>-- Run Tests ->> set schema cat.tpcd; - ---- SQL operation complete. ->> obey TESTMV215_RU(TEST1); ->>------------------------------------------------------- ->>-- Basic Q5 ->>-- for compare ->> ->> ->>refresh mv4q5; - ---- SQL operation complete. ->>log; - -The materialized view CAT.TPCD.MV4Q5 is being refreshed in a single transaction... - -The materialized view CAT.TPCD.MV4Q5 was found up to date. -Starting the log cleanup of table CAT.TPCD.REGION... - -Finished the log cleanup of table CAT.TPCD.REGION. - -Starting the log cleanup of table CAT.TPCD.NATION... - -Finished the log cleanup of table CAT.TPCD.NATION. - -Starting the log cleanup of table CAT.TPCD.ORDERS... - -Finished the log cleanup of table CAT.TPCD.ORDERS. - -Starting the log cleanup of table CAT.TPCD.LINEITEM... - -Finished the log cleanup of table CAT.TPCD.LINEITEM. - -Starting the log cleanup of table CAT.TPCD.SUPPLIER... - -Finished the log cleanup of table CAT.TPCD.SUPPLIER. - -Starting the log cleanup of table CAT.TPCD.CUSTOMER... - -Finished the log cleanup of table CAT.TPCD.CUSTOMER. - - ->>PREPARE stat1 FROM -+> select n_name, sum(l_extendedprice*(1-l_discount)) as revenue,count(*) rows_in_group -+> from customer,orders,lineitem,supplier,nation, region -+> where -+> c_custkey = o_custkey -+> and o_orderkey = l_orderkey -+> and l_suppkey = s_suppkey -+> and c_nationkey= s_nationkey -+> and s_nationkey = n_nationkey -+> and n_regionkey = r_regionkey -+> and r_name in ('ASIA','AMERICA','EUROPE','MIDDLE EAST','AFRICA') -+> and o_orderdate >= date '1994-01-01' -+> and o_orderdate < date '1994-01-01' + interval '3' year -+> group by n_name -+> order by n_name,revenue desc ; - ---- SQL command prepared. ->> ->>PREPARE stat2 FROM -+> select n_name,revenue,rows_in_group -+> from mv4q5 -+> order by n_name,revenue desc; - ---- SQL command prepared. ->> ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>SET PARAM ?table_name 'SUPPLIER'; ->>execute select_mvs_table_info; - -CURRENT_EPOCH MV_ATTRIBUTES_BITMAP IS_LOCKONREFRESH IS_INSERTLOG RANGELOG_TYPE MVSALLOWED_TYPE -------------- -------------------- ---------------- ------------ ------------- --------------- - - 104 466965 Y N N A - ---- 1 row(s) selected. ->>log; - -NonStop SQL/MX Import Utility 1.0 -Copyright (c) 1997-1999 Compaq Computer Corporation. All Rights Reserved. - -Rows Imported = 5 - -Import Completed Successfully ->> ->>-- should be equal to 5 ->>select count(*) from table(iud_log_table cat.tpcd.supplier); - -(EXPR) --------------------- - - 5 - ---- 1 row(s) selected. ->> ->>REFRESH mv4q5; - ---- SQL operation complete. ->>log; - -The materialized view CAT.TPCD.MV4Q5 is being refreshed in a single transaction... - -The materialized view CAT.TPCD.MV4Q5 has been refreshed in a single transaction. - -Starting the log cleanup of table CAT.TPCD.REGION... - -Finished the log cleanup of table CAT.TPCD.REGION. - -Starting the log cleanup of table CAT.TPCD.NATION... - -Finished the log cleanup of table CAT.TPCD.NATION. - -Starting the log cleanup of table CAT.TPCD.ORDERS... - -Finished the log cleanup of table CAT.TPCD.ORDERS. - -Starting the log cleanup of table CAT.TPCD.LINEITEM... - -Finished the log cleanup of table CAT.TPCD.LINEITEM. - -Starting the log cleanup of table CAT.TPCD.SUPPLIER... - -Finished the log cleanup of table CAT.TPCD.SUPPLIER. - -Starting the log cleanup of table CAT.TPCD.CUSTOMER... - -Finished the log cleanup of table CAT.TPCD.CUSTOMER. - - ->> ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>log; - -NonStop SQL/MX Import Utility 1.0 -Copyright (c) 1997-1999 Compaq Computer Corporation. All Rights Reserved. - -Rows Imported = 75 - -Import Completed Successfully ->> ->>update customer -+>set c_nationkey = 12 -- 'JAPAN' -+>where c_nationkey = 10 and c_acctbal < 4000; - ---- 14 row(s) updated. ->> ->> ->>update customer -+>set c_nationkey = 10 -- 'IRAN' -+>where c_nationkey = 12 and c_acctbal > 3000; - ---- 18 row(s) updated. ->> ->>update customer -+>set c_nationkey = 12 -- 'IRAN' -+>where c_nationkey = 12 and c_acctbal < 2500; - ---- 14 row(s) updated. ->> ->> ->>Refresh mv4q5; - ---- SQL operation complete. ->>log; ->> ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->> obey TESTMV215_RU(TEST2); ->>-- Basic Q9 ->> ->> ->>REFRESH mv4q9; - ---- SQL operation complete. ->>log; ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>--parts ->> ->>log; - -NonStop SQL/MX Import Utility 1.0 -Copyright (c) 1997-1999 Compaq Computer Corporation. All Rights Reserved. - -Rows Imported = 100 - -Import Completed Successfully ->> ->>--CREATE TANDEM_CAT_REQUEST&1 16 3 @cat.tpcd.part@ @1@ @0@ ; ->> ->>REFRESH mv4q9; - ---- SQL operation complete. ->>log; ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>-- partsupp ->>log; - -NonStop SQL/MX Import Utility 1.0 -Copyright (c) 1997-1999 Compaq Computer Corporation. All Rights Reserved. - -Rows Imported = 400 - -Import Completed Successfully ->> ->>REFRESH mv4q9; - ---- SQL operation complete. ->>log; ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>-- lineitem ->>log; - -NonStop SQL/MX Import Utility 1.0 -Copyright (c) 1997-1999 Compaq Computer Corporation. All Rights Reserved. - -Rows Imported = 2500 - -Import Completed Successfully ->> ->> ->>REFRESH mv4q9; - ---- SQL operation complete. ->>log; ->> ->>log; -1,2c1,2 -< >> log TEMP1; -< >> execute stat1; ---- -> >> log TEMP2; -> >> execute stat2; ->> ->>-- Clean and exit ->>obey TESTMV215(CLEAN_UP); ->>----------------------------------------------------- ->> ->> ->>set schema cat.tpcd; - ---- SQL operation complete. ->>obey ./TPCD/CREATEMVS(DROPALL); ->>drop mv cat3.testing.mv4q67; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1031] Object CAT3.TESTING.MV4Q67 could not be dropped. - ---- SQL operation completed with errors. ->>drop mv mv4q17; - ---- SQL operation complete. ->>drop mv mv4q15; - ---- SQL operation complete. ->>drop mv mv4q12; - ---- SQL operation complete. ->>drop mv mv4q11; - ---- SQL operation complete. ->>drop mv mv4q10; - ---- SQL operation complete. ->>drop mv mv4q9; - ---- SQL operation complete. ->>drop mv mv4q7; - -*** ERROR[1004] Table, view, or stored procedure CAT.TPCD.MV4Q7 does not exist or object type is invalid for the current operation. - -*** ERROR[1031] Object CAT.TPCD.MV4Q7 could not be dropped. - ---- SQL operation completed with errors. ->>drop mv mv4q6; - ---- SQL operation complete. ->>drop mv mv4q5; - ---- SQL operation complete. ->>drop mv mv4q3; - ---- SQL operation complete. ->>drop mv mv4q1; - ---- SQL operation complete. ->> ->> ->>-------------------------- ->>drop table cat3.details.partsupp; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1031] Object CAT3.DETAILS.PARTSUPP could not be dropped. - ---- SQL operation completed with errors. ->>drop table cat3.details.supplier; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1031] Object CAT3.DETAILS.SUPPLIER could not be dropped. - ---- SQL operation completed with errors. ->>drop table cat3.geography.nation; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1031] Object CAT3.GEOGRAPHY.NATION could not be dropped. - ---- SQL operation completed with errors. ->>drop schema cat3.details; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1069] Schema CAT3.DETAILS could not be dropped. - ---- SQL operation completed with errors. ->>drop schema cat3.geography; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1069] Schema CAT3.GEOGRAPHY could not be dropped. - ---- SQL operation completed with errors. ->>drop schema cat3.testing; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - -*** ERROR[1069] Schema CAT3.TESTING could not be dropped. - ---- SQL operation completed with errors. ->>drop catalog cat3; - -*** ERROR[1002] Catalog CAT3 does not exist or has not been registered on node \NSK. - ---- SQL operation completed with errors. ->>obey ./TPCD/CREATEALL.OBEY(CLEAN_UP); ->> ->>drop table customer; - ---- SQL operation complete. ->>drop table supplier; - ---- SQL operation complete. ->>drop table lineitem; - ---- SQL operation complete. ->>drop table orders; - ---- SQL operation complete. ->>drop table part; - ---- SQL operation complete. ->>drop table partsupp; - ---- SQL operation complete. ->>drop table nation; - ---- SQL operation complete. ->>drop table region; - ---- SQL operation complete. ->> ->>-- --------------------------------------------------------------------------- ->>log;
