pg_conn 0.4.1 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/TODO +7 -4
- data/lib/pg_conn/version.rb +1 -1
- data/lib/pg_conn.rb +13 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e3c08d86eff1bd5cc3d8d40024dad64bf5879f14e56f20a5facdcc8abf3cc72
|
4
|
+
data.tar.gz: ff23710aa798488f0ad6b18bea834c7b396d54e211bb19af800b8f66d7378430
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5505ad838a108abdcf146ec2da0ca255bf9931b8ff786d796eced468c5bc00a0222e1a2fb7aca7e6e9ac758ea187bbb253c5b536e51a485e8e54b8da71bb886
|
7
|
+
data.tar.gz: b336099c4158450ef646a022b76d4cbc72399e6b4dfb34fd6905317fd11168459b0d51f4105152df5ccae8135cedf8bd01322733859a45e446a711a952848fab
|
data/TODO
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
TODO
|
2
|
-
o
|
3
|
-
|
4
|
-
|
5
|
-
o
|
2
|
+
o Use SQL parameters. Optionally with a different syntax:
|
3
|
+
$var - Value that gets single-quoted
|
4
|
+
@var - Identifier that gets double-quoted (@ for "attribute")
|
5
|
+
o Option to accept no records when using #value, #tuple, and #struct. Maybe
|
6
|
+
value?, tuple?, struct?. The alternative is to use the 'one-table' as base
|
7
|
+
table in the query and then left join the rest
|
6
8
|
o Proper implementation of call of functions and procedures: Functions should
|
7
9
|
be called through #value, #tuple etc. and procedures through #call.
|
8
10
|
Proceduer output parameters needs handling too
|
11
|
+
o Implement search_path
|
9
12
|
o Create an abstract PgConnBase and have PgStmts (writes statements to array)
|
10
13
|
and PgConn (sends statements to server) classes derived from it
|
11
14
|
o fix silent
|
data/lib/pg_conn/version.rb
CHANGED
data/lib/pg_conn.rb
CHANGED
@@ -219,10 +219,12 @@ module PgConn
|
|
219
219
|
# Return true if the table or the result of the query is empty
|
220
220
|
def empty?(arg, where_clause = nil)
|
221
221
|
if arg =~ /\s/
|
222
|
-
|
222
|
+
value "select count(*) from (#{arg} limit 1) as inner_query"
|
223
|
+
elsif where_clause
|
224
|
+
value "select count(*) from (select 1 from #{arg} where #{where_clause} limit 1) as inner_query"
|
223
225
|
else
|
224
|
-
count(
|
225
|
-
end ==
|
226
|
+
value "select count(*) from (select 1 from #{arg} limit 1) as inner_query"
|
227
|
+
end == 0
|
226
228
|
end
|
227
229
|
|
228
230
|
# :call-seq:
|
@@ -433,20 +435,21 @@ module PgConn
|
|
433
435
|
end
|
434
436
|
|
435
437
|
# Return the value of calling the given function (which can be a String or
|
436
|
-
# a Symbol
|
437
|
-
#
|
438
|
-
# (like #value or #values),
|
439
|
-
# (like #tuple), and an array of
|
440
|
-
# than one record with multiple
|
438
|
+
# a Symbol and can contain the schema of the function). It dynamically
|
439
|
+
# detects the structure of the result and return a value or an array of
|
440
|
+
# values if the result contained only one column (like #value or #values),
|
441
|
+
# a tuple if the record has multiple columns (like #tuple), and an array of
|
442
|
+
# of tuples if the result contained more than one record with multiple
|
443
|
+
# columns (like #tuples)
|
441
444
|
#
|
442
|
-
def call(name, *args, proc: false)
|
445
|
+
def call(name, *args, proc: false) # :proc may interfere with hashes
|
443
446
|
args_sql = args.map { |arg| # TODO: Use pg's encoder
|
444
447
|
case arg
|
445
448
|
when NilClass; "null"
|
446
449
|
when String; "'#{arg}'"
|
447
450
|
when Integer; arg
|
448
451
|
when TrueClass, FalseClass; arg
|
449
|
-
when Array;
|
452
|
+
when Array; "Array['#{arg.join("', '")}']" # Quick and dirty # FIXME
|
450
453
|
when Hash; raise NotImplementedError
|
451
454
|
else
|
452
455
|
raise ArgumentError, "Unrecognized value: #{arg.inspect}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_conn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|