pg_query 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ class PgQuery
2
+ module Deparse
3
+ module Rename
4
+ # relation, subname and object is the array key in the node.
5
+ # Array return five value. First is the type like a TRIGGER, TABLE, DOMAIN
6
+ # Other values may be parameter or SQL key.
7
+ #
8
+ # If node['renameType'] is the integer 13 (OBJECT_TYPE_DOMCONSTRAINT),
9
+ # then return value of this method will be:
10
+ #
11
+ # %w[DOMAIN object RENAME CONSTRAINT subname]
12
+ #
13
+ # Which will be composed into the SQL as:
14
+ #
15
+ # ALTER {type} {name} RENAME CONSTRAINT {subname} TO {newname}
16
+ #
17
+ def self.commands(node)
18
+ action = RENAME_MAPPING[node['renameType']] || raise(format("Can't deparse: %s", node.inspect))
19
+ PgQuery::Deparse.instance_exec(node, &action)
20
+ end
21
+
22
+ RENAME_MAPPING = {
23
+ OBJECT_TYPE_CONVERSION => ->(_node) { %w[CONVERSION object RENAME] },
24
+ OBJECT_TYPE_TABLE => ->(_node) { %w[TABLE relation RENAME] },
25
+ OBJECT_TYPE_TABCONSTRAINT => ->(_node) { %w[TABLE relation RENAME CONSTRAINT subname] },
26
+ OBJECT_TYPE_INDEX => ->(_node) { %w[INDEX relation RENAME] },
27
+ OBJECT_TYPE_MATVIEW => ->(_node) { ['MATERIALIZED VIEW', 'relation', 'RENAME'] },
28
+ OBJECT_TYPE_TABLESPACE => ->(_node) { %w[TABLESPACE subname RENAME] },
29
+ OBJECT_TYPE_VIEW => ->(_node) { %w[VIEW relation RENAME] },
30
+ OBJECT_TYPE_COLUMN => ->(_node) { %w[TABLE relation RENAME COLUMN subname] },
31
+ OBJECT_TYPE_COLLATION => ->(_node) { %w[COLLATION object RENAME] },
32
+ OBJECT_TYPE_TYPE => ->(_node) { %w[TYPE object RENAME] },
33
+ OBJECT_TYPE_DOMCONSTRAINT => ->(_node) { %w[DOMAIN object RENAME CONSTRAINT subname] },
34
+ OBJECT_TYPE_RULE => ->(_node) { %w[RULE subname ON relation RENAME] },
35
+ OBJECT_TYPE_TRIGGER => ->(_node) { %w[TRIGGER subname ON relation RENAME] },
36
+ OBJECT_TYPE_AGGREGATE => ->(_node) { %w[AGGREGATE object RENAME] },
37
+ OBJECT_TYPE_FUNCTION => ->(_node) { %w[FUNCTION object RENAME] }
38
+ }.freeze
39
+ end
40
+ end
41
+ end
@@ -20,12 +20,18 @@ class PgQuery
20
20
  CHECK_POINT_STMT = 'CheckPointStmt'.freeze
21
21
  CLOSE_PORTAL_STMT = 'ClosePortalStmt'.freeze
22
22
  COALESCE_EXPR = 'CoalesceExpr'.freeze
23
+ COLLATE_CLAUSE = 'CollateClause'.freeze
23
24
  COLUMN_DEF = 'ColumnDef'.freeze
24
25
  COLUMN_REF = 'ColumnRef'.freeze
25
26
  COMMON_TABLE_EXPR = 'CommonTableExpr'.freeze
27
+ COMPOSITE_TYPE_STMT = 'CompositeTypeStmt'.freeze
26
28
  CONSTRAINT = 'Constraint'.freeze
27
29
  COPY_STMT = 'CopyStmt'.freeze
30
+ CREATE_CAST_STMT = 'CreateCastStmt'.freeze
31
+ CREATE_DOMAIN_STMT = 'CreateDomainStmt'.freeze
32
+ CREATE_ENUM_STMT = 'CreateEnumStmt'.freeze
28
33
  CREATE_FUNCTION_STMT = 'CreateFunctionStmt'.freeze
34
+ CREATE_RANGE_STMT = 'CreateRangeStmt'.freeze
29
35
  CREATE_SCHEMA_STMT = 'CreateSchemaStmt'.freeze
30
36
  CREATE_STMT = 'CreateStmt'.freeze
31
37
  CREATE_TABLE_AS_STMT = 'CreateTableAsStmt'.freeze
@@ -33,7 +39,9 @@ class PgQuery
33
39
  DEALLOCATE_STMT = 'DeallocateStmt'.freeze
34
40
  DECLARE_CURSOR_STMT = 'DeclareCursorStmt'.freeze
35
41
  DEF_ELEM = 'DefElem'.freeze
42
+ DEFINE_STMT = 'DefineStmt'.freeze
36
43
  DELETE_STMT = 'DeleteStmt'.freeze
44
+ DISCARD_STMT = 'DiscardStmt'.freeze
37
45
  DO_STMT = 'DoStmt'.freeze
38
46
  DROP_STMT = 'DropStmt'.freeze
39
47
  EXECUTE_STMT = 'ExecuteStmt'.freeze
@@ -55,6 +63,7 @@ class PgQuery
55
63
  LOCKING_CLAUSE = 'LockingClause'.freeze
56
64
  NULL = 'Null'.freeze
57
65
  NULL_TEST = 'NullTest'.freeze
66
+ OBJECT_WITH_ARGS = 'ObjectWithArgs'.freeze
58
67
  OID_LIST = 'OidList'.freeze
59
68
  PARAM_REF = 'ParamRef'.freeze
60
69
  PREPARE_STMT = 'PrepareStmt'.freeze
@@ -1,3 +1,3 @@
1
1
  class PgQuery
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Fittl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-04 00:00:00.000000000 Z
11
+ date: 2019-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -88,6 +88,8 @@ files:
88
88
  - lib/pg_query/deparse.rb
89
89
  - lib/pg_query/deparse/alter_table.rb
90
90
  - lib/pg_query/deparse/interval.rb
91
+ - lib/pg_query/deparse/keywords.rb
92
+ - lib/pg_query/deparse/rename.rb
91
93
  - lib/pg_query/filter_columns.rb
92
94
  - lib/pg_query/fingerprint.rb
93
95
  - lib/pg_query/legacy_parsetree.rb
@@ -121,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
123
  - !ruby/object:Gem::Version
122
124
  version: '0'
123
125
  requirements: []
124
- rubyforge_project:
125
- rubygems_version: 2.7.6
126
+ rubygems_version: 3.0.6
126
127
  signing_key:
127
128
  specification_version: 4
128
129
  summary: PostgreSQL query parsing and normalization library