evt-view_data-pg 0.1.0.3 → 0.1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/view_data/pg/handler.rb +23 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a025d61a60d7a1e140fa6e6fbf7d22cae912d3017a3ea2f4536c033fbad78f54
4
- data.tar.gz: 5d8911c42217d9fe3f7a555983ee2bc10b7aba8fc64a527518df33ebe961512f
3
+ metadata.gz: 3dfbb6cf145e72f2456ab1311cec51707c6b3feff92603a5cf6969f6eb757093
4
+ data.tar.gz: df119d97553f25f06def909d4478d617c64e35b500a43efe8a3d020fb51810d5
5
5
  SHA512:
6
- metadata.gz: 21ae0f5d42587cdcdeefcebe2ec55d34e58d5f8bf99f5c4ec8113959ab04ec14eaee3620e4a7364bca9797c8de1973e4f09ffdf2939098a7add59cb74a50ce97
7
- data.tar.gz: 1bff42af7d543998892abcfe49d590cea732aca813d179e9df1783f2e91c14abaf655375d2880dd64b52aa49877da2099bff0ecad963aa7639f20201c5e78759
6
+ metadata.gz: 23197b3ea27a3f2faa857a04742a054a09e6b0a03e731ff726ab14ed06eca91824d39134280eeb15e8aa39f1e2c67b9f5a7deee1a2a839a452772f6a0df63985
7
+ data.tar.gz: 27be3163a64302a2e144306db53ac38915f21c0a19e0a39655a7d7fa08ea6704b6655d238105aa3019cd38ea6b850caff06d434db508da0a578508c760c4f36d
@@ -27,6 +27,10 @@ module ViewData
27
27
 
28
28
  columns = pkey_columns + data_columns
29
29
 
30
+ quoted_columns = columns.map do |column|
31
+ double_quote(column)
32
+ end
33
+
30
34
  values = pkey_values + data_values
31
35
 
32
36
  values_clause = values.count.times.map do |i|
@@ -34,7 +38,7 @@ module ViewData
34
38
  end
35
39
 
36
40
  statement = <<~SQL.chomp
37
- INSERT INTO #{table_name} (#{columns * ', '})
41
+ INSERT INTO #{double_quote(table_name)} (#{quoted_columns * ', '})
38
42
  VALUES (#{values_clause * ', '})
39
43
  SQL
40
44
 
@@ -64,22 +68,26 @@ module ViewData
64
68
  data_columns = update.data.keys
65
69
  data_values = update.data.values
66
70
 
67
- set_clause = data_columns.map.with_index do |column_name, index|
71
+ set_clause = data_columns.map.with_index do |column, index|
72
+ quoted_column = double_quote(column)
73
+
68
74
  reference = index + 1
69
75
 
70
- "#{column_name} = $#{reference}"
76
+ "#{quoted_column} = $#{reference}"
71
77
  end
72
78
 
73
- pkey_clause = pkey_columns.map.with_index do |column_name, index|
79
+ pkey_clause = pkey_columns.map.with_index do |column, index|
80
+ quoted_column = double_quote(column)
81
+
74
82
  reference = index + data_columns.count + 1
75
83
 
76
- "#{column_name} = $#{reference}"
84
+ "#{quoted_column} = $#{reference}"
77
85
  end
78
86
 
79
87
  values = data_values + pkey_values
80
88
 
81
89
  statement = <<~SQL.chomp
82
- UPDATE #{table_name}
90
+ UPDATE #{double_quote(table_name)}
83
91
  SET #{set_clause * ', '}
84
92
  WHERE #{pkey_clause * ' AND '}
85
93
  SQL
@@ -103,14 +111,16 @@ module ViewData
103
111
  pkey_columns = get_primary_key_columns.(table_name)
104
112
  pkey_values = Array(delete.identifier)
105
113
 
106
- pkey_clause = pkey_columns.map.with_index do |column_name, index|
114
+ pkey_clause = pkey_columns.map.with_index do |column, index|
115
+ quoted_column = double_quote(column)
116
+
107
117
  reference = index + 1
108
118
 
109
- "#{column_name} = $#{reference}"
119
+ "#{quoted_column} = $#{reference}"
110
120
  end
111
121
 
112
122
  statement = <<~SQL.chomp
113
- DELETE FROM #{table_name}
123
+ DELETE FROM #{double_quote(table_name)}
114
124
  WHERE #{pkey_clause * ' AND '}
115
125
  SQL
116
126
 
@@ -124,6 +134,10 @@ module ViewData
124
134
  logger.info(tag: :data) { "SQL: #{statement}" }
125
135
  logger.info(tag: :data) { pkey_values.pretty_inspect }
126
136
  end
137
+
138
+ def double_quote(text)
139
+ "\"#{text}\""
140
+ end
127
141
  end
128
142
  end
129
143
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-view_data-pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.3
4
+ version: 0.1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-12 00:00:00.000000000 Z
11
+ date: 2018-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-consumer-postgres