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,67 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module MysqlSQL
|
4
|
-
module Table
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_creating_table ( options = {} )
|
9
|
-
|
10
|
-
syntax = super
|
11
|
-
|
12
|
-
syntax += 'ENGINE = '
|
13
|
-
|
14
|
-
# If any engine has not been specified, we make INNODB as default.
|
15
|
-
|
16
|
-
if options[:engine]
|
17
|
-
|
18
|
-
syntax += options[:engine].to_s
|
19
|
-
|
20
|
-
else
|
21
|
-
|
22
|
-
syntax += 'INNODB'
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
syntax
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
# Generate SQL statement for retrieving tables.
|
33
|
-
|
34
|
-
def sql_for_getting_tables
|
35
|
-
|
36
|
-
'SHOW TABLES'
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
# Generate SQL statement for retrieving columns.
|
41
|
-
=begin
|
42
|
-
def sql_for_retrieving_columns ( options = {} )
|
43
|
-
|
44
|
-
%{
|
45
|
-
SELECT
|
46
|
-
A.column_name, A.data_type, A.character_maximum_length as size,
|
47
|
-
(A.is_nullable = 'YES') as allow_null,
|
48
|
-
(A.column_name = B.column_name) as pk,
|
49
|
-
A.column_default,
|
50
|
-
A.extra = 'auto_increment' as auto_inc,
|
51
|
-
A.column_name in (
|
52
|
-
SELECT s.COLUMN_NAME FROM INFORMATION_SCHEMA.statistics s
|
53
|
-
WHERE s.COLUMN_NAME = A.column_name
|
54
|
-
) as indexed
|
55
|
-
|
56
|
-
FROM information_schema.columns A
|
57
|
-
LEFT JOIN information_schema.key_column_usage B ON A.table_name = B.table_name
|
58
|
-
WHERE A.table_name = #{quote_value(options[:table_name])}
|
59
|
-
|
60
|
-
}
|
61
|
-
|
62
|
-
end
|
63
|
-
=end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'mysql'
|
2
|
-
|
3
|
-
require 'imparcial/driver/mysql/util'
|
4
|
-
require 'imparcial/driver/mysql/result'
|
5
|
-
require 'imparcial/driver/mysql/typemap'
|
6
|
-
require 'imparcial/driver/mysql/sql'
|
7
|
-
require 'imparcial/driver/mysql/expression'
|
8
|
-
|
9
|
-
module Imparcial
|
10
|
-
module Driver
|
11
|
-
class MysqlAdapter < AbstractAdapter
|
12
|
-
|
13
|
-
include MysqlUtil
|
14
|
-
include MysqlTypemap
|
15
|
-
include MysqlSQL
|
16
|
-
include MysqlExpression
|
17
|
-
|
18
|
-
def adapter_specific_exception
|
19
|
-
|
20
|
-
Mysql::Error
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def connect
|
25
|
-
|
26
|
-
@conn = Mysql.real_connect @host, @username, @password, @database, @port, @socket
|
27
|
-
|
28
|
-
rescue adapter_specific_exception => ex
|
29
|
-
|
30
|
-
raise AdapterConnectionError.new(ex.message)
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
def query ( sql )
|
35
|
-
|
36
|
-
result = conn.query sql
|
37
|
-
@result = MysqlResult.new result
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
def last_insert_id
|
42
|
-
|
43
|
-
conn.last_insert_id
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
FileList[File.dirname(__FILE__) + '/expression/*.rb'].each do |f|
|
2
|
-
require f
|
3
|
-
end
|
4
|
-
|
5
|
-
module Imparcial
|
6
|
-
module Driver
|
7
|
-
module PostgreExpression
|
8
|
-
|
9
|
-
def insert ( options = {} )
|
10
|
-
|
11
|
-
super options
|
12
|
-
|
13
|
-
begin
|
14
|
-
|
15
|
-
seq_name = 'seq_' + options[:table_name].to_s + '_id'
|
16
|
-
id = conn.query "SELECT currval('#{seq_name}')"
|
17
|
-
|
18
|
-
@last_insert_id = id[0][0].to_i
|
19
|
-
|
20
|
-
rescue adapter_specific_exception; end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def last_insert_id
|
25
|
-
|
26
|
-
@last_insert_id
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
class PostgreResult < AbstractResult
|
4
|
-
|
5
|
-
def rows
|
6
|
-
|
7
|
-
@specific.result.length
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def fetch
|
12
|
-
|
13
|
-
fields = @specific.fields
|
14
|
-
rows = @specific.result
|
15
|
-
|
16
|
-
rows.each do |row|
|
17
|
-
|
18
|
-
v = []
|
19
|
-
|
20
|
-
row.each_with_index do |value, index|
|
21
|
-
|
22
|
-
v << Row.new(fields[index], value)
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
yield(*v)
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreSQL
|
4
|
-
module Column
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_renaming_column ( options )
|
9
|
-
|
10
|
-
syntax = ''
|
11
|
-
|
12
|
-
syntax += 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
13
|
-
|
14
|
-
options[:field].each do |old_name, new_name|
|
15
|
-
|
16
|
-
syntax += "RENAME COLUMN #{old_name} TO #{new_name}"
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
logger.warn(syntax) if @table_logging
|
21
|
-
|
22
|
-
syntax
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
def sql_for_modifying_columns ( options )
|
27
|
-
|
28
|
-
syntax = ''
|
29
|
-
|
30
|
-
syntax += 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
31
|
-
|
32
|
-
options[:fields].each do |field|
|
33
|
-
|
34
|
-
column = field_to_column field
|
35
|
-
|
36
|
-
syntax += "ALTER COLUMN #{column[:name]} TYPE #{column[:type]}"
|
37
|
-
syntax += "(#{column[:size]})" if column[:size]
|
38
|
-
syntax += ","
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
syntax.chop!
|
43
|
-
|
44
|
-
logger.warn(syntax) if @table_logging
|
45
|
-
|
46
|
-
syntax
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreSQL
|
4
|
-
module Constraint
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_adding_auto_increment ( options )
|
9
|
-
|
10
|
-
seq_name = 'seq_' + options[:table_name].to_s + '_' + options[:field].to_s
|
11
|
-
drop_sequence_if_necessary :sequence_name => seq_name
|
12
|
-
create_sequence :sequence_name => seq_name
|
13
|
-
sql_for_adding_default_value :table_name => options[:table_name], :fields => {options[:field] => "nextval('#{seq_name}')"}
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def sql_for_adding_default_value ( options )
|
18
|
-
|
19
|
-
syntax = 'ALTER TABLE ' + quote(options[:table_name]) + ' '
|
20
|
-
|
21
|
-
for field, value in options[:fields]
|
22
|
-
|
23
|
-
value = quote_value(value) if not value.to_s.match('nextval')
|
24
|
-
syntax += "ALTER COLUMN #{quote(field)} SET DEFAULT #{value},"
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
syntax.chop!
|
29
|
-
|
30
|
-
syntax
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreSQL
|
4
|
-
module Index
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for verifying if a given index exists.
|
9
|
-
|
10
|
-
def sql_for_index_exists? ( options )
|
11
|
-
|
12
|
-
%{SELECT
|
13
|
-
c2.relname as "table",
|
14
|
-
(select attname from pg_attribute where attrelid = i.indexrelid AND attnum > 0) as "column" ,
|
15
|
-
c.relname as "index"
|
16
|
-
FROM pg_class c
|
17
|
-
JOIN pg_roles r ON r.oid = c.relowner
|
18
|
-
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
|
19
|
-
LEFT JOIN pg_index i ON i.indexrelid = c.oid
|
20
|
-
LEFT JOIN pg_class c2 ON i.indrelid = c2.oid
|
21
|
-
WHERE c.relkind = 'i'
|
22
|
-
AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
|
23
|
-
c2.relname = #{quote_value(options[:table_name])} AND
|
24
|
-
c.relname = #{quote_value(options[:index_name])}
|
25
|
-
}
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
# Generate SQL statement for retrieving all indexes.
|
30
|
-
|
31
|
-
def sql_for_getting_indexes ( options )
|
32
|
-
|
33
|
-
%{SELECT
|
34
|
-
c2.relname as "table",
|
35
|
-
(select attname from pg_attribute where attrelid = i.indexrelid AND attnum > 0) as "column" ,
|
36
|
-
c.relname as "index"
|
37
|
-
FROM pg_class c
|
38
|
-
JOIN pg_roles r ON r.oid = c.relowner
|
39
|
-
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
|
40
|
-
LEFT JOIN pg_index i ON i.indexrelid = c.oid
|
41
|
-
LEFT JOIN pg_class c2 ON i.indrelid = c2.oid
|
42
|
-
WHERE c.relkind = 'i'
|
43
|
-
AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
|
44
|
-
c2.relname = #{quote_value(options[:table_name])}
|
45
|
-
}
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreSQL
|
4
|
-
module Sequence
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
def sql_for_sequence_exists? ( options )
|
9
|
-
|
10
|
-
%{
|
11
|
-
SELECT 1 FROM pg_class WHERE relkind = 'S' AND
|
12
|
-
relname = #{quote_value(options[:sequence_name])}
|
13
|
-
}
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
# Generate SQL statement for retrieving sequences.
|
18
|
-
|
19
|
-
def sql_for_getting_sequences
|
20
|
-
|
21
|
-
%{
|
22
|
-
SELECT relname FROM pg_class WHERE relkind = 'S'
|
23
|
-
}
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreSQL
|
4
|
-
module Table
|
5
|
-
|
6
|
-
private
|
7
|
-
|
8
|
-
# Generate SQL statement for retrieving tables.
|
9
|
-
|
10
|
-
def sql_for_getting_tables
|
11
|
-
|
12
|
-
%{
|
13
|
-
SELECT table_name FROM information_schema.tables
|
14
|
-
WHERE table_schema = 'public'
|
15
|
-
}
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
# Generate SQL statement for retrieving columns.
|
20
|
-
=begin
|
21
|
-
def sql_for_retrieving_columns ( options )
|
22
|
-
|
23
|
-
%{
|
24
|
-
SELECT
|
25
|
-
A.column_name, A.data_type, A.character_maximum_length,
|
26
|
-
(A.is_nullable = 'YES') as allow_null,
|
27
|
-
(A.column_name = B.column_name) as pk,
|
28
|
-
A.column_default,
|
29
|
-
A.column_default LIKE 'nextval%' as auto_inc,
|
30
|
-
A.column_name in (SELECT sa.attname from pg_class sc
|
31
|
-
JOIN pg_index si ON sc.oid = si.indexrelid
|
32
|
-
JOIN pg_class sc2 ON sc2.oid = si.indrelid
|
33
|
-
JOIN pg_attribute sa ON sc.oid = sa.attrelid
|
34
|
-
WHERE sc2.relname = #{quote_value(options[:table_name])} AND sa.attname = A.column_name
|
35
|
-
) as column_indexed
|
36
|
-
FROM information_schema.columns A
|
37
|
-
LEFT JOIN information_schema.key_column_usage B ON A.table_name = B.table_name
|
38
|
-
WHERE A.table_name = #{quote_value(options[:table_name])};
|
39
|
-
}
|
40
|
-
|
41
|
-
end
|
42
|
-
=end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
module Driver
|
3
|
-
module PostgreTypemap
|
4
|
-
|
5
|
-
def sql_types
|
6
|
-
|
7
|
-
super.dup.merge!('CHARACTER VARYING' => :string, 'DOUBLE PRECISION' => :float)
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
# Due to nextval, we have to format the default value
|
14
|
-
|
15
|
-
def parse_column ( column )
|
16
|
-
|
17
|
-
super
|
18
|
-
|
19
|
-
if column[:default_value]
|
20
|
-
|
21
|
-
column[:default_value].gsub!(/::.*/,'')
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'postgres'
|
2
|
-
|
3
|
-
require 'imparcial/driver/postgre/util'
|
4
|
-
require 'imparcial/driver/postgre/result'
|
5
|
-
require 'imparcial/driver/postgre/typemap'
|
6
|
-
require 'imparcial/driver/postgre/sql'
|
7
|
-
require 'imparcial/driver/postgre/expression'
|
8
|
-
|
9
|
-
module Imparcial
|
10
|
-
module Driver
|
11
|
-
class PostgreAdapter < AbstractAdapter
|
12
|
-
|
13
|
-
include PostgreUtil
|
14
|
-
include PostgreTypemap
|
15
|
-
include PostgreSQL
|
16
|
-
include PostgreExpression
|
17
|
-
|
18
|
-
def adapter_specific_exception
|
19
|
-
|
20
|
-
PGError
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def connect
|
25
|
-
|
26
|
-
@conn = PGconn.connect @host, @port, '', '', @database, @username, @password
|
27
|
-
|
28
|
-
rescue adapter_specific_exception => ex
|
29
|
-
|
30
|
-
raise AdapterConnectionError.new(ex.message)
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
def query ( sql )
|
35
|
-
|
36
|
-
result = conn.exec sql
|
37
|
-
@result = PostgreResult.new result
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/lib/imparcial/driver.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'imparcial/driver/abstract'
|
data/lib/imparcial/exception.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
module Imparcial
|
2
|
-
|
3
|
-
# Main class
|
4
|
-
|
5
|
-
class ImparcialError < StandardError; end
|
6
|
-
|
7
|
-
# Adapter
|
8
|
-
|
9
|
-
class AdapterError < ImparcialError; end
|
10
|
-
class AdapterNotFound < AdapterError; end
|
11
|
-
class AdapterConnectionError < AdapterError; end
|
12
|
-
|
13
|
-
# Expression
|
14
|
-
|
15
|
-
class ExpressionError < ImparcialError; end
|
16
|
-
|
17
|
-
class FeatureNotFound < ExpressionError; end
|
18
|
-
class ConditionError < ExpressionError; end
|
19
|
-
class OptionError < ExpressionError; end
|
20
|
-
class ResultError < ExpressionError; end
|
21
|
-
|
22
|
-
# Table
|
23
|
-
|
24
|
-
class TableError < ExpressionError; end
|
25
|
-
class TableCreateError < TableError; end
|
26
|
-
class TableDropError < TableError; end
|
27
|
-
class TableListError < TableError; end
|
28
|
-
class TableUpdateError < TableError; end
|
29
|
-
|
30
|
-
# Column
|
31
|
-
|
32
|
-
class ColumnError < ExpressionError; end
|
33
|
-
class ColumnListError < ColumnError; end
|
34
|
-
class ColumnUpdateError < ColumnError; end
|
35
|
-
class ColumnCreateError < ColumnError; end
|
36
|
-
class ColumnDropError < ColumnError; end
|
37
|
-
class ColumnConstraintError < ColumnError; end
|
38
|
-
class ColumnRenameError < ColumnError; end
|
39
|
-
|
40
|
-
# Crud
|
41
|
-
|
42
|
-
class SelectError < ExpressionError; end
|
43
|
-
class InsertError < ExpressionError; end
|
44
|
-
class DeleteError < ExpressionError; end
|
45
|
-
class UpdateError < ExpressionError; end
|
46
|
-
|
47
|
-
# Sequence
|
48
|
-
|
49
|
-
class SequenceError < ExpressionError; end
|
50
|
-
class SequenceCreateError < SequenceError; end
|
51
|
-
class SequenceDropError < SequenceError; end
|
52
|
-
class SequenceListError < SequenceError; end
|
53
|
-
class SequenceUpdateError < SequenceError; end
|
54
|
-
|
55
|
-
# Transaction
|
56
|
-
|
57
|
-
class TransactionError < ExpressionError; end
|
58
|
-
|
59
|
-
# Lock
|
60
|
-
|
61
|
-
class LockError < ExpressionError; end
|
62
|
-
|
63
|
-
# Index
|
64
|
-
|
65
|
-
class IndexError < ExpressionError; end
|
66
|
-
class IndexCreateError < IndexError; end
|
67
|
-
class IndexDropError < IndexError; end
|
68
|
-
class IndexListError < IndexError; end
|
69
|
-
class IndexUpdateError < IndexError; end
|
70
|
-
|
71
|
-
end
|