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 " SELECT\n sequence_schema AS schema,\n table_name AS table,\n column_name AS column,\n c.data_type AS column_type,\n CASE WHEN c.data_type = 'integer' THEN 2147483647::bigint ELSE maximum_value::bigint END AS max_value,\n sequence_name AS sequence\n FROM\n information_schema.columns c\n INNER JOIN\n information_schema.sequences iss ON iss.sequence_name = regexp_replace(c.column_default, '^nextval\\\\(''(.*)''\\\\:\\\\:regclass\\\\)$', '\\\\1')\n WHERE\n column_default LIKE 'nextval%'\n AND table_catalog = current_database()\n ORDER BY\n sequence_name ASC\n SQL\n\n select_all(sequences.map { |s| \"SELECT last_value FROM \#{s[\"sequence\"]}\" }.join(\" UNION ALL \")).each_with_index do |row, i|\n sequences[i][\"last_value\"] = row[\"last_value\"]\n end\n\n sequences\nend\n"
|