teradata-cli 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/query.rb +2 -2
- data/examples/show-queryband.rb +2 -2
- data/examples/tu/excel/fill.rb +2 -2
- data/examples/tu/tusample1.rb +2 -2
- data/examples/tu/tusample2.rb +2 -2
- data/examples/tu/web/bitdao/teradata.rb +2 -2
- data/examples/tu/web/bitdao.rb +2 -2
- data/examples/tu/web/server.rb +2 -2
- data/examples/update.rb +2 -2
- data/ext/{teradata → teradata-cli}/cli/cli.c +1 -1
- data/ext/{teradata → teradata-cli}/cli/extconf.rb +1 -1
- data/ext/teradata-cli/cli/mkmf.log +57 -0
- data/lib/teradata-cli/cli.rb +4 -0
- data/lib/{teradata → teradata-cli}/connection.rb +11 -11
- data/lib/{teradata → teradata-cli}/dbobject.rb +7 -7
- data/lib/{teradata → teradata-cli}/exception.rb +1 -1
- data/lib/{teradata → teradata-cli}/utils.rb +2 -2
- data/lib/teradata-cli/version.rb +3 -0
- data/lib/teradata-cli.rb +14 -0
- data/teradata-cli.gemspec +3 -3
- data/test/rubyclitestutils.rb +3 -3
- data/test/test_connection.rb +26 -26
- data/test/test_dbobject.rb +39 -39
- data/test/test_record.rb +6 -6
- metadata +12 -11
- data/lib/teradata/cli/version.rb +0 -5
- data/lib/teradata/cli.rb +0 -4
- data/lib/teradata.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbeb4f03192e75727273c03be15c6851fbeff13f
|
4
|
+
data.tar.gz: 12df4d4b28d4ae8a4c1dd2f79f44d95314294006
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10990b74d136b6efe3cca3a88df2959c3af15235f80390d5c15d62a17636ded6098d2769b512755d459f31502497ebcdbdd45100041d69cf0bfd7fb07d551b49
|
7
|
+
data.tar.gz: bc0649c40af5e20fb5029c7b2c806c58c107243d81aca892737507025686a93234f48e3dfce98cb80ba536dc8f54134ad3302a28af291bd55a49a4b838b1371a
|
data/examples/query.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# $ ruby example/query.rb 'SELECT * FROM x'
|
8
8
|
#
|
9
9
|
|
10
|
-
require 'teradata'
|
10
|
+
require 'teradata-cli'
|
11
11
|
require 'logger'
|
12
12
|
require 'pp'
|
13
13
|
|
@@ -26,7 +26,7 @@ end
|
|
26
26
|
log = Logger.new($stderr)
|
27
27
|
log.sev_threshold = $DEBUG ? Logger::DEBUG : Logger::INFO
|
28
28
|
|
29
|
-
|
29
|
+
TeradataCli.connect(logon_string, :logger => log) {|conn|
|
30
30
|
conn.query(sql) {|result_sets|
|
31
31
|
result_sets.each_result_set do |rs|
|
32
32
|
pp rs
|
data/examples/show-queryband.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# $ ruby example/show-queryband.rb
|
8
8
|
#
|
9
9
|
|
10
|
-
require 'teradata'
|
10
|
+
require 'teradata-cli'
|
11
11
|
|
12
12
|
logon_string = ENV['LOGON_STRING']
|
13
13
|
unless logon_string
|
@@ -15,7 +15,7 @@ unless logon_string
|
|
15
15
|
exit 1
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
TeradataCli.connect(logon_string) {|conn|
|
19
19
|
conn.query("SELECT * FROM dbc.sessionInfo") {|rs|
|
20
20
|
rs.each do |rec|
|
21
21
|
user = rec[:UserName].strip
|
data/examples/tu/excel/fill.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'excel'
|
2
2
|
require 'fileutils'
|
3
3
|
require 'pp'
|
4
|
-
require 'teradata'
|
4
|
+
require 'teradata-cli'
|
5
5
|
|
6
6
|
def main
|
7
7
|
logon_string, template, output = ARGV
|
@@ -44,7 +44,7 @@ def fill_sheet(sheet, logon_string)
|
|
44
44
|
y = value_cell.row + 1
|
45
45
|
|
46
46
|
# Execute SQL and fill cells by data
|
47
|
-
|
47
|
+
TeradataCli.connect(logon_string) {|conn|
|
48
48
|
conn.query(sql) {|rs|
|
49
49
|
rs.each do |rec|
|
50
50
|
pp rec
|
data/examples/tu/tusample1.rb
CHANGED
data/examples/tu/tusample2.rb
CHANGED
data/examples/tu/web/bitdao.rb
CHANGED
@@ -56,14 +56,14 @@ class BitDAO
|
|
56
56
|
exec_sql "BEGIN TRANSACTION;"
|
57
57
|
begin
|
58
58
|
yield
|
59
|
-
rescue
|
59
|
+
rescue TeradataCli::CLI::UserAbort => err
|
60
60
|
aborting = true
|
61
61
|
raise err
|
62
62
|
ensure
|
63
63
|
if $@
|
64
64
|
begin
|
65
65
|
abort unless aborting
|
66
|
-
rescue
|
66
|
+
rescue TeradataCli::CLI::UserAbort # do not override original exception
|
67
67
|
end
|
68
68
|
else
|
69
69
|
exec_sql "END TRANSACTION;"
|
data/examples/tu/web/server.rb
CHANGED
@@ -9,7 +9,7 @@ $KCODE = 'UTF-8' unless defined?(Encoding)
|
|
9
9
|
$LOAD_PATH.push '.' unless $LOAD_PATH.include?('.')
|
10
10
|
|
11
11
|
require 'tdwalker'
|
12
|
-
require 'teradata'
|
12
|
+
require 'teradata-cli'
|
13
13
|
require 'bitweb'
|
14
14
|
require 'bitdao'
|
15
15
|
require 'bitdao/teradata'
|
@@ -85,7 +85,7 @@ def request_handler
|
|
85
85
|
TDWalker::Models.new(
|
86
86
|
TDWalker::DAO.new(
|
87
87
|
log,
|
88
|
-
|
88
|
+
TeradataCli.connect(@logon_string)
|
89
89
|
)
|
90
90
|
)
|
91
91
|
)
|
data/examples/update.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# $ ruby example/update.rb 'CREATE TABLE x (x INTEGER)'
|
8
8
|
#
|
9
9
|
|
10
|
-
require 'teradata'
|
10
|
+
require 'teradata-cli'
|
11
11
|
require 'logger'
|
12
12
|
require 'pp'
|
13
13
|
|
@@ -26,6 +26,6 @@ end
|
|
26
26
|
log = Logger.new($stderr)
|
27
27
|
log.sev_threshold = $DEBUG ? Logger::DEBUG : Logger::INFO
|
28
28
|
|
29
|
-
|
29
|
+
TeradataCli.connect(logon_string, :logger => log) {|conn|
|
30
30
|
pp conn.update(sql)
|
31
31
|
}
|
@@ -341,7 +341,7 @@ Init_cli(void)
|
|
341
341
|
{
|
342
342
|
VALUE Teradata, Teradata_Error;
|
343
343
|
|
344
|
-
Teradata = rb_define_module("
|
344
|
+
Teradata = rb_define_module("TeradataCli");
|
345
345
|
Teradata_Error = rb_const_get(Teradata, rb_intern("Error"));
|
346
346
|
|
347
347
|
CLI = rb_define_class_under(Teradata, "CLI", rb_cObject);
|
@@ -0,0 +1,57 @@
|
|
1
|
+
have_library: checking for main() in -lcliv2... -------------------- yes
|
2
|
+
|
3
|
+
"gcc -o conftest -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/i686-linux -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0 -I. -D_FILE_OFFSET_BITS=64 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -Wl,-R/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L. -fstack-protector -rdynamic -Wl,-export-dynamic '-Wl,-rpath,/../lib' -Wl,-R -Wl,/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -lruby -lpthread -lrt -ldl -lcrypt -lm -lc"
|
4
|
+
checked program was:
|
5
|
+
/* begin */
|
6
|
+
1: #include "ruby.h"
|
7
|
+
2:
|
8
|
+
3: int main(int argc, char **argv)
|
9
|
+
4: {
|
10
|
+
5: return 0;
|
11
|
+
6: }
|
12
|
+
/* end */
|
13
|
+
|
14
|
+
"gcc -o conftest -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/i686-linux -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0 -I. -D_FILE_OFFSET_BITS=64 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -Wl,-R/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L. -fstack-protector -rdynamic -Wl,-export-dynamic '-Wl,-rpath,/../lib' -Wl,-R -Wl,/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -lruby -lcliv2 -lpthread -lrt -ldl -lcrypt -lm -lc"
|
15
|
+
conftest.c: In function ‘t’:
|
16
|
+
conftest.c:5:57: error: ‘main’ undeclared (first use in this function)
|
17
|
+
conftest.c:5:57: note: each undeclared identifier is reported only once for each function it appears in
|
18
|
+
conftest.c:5:32: warning: variable ‘p’ set but not used [-Wunused-but-set-variable]
|
19
|
+
checked program was:
|
20
|
+
/* begin */
|
21
|
+
1: #include "ruby.h"
|
22
|
+
2:
|
23
|
+
3: /*top*/
|
24
|
+
4: extern int t(void);
|
25
|
+
5: int t(void) { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
|
26
|
+
6: int main(int argc, char **argv)
|
27
|
+
7: {
|
28
|
+
8: if (argc > 1000000) {
|
29
|
+
9: printf("%p", &t);
|
30
|
+
10: }
|
31
|
+
11:
|
32
|
+
12: return 0;
|
33
|
+
13: }
|
34
|
+
/* end */
|
35
|
+
|
36
|
+
"gcc -o conftest -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/i686-linux -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward -I/home/jc34/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0 -I. -D_FILE_OFFSET_BITS=64 -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -Wl,-R/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L. -fstack-protector -rdynamic -Wl,-export-dynamic '-Wl,-rpath,/../lib' -Wl,-R -Wl,/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -L/home/jc34/.rvm/rubies/ruby-2.0.0-p247/lib -lruby -lcliv2 -lpthread -lrt -ldl -lcrypt -lm -lc"
|
37
|
+
conftest.c: In function ‘t’:
|
38
|
+
conftest.c:5:1: warning: implicit declaration of function ‘main’ [-Wimplicit-function-declaration]
|
39
|
+
checked program was:
|
40
|
+
/* begin */
|
41
|
+
1: #include "ruby.h"
|
42
|
+
2:
|
43
|
+
3: /*top*/
|
44
|
+
4: extern int t(void);
|
45
|
+
5: int t(void) { main(); return 0; }
|
46
|
+
6: int main(int argc, char **argv)
|
47
|
+
7: {
|
48
|
+
8: if (argc > 1000000) {
|
49
|
+
9: printf("%p", &t);
|
50
|
+
10: }
|
51
|
+
11:
|
52
|
+
12: return 0;
|
53
|
+
13: }
|
54
|
+
/* end */
|
55
|
+
|
56
|
+
--------------------
|
57
|
+
|
@@ -8,13 +8,13 @@
|
|
8
8
|
# the GNU LGPL2, Lesser General Public License version 2.
|
9
9
|
#
|
10
10
|
|
11
|
-
require 'teradata/cli'
|
12
|
-
require 'teradata/utils'
|
13
|
-
require 'teradata/exception'
|
11
|
+
require 'teradata-cli/cli'
|
12
|
+
require 'teradata-cli/utils'
|
13
|
+
require 'teradata-cli/exception'
|
14
14
|
require 'forwardable'
|
15
15
|
require 'stringio'
|
16
16
|
|
17
|
-
module
|
17
|
+
module TeradataCli
|
18
18
|
|
19
19
|
class ConnectionError < CLIError; end
|
20
20
|
class MetaDataFormatError < CLIError; end
|
@@ -32,7 +32,7 @@ module Teradata
|
|
32
32
|
|
33
33
|
class UserAbort < SQLError; end
|
34
34
|
|
35
|
-
def
|
35
|
+
def TeradataCli.connect(*args, &block)
|
36
36
|
Connection.open(*args, &block)
|
37
37
|
end
|
38
38
|
|
@@ -43,15 +43,15 @@ module Teradata
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def Connection.default_session_charset
|
46
|
-
|
46
|
+
TeradataCli::SessionCharset.new('UTF8')
|
47
47
|
end
|
48
48
|
|
49
49
|
def initialize(logon_string, options = {})
|
50
50
|
session_charset = options[:session_charset] || Connection.default_session_charset
|
51
51
|
internal_encoding = options[:internal_encoding] || default_internal_encoding()
|
52
52
|
@logger = options[:logger] || NullLogger.new
|
53
|
-
@logon_string =
|
54
|
-
@session_charset =
|
53
|
+
@logon_string = TeradataCli::LogonString.intern(logon_string)
|
54
|
+
@session_charset = TeradataCli::SessionCharset.intern(session_charset)
|
55
55
|
@external_encoding = @session_charset.encoding
|
56
56
|
@internal_encoding = internal_encoding
|
57
57
|
ex = StringExtractor.get(@external_encoding, @internal_encoding)
|
@@ -265,7 +265,7 @@ module Teradata
|
|
265
265
|
end
|
266
266
|
|
267
267
|
def id_string
|
268
|
-
"
|
268
|
+
"TeradataCli::Connection:#{'%x' % object_id}"
|
269
269
|
end
|
270
270
|
end
|
271
271
|
|
@@ -400,11 +400,11 @@ module Teradata
|
|
400
400
|
private
|
401
401
|
|
402
402
|
def warn(&block)
|
403
|
-
@logger.warn { "
|
403
|
+
@logger.warn { "TeradataCli::CLI:#{'%x' % object_id}: #{yield}" }
|
404
404
|
end
|
405
405
|
|
406
406
|
def debug(&block)
|
407
|
-
@logger.debug { "
|
407
|
+
@logger.debug { "TeradataCli::CLI:#{'%x' % object_id}: #{yield}" }
|
408
408
|
end
|
409
409
|
|
410
410
|
end
|
@@ -8,11 +8,11 @@
|
|
8
8
|
# the GNU LGPL2, Lesser General Public License version 2.
|
9
9
|
#
|
10
10
|
|
11
|
-
require 'teradata/utils'
|
12
|
-
require 'teradata/connection'
|
13
|
-
require 'teradata/exception'
|
11
|
+
require 'teradata-cli/utils'
|
12
|
+
require 'teradata-cli/connection'
|
13
|
+
require 'teradata-cli/exception'
|
14
14
|
|
15
|
-
module
|
15
|
+
module TeradataCli
|
16
16
|
|
17
17
|
class ObjectError < Error; end
|
18
18
|
|
@@ -161,7 +161,7 @@ module Teradata
|
|
161
161
|
WHERE databaseName = #{sql_string database}
|
162
162
|
GROUP BY tableName
|
163
163
|
EndSQL
|
164
|
-
c = ::
|
164
|
+
c = ::TeradataCli::Table
|
165
165
|
recs.map {|rec|
|
166
166
|
name, curr, peak = *rec.to_a
|
167
167
|
c.new(database, name, curr.to_i, peak.to_i)
|
@@ -169,7 +169,7 @@ module Teradata
|
|
169
169
|
end
|
170
170
|
|
171
171
|
def views(database)
|
172
|
-
fetch_objects(database, ::
|
172
|
+
fetch_objects(database, ::TeradataCli::View)
|
173
173
|
end
|
174
174
|
|
175
175
|
def fetch_objects(database, obj_class)
|
@@ -182,7 +182,7 @@ module Teradata
|
|
182
182
|
|
183
183
|
def objects(database)
|
184
184
|
entries("HELP DATABASE #{database}").map {|rec|
|
185
|
-
::
|
185
|
+
::TeradataCli::DBObject.create(rec[1].strip, database, rec[0].strip)
|
186
186
|
}
|
187
187
|
end
|
188
188
|
|
data/lib/teradata-cli.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#
|
2
|
+
# $Id: teradata-cli.rb 7 2010-03-04 16:54:09Z tdaoki $
|
3
|
+
#
|
4
|
+
# Copyright (C) 2009,2010 teradata Japan, LTD.
|
5
|
+
#
|
6
|
+
# This program is free software.
|
7
|
+
# You can distribute/modify this program under the terms of
|
8
|
+
# the GNU LGPL2, Lesser General Public License version 2.
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'teradata-cli/connection'
|
12
|
+
require 'teradata-cli/dbobject'
|
13
|
+
require 'teradata-cli/utils'
|
14
|
+
require 'teradata-cli/exception'
|
data/teradata-cli.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'teradata
|
4
|
+
require 'teradata-cli/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "teradata-cli"
|
8
|
-
spec.version =
|
8
|
+
spec.version = TeradataCli::VERSION
|
9
9
|
spec.authors = ["Giuseppe Privitera"]
|
10
10
|
spec.email = ["priviterag@gmail.com"]
|
11
11
|
spec.description = %q{ruby extension for Teradata Cliv2}
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.extensions = ["ext/teradata/cli/extconf.rb"]
|
18
|
+
spec.extensions = ["ext/teradata-cli/cli/extconf.rb"]
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
data/test/rubyclitestutils.rb
CHANGED
@@ -2,7 +2,7 @@ module RubyCLITestUtils
|
|
2
2
|
|
3
3
|
def logon_string
|
4
4
|
s = ENV['TEST_LOGON_STRING'] or raise ArgumentError, "environ TEST_LOGON_STRING not given"
|
5
|
-
|
5
|
+
TeradataCli::LogonString.parse(s)
|
6
6
|
end
|
7
7
|
|
8
8
|
def playpen_string
|
@@ -26,7 +26,7 @@ module RubyCLITestUtils
|
|
26
26
|
options[:session_charset] = charset if charset
|
27
27
|
options[:internal_encoding] = internal if internal
|
28
28
|
end
|
29
|
-
|
29
|
+
TeradataCli::Connection.open(logon_string, options) {|conn|
|
30
30
|
begin
|
31
31
|
@conn = conn
|
32
32
|
yield conn
|
@@ -72,7 +72,7 @@ module RubyCLITestUtils
|
|
72
72
|
|
73
73
|
def drop_table_force(name, conn = @conn)
|
74
74
|
drop_table name, conn
|
75
|
-
rescue
|
75
|
+
rescue TeradataCli::SQLError => err
|
76
76
|
raise err unless err.code == ERR_OBJECT_NOT_EXIST
|
77
77
|
end
|
78
78
|
|
data/test/test_connection.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'teradata'
|
1
|
+
require 'teradata-cli'
|
2
2
|
require 'test/unit'
|
3
3
|
libdir = File.dirname(__FILE__)
|
4
4
|
$LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
|
@@ -10,8 +10,8 @@ class Test_Connection < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def test_s_open
|
12
12
|
begin
|
13
|
-
conn =
|
14
|
-
assert_instance_of
|
13
|
+
conn = TeradataCli::Connection.open(logon_string)
|
14
|
+
assert_instance_of TeradataCli::Connection, conn
|
15
15
|
assert_equal false, conn.closed?
|
16
16
|
ensure
|
17
17
|
begin
|
@@ -21,7 +21,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
21
21
|
assert_equal true, conn.closed?
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
TeradataCli::Connection.open(logon_string) {|c| assert_instance_of(TeradataCli::Connection, c); assert_equal(false, c.closed?)}
|
25
25
|
assert_equal true, conn.closed?
|
26
26
|
end
|
27
27
|
|
@@ -29,7 +29,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
29
29
|
connect {
|
30
30
|
drop_table_force "#{get_table_name('t')}"
|
31
31
|
x = @conn.execute_update("CREATE TABLE #{get_table_name('t')} (x INTEGER);")
|
32
|
-
assert_instance_of
|
32
|
+
assert_instance_of TeradataCli::ResultSet, x
|
33
33
|
assert_equal true, x.closed?
|
34
34
|
}
|
35
35
|
end
|
@@ -47,7 +47,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
47
47
|
@conn.execute_update "BEGIN TRANSACTION;"
|
48
48
|
@conn.execute_update "DELETE FROM #{name};"
|
49
49
|
@conn.execute_update "ABORT;"
|
50
|
-
rescue
|
50
|
+
rescue TeradataCli::UserAbort
|
51
51
|
end
|
52
52
|
recs = @conn.entries("SELECT * FROM #{name} ORDER BY 1;")
|
53
53
|
assert_equal 2, recs.size
|
@@ -66,19 +66,19 @@ class Test_Connection < Test::Unit::TestCase
|
|
66
66
|
def _test_single_rs(name, conn)
|
67
67
|
buf = []
|
68
68
|
conn.execute_query("SELECT * FROM #{name} ORDER BY 1") {|rs|
|
69
|
-
assert_instance_of
|
69
|
+
assert_instance_of TeradataCli::ResultSet, rs
|
70
70
|
rs.each do |rec|
|
71
71
|
buf.push rec
|
72
72
|
end
|
73
73
|
}
|
74
74
|
assert_equal 3, buf.size
|
75
|
-
assert_instance_of
|
75
|
+
assert_instance_of TeradataCli::Record, buf[0]
|
76
76
|
assert_equal 1, buf[0][:x]
|
77
77
|
assert_equal 2, buf[0][:y]
|
78
|
-
assert_instance_of
|
78
|
+
assert_instance_of TeradataCli::Record, buf[1]
|
79
79
|
assert_equal 3, buf[1][:x]
|
80
80
|
assert_equal 4, buf[1][:y]
|
81
|
-
assert_instance_of
|
81
|
+
assert_instance_of TeradataCli::Record, buf[2]
|
82
82
|
assert_equal 5, buf[2][:x]
|
83
83
|
assert_equal 6, buf[2][:y]
|
84
84
|
end
|
@@ -87,10 +87,10 @@ class Test_Connection < Test::Unit::TestCase
|
|
87
87
|
buf = []
|
88
88
|
num_rs = 0
|
89
89
|
conn.execute_query("SELECT * FROM #{name} ORDER BY 1") {|sets|
|
90
|
-
assert_instance_of
|
90
|
+
assert_instance_of TeradataCli::ResultSet, sets
|
91
91
|
sets.each_result_set do |rs|
|
92
92
|
num_rs += 1
|
93
|
-
assert_instance_of
|
93
|
+
assert_instance_of TeradataCli::ResultSet, rs
|
94
94
|
rs.each do |rec|
|
95
95
|
buf.push rec
|
96
96
|
end
|
@@ -99,7 +99,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
99
99
|
assert_equal 1, num_rs
|
100
100
|
assert_equal 3, buf.size
|
101
101
|
buf.each do |r|
|
102
|
-
assert_instance_of
|
102
|
+
assert_instance_of TeradataCli::Record, r
|
103
103
|
end
|
104
104
|
assert_equal [1,2], [buf[0][:x], buf[0][:y]]
|
105
105
|
assert_equal [3,4], [buf[1][:x], buf[1][:y]]
|
@@ -112,10 +112,10 @@ class Test_Connection < Test::Unit::TestCase
|
|
112
112
|
conn.execute_query(
|
113
113
|
"SELECT * FROM #{name} ORDER BY 1;
|
114
114
|
SELECT * FROM #{name} ORDER BY 1 DESC;") {|sets|
|
115
|
-
assert_instance_of
|
115
|
+
assert_instance_of TeradataCli::ResultSet, sets
|
116
116
|
sets.each_result_set do |rs|
|
117
117
|
num_rs += 1
|
118
|
-
assert_instance_of
|
118
|
+
assert_instance_of TeradataCli::ResultSet, rs
|
119
119
|
rs.each do |rec|
|
120
120
|
buf.push rec
|
121
121
|
end
|
@@ -124,7 +124,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
124
124
|
assert_equal 2, num_rs
|
125
125
|
assert_equal 6, buf.size
|
126
126
|
buf.each do |r|
|
127
|
-
assert_instance_of
|
127
|
+
assert_instance_of TeradataCli::Record, r
|
128
128
|
end
|
129
129
|
assert_equal [1,2], [buf[0][:x], buf[0][:y]]
|
130
130
|
assert_equal [3,4], [buf[1][:x], buf[1][:y]]
|
@@ -198,8 +198,8 @@ class Test_Connection < Test::Unit::TestCase
|
|
198
198
|
using_test_table(get_table_name('t1')) {
|
199
199
|
using_test_table(get_table_name('t2')) {
|
200
200
|
list = @conn.tables(db)
|
201
|
-
assert(list.include?
|
202
|
-
assert(list.include?
|
201
|
+
assert(list.include? TeradataCli::Table.new(db, 't1'))
|
202
|
+
assert(list.include? TeradataCli::Table.new(db, 't2'))
|
203
203
|
}}
|
204
204
|
}
|
205
205
|
end
|
@@ -208,7 +208,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
208
208
|
db = playpen_string
|
209
209
|
using_test_table do
|
210
210
|
using_view("#{get_table_name('v')}", 'select 1 as i') do
|
211
|
-
assert(@conn.views(db).include?
|
211
|
+
assert(@conn.views(db).include? TeradataCli::View.new(db, 'v'))
|
212
212
|
end
|
213
213
|
end
|
214
214
|
end
|
@@ -220,8 +220,8 @@ class Test_Connection < Test::Unit::TestCase
|
|
220
220
|
using_test_table(get_table_name('t')) do
|
221
221
|
using_view("#{get_table_name('v')}", 'select 1 as i') do
|
222
222
|
objects = @conn.objects(db)
|
223
|
-
assert(objects.include?
|
224
|
-
assert(objects.include?
|
223
|
+
assert(objects.include? TeradataCli::Table.new(db, 't'))
|
224
|
+
assert(objects.include? TeradataCli::View.new(db, 'v'))
|
225
225
|
end
|
226
226
|
end
|
227
227
|
end
|
@@ -239,13 +239,13 @@ class Test_Connection < Test::Unit::TestCase
|
|
239
239
|
|
240
240
|
def drop_view_force(name, conn = @conn)
|
241
241
|
conn.execute_update "DROP VIEW #{name}"
|
242
|
-
rescue
|
242
|
+
rescue TeradataCli::SQLError
|
243
243
|
end
|
244
244
|
|
245
245
|
def test_info
|
246
246
|
connect {
|
247
247
|
info = @conn.info
|
248
|
-
assert_instance_of
|
248
|
+
assert_instance_of TeradataCli::SessionInfo, info
|
249
249
|
assert_equal logon_string.user.downcase, info.user_name.downcase
|
250
250
|
}
|
251
251
|
end
|
@@ -253,8 +253,8 @@ class Test_Connection < Test::Unit::TestCase
|
|
253
253
|
def test_column
|
254
254
|
db = playpen_string
|
255
255
|
using_table("#{get_table_name('t')}", "x INTEGER, y INTEGER") do
|
256
|
-
col = @conn.column(
|
257
|
-
assert_instance_of
|
256
|
+
col = @conn.column(TeradataCli::Table.new(db, 't'), 'x')
|
257
|
+
assert_instance_of TeradataCli::Column, col
|
258
258
|
assert_equal 'x', col.column_name.strip.downcase
|
259
259
|
end
|
260
260
|
end
|
@@ -274,7 +274,7 @@ class Test_Connection < Test::Unit::TestCase
|
|
274
274
|
assert_equal n_records, count(table, conn)
|
275
275
|
|
276
276
|
# transaction fails #2
|
277
|
-
assert_raise(
|
277
|
+
assert_raise(TeradataCli::UserAbort) {
|
278
278
|
conn.transaction {
|
279
279
|
conn.query "DELETE FROM #{table}"
|
280
280
|
conn.abort
|
data/test/test_dbobject.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'teradata'
|
1
|
+
require 'teradata-cli'
|
2
2
|
require 'test/unit'
|
3
3
|
libdir = File.dirname(__FILE__)
|
4
4
|
$LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
|
@@ -9,99 +9,99 @@ class Test_Teradata_DBObject < Test::Unit::TestCase
|
|
9
9
|
include RubyCLITestUtils
|
10
10
|
|
11
11
|
def test_s_intern_string
|
12
|
-
t =
|
13
|
-
assert_instance_of
|
12
|
+
t = TeradataCli::Table.intern('db.tab')
|
13
|
+
assert_instance_of TeradataCli::Table, t
|
14
14
|
assert_equal 'db.tab', t.name
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_s_intern_class
|
18
|
-
t0 =
|
19
|
-
t =
|
20
|
-
assert_instance_of
|
18
|
+
t0 = TeradataCli::Table.new('db', 'tab')
|
19
|
+
t = TeradataCli::Table.intern(t0)
|
20
|
+
assert_instance_of TeradataCli::Table, t
|
21
21
|
assert_equal t0, t
|
22
22
|
assert_equal 'db.tab', t.name
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_names_qualified
|
26
|
-
t =
|
26
|
+
t = TeradataCli::Table.new('bwtest', 'tab')
|
27
27
|
assert_equal 'bwtest', t.database
|
28
28
|
assert_equal 'bwtest.tab', t.name
|
29
29
|
assert_equal 'tab', t.unqualified_name
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_names_unqualified
|
33
|
-
t =
|
33
|
+
t = TeradataCli::Table.new('tab')
|
34
34
|
assert_nil t.database
|
35
35
|
assert_equal 'tab', t.name
|
36
36
|
assert_equal 'tab', t.unqualified_name
|
37
37
|
end
|
38
38
|
|
39
39
|
def test_to_s
|
40
|
-
assert_equal 'db.tab',
|
41
|
-
assert_equal 'bwtest.tab',
|
42
|
-
assert_equal 'tab',
|
40
|
+
assert_equal 'db.tab', TeradataCli::Table.new('db', 'tab').to_s
|
41
|
+
assert_equal 'bwtest.tab', TeradataCli::Table.new('bwtest', 'tab').to_s
|
42
|
+
assert_equal 'tab', TeradataCli::Table.new('tab').to_s
|
43
43
|
end
|
44
44
|
|
45
45
|
def test_EQ
|
46
|
-
a =
|
47
|
-
b =
|
46
|
+
a = TeradataCli::Table.new('db', 'tab')
|
47
|
+
b = TeradataCli::Table.new('db', 'tab')
|
48
48
|
assert_equal a, a
|
49
49
|
assert_equal a, b
|
50
50
|
assert_equal b, a
|
51
51
|
|
52
52
|
# object name is different
|
53
|
-
c =
|
53
|
+
c = TeradataCli::Table.new('db', 'other')
|
54
54
|
assert_not_equal a, c
|
55
55
|
assert_not_equal c, a
|
56
56
|
|
57
57
|
# database name is different
|
58
|
-
d =
|
58
|
+
d = TeradataCli::Table.new('other', 'tab')
|
59
59
|
assert_not_equal a, d
|
60
60
|
assert_not_equal d, a
|
61
61
|
|
62
62
|
# database name is missing
|
63
|
-
e =
|
63
|
+
e = TeradataCli::Table.new('tab')
|
64
64
|
assert_not_equal a, e
|
65
65
|
assert_not_equal e, a
|
66
66
|
|
67
67
|
# same name, but different type
|
68
|
-
v =
|
68
|
+
v = TeradataCli::View.new('db', 'tab')
|
69
69
|
assert_not_equal a, v
|
70
70
|
assert_not_equal v, a
|
71
71
|
end
|
72
72
|
|
73
73
|
def test_type_char
|
74
|
-
assert_equal 'T',
|
75
|
-
assert_equal 'V',
|
76
|
-
assert_equal 'M',
|
77
|
-
assert_equal 'N',
|
74
|
+
assert_equal 'T', TeradataCli::Table.type_char
|
75
|
+
assert_equal 'V', TeradataCli::View.type_char
|
76
|
+
assert_equal 'M', TeradataCli::Macro.type_char
|
77
|
+
assert_equal 'N', TeradataCli::HashIndex.type_char
|
78
78
|
end
|
79
79
|
|
80
80
|
def test_type_name
|
81
|
-
assert_equal 'TABLE',
|
82
|
-
assert_equal 'VIEW',
|
83
|
-
assert_equal 'MACRO',
|
84
|
-
assert_equal 'JOIN INDEX',
|
85
|
-
assert_equal 'HASH INDEX',
|
86
|
-
assert_equal 'PROCEDURE',
|
81
|
+
assert_equal 'TABLE', TeradataCli::Table.type_name
|
82
|
+
assert_equal 'VIEW', TeradataCli::View.type_name
|
83
|
+
assert_equal 'MACRO', TeradataCli::Macro.type_name
|
84
|
+
assert_equal 'JOIN INDEX', TeradataCli::JoinIndex.type_name
|
85
|
+
assert_equal 'HASH INDEX', TeradataCli::HashIndex.type_name
|
86
|
+
assert_equal 'PROCEDURE', TeradataCli::Procedure.type_name
|
87
87
|
end
|
88
88
|
|
89
89
|
def test_table_size
|
90
|
-
t =
|
90
|
+
t = TeradataCli::Table.new('db', 'tbl', 17, 39)
|
91
91
|
assert_equal 17, t.size
|
92
92
|
assert_equal 17, t.current_perm
|
93
93
|
assert_equal 39, t.peak_perm
|
94
94
|
end
|
95
95
|
|
96
96
|
def test_table_no_peak
|
97
|
-
t =
|
97
|
+
t = TeradataCli::Table.new('db', 'tbl', 17)
|
98
98
|
assert_equal 17, t.size
|
99
99
|
assert_equal 17, t.current_perm
|
100
100
|
assert_nil t.peak_perm
|
101
101
|
end
|
102
102
|
|
103
103
|
def test_table_size_none
|
104
|
-
t =
|
104
|
+
t = TeradataCli::Table.new('db', 'tbl')
|
105
105
|
assert_nil t.size
|
106
106
|
assert_nil t.current_perm
|
107
107
|
assert_nil t.peak_perm
|
@@ -110,8 +110,8 @@ class Test_Teradata_DBObject < Test::Unit::TestCase
|
|
110
110
|
def test_root_database
|
111
111
|
connect {|conn|
|
112
112
|
dbc = conn.root_database
|
113
|
-
assert_kind_of
|
114
|
-
assert_instance_of
|
113
|
+
assert_kind_of TeradataCli::Database, dbc
|
114
|
+
assert_instance_of TeradataCli::User, dbc
|
115
115
|
assert_equal 'dbc', dbc.name.downcase
|
116
116
|
assert_equal true, dbc.user?
|
117
117
|
}
|
@@ -120,7 +120,7 @@ class Test_Teradata_DBObject < Test::Unit::TestCase
|
|
120
120
|
def test_database
|
121
121
|
connect {|conn|
|
122
122
|
dbc = conn.database('dbc')
|
123
|
-
assert_instance_of
|
123
|
+
assert_instance_of TeradataCli::User, dbc
|
124
124
|
assert_equal 'dbc', dbc.name.downcase
|
125
125
|
assert_equal true, dbc.user?
|
126
126
|
}
|
@@ -134,19 +134,19 @@ class Test_Teradata_DBObject < Test::Unit::TestCase
|
|
134
134
|
|
135
135
|
cs = dbc.children
|
136
136
|
assert_equal true, (cs.size > 0)
|
137
|
-
assert_kind_of
|
138
|
-
assert_kind_of
|
137
|
+
assert_kind_of TeradataCli::Database, cs.first
|
138
|
+
assert_kind_of TeradataCli::Database, cs.first.owner
|
139
139
|
assert_equal 'dbc', cs.first.owner.name.downcase
|
140
140
|
|
141
141
|
sysdba = cs.detect {|c| c.name.downcase == 'sysdba' }
|
142
|
-
assert_instance_of
|
142
|
+
assert_instance_of TeradataCli::User, sysdba
|
143
143
|
assert_equal true, sysdba.user?
|
144
|
-
assert_instance_of
|
144
|
+
assert_instance_of TeradataCli::User, sysdba.parent
|
145
145
|
|
146
146
|
syslib = cs.detect {|c| c.name.downcase == 'syslib' }
|
147
|
-
assert_instance_of
|
147
|
+
assert_instance_of TeradataCli::Database, syslib
|
148
148
|
assert_equal false, syslib.user?
|
149
|
-
assert_instance_of
|
149
|
+
assert_instance_of TeradataCli::User, syslib.parent
|
150
150
|
}
|
151
151
|
end
|
152
152
|
|
data/test/test_record.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'teradata'
|
1
|
+
require 'teradata-cli'
|
2
2
|
require 'test/unit'
|
3
3
|
libdir = File.dirname(__FILE__)
|
4
4
|
$LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
|
@@ -55,7 +55,7 @@ class Test_Record < Test::Unit::TestCase
|
|
55
55
|
}
|
56
56
|
end
|
57
57
|
|
58
|
-
# TODO
|
58
|
+
# TODO TeradataCli::CLIError: CLI error: [EM_227] MTDP: EM_CHARNAME(227): invalid character set name specified.
|
59
59
|
#def test_session_charset_EUC
|
60
60
|
# connect('KANJIEUC_0U') {
|
61
61
|
# using_table(get_table_name('strs'), 'c CHAR(1) CHARACTER SET UNICODE, vc VARCHAR(1) CHARACTER SET UNICODE') {|name|
|
@@ -68,7 +68,7 @@ class Test_Record < Test::Unit::TestCase
|
|
68
68
|
# }
|
69
69
|
#end
|
70
70
|
|
71
|
-
# TODO
|
71
|
+
# TODO TeradataCli::CLIError: CLI error: [EM_227] MTDP: EM_CHARNAME(227): invalid character set name specified.
|
72
72
|
#def test_session_charset_SJIS
|
73
73
|
# connect('KANJISJIS_0S') {
|
74
74
|
# using_table(get_table_name('strs'), 'c CHAR(1) CHARACTER SET UNICODE, vc VARCHAR(1) CHARACTER SET UNICODE') {|name|
|
@@ -170,9 +170,9 @@ class Test_Record < Test::Unit::TestCase
|
|
170
170
|
insert name, '1,2,NULL'
|
171
171
|
rec = select(name).first
|
172
172
|
assert_equal 3, rec.size
|
173
|
-
assert_instance_of
|
174
|
-
assert_instance_of
|
175
|
-
assert_instance_of
|
173
|
+
assert_instance_of TeradataCli::Field, rec.field(:x)
|
174
|
+
assert_instance_of TeradataCli::Field, rec.field(:y)
|
175
|
+
assert_instance_of TeradataCli::Field, rec.field(:z)
|
176
176
|
assert_equal 1, rec.field(:x).value
|
177
177
|
assert_equal 2, rec.field(:y).value
|
178
178
|
assert_equal nil, rec.field(:z).value
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teradata-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giuseppe Privitera
|
@@ -43,7 +43,7 @@ email:
|
|
43
43
|
- priviterag@gmail.com
|
44
44
|
executables: []
|
45
45
|
extensions:
|
46
|
-
- ext/teradata/cli/extconf.rb
|
46
|
+
- ext/teradata-cli/cli/extconf.rb
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
49
|
- .gitignore
|
@@ -68,15 +68,16 @@ files:
|
|
68
68
|
- examples/tu/web/template/footer
|
69
69
|
- examples/tu/web/template/header
|
70
70
|
- examples/update.rb
|
71
|
-
- ext/teradata/cli/cli.c
|
72
|
-
- ext/teradata/cli/extconf.rb
|
73
|
-
-
|
74
|
-
- lib/teradata
|
75
|
-
- lib/teradata/cli
|
76
|
-
- lib/teradata/connection.rb
|
77
|
-
- lib/teradata/dbobject.rb
|
78
|
-
- lib/teradata/exception.rb
|
79
|
-
- lib/teradata/utils.rb
|
71
|
+
- ext/teradata-cli/cli/cli.c
|
72
|
+
- ext/teradata-cli/cli/extconf.rb
|
73
|
+
- ext/teradata-cli/cli/mkmf.log
|
74
|
+
- lib/teradata-cli.rb
|
75
|
+
- lib/teradata-cli/cli.rb
|
76
|
+
- lib/teradata-cli/connection.rb
|
77
|
+
- lib/teradata-cli/dbobject.rb
|
78
|
+
- lib/teradata-cli/exception.rb
|
79
|
+
- lib/teradata-cli/utils.rb
|
80
|
+
- lib/teradata-cli/version.rb
|
80
81
|
- teradata-cli.gemspec
|
81
82
|
- test/all
|
82
83
|
- test/rubyclitestutils.rb
|
data/lib/teradata/cli/version.rb
DELETED
data/lib/teradata/cli.rb
DELETED
data/lib/teradata.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# $Id: teradata.rb 7 2010-03-04 16:54:09Z tdaoki $
|
3
|
-
#
|
4
|
-
# Copyright (C) 2009,2010 Teradata Japan, LTD.
|
5
|
-
#
|
6
|
-
# This program is free software.
|
7
|
-
# You can distribute/modify this program under the terms of
|
8
|
-
# the GNU LGPL2, Lesser General Public License version 2.
|
9
|
-
#
|
10
|
-
|
11
|
-
require 'teradata/connection'
|
12
|
-
require 'teradata/dbobject'
|
13
|
-
require 'teradata/utils'
|
14
|
-
require 'teradata/exception'
|