imparcial 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +5 -0
- data/README.txt +48 -0
- data/Rakefile +51 -0
- data/lib/imparcial.rb +7 -0
- metadata +37 -81
- data/lib/imparcial/driver/abstract/expression/base.rb +0 -111
- data/lib/imparcial/driver/abstract/expression/column.rb +0 -313
- data/lib/imparcial/driver/abstract/expression/constraint.rb +0 -149
- data/lib/imparcial/driver/abstract/expression/delete.rb +0 -88
- data/lib/imparcial/driver/abstract/expression/index.rb +0 -206
- data/lib/imparcial/driver/abstract/expression/insert.rb +0 -49
- data/lib/imparcial/driver/abstract/expression/lock.rb +0 -11
- data/lib/imparcial/driver/abstract/expression/record.rb +0 -41
- data/lib/imparcial/driver/abstract/expression/select.rb +0 -38
- data/lib/imparcial/driver/abstract/expression/sequence.rb +0 -260
- data/lib/imparcial/driver/abstract/expression/statement.rb +0 -128
- data/lib/imparcial/driver/abstract/expression/table.rb +0 -416
- data/lib/imparcial/driver/abstract/expression/transaction.rb +0 -143
- data/lib/imparcial/driver/abstract/expression/update.rb +0 -50
- data/lib/imparcial/driver/abstract/expression.rb +0 -24
- data/lib/imparcial/driver/abstract/result.rb +0 -95
- data/lib/imparcial/driver/abstract/sql/column.rb +0 -103
- data/lib/imparcial/driver/abstract/sql/constraint.rb +0 -42
- data/lib/imparcial/driver/abstract/sql/delete.rb +0 -22
- data/lib/imparcial/driver/abstract/sql/index.rb +0 -45
- data/lib/imparcial/driver/abstract/sql/insert.rb +0 -63
- data/lib/imparcial/driver/abstract/sql/record.rb +0 -19
- data/lib/imparcial/driver/abstract/sql/select.rb +0 -101
- data/lib/imparcial/driver/abstract/sql/sequence.rb +0 -55
- data/lib/imparcial/driver/abstract/sql/table.rb +0 -42
- data/lib/imparcial/driver/abstract/sql/transaction.rb +0 -43
- data/lib/imparcial/driver/abstract/sql/update.rb +0 -29
- data/lib/imparcial/driver/abstract/sql.rb +0 -21
- data/lib/imparcial/driver/abstract/typemap.rb +0 -168
- data/lib/imparcial/driver/abstract/util.rb +0 -53
- data/lib/imparcial/driver/abstract.rb +0 -255
- data/lib/imparcial/driver/mysql/expression/table.rb +0 -17
- data/lib/imparcial/driver/mysql/expression.rb +0 -11
- data/lib/imparcial/driver/mysql/result.rb +0 -33
- data/lib/imparcial/driver/mysql/sql/column.rb +0 -59
- data/lib/imparcial/driver/mysql/sql/constraint.rb +0 -39
- data/lib/imparcial/driver/mysql/sql/index.rb +0 -42
- data/lib/imparcial/driver/mysql/sql/sequence.rb +0 -39
- data/lib/imparcial/driver/mysql/sql/table.rb +0 -67
- data/lib/imparcial/driver/mysql/sql.rb +0 -15
- data/lib/imparcial/driver/mysql/typemap.rb +0 -13
- data/lib/imparcial/driver/mysql/util.rb +0 -13
- data/lib/imparcial/driver/mysql.rb +0 -49
- data/lib/imparcial/driver/postgre/expression.rb +0 -32
- data/lib/imparcial/driver/postgre/result.rb +0 -35
- data/lib/imparcial/driver/postgre/sql/column.rb +0 -53
- data/lib/imparcial/driver/postgre/sql/constraint.rb +0 -37
- data/lib/imparcial/driver/postgre/sql/index.rb +0 -53
- data/lib/imparcial/driver/postgre/sql/sequence.rb +0 -30
- data/lib/imparcial/driver/postgre/sql/table.rb +0 -46
- data/lib/imparcial/driver/postgre/sql.rb +0 -15
- data/lib/imparcial/driver/postgre/typemap.rb +0 -29
- data/lib/imparcial/driver/postgre/util.rb +0 -19
- data/lib/imparcial/driver/postgre.rb +0 -43
- data/lib/imparcial/driver.rb +0 -1
- data/lib/imparcial/exception.rb +0 -71
- data/lib/imparcial/initializer.rb +0 -62
@@ -1,103 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Column
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for getting columns information.
|
9
|
-
# We need name, type and size.
|
10
|
-
|
11
|
-
def sql_for_getting_columns_information ( options )
|
12
|
-
|
13
|
-
%{SELECT
|
14
|
-
column_name,
|
15
|
-
data_type,
|
16
|
-
character_maximum_length
|
17
|
-
FROM INFORMATION_SCHEMA.columns
|
18
|
-
WHERE table_name = #{quote_value(options[:table_name])}
|
19
|
-
}
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
# Generate SQL statement for getting column information.
|
24
|
-
# We need name, type and size. Quite similar to above, except,
|
25
|
-
# it's a more narrow SQL.
|
26
|
-
|
27
|
-
def sql_for_getting_column_information ( options )
|
28
|
-
|
29
|
-
%{SELECT
|
30
|
-
column_name,
|
31
|
-
data_type,
|
32
|
-
character_maximum_length
|
33
|
-
FROM INFORMATION_SCHEMA.columns
|
34
|
-
WHERE table_name = #{quote_value(options[:table_name])} AND
|
35
|
-
column_name = #{quote_value(options[:field_name])}
|
36
|
-
}
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
# Generate SQL statement for adding some columns.
|
41
|
-
# Alter table will do the job for us.
|
42
|
-
|
43
|
-
def sql_for_adding_columns ( options )
|
44
|
-
|
45
|
-
syntax = ''
|
46
|
-
|
47
|
-
syntax += 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
48
|
-
|
49
|
-
parse_fields options[:fields] do |field|
|
50
|
-
|
51
|
-
syntax += "ADD COLUMN " + field_to_column_sql(field) + ","
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
syntax.chop!
|
56
|
-
|
57
|
-
syntax
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
# Generate SQL statement for dropping some columns.
|
62
|
-
# Alter table will do the job for us.
|
63
|
-
|
64
|
-
def sql_for_dropping_columns ( options )
|
65
|
-
|
66
|
-
syntax = ''
|
67
|
-
|
68
|
-
syntax += 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
69
|
-
|
70
|
-
options[:fields].each do |field_name|
|
71
|
-
|
72
|
-
syntax += 'DROP ' + field_name + ','
|
73
|
-
|
74
|
-
end
|
75
|
-
|
76
|
-
syntax.chop!
|
77
|
-
|
78
|
-
syntax
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
# Generate SQL statement for renaming a column.
|
83
|
-
# Must be overriden.
|
84
|
-
|
85
|
-
def sql_for_renaming_column ( options )
|
86
|
-
|
87
|
-
raise FeatureNotFound
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
# Generate SQL statement for modifying a column.
|
92
|
-
# Must be overriden.
|
93
|
-
|
94
|
-
def sql_for_modifying_columns ( options )
|
95
|
-
|
96
|
-
raise FeatureNotFound
|
97
|
-
|
98
|
-
end
|
99
|
-
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Constraint
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_adding_primary_key ( options )
|
9
|
-
|
10
|
-
syntax = 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
11
|
-
syntax += 'ADD PRIMARY KEY ('
|
12
|
-
|
13
|
-
for field_name in options[:fields]
|
14
|
-
|
15
|
-
syntax += quote(field_name) + ','
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
syntax.chop!
|
20
|
-
syntax += ')'
|
21
|
-
|
22
|
-
syntax
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
def sql_for_adding_column ( options )
|
27
|
-
|
28
|
-
raise FeatureNotFound
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
def sql_for_adding_default_value ( options )
|
33
|
-
|
34
|
-
raise FeatureNotFound
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Delete
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# SQL for generating the delete statement.
|
9
|
-
|
10
|
-
def sql_for_deleting ( options )
|
11
|
-
|
12
|
-
syntax = 'DELETE FROM ' + quote(options[:table_name])
|
13
|
-
syntax += parse_conditions options[:conditions] if options[:conditions]
|
14
|
-
|
15
|
-
syntax
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Index
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for creating an index.
|
9
|
-
|
10
|
-
def sql_for_creating_index ( options )
|
11
|
-
|
12
|
-
syntax = 'CREATE '
|
13
|
-
syntax += options[:index_type] + ' ' if options[:index_type]
|
14
|
-
syntax += 'INDEX '
|
15
|
-
syntax += options[:index_name] + ' '
|
16
|
-
syntax += 'ON ' + quote(options[:table_name])
|
17
|
-
syntax += '('
|
18
|
-
syntax += quote(options[:column_name])
|
19
|
-
syntax += ')'
|
20
|
-
|
21
|
-
syntax
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
# Generate SQL statement for dropping an index.
|
26
|
-
|
27
|
-
def sql_for_dropping_index ( options )
|
28
|
-
|
29
|
-
'DROP INDEX ' + options[:index_name]
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
# Subclasses need to override this method.
|
34
|
-
|
35
|
-
def sql_for_getting_indexes
|
36
|
-
|
37
|
-
raise FeatureNotFound
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
@@ -1,63 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Insert
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Some helpers for inserting method.
|
9
|
-
# Extract column names from a hash.
|
10
|
-
|
11
|
-
def column_names_for ( values )
|
12
|
-
|
13
|
-
column_names = []
|
14
|
-
|
15
|
-
values.each_key do |column_name|
|
16
|
-
|
17
|
-
column_names << quote(column_name)
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
column_names
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
# Extract column values from a hash.
|
26
|
-
|
27
|
-
def column_values_for ( values )
|
28
|
-
|
29
|
-
column_values = []
|
30
|
-
|
31
|
-
values.each_value do |column_value|
|
32
|
-
|
33
|
-
column_values << quote_value(column_value)
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
column_values
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
# Execute the SQL statement for inserting.
|
42
|
-
|
43
|
-
def sql_for_inserting ( options )
|
44
|
-
|
45
|
-
syntax = 'INSERT INTO ' + quote(options[:table_name])
|
46
|
-
syntax += '('
|
47
|
-
|
48
|
-
syntax += column_names_for(options[:values]).join(',')
|
49
|
-
|
50
|
-
syntax += ') VALUES ('
|
51
|
-
|
52
|
-
syntax += column_values_for(options[:values]).join(',')
|
53
|
-
|
54
|
-
syntax += ')'
|
55
|
-
|
56
|
-
syntax
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Record
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Execute SQL statement for couting records of a table.
|
9
|
-
|
10
|
-
def sql_for_couting_records ( options )
|
11
|
-
|
12
|
-
'SELECT COUNT(*) FROM ' + quote(options[:table_name])
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,101 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Select
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def get_key ( name, table_metadata )
|
9
|
-
|
10
|
-
key_name = ('key_for_' + name.to_s).to_sym
|
11
|
-
key = table_metadata[key_name]
|
12
|
-
|
13
|
-
unless key
|
14
|
-
|
15
|
-
msg = 'A key has not been defined at '+table_metadata[:name].to_s
|
16
|
-
raise SelectError.new(msg)
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
key
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def get_relkind ( table )
|
25
|
-
|
26
|
-
table[:relkind].to_s.upcase!.gsub!('_', ' ')
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
def unroll_joins ( table_list, previous_table_metadata )
|
31
|
-
|
32
|
-
syntax = ''
|
33
|
-
|
34
|
-
# Array
|
35
|
-
|
36
|
-
table_list.each do |list|
|
37
|
-
|
38
|
-
for table_metadata, inner_table_list in list
|
39
|
-
|
40
|
-
rel = get_relkind table_metadata
|
41
|
-
|
42
|
-
syntax += ' ' + rel + ' ' + quote(table_metadata[:name]) + ' ON '
|
43
|
-
|
44
|
-
previous_key = get_key previous_table_metadata[:name], table_metadata
|
45
|
-
previous_id = quote(table_metadata[:name]) + '.' + previous_key
|
46
|
-
|
47
|
-
current_key = get_key table_metadata[:name], previous_table_metadata
|
48
|
-
current_id = quote(previous_table_metadata[:name]) + '.' + current_key
|
49
|
-
|
50
|
-
syntax += previous_id + ' = ' + current_id
|
51
|
-
|
52
|
-
next unless inner_table_list
|
53
|
-
next if inner_table_list.length == 0
|
54
|
-
|
55
|
-
syntax += unroll_joins inner_table_list, table_metadata
|
56
|
-
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
syntax
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
# Enable selection by column name.
|
66
|
-
|
67
|
-
def build_field_selection ( fields )
|
68
|
-
|
69
|
-
if fields
|
70
|
-
|
71
|
-
fields.join(',')
|
72
|
-
|
73
|
-
else
|
74
|
-
|
75
|
-
'*'
|
76
|
-
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
def sql_for_selecting ( options )
|
82
|
-
|
83
|
-
syntax = 'SELECT '
|
84
|
-
syntax += build_field_selection options[:fields]
|
85
|
-
syntax += ' FROM '
|
86
|
-
|
87
|
-
syntax += quote options[:joins] ? options[:joins][0].keys.first[:name] : options[:table_name]
|
88
|
-
syntax += unroll_joins options[:joins][0].values[0], options[:joins][0].keys.first if options[:joins]
|
89
|
-
|
90
|
-
syntax += parse_conditions options[:conditions]
|
91
|
-
syntax += parse_limit options[:limit]
|
92
|
-
syntax += parse_order options
|
93
|
-
|
94
|
-
syntax
|
95
|
-
|
96
|
-
end
|
97
|
-
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Sequence
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for creating a sequence.
|
9
|
-
|
10
|
-
def sql_for_creating_sequence ( options = {} )
|
11
|
-
|
12
|
-
syntax = 'CREATE SEQUENCE ' + quote(options[:sequence_name]) + ' '
|
13
|
-
syntax += 'START WITH ' + quote_value(options[:start_with]) + ' '
|
14
|
-
syntax += 'MINVALUE ' + quote_value(options[:min_value]) + ' '
|
15
|
-
syntax += 'MAXVALUE ' + quote_value(options[:max_value]) if options[:max_value]
|
16
|
-
syntax += 'INCREMENT BY ' + quote_value(options[:increment_by]) + ' '
|
17
|
-
syntax += options[:cycle] ? 'CYCLE ' : 'NO CYCLE '
|
18
|
-
syntax += 'CACHE ' + quote_value(options[:cache]) if options[:cache]
|
19
|
-
|
20
|
-
syntax
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
# Generate SQL statement for dropping a sequence.
|
27
|
-
|
28
|
-
def sql_for_dropping_sequence ( options = {} )
|
29
|
-
|
30
|
-
'DROP SEQUENCE ' + quote(options[:sequence_name])
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
# Generate SQL statement for verifying sequences.
|
35
|
-
# Subclasses must override this method.
|
36
|
-
|
37
|
-
def sql_for_sequence_exists? ( options = {} )
|
38
|
-
|
39
|
-
raise FeatureNotFound
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
# Generate SQL statement for retrieving sequences.
|
44
|
-
# Subclasses must override this method.
|
45
|
-
|
46
|
-
def sql_for_getting_sequences
|
47
|
-
|
48
|
-
raise FeatureNotFound
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Table
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for dropping table.
|
9
|
-
|
10
|
-
def sql_for_dropping_table ( options )
|
11
|
-
|
12
|
-
'DROP TABLE ' + quote( options[:table_name] )
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
# Generate SQL statement for creating table.
|
17
|
-
|
18
|
-
def sql_for_creating_table ( options )
|
19
|
-
|
20
|
-
columns = []
|
21
|
-
|
22
|
-
# Let's parse some columns in order to provide default options.
|
23
|
-
|
24
|
-
parse_fields options[:fields] do |field|
|
25
|
-
|
26
|
-
columns << field_to_column_sql(field)
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
syntax = 'CREATE TABLE ' + quote( options[:table_name] )
|
31
|
-
syntax += '('
|
32
|
-
syntax += columns.join(',')
|
33
|
-
syntax += ')'
|
34
|
-
|
35
|
-
syntax
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Transaction
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for initializing a transaction.
|
9
|
-
|
10
|
-
def sql_for_initializing_a_transaction
|
11
|
-
|
12
|
-
'BEGIN'
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
# Generate SQL statement for terminating a transaction.
|
17
|
-
|
18
|
-
def sql_for_terminating_a_transaction
|
19
|
-
|
20
|
-
'COMMIT'
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
# Generate SQL statement for rolling back a transaction.
|
25
|
-
|
26
|
-
def sql_for_rolling_back ( options )
|
27
|
-
|
28
|
-
options[:savepoint_name] == nil ? 'ROLLBACK' : 'ROLLBACK TO ' + options[:savepoint_name].to_s
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
# Generate SQL statement for placing a saving point.
|
33
|
-
|
34
|
-
def sql_for_saving_point ( options )
|
35
|
-
|
36
|
-
'SAVEPOINT ' + options[:savepoint_name].to_s
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module AbstractSQL
|
4
|
-
module Update
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_updating ( options )
|
9
|
-
|
10
|
-
syntax = 'UPDATE ' + quote(options[:table_name]) + ' SET '
|
11
|
-
|
12
|
-
options[:values].each do |name, value|
|
13
|
-
|
14
|
-
syntax += quote(name) + ' = ' + quote_value(value) + ','
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
syntax.chop!
|
19
|
-
|
20
|
-
syntax += parse_conditions options[:conditions]
|
21
|
-
|
22
|
-
syntax
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
FileList[File.dirname(__FILE__) + '/sql/*.rb'].each do |f|
|
2
|
-
require f
|
3
|
-
end
|
4
|
-
|
5
|
-
module Imparcial
|
6
|
-
module Driver
|
7
|
-
module AbstractSQL
|
8
|
-
include Table
|
9
|
-
include Sequence
|
10
|
-
include Transaction
|
11
|
-
include Index
|
12
|
-
include Insert
|
13
|
-
include Delete
|
14
|
-
include Select
|
15
|
-
include Update
|
16
|
-
include Column
|
17
|
-
include Constraint
|
18
|
-
include Record
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|