marty 2.6.6 → 2.6.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f77ca834ce7eeb1587f8d62efa516ce7262e36d1e89db6a378605463b402ba7
4
- data.tar.gz: 78bf895b5cf2c433107cde56de4c95e10ff4201344464a3cfab85a0f8fc5538c
3
+ metadata.gz: 4617855bbed5e317b7983641b7f6565ec24a85a0690b8494cc17d1ac5b1372ed
4
+ data.tar.gz: 3155a823f0c5d0add5c361256c75f8c7c3851a9cf4fc257c9490bf76cedd9a01
5
5
  SHA512:
6
- metadata.gz: a09feaaeed242cc80a6b53c49d3a520f8e0fb0891b0afdac1b3f4787c7280c67e9d821361edcc5b3a68127caebb32f7b44e45f05ab424d0a8fb8ba12543b0d36
7
- data.tar.gz: 93c296049983ba212d6655a376541f0123d750ed4a3c3e45983c5488bc038732818e154a931c075a795c356f3af4d80ca578cdb153ffa59a995fd29158c5e3bf
6
+ metadata.gz: d95e2defaa45dcc3a3fce8fd087654ea205591b7eaca786bfd9536f523f0de392e2917c410aa404accb038f17a1f8663dae06cf3d9ef4175f4eca914b3a33432
7
+ data.tar.gz: a4a8300480ea3cc8bd69c2cad1a2f162c9edc0cbfdd812f2acd98c686507d93d6083a682211f6085371c464c360d521dfe7adcb5c03fe32ab845dd83d8bf7ba2
@@ -165,8 +165,8 @@ class Marty::DataGrid < Marty::Base
165
165
 
166
166
  PLV_DT_FMT = '%Y-%m-%d %H:%M:%S.%N6'
167
167
 
168
- def self.plv_lookup_grid_distinct(h_passed, dgh, ret_grid_data = false,
169
- distinct = true)
168
+ def self.plpg_lookup_grid_distinct(h_passed, dgh, ret_grid_data = false,
169
+ distinct = true)
170
170
  cd = dgh['created_dt']
171
171
  @@dtcache ||= {}
172
172
  @@dtcache[cd] ||= cd.strftime(PLV_DT_FMT)
@@ -199,7 +199,7 @@ class Marty::DataGrid < Marty::Base
199
199
  parms, sqls, ress, dg = res['error_extra'].values_at(
200
200
  'params', 'sql', 'results', 'dg')
201
201
 
202
- raise "DG #{name}: Error in PLV8 call: #{msg}\n"\
202
+ raise "DG #{name}: Error in PLPG call: #{msg}\n"\
203
203
  "params: #{parms}\n"\
204
204
  "sqls: #{sqls}\n"\
205
205
  "results: #{ress}\n"\
@@ -251,7 +251,7 @@ class Marty::DataGrid < Marty::Base
251
251
  # "name" => <grid name>
252
252
  # "data" => <grid's data array>
253
253
  # "metadata" => <grid's metadata (array of hashes)>
254
- vhash = plv_lookup_grid_distinct(h, dgh, return_grid_data, distinct)
254
+ vhash = plpg_lookup_grid_distinct(h, dgh, return_grid_data, distinct)
255
255
 
256
256
  return vhash if vhash['result'].nil? || !dgh['data_type']
257
257
 
@@ -0,0 +1,13 @@
1
+ class RemovePlv8Extension < ActiveRecord::Migration[5.1]
2
+ def up
3
+ connection.execute <<-SQL
4
+ DROP EXTENSION IF EXISTS plv8;
5
+ SQL
6
+ end
7
+
8
+ def down
9
+ connection.execute <<-SQL
10
+ CREATE EXTENSION IF NOT EXISTS plv8;
11
+ SQL
12
+ end
13
+ end
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = '2.6.6'
2
+ VERSION = '2.6.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marty
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.6
4
+ version: 2.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-05-03 00:00:00.000000000 Z
17
+ date: 2019-05-13 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg
@@ -343,9 +343,6 @@ files:
343
343
  - config/database.yml.travis
344
344
  - config/locales/en.yml
345
345
  - config/routes.rb
346
- - db/js/errinfo_v1.js
347
- - db/js/lookup_grid_distinct_v1.js
348
- - db/js/query_grid_dir_v1.js
349
346
  - db/migrate/001_create_marty_scripts.rb
350
347
  - db/migrate/003_create_marty_users.rb
351
348
  - db/migrate/004_create_marty_roles.rb
@@ -381,13 +378,13 @@ files:
381
378
  - db/migrate/302_add_api_configs_validate_result.rb
382
379
  - db/migrate/303_create_marty_logs.rb
383
380
  - db/migrate/304_drop_marty_api_logs.rb
384
- - db/migrate/400_create_dg_plv8_v1_fns.rb
385
381
  - db/migrate/410_jsonb_promise_result.rb
386
382
  - db/migrate/411_create_vw_promises.rb
387
383
  - db/migrate/500_add_api_class_to_marty_api_config.rb
388
384
  - db/migrate/501_create_dg_plpgsql_v1_fns.rb
389
385
  - db/migrate/502_add_promise_type_enum.rb
390
386
  - db/migrate/503_add_promise_type_to_promises.rb
387
+ - db/migrate/504_remove_plv8_extension.rb
391
388
  - db/seeds.rb
392
389
  - db/sql/lookup_grid_distinct_v1.sql
393
390
  - db/sql/query_grid_dir_v1.sql
data/db/js/errinfo_v1.js DELETED
@@ -1,16 +0,0 @@
1
- // PARAM: err JSONB
2
- // RETURN: JSONB
3
- var locre = /at.*[ (]([a-z][a-z0-9_]*[:][0-9]+)[:][0-9]+/i;
4
- var stack = err.stack;
5
- var res = '';
6
- if (stack) {
7
- var lines = stack.split('\\n');
8
- for (i=0, len=lines.length; i<len; ++i) {
9
- m = locre.exec(lines[i]);
10
- if (m) {
11
- res += m[1];
12
- }
13
- }
14
- return { "error": res + " " + err.message };
15
- }
16
- else return { "error": err };
@@ -1,64 +0,0 @@
1
- // PARAM: h JSONB
2
- // PARAM: row_info JSONB
3
- // PARAM: return_grid_data boolean default false
4
- // PARAM: dis boolean default false
5
- // RETURN: JSONB
6
- var sqls = []
7
- var ress = []
8
- try {
9
- var query_dir = plv8.find_function('query_grid_dir');
10
- var errinfo = plv8.find_function('errinfo');
11
- var ih = {};
12
- var sql = 'SELECT metadata, lenient, name, group_id, data FROM marty_data_grids WHERE id = $1'
13
- var dg = plv8.execute(sql, [row_info['id']])[0];
14
- var res;
15
- ['h','v'].forEach(function(dir) {
16
- var infos = dg["metadata"].filter(function(md) { return md["dir"] == dir; });
17
- if (infos.length == 0)
18
- {
19
- ih[dir] = [0]
20
- return
21
- }
22
- a = query_dir(h, infos, row_info);
23
- sqls.push(a);
24
- ih[dir] = []
25
- if (a) {
26
- res = plv8.execute(a[0], a[1]);
27
- ress.push(res);
28
- for (var j = 0; j < res.length; j++)
29
- {
30
- ih[dir].push(res[j]["index"])
31
- }
32
- }
33
- if (dis && ih[dir].length > 1) {
34
- throw Error("matches > 1");
35
- }
36
- });
37
- if ((ih["v"].length == 0 || ih["h"].length == 0) &&
38
- !dg['lenient'] && !return_grid_data) {
39
- throw Error("Data Grid lookup failed");
40
- }
41
-
42
- vi = ih["v"].length > 0 ? Math.min.apply(9999, ih["v"]) : null
43
- hi = ih["h"].length > 0 ? Math.min.apply(9999, ih["h"]) : null
44
-
45
- var result = null;
46
- if (vi!==null && hi!==null) {
47
- result = dg["data"][vi][hi];
48
- }
49
- return { "result" : result,
50
- "name" : dg["name"],
51
- "data" : return_grid_data ? dg["data"] : null,
52
- "metadata" : return_grid_data ? dg["metadata"] : null
53
- };
54
- } catch (err) {
55
- ei = errinfo(err);
56
-
57
- ei["error_extra"] = {}
58
- ei["error_extra"]["sql"] = sqls;
59
- ei["error_extra"]["results"] = ress;
60
- ei["error_extra"]["params"] = h;
61
- ei["error_extra"]["dg"] = dg;
62
-
63
- return ei;
64
- }
@@ -1,61 +0,0 @@
1
- // PARAM: h JSONB
2
- // PARAM: infos JSONB[]
3
- // PARAM: row_info JSONB
4
- // RETURN: JSONB
5
- var getfilter = function(type, idx) {
6
- switch(type) {
7
- case "boolean":
8
- return "key = $" + idx + " OR ";
9
- case "numrange":
10
- return "key @> $" + idx + "::numeric OR ";
11
- case "int4range":
12
- return "key @> $" + idx + "::integer OR ";
13
- case "integer":
14
- return "key @> ARRAY[$" + idx + "::integer] OR ";
15
- default:
16
- return "key @> ARRAY[$" + idx + "::text] OR ";
17
- }
18
- }
19
-
20
- var temp = [];
21
- var args = [];
22
-
23
- var sql;
24
- for (var sqlidx=1, i = 0; i < infos.length; i++) {
25
- var type = infos[i]["type"];
26
- var attr = infos[i]["attr"];
27
- var v = h[attr];
28
- if (!h.hasOwnProperty(attr)) {
29
- //throw Error("missing attr " + attr)
30
- continue;
31
- }
32
- switch (type) {
33
- case 'boolean':
34
- case "numrange":
35
- case "int4range":
36
- case "integer":
37
- tab = "marty_grid_index_" + type + "s";
38
- break;
39
- default:
40
- tab = 'marty_grid_index_strings';
41
- };
42
-
43
- sql = "SELECT DISTINCT index from " + tab +
44
- " WHERE data_grid_id = $" + sqlidx++ +
45
- " AND created_dt = $" + sqlidx++ +
46
- " AND attr = $" + sqlidx++ + ' ';
47
-
48
- args.push(row_info["group_id"]);
49
- args.push(row_info["created_dt"]);
50
- args.push(attr);
51
-
52
- if (v!==null) {
53
- filt = getfilter(type, sqlidx++);
54
- args.push(v);
55
- } else filt = ''
56
- sql += ' AND (' + filt + "key is NULL) ";
57
-
58
- temp.push(sql);
59
- }
60
- if (temp ==[]) return null;
61
- return [temp.join(" INTERSECT "), args];
@@ -1,12 +0,0 @@
1
- class CreateDgPlv8V1Fns < ActiveRecord::Migration[4.2]
2
- def change
3
- connection.execute <<-SQL
4
- -- required to utilize plv8 extension
5
- CREATE EXTENSION IF NOT EXISTS plv8;
6
- SQL
7
- marty_path = Gem.loaded_specs["marty"].full_gem_path
8
- Dir.glob("#{marty_path}/db/js/*_v1.js") do |f|
9
- connection.execute(Marty::Migrations.get_plv8_migration(f))
10
- end
11
- end
12
- end