google-cloud-bigquery 1.19.0 → 1.22.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65c8bae8c365c4fde7d54e75abe9c15aa4eba702b2e6300371843bc97bbc27f7
4
- data.tar.gz: 5457cacd3331a717f63b0d71b907aa5e68702256118cd41d16f90be672f187e4
3
+ metadata.gz: 5fadedabb79035a0b983765731a3aee2af5ca5480671e4255e8644cfb6e8c68c
4
+ data.tar.gz: 9ae351ed3987f2a81e8d9046c88ab776e3ac39f37cac5c6961fa3c2daf33b8bb
5
5
  SHA512:
6
- metadata.gz: b7f0438c001bccc0854ecf13b81909c056635a50489d074c8d91beb13ba3f5e00826663b20371ef7b0669a6cfcb3ee058da8eefc6ffcfd410e9da18d1dd82167
7
- data.tar.gz: 05f8d06e52e06625655730e0c31ae57a8b6bec5c771809d73814413db90122477b143d494d0e8236f43782766673a0f0230b48480f9ce0cddb125b55065cc68a
6
+ metadata.gz: eec1a19be0af9113a94183b9c0eeaa4edf1e08b177be10c449396541d8c6970e4ec666f3fbbb0613107989afc078799beb44655e085f360e3c97846e797bba15
7
+ data.tar.gz: 5f89e947e34384131026fdafd0bdd05f05ed742f6a52b4c18ae0da83f433da2f2f090a924ff82bdf480b79eac9267b923732144a0b32773e12e8b3b846b61a28
@@ -1,5 +1,47 @@
1
1
  # Release History
2
2
 
3
+ ### 1.22.0 / 2020-09-10
4
+
5
+ #### Features
6
+
7
+ * Add support for ML model export
8
+ * Add model support to Project#extract and #extract_job
9
+ * Add ExtractJob#model?
10
+ * Add ExtractJob#ml_tf_saved_model?
11
+ * Add ExtractJob#ml_xgboost_booster?
12
+ * Add Model#extract and #extract_job
13
+
14
+ ### 1.21.2 / 2020-07-21
15
+
16
+ #### Documentation
17
+
18
+ * Update Data#each samples
19
+
20
+ ### 1.21.1 / 2020-05-28
21
+
22
+ #### Documentation
23
+
24
+ * Fix a few broken links
25
+
26
+ ### 1.21.0 / 2020-03-31
27
+
28
+ #### Features
29
+
30
+ * Add Job#parent_job_id and Job#script_statistics
31
+ * Add parent_job to Project#jobs
32
+ * Add Job#num_child_jobs
33
+ * Add Job#parent_job_id
34
+ * Add Job#script_statistics
35
+
36
+ ### 1.20.0 / 2020-03-11
37
+
38
+ #### Features
39
+
40
+ * Add Range Partitioning
41
+ * Add range partitioning methods to Table and Table::Updater
42
+ * Add range partitioning methods to LoadJob
43
+ * Add range partitioning methods to QueryJob
44
+
3
45
  ### 1.19.0 / 2020-02-11
4
46
 
5
47
  #### Features
@@ -24,14 +24,8 @@ improved, *please* create a new issue on GitHub so we can talk about it.
24
24
 
25
25
  - [New issue][gh-ruby]
26
26
 
27
- Or, you can ask questions on the [Google Cloud Platform Slack][slack-ruby]. You
28
- can use the "ruby" channel for general Ruby questions, or use the
29
- "google-cloud-ruby" channel if you have questions about this gem in particular.
30
-
31
27
  [so-ruby]: http://stackoverflow.com/questions/tagged/google-cloud-platform+ruby+bigquery
32
28
 
33
- [gh-search-ruby]: https://github.com/googlecloudplatform/google-cloud-ruby/issues?q=label%3A%22api%3A+bigquery%22
34
-
35
- [gh-ruby]: https://github.com/googlecloudplatform/google-cloud-ruby/issues/new
29
+ [gh-search-ruby]: https://github.com/googleapis/google-cloud-ruby/issues?q=label%3A%22api%3A+bigquery%22
36
30
 
37
- [slack-ruby]: https://gcp-slack.appspot.com/
31
+ [gh-ruby]: https://github.com/googleapis/google-cloud-ruby/issues/new
@@ -53,9 +53,15 @@ module Google
53
53
  # bigquery = gcloud.bigquery
54
54
  # dataset = bigquery.dataset "my_dataset"
55
55
  # table = dataset.table "my_table"
56
- # table.data.each do |row|
57
- # puts row
56
+ #
57
+ # data = table.data
58
+ #
59
+ # # Iterate over the first page of results
60
+ # data.each do |row|
61
+ # puts row[:name]
58
62
  # end
63
+ # # Retrieve the next page of results
64
+ # data = data.next if data.next?
59
65
  #
60
66
  # @example The default scope can be overridden with the `scope` option:
61
67
  # require "google/cloud"
@@ -318,7 +318,9 @@ module Google
318
318
  "parquet" => "PARQUET",
319
319
  "datastore" => "DATASTORE_BACKUP",
320
320
  "backup" => "DATASTORE_BACKUP",
321
- "datastore_backup" => "DATASTORE_BACKUP"
321
+ "datastore_backup" => "DATASTORE_BACKUP",
322
+ "ml_tf_saved_model" => "ML_TF_SAVED_MODEL",
323
+ "ml_xgboost_booster" => "ML_XGBOOST_BOOSTER"
322
324
  }[format.to_s.downcase]
323
325
  return val unless val.nil?
324
326
  format
@@ -272,12 +272,21 @@ module Google
272
272
  # Sets the labels to use for the job.
273
273
  #
274
274
  # @param [Hash] value A hash of user-provided labels associated with
275
- # the job. You can use these to organize and group your jobs. Label
276
- # keys and values can be no longer than 63 characters, can only
277
- # contain lowercase letters, numeric characters, underscores and
278
- # dashes. International characters are allowed. Label values are
279
- # optional. Label keys must start with a letter and each label in
280
- # the list must have a different key.
275
+ # the job. You can use these to organize and group your jobs.
276
+ #
277
+ # The labels applied to a resource must meet the following requirements:
278
+ #
279
+ # * Each resource can have multiple labels, up to a maximum of 64.
280
+ # * Each label must be a key-value pair.
281
+ # * Keys have a minimum length of 1 character and a maximum length of
282
+ # 63 characters, and cannot be empty. Values can be empty, and have
283
+ # a maximum length of 63 characters.
284
+ # * Keys and values can contain only lowercase letters, numeric characters,
285
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
286
+ # international characters are allowed.
287
+ # * The key portion of a label must be unique. However, you can use the
288
+ # same key with multiple resources.
289
+ # * Keys must start with a lowercase letter or international character.
281
290
  #
282
291
  # @!group Attributes
283
292
  def labels= value
@@ -41,9 +41,12 @@ module Google
41
41
  #
42
42
  # data.count # 100000
43
43
  # data.total # 164656
44
+ #
45
+ # # Iterate over the first page of results
44
46
  # data.each do |row|
45
47
  # puts row[:word]
46
48
  # end
49
+ # # Retrieve the next page of results
47
50
  # data = data.next if data.next?
48
51
  #
49
52
  class Data < DelegateClass(::Array)
@@ -117,9 +120,12 @@ module Google
117
120
  #
118
121
  # data.count # 100000
119
122
  # data.total # 164656
123
+ #
124
+ # # Iterate over the first page of results
120
125
  # data.each do |row|
121
126
  # puts row[:word]
122
127
  # end
128
+ # # Retrieve the next page of results
123
129
  # data = data.next if data.next?
124
130
  #
125
131
  def total
@@ -375,9 +381,12 @@ module Google
375
381
  #
376
382
  # data.count # 100000
377
383
  # data.total # 164656
384
+ #
385
+ # # Iterate over the first page of results
378
386
  # data.each do |row|
379
387
  # puts row[:word]
380
388
  # end
389
+ # # Retrieve the next page of results
381
390
  # data = data.next if data.next?
382
391
  #
383
392
  def next?
@@ -402,9 +411,12 @@ module Google
402
411
  #
403
412
  # data.count # 100000
404
413
  # data.total # 164656
414
+ #
415
+ # # Iterate over the first page of results
405
416
  # data.each do |row|
406
417
  # puts row[:word]
407
418
  # end
419
+ # # Retrieve the next page of results
408
420
  # data = data.next if data.next?
409
421
  #
410
422
  def next
@@ -313,12 +313,19 @@ module Google
313
313
  # @param [Hash<String, String>] labels A hash containing key/value
314
314
  # pairs.
315
315
  #
316
- # * Label keys and values can be no longer than 63 characters.
317
- # * Label keys and values can contain only lowercase letters, numbers,
318
- # underscores, hyphens, and international characters.
319
- # * Label keys and values cannot exceed 128 bytes in size.
320
- # * Label keys must begin with a letter.
321
- # * Label keys must be unique within a dataset.
316
+ # The labels applied to a resource must meet the following requirements:
317
+ #
318
+ # * Each resource can have multiple labels, up to a maximum of 64.
319
+ # * Each label must be a key-value pair.
320
+ # * Keys have a minimum length of 1 character and a maximum length of
321
+ # 63 characters, and cannot be empty. Values can be empty, and have
322
+ # a maximum length of 63 characters.
323
+ # * Keys and values can contain only lowercase letters, numeric characters,
324
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
325
+ # international characters are allowed.
326
+ # * The key portion of a label must be unique. However, you can use the
327
+ # same key with multiple resources.
328
+ # * Keys must start with a lowercase letter or international character.
322
329
  #
323
330
  # @example
324
331
  # require "google/cloud/bigquery"
@@ -555,6 +562,40 @@ module Google
555
562
  # end
556
563
  # end
557
564
  #
565
+ # @example With time partitioning and clustering.
566
+ # require "google/cloud/bigquery"
567
+ #
568
+ # bigquery = Google::Cloud::Bigquery.new
569
+ # dataset = bigquery.dataset "my_dataset"
570
+ #
571
+ # table = dataset.create_table "my_table" do |t|
572
+ # t.schema do |schema|
573
+ # schema.timestamp "dob", mode: :required
574
+ # schema.string "first_name", mode: :required
575
+ # schema.string "last_name", mode: :required
576
+ # end
577
+ # t.time_partitioning_type = "DAY"
578
+ # t.time_partitioning_field = "dob"
579
+ # t.clustering_fields = ["last_name", "first_name"]
580
+ # end
581
+ #
582
+ # @example With range partitioning.
583
+ # require "google/cloud/bigquery"
584
+ #
585
+ # bigquery = Google::Cloud::Bigquery.new
586
+ # dataset = bigquery.dataset "my_dataset"
587
+ #
588
+ # table = dataset.create_table "my_table" do |t|
589
+ # t.schema do |schema|
590
+ # schema.integer "my_table_id", mode: :required
591
+ # schema.string "my_table_data", mode: :required
592
+ # end
593
+ # t.range_partitioning_field = "my_table_id"
594
+ # t.range_partitioning_start = 0
595
+ # t.range_partitioning_interval = 10
596
+ # t.range_partitioning_end = 100
597
+ # end
598
+ #
558
599
  # @!group Table
559
600
  #
560
601
  def create_table table_id, name: nil, description: nil
@@ -602,12 +643,20 @@ module Google
602
643
  # SQL](https://cloud.google.com/bigquery/docs/reference/legacy-sql)
603
644
  # dialect. Optional. The default value is false.
604
645
  # @param [Array<String>, String] udfs User-defined function resources
605
- # used in the query. May be either a code resource to load from a
606
- # Google Cloud Storage URI (`gs://bucket/path`), or an inline resource
646
+ # used in a legacy SQL query. May be either a code resource to load from
647
+ # a Google Cloud Storage URI (`gs://bucket/path`), or an inline resource
607
648
  # that contains code for a user-defined function (UDF). Providing an
608
649
  # inline code resource is equivalent to providing a URI for a file
609
- # containing the same code. See [User-Defined
610
- # Functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions).
650
+ # containing the same code.
651
+ #
652
+ # This parameter is used for defining User Defined Function (UDF)
653
+ # resources only when using legacy SQL. Users of standard SQL should
654
+ # leverage either DDL (e.g. `CREATE [TEMPORARY] FUNCTION ...`) or the
655
+ # Routines API to define UDF resources.
656
+ #
657
+ # For additional information on migrating, see: [Migrating to
658
+ # standard SQL - Differences in user-defined JavaScript
659
+ # functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions)
611
660
  #
612
661
  # @return [Google::Cloud::Bigquery::Table] A new table object.
613
662
  #
@@ -1129,20 +1178,36 @@ module Google
1129
1178
  # is 1,024 characters. If `job_id` is provided, then `prefix` will not
1130
1179
  # be used.
1131
1180
  # @param [Hash] labels A hash of user-provided labels associated with
1132
- # the job. You can use these to organize and group your jobs. Label
1133
- # keys and values can be no longer than 63 characters, can only
1134
- # contain lowercase letters, numeric characters, underscores and
1135
- # dashes. International characters are allowed. Label values are
1136
- # optional. Label keys must start with a letter and each label in the
1137
- # list must have a different key. See [Requirements for
1138
- # labels](https://cloud.google.com/bigquery/docs/creating-managing-labels#requirements).
1181
+ # the job. You can use these to organize and group your jobs.
1182
+ #
1183
+ # The labels applied to a resource must meet the following requirements:
1184
+ #
1185
+ # * Each resource can have multiple labels, up to a maximum of 64.
1186
+ # * Each label must be a key-value pair.
1187
+ # * Keys have a minimum length of 1 character and a maximum length of
1188
+ # 63 characters, and cannot be empty. Values can be empty, and have
1189
+ # a maximum length of 63 characters.
1190
+ # * Keys and values can contain only lowercase letters, numeric characters,
1191
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
1192
+ # international characters are allowed.
1193
+ # * The key portion of a label must be unique. However, you can use the
1194
+ # same key with multiple resources.
1195
+ # * Keys must start with a lowercase letter or international character.
1139
1196
  # @param [Array<String>, String] udfs User-defined function resources
1140
- # used in the query. May be either a code resource to load from a
1141
- # Google Cloud Storage URI (`gs://bucket/path`), or an inline resource
1197
+ # used in a legacy SQL query. May be either a code resource to load from
1198
+ # a Google Cloud Storage URI (`gs://bucket/path`), or an inline resource
1142
1199
  # that contains code for a user-defined function (UDF). Providing an
1143
1200
  # inline code resource is equivalent to providing a URI for a file
1144
- # containing the same code. See [User-Defined
1145
- # Functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions).
1201
+ # containing the same code.
1202
+ #
1203
+ # This parameter is used for defining User Defined Function (UDF)
1204
+ # resources only when using legacy SQL. Users of standard SQL should
1205
+ # leverage either DDL (e.g. `CREATE [TEMPORARY] FUNCTION ...`) or the
1206
+ # Routines API to define UDF resources.
1207
+ #
1208
+ # For additional information on migrating, see: [Migrating to
1209
+ # standard SQL - Differences in user-defined JavaScript
1210
+ # functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions)
1146
1211
  # @param [Integer] maximum_billing_tier Deprecated: Change the billing
1147
1212
  # tier to allow high-compute queries.
1148
1213
  # @yield [job] a job configuration object
@@ -1424,9 +1489,12 @@ module Google
1424
1489
  #
1425
1490
  # data = dataset.query "SELECT name FROM my_table"
1426
1491
  #
1492
+ # # Iterate over the first page of results
1427
1493
  # data.each do |row|
1428
1494
  # puts row[:name]
1429
1495
  # end
1496
+ # # Retrieve the next page of results
1497
+ # data = data.next if data.next?
1430
1498
  #
1431
1499
  # @example Query using legacy SQL:
1432
1500
  # require "google/cloud/bigquery"
@@ -1437,9 +1505,12 @@ module Google
1437
1505
  # data = dataset.query "SELECT name FROM my_table",
1438
1506
  # legacy_sql: true
1439
1507
  #
1508
+ # # Iterate over the first page of results
1440
1509
  # data.each do |row|
1441
1510
  # puts row[:name]
1442
1511
  # end
1512
+ # # Retrieve the next page of results
1513
+ # data = data.next if data.next?
1443
1514
  #
1444
1515
  # @example Query using positional query parameters:
1445
1516
  # require "google/cloud/bigquery"
@@ -1450,9 +1521,12 @@ module Google
1450
1521
  # data = dataset.query "SELECT name FROM my_table WHERE id = ?",
1451
1522
  # params: [1]
1452
1523
  #
1524
+ # # Iterate over the first page of results
1453
1525
  # data.each do |row|
1454
1526
  # puts row[:name]
1455
1527
  # end
1528
+ # # Retrieve the next page of results
1529
+ # data = data.next if data.next?
1456
1530
  #
1457
1531
  # @example Query using named query parameters:
1458
1532
  # require "google/cloud/bigquery"
@@ -1463,9 +1537,12 @@ module Google
1463
1537
  # data = dataset.query "SELECT name FROM my_table WHERE id = @id",
1464
1538
  # params: { id: 1 }
1465
1539
  #
1540
+ # # Iterate over the first page of results
1466
1541
  # data.each do |row|
1467
1542
  # puts row[:name]
1468
1543
  # end
1544
+ # # Retrieve the next page of results
1545
+ # data = data.next if data.next?
1469
1546
  #
1470
1547
  # @example Query using named query parameters with types:
1471
1548
  # require "google/cloud/bigquery"
@@ -1478,9 +1555,12 @@ module Google
1478
1555
  # params: { ids: [] },
1479
1556
  # types: { ids: [:INT64] }
1480
1557
  #
1558
+ # # Iterate over the first page of results
1481
1559
  # data.each do |row|
1482
1560
  # puts row[:name]
1483
1561
  # end
1562
+ # # Retrieve the next page of results
1563
+ # data = data.next if data.next?
1484
1564
  #
1485
1565
  # @example Execute a DDL statement:
1486
1566
  # require "google/cloud/bigquery"
@@ -1519,9 +1599,12 @@ module Google
1519
1599
  # query.table = dataset.table "my_table", skip_lookup: true
1520
1600
  # end
1521
1601
  #
1602
+ # # Iterate over the first page of results
1522
1603
  # data.each do |row|
1523
1604
  # puts row[:name]
1524
1605
  # end
1606
+ # # Retrieve the next page of results
1607
+ # data = data.next if data.next?
1525
1608
  #
1526
1609
  # @!group Data
1527
1610
  #
@@ -1724,13 +1807,21 @@ module Google
1724
1807
  # is 1,024 characters. If `job_id` is provided, then `prefix` will not
1725
1808
  # be used.
1726
1809
  # @param [Hash] labels A hash of user-provided labels associated with
1727
- # the job. You can use these to organize and group your jobs. Label
1728
- # keys and values can be no longer than 63 characters, can only
1729
- # contain lowercase letters, numeric characters, underscores and
1730
- # dashes. International characters are allowed. Label values are
1731
- # optional. Label keys must start with a letter and each label in the
1732
- # list must have a different key. See [Requirements for
1733
- # labels](https://cloud.google.com/bigquery/docs/creating-managing-labels#requirements).
1810
+ # the job. You can use these to organize and group your jobs.
1811
+ #
1812
+ # The labels applied to a resource must meet the following requirements:
1813
+ #
1814
+ # * Each resource can have multiple labels, up to a maximum of 64.
1815
+ # * Each label must be a key-value pair.
1816
+ # * Keys have a minimum length of 1 character and a maximum length of
1817
+ # 63 characters, and cannot be empty. Values can be empty, and have
1818
+ # a maximum length of 63 characters.
1819
+ # * Keys and values can contain only lowercase letters, numeric characters,
1820
+ # underscores, and dashes. All characters must use UTF-8 encoding, and
1821
+ # international characters are allowed.
1822
+ # * The key portion of a label must be unique. However, you can use the
1823
+ # same key with multiple resources.
1824
+ # * Keys must start with a lowercase letter or international character.
1734
1825
  # @yield [updater] A block for setting the schema and other
1735
1826
  # options for the destination table. The schema can be omitted if the
1736
1827
  # destination table already exists, or if you're loading data from a
@@ -45,9 +45,12 @@ module Google
45
45
  # data = bigquery.query "SELECT * FROM my_ext_table",
46
46
  # external: { my_ext_table: csv_table }
47
47
  #
48
+ # # Iterate over the first page of results
48
49
  # data.each do |row|
49
50
  # puts row[:name]
50
51
  # end
52
+ # # Retrieve the next page of results
53
+ # data = data.next if data.next?
51
54
  #
52
55
  module External
53
56
  ##
@@ -138,9 +141,12 @@ module Google
138
141
  # data = bigquery.query "SELECT * FROM my_ext_table",
139
142
  # external: { my_ext_table: avro_table }
140
143
  #
144
+ # # Iterate over the first page of results
141
145
  # data.each do |row|
142
146
  # puts row[:name]
143
147
  # end
148
+ # # Retrieve the next page of results
149
+ # data = data.next if data.next?
144
150
  #
145
151
  class DataSource
146
152
  ##
@@ -575,9 +581,12 @@ module Google
575
581
  # data = bigquery.query "SELECT * FROM my_ext_table",
576
582
  # external: { my_ext_table: csv_table }
577
583
  #
584
+ # # Iterate over the first page of results
578
585
  # data.each do |row|
579
586
  # puts row[:name]
580
587
  # end
588
+ # # Retrieve the next page of results
589
+ # data = data.next if data.next?
581
590
  #
582
591
  class CsvSource < External::DataSource
583
592
  ##
@@ -1037,9 +1046,12 @@ module Google
1037
1046
  # data = bigquery.query "SELECT * FROM my_ext_table",
1038
1047
  # external: { my_ext_table: json_table }
1039
1048
  #
1049
+ # # Iterate over the first page of results
1040
1050
  # data.each do |row|
1041
1051
  # puts row[:name]
1042
1052
  # end
1053
+ # # Retrieve the next page of results
1054
+ # data = data.next if data.next?
1043
1055
  #
1044
1056
  class JsonSource < External::DataSource
1045
1057
  ##
@@ -1173,9 +1185,12 @@ module Google
1173
1185
  # data = bigquery.query "SELECT * FROM my_ext_table",
1174
1186
  # external: { my_ext_table: sheets_table }
1175
1187
  #
1188
+ # # Iterate over the first page of results
1176
1189
  # data.each do |row|
1177
1190
  # puts row[:name]
1178
1191
  # end
1192
+ # # Retrieve the next page of results
1193
+ # data = data.next if data.next?
1179
1194
  #
1180
1195
  class SheetsSource < External::DataSource
1181
1196
  ##
@@ -1318,9 +1333,12 @@ module Google
1318
1333
  # data = bigquery.query "SELECT * FROM my_ext_table",
1319
1334
  # external: { my_ext_table: bigtable_table }
1320
1335
  #
1336
+ # # Iterate over the first page of results
1321
1337
  # data.each do |row|
1322
1338
  # puts row[:name]
1323
1339
  # end
1340
+ # # Retrieve the next page of results
1341
+ # data = data.next if data.next?
1324
1342
  #
1325
1343
  class BigtableSource < External::DataSource
1326
1344
  ##
@@ -1516,9 +1534,12 @@ module Google
1516
1534
  # data = bigquery.query "SELECT * FROM my_ext_table",
1517
1535
  # external: { my_ext_table: bigtable_table }
1518
1536
  #
1537
+ # # Iterate over the first page of results
1519
1538
  # data.each do |row|
1520
1539
  # puts row[:name]
1521
1540
  # end
1541
+ # # Retrieve the next page of results
1542
+ # data = data.next if data.next?
1522
1543
  #
1523
1544
  class ColumnFamily
1524
1545
  ##
@@ -2053,9 +2074,12 @@ module Google
2053
2074
  # data = bigquery.query "SELECT * FROM my_ext_table",
2054
2075
  # external: { my_ext_table: bigtable_table }
2055
2076
  #
2077
+ # # Iterate over the first page of results
2056
2078
  # data.each do |row|
2057
2079
  # puts row[:name]
2058
2080
  # end
2081
+ # # Retrieve the next page of results
2082
+ # data = data.next if data.next?
2059
2083
  #
2060
2084
  class Column
2061
2085
  ##