4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/pghero/methods/sequences.rb', line 4
def sequences
sequences = select_all <<-SQL
SELECT
sequence_schema AS schema,
table_name AS table,
column_name AS column,
c.data_type AS column_type,
CASE WHEN c.data_type = 'integer' THEN 2147483647::bigint ELSE maximum_value::bigint END AS max_value,
sequence_name AS sequence
FROM
information_schema.columns c
INNER JOIN
information_schema.sequences iss ON iss.sequence_name = regexp_replace(c.column_default, '^nextval\\(''(.*)''\\:\\:regclass\\)$', '\\1')
WHERE
column_default LIKE 'nextval%'
AND table_catalog = current_database()
ORDER BY
sequence_name ASC
SQL
select_all(sequences.map { |s| "SELECT last_value FROM #{s["sequence"]}" }.join(" UNION ALL ")).each_with_index do |row, i|
sequences[i]["last_value"] = row["last_value"]
end
sequences
end
|